欢迎各位兄弟 发布技术文章
这里的技术是共享的
inode在linux中,代表一个文件的索引节点,其中indoe中存储了文件的一些元信息,如:文件的时间戳,文件的所有者等
上个星期,马哥讲了如何给小linux添加设备模块,并实现登录界面,级别1,开关机等等。通过不断的倒腾这个小Linux来更加深入的理解linux系统。
准备工作:1.您应当知道内核模块的概念,可以去我的文章了解下
启动流程 http://blog.csdn.net/deansrk/article/details/6659421
内核模块 http://blog.csdn.net/deansrk/article/details/6666629
2.您应该了解linux的启动流程与启动级别的概念
##更新:一些内核模块相关命令介绍:
modinfo pcnet32
查看模块中对应的详细信息和“依赖信息”,“路径”等
系统启动流程:
POST-->BIOS(Boot Sequence)-->BootLoader(446个字节)(MBR)(512个字节)-->Kernel(initrd,initramfs)-->init(/etc/inittab,RHEL6:upstart)
upstart(红帽6) (为了兼容依然叫init)
/etc/inittab
/etc/init/*.conf
以红帽5来讲/etc/inittab 这个配置文件
设定默认级别
系统初始化脚本(/etc/rc.d/rc.sysinit)
运行指定级别的服务脚本
/etc/rc.d/init.d/ (ISB 或SysV风格的服务脚本)
/etc/rc.d/rc#.d
rc0.d--rc6.d
首先介绍一下shell中包含文件的方法,在C,C++,PHP中都是用include来包含文件,Go和Java使用import来包含(导入)包,而在shell中,很简单,只需要一个点“.”,然后跟着文件路径及文件名,或者使用source关键字也可以,注意文件路径可以使用绝对路径和相对路径。
下面是一个文件包含的例子:three.sh包含one.sh和two.sh
/p 表示 打印 (print) 的意思
sed -n '/SetEnvIf X-Forwarded-for/{/0.0.0.0/!p}' .htaccess (包含SetEnvIf X-Forwarded-for 不包含 0.0.0.0)
两个条件多个条件用大括号(花括号)括起来 要用单引号 双引号可能有错
(例子 # sed -n "/Rewrite/{/Cond/{/HTTP/p}}" .htaccess 文件中既包含Rewrite又包括Cond又包含HTTP)
数字0和127不作为主机的IP地址的开头
Shell中判断字符串包含关系的方法:
1、通过grep来判断:
1
2
str1="abcdefgh"
str2="def"
result=$(echo $str1 | grep "${str2}")
if [[ "$result" != "" ]]
then
echo "包含"
else
echo "不包含"
fi
3
4
5
6
7
8
9
先打印长字符串,然后在长字符串中 grep 查找要搜索的字符串,用变量result记录结果,如果结果不为空,说明str1包含str2。如果结果为空,说明不包含。这个方法充分利用了grep 的特性,最为简洁。
2、字符串运算符
if [[ $str1 =~ $str2 ]]
sed命令行格式为: sed [-nefri] ‘command’ 输入文本/文件
比如有:
目前中文互联网上有少量spider冒充Baiduspider抓取网页,
如何判断Baiduspider的真假,说明一下:
中文互联网上,Baiduspider ip的hostname以 *.baidu.com的格式命名,非 *.baidu.com即为冒充,建议您使用DNS反查方式来确定抓取来源的ip是否属于百度。
例如,在linux平台下,您可以使用host ip命令反解ip来判断是否来自Baiduspider的抓取。
$ host 123.125.66.120 (有些查得出来 有些查不出来)
120.66.125.123.in-addr.arpa domain name pointer
baiduspider-123-125-66-120.crawl.baidu.com.
在windows平台下,可以用nslookup命令反解ip来判断是否来自Baiduspider的抓取。
点击“开始”-“运行”-“cmd”-“输入nslookup IP地址”-“回车”
我们都知道网站的抓取是靠蜘蛛通过链接来爬取到你的网站才能抓取的,你们我们怎么自动蜘蛛是否来过我们的网站呢?下面来讲讲如何辨别真假百度蜘蛛的方法。
[root@ebs-56865 ~]# vim apacheaddpublicdir.sh
#!/bin/bash
#
for I in /www/wdlinux/httpd-2.2.31/conf/vhost/* ; do
sed -i 's/public\_html/public\_html\/public/g' $I
sed -i 's/\r//g' $I
done
[root@ebs-56865 ~]# vim nginxaddpublicdir.sh
你是不是经常需要 SSH 或者 telent 远程登录到 Linux 服务器?你是不是经常为一些长时间运行的任务而头疼,比如系统备份、ftp 传输等等。通常情况下我们都是为每一个这样的任务开一个远程终端窗口,因为他们执行的时间太长了。必须等待它执行完毕,在此期间可不能关掉窗口或者断开连接,否则这个任务就会被杀掉,一切半途而废了。
https://mirrors.edge.kernel.org/pub/linux/kernel/v2.6/ 这个也可以下载
linux内核总的下载路径:
https://www.kernel.org/pub/linux/kernel/
各分支的下载路径如下所示:
../
Historic/ 20-Mar-2003 22:38 -
SillySounds/ 26-Jun-2017 21:57 -
crypto/ 24-Nov-2001 14:54 -
next/ 05-Jan-2018 05:44 -
people/ 17-Apr-2017 18:13 -
ports/ 13-Mar-2003 01:34 -
longterm support (longterm 长期的)提供长期支持的内核版本
最近一直在关注Angular 2, 发现官方给的版本总是RC 1, 2,3 搞糊涂了RC究竟是什么意思,来给大家普及一下:
RC=Release Candidate,(Release 释放,发布 Candidate候选) 含义是”发布候选版”,它不是最终的版本,而是最终版(RTM=Release To Manufacture)之前的最后一个版本。广义上对测试有三个传统的称呼:alpha、beta、gamma,用来标识测试的阶段和范围。alpha 是指内测,即现在说的CB,指开发团队内部测试的版本或者有限用户体验测试版本。beta 是指公测,即针对所有用户公开的测试版本。然后做过一些修改,成为正式发布的候选版本时叫做gamma,现在叫做RC(Release Candidate)。
---------------------
作者:天外野草
来源:CSDN
原文:https://blog.csdn.net/jiangbo_phd/article/details/51777411
内核由两部分组成
核心: /boot/vmlinuz-version (# uname -r (r release)查看版本号)
内核模块(ko): /lib/modules/version/
内核设计风格:
单内核
模块化设计,内核很小,必须用命令装载某模块到内核中去
微内核
装载模块的命令:
insmod (insert mode )
modprobe (mode probe)
www.kernel.org: 内核版本与发行版的版本不是同一回事
用户空间访问,监控内核的方式:
/proc, /sys
伪文件系统
一、ll命令
ll并不是linux下一个基本的命令,它实际上是ls -l的一个别名。
1. 获取当前运行级别
runlevel
2. 运行级别切换
# 切换响应的运行级别,本例为3
init 3
下面是相关级别的定义
级别用途
级别0直接关机
级别1单用户模式
级别2多用户离线模式(不能联网)
级别3多用户文本模式(可联网)
级别4系统保留模式(不可选)
级别5图形模式(如果有的话)
级别6不断重启模式
pam_tally2模块(方法一)用于对系统进行失败的ssh登录尝试后锁定用户帐户。此模块保留已尝试访问的计数和过多的失败尝试。[root@zabbix ~]# vim /etc/pam.d/login
id:5:initdefault
si::sysinit:/etc/rc.d/rc.sysinit
OS的初始化
/etc/rc.d/rc.sysinit 完成的任务
1,激活udev和selinux: (前200行,就不用读了,前面十几行还是可以看得懂的吧)
2,根据/etc/sysct.conf文件,来设定内核参数
3,设定系统时间
4,装载键映射
5,启用交换分区
6,设置主机名
7,根文件系统检测,并以读写方式重新挂载
8,激活RAID(及软RAID)和LVM设备 (额外的,除了根以外和其它的)
9,启用磁盘配额 (限定用户最多使用多少磁盘空间的,用处不大)
10,根据/etc/fstab,检查并挂载其它文件系统
11,清理过期的锁和PID文件
l0:0:wait:/etc/rc.d/rc 0
rc0.d/
K* (K是kill的意思)