第1章 linux启动过程
1、开机自检bios
2、mbr引导
3、GRUB 菜单:选择不同的内核
4、加载内核
5、运行init进程
6、读取/etc/inittab运行级别配置文件
7、执行 /etc/rc.d/rc.sysinit 脚本 (系统的初始化脚本)配置主机名,IP地址
8、执行 /etc/rc.d/rc(根据运行级别运行相应的软件)
9、显示登陆界面
第2章 练习题
2.1 第1题
如何过滤出已知当前目录下clsn中的所有一级目录(提示:不包含clsn目录下面目录的子目录及隐藏目录,即只能是第一级目录)?
2.1.1 环境创建
mkdir /clsn -p
cd /clsn
mkdir ext/clsn test xiaodong xiaofan xingfujie -p
touch jeacen clsn wodi.gz yingsui.gz
2.1.2 方法一 tree
-d显示目录,-L 1找当前目录
[root@znix clsn]# tree -dL 1
.
├── data
└── test
2.1.3 方法二 find
-maxdepth 最大目录深度 ! 表示非、排除
[root@znix clsn]# find . -maxdepth 1 -type d ! -name "."
./data
./test
2.1.4 方法三 ls +grep
^d 表示以d开头的。
[root@znix clsn]# ls -l |grep "^d"
drwxr-xr-x 3 root root 4096 Aug 23 15:51 data
drwxr-xr-x. 3 root root 4096 Aug 23 15:51 test
2.1.5 方法四 ls -F + grep
ls -F 给不同的文件加上不同的标记 文件夹为/
[root@znix clsn]# ls -F /clsn/|grep "/"
tandao/
test/
2.1.6 方法五ls+awk
^d表示以d开头的。
[root@znix clsn]# ls -l |awk '/^d/'
drwxr-xr-x 3 root root 4096 Aug 23 15:51 data
drwxr-xr-x. 3 root root 4096 Aug 23 15:51 test
2.1.7 方法六ls+awk
$2>1 , 表示第二列大于1
[root@znix clsn]# ls -l /clsn/|awk '$2>1'
total 20
drwxr-xr-x 3 root root 4096 Aug 23 15:51 data
drwxr-xr-x. 3 root root 4096 Aug 23 15:51 test
2.2 第2题
2.2.1 cd命令
[root@znix tmp]# cd /clsn/
[root@znix clsn]# pwd
/clsn
[root@znix clsn]# cd /tmp/
[root@znix tmp]# pwd
/tmp
[root@znix tmp]# cd -
/clsn
[root@znix clsn]# #cd - ==== cd $OLDPWD(存放着 你上一次所在的位置)
cd .. ###进入到上一级目录 当前目录的上一级目录
. ###当前目录 cp /etc/hosts .
cd ~ ###当前用户的家目录 回老家
cd ###回老家
cd - ###进入到上一次所在的位置
2.2.2 练习
进入到/etc/sysconfig/network-scripts/目录,并查看你所在位置
#进入到上一级目录,并查看你所在位置
#进入到/root目录下面,并显示你所在位置
#快速返回到/你上一次的位置
#回到老家
[root@znix ~]# cd /etc/sysconfig/network-scripts/
[root@znix network-scripts]# pwd
/etc/sysconfig/network-scripts
[root@znix network-scripts]# cd ..
[root@znix sysconfig]# pwd
/etc/sysconfig
[root@znix sysconfig]# cd /root/
[root@znix ~]# pwd
/root
[root@znix ~]# cd -
/etc/sysconfig
[root@znix sysconfig]# cd
[root@znix ~]# pwd
/root
2.3 第3题
一个目录中有很多文件(ls -l 查看时好多屏),想用一条命令最快速度查看到最近更新的文件。如何看?
-r时逆序显示 -t按时间顺序排序
[root@znix clsn]# ls -lrt
total 20
-rw-r--r--. 1 root root 7 Aug 17 17:00 t.sh
-rw-r--r--. 1 root root 0 Aug 17 17:00 clsn.txt
-rw-r--r--. 1 root root 0 Aug 17 17:00 alex.txt
-rw-r--r--. 1 root root 0 Aug 17 17:28 b
-rw-r--r--. 1 root root 8 Aug 17 19:35 test.sh
drwxr-xr-x 3 root root 4096 Aug 23 15:51 data
drwxr-xr-x. 3 root root 4096 Aug 23 15:51 test
-rw-r--r-- 1 root root 43 Aug 24 12:02 nginx.conf
2.3.1 指定ls命令显示日期的格式
[root@znix etc]# ls -l --time-style=long-iso
2.4 第4题
在配置apache时 执行了./configure —prefix=/application/apache2.2.17 来编译apche, 在make install 完成后,希望用户访问 apache路径更简单,需要给/application/apache2.2.17 目录做一个软链接/application/apache,使得内部开发或管理人员通过/application/apache 就可以访问到apache 的安装目录/application/apache2.2.17 下的内容,请你给出实现的命令。
(提示:apache为一个 web服务)
2.4.1 模拟环境
创建目录
[root@znix clsn]# mkdir -p /application/apache2.2.17
[root@znix clsn]# ls -l /application/
total 4
drwxr-xr-x 2 root root 4096 Aug 30 10:10 apache2.2.17
2.4.2 创建软连接
[root@znix clsn]# ln -s /application/apache2.2.17/ /application/apache
[root@znix clsn]# cd /application/
[root@znix application]# ls -l
total 4
lrwxrwxrwx 1 root root 26 Aug 30 10:12 apache -> /application/apache2.2.17/
drwxr-xr-x 2 root root 4096 Aug 30 10:10 apache2.2.17
2.4.3 模拟升级
[root@znix application]# mkdir -p /application/apache2.4.17
[root@znix application]# ls -l /application/
total 8
lrwxrwxrwx 1 root root 26 Aug 30 10:12 apache -> /application/apache2.2.17/
drwxr-xr-x 2 root root 4096 Aug 30 10:10 apache2.2.17
drwxr-xr-x 2 root root 4096 Aug 30 10:16 apache2.4.17
2.4.4 修改软连接
先将旧的软链接删除,防止出错。
[root@znix application]# \rm -f /application/apache
[root@znix application]# ls -l /application/
total 8
drwxr-xr-x 2 root root 4096 Aug 30 10:10 apache2.2.17
drwxr-xr-x 2 root root 4096 Aug 30 10:16 apache2.4.17
[root@znix application]# ln -s /application/apache2.4.17/ /application/apache
[root@znix application]# ls -l /application/
total 8
lrwxrwxrwx 1 root root 26 Aug 30 10:17 apache -> /application/apache2.4.17/
drwxr-xr-x 2 root root 4096 Aug 30 10:10 apache2.2.17
drwxr-xr-x 2 root root 4096 Aug 30 10:16 apache2.4.17
2.5 第5题
已知 apache 服务的访问日志按天记录在服务器本地目录/app/logs 下,由于磁盘空间紧张,现在要求只能保留最近 7 天的访问日志!
2.5.1 方法一 find |xargs
-mtime +7 表示7天以前 7表示第七天, -7表示最近7天
[root@znix ~]# find /app/logs/ -type f -name "*.log" -mtime +7 |xargs ls -ltr
-rw-r--r-- 1 root root 0 May 1 00:00 /app/logs/access_www_2017-05-01.log
-rw-r--r-- 1 root root 0 May 2 00:00 /app/logs/access_www_2017-05-02.log
-rw-r--r-- 1 root root 0 May 3 00:00 /app/logs/access_www_2017-05-03.log
-rw-r--r-- 1 root root 0 May 4 00:00 /app/logs/access_www_2017-05-04.log
-rw-r--r-- 1 root root 0 May 5 00:00 /app/logs/access_www_2017-05-05.log
-rw-r--r-- 1 root root 0 May 6 00:00 /app/logs/access_www_2017-05-06.log
-rw-r--r-- 1 root root 0 May 7 00:00 /app/logs/access_www_2017-05-07.log
-rw-r--r-- 1 root root 0 May 8 00:00 /app/logs/access_www_2017-05-08.log
-rw-r--r-- 1 root root 0 May 9 00:00 /app/logs/access_www_2017-05-09.log
-rw-r--r-- 1 root root 0 May 10 00:00 /app/logs/access_www_2017-05-10.log
-rw-r--r-- 1 root root 0 May 11 00:00 /app/logs/access_www_2017-05-11.log
-rw-r--r-- 1 root root 0 May 12 00:00 /app/logs/access_www_2017-05-12.log
2.5.2 方法二 $(find )
[root@znix ~]# ls -l $(find /app/logs/ -type f -name "*.log" -mtime +7)
2.5.3 方法三 find -exec {} \;
[root@znix ~]# find /app/logs/ -type f -name "*.log" -mtime +7 -exec ls -l {} \;
2.6 第6题
调试系统服务时,希望能实时查看/var/log/messages系统日志的更新。
-f 显示文件的实时更新。
[root@znix ~]# tail -f /var/log/secure
tailf与tail -f 大致相同。
[root@znix ~]# tailf /var/log/secure
2.7 第7题
打印轻量级 web 服务的配置文件 nginx.conf 内容的行号及内容
2.7.1 文件创建
stu{01..5}生成 stu01、stu02···stu05 字符
[root@znix clsn]# echo stu{01..5}|xargs -n1 >nginx.conf
[root@znix clsn]# cat nginx.conf
stu01
stu02
stu03
stu04
stu05
2.7.2 方法一 cat
-n 显示文件行号
[root@znix clsn]# cat -n nginx.conf
1 stu01
2 stu02
3 stu03
4 stu04
5 stu05
2.7.3 方法二 vim
输入:再输入命令
:set nu ##显示行号
:set nonu ##取消显示行号
快捷键
G 把光标移动到最后一行
gg 把光标移动到第一行
o 在当前行下面插入一个空行 并进入到编辑模式
2.7.4 方法三 nl
nl 专门用于显示行号
[root@znix clsn]# nl nginx.conf
1 stu01
2 stu02
3 stu03
4 stu04
5 stu05
2.7.5 方法四 grep -n
-n 显示行号,. 表示所有内容
[root@znix clsn]# grep -n "." nginx.conf
1:stu01
2:stu02
3:stu03
4:stu04
5:stu05
2.7.6 方法五 awk
print NR 表示显示行号,$0 表示行的内容
[root@znix clsn]# awk '{print NR,$0}' nginx.conf
1 stu01
2 stu02
3 stu03
4 stu04
5 stu05