第1章 linux启动过程

  1. 1、开机自检bios
  2. 2mbr引导
  3. 3GRUB 菜单:选择不同的内核
  4. 4、加载内核
  5. 5、运行init进程
  6. 6、读取/etc/inittab运行级别配置文件
  7. 7、执行 /etc/rc.d/rc.sysinit 脚本 (系统的初始化脚本)配置主机名,IP地址
  8. 8、执行 /etc/rc.d/rc(根据运行级别运行相应的软件)
  9. 9、显示登陆界面

第2章 练习题

2.1 第1题

如何过滤出已知当前目录下clsn中的所有一级目录(提示:不包含clsn目录下面目录的子目录及隐藏目录,即只能是第一级目录)?

2.1.1 环境创建

  1. mkdir /clsn -p
  2. cd /clsn
  3. mkdir ext/clsn test xiaodong xiaofan xingfujie -p
  4. touch jeacen clsn wodi.gz yingsui.gz

2.1.2 方法一 tree

-d显示目录,-L 1找当前目录

  1. [root@znix clsn]# tree -dL 1
  2. .
  3. ├── data
  4. └── test

2.1.3 方法二 find

-maxdepth 最大目录深度 ! 表示非、排除

  1. [root@znix clsn]# find . -maxdepth 1 -type d ! -name "."
  2. ./data
  3. ./test

2.1.4 方法三 ls +grep

^d 表示以d开头的。

  1. [root@znix clsn]# ls -l |grep "^d"
  2. drwxr-xr-x 3 root root 4096 Aug 23 15:51 data
  3. drwxr-xr-x. 3 root root 4096 Aug 23 15:51 test

2.1.5 方法四 ls -F + grep

ls -F 给不同的文件加上不同的标记 文件夹为/

  1. [root@znix clsn]# ls -F /clsn/|grep "/"
  2. tandao/
  3. test/

2.1.6 方法五ls+awk

^d表示以d开头的。

  1. [root@znix clsn]# ls -l |awk '/^d/'
  2. drwxr-xr-x 3 root root 4096 Aug 23 15:51 data
  3. drwxr-xr-x. 3 root root 4096 Aug 23 15:51 test

2.1.7 方法六ls+awk

$2>1 , 表示第二列大于1

  1. [root@znix clsn]# ls -l /clsn/|awk '$2>1'
  2. total 20
  3. drwxr-xr-x 3 root root 4096 Aug 23 15:51 data
  4. drwxr-xr-x. 3 root root 4096 Aug 23 15:51 test

2.2 第2题

希望快速返回上一次进入的目录

2.2.1 cd命令

  1. [root@znix tmp]# cd /clsn/
  2. [root@znix clsn]# pwd
  3. /clsn
  4. [root@znix clsn]# cd /tmp/
  5. [root@znix tmp]# pwd
  6. /tmp
  7. [root@znix tmp]# cd -
  8. /clsn
  9. [root@znix clsn]# #cd - ==== cd $OLDPWD(存放着 你上一次所在的位置)

cd .. ###进入到上一级目录 当前目录的上一级目录
. ###当前目录 cp /etc/hosts .
cd ~ ###当前用户的家目录 回老家
cd ###回老家
cd - ###进入到上一次所在的位置

2.2.2 练习

进入到/etc/sysconfig/network-scripts/目录,并查看你所在位置
#进入到上一级目录,并查看你所在位置
#进入到/root目录下面,并显示你所在位置
#快速返回到/你上一次的位置
#回到老家

  1. [root@znix ~]# cd /etc/sysconfig/network-scripts/
  2. [root@znix network-scripts]# pwd
  3. /etc/sysconfig/network-scripts
  4. [root@znix network-scripts]# cd ..
  5. [root@znix sysconfig]# pwd
  6. /etc/sysconfig
  7. [root@znix sysconfig]# cd /root/
  8. [root@znix ~]# pwd
  9. /root
  10. [root@znix ~]# cd -
  11. /etc/sysconfig
  12. [root@znix sysconfig]# cd
  13. [root@znix ~]# pwd
  14. /root

2.3 第3题

一个目录中有很多文件(ls -l 查看时好多屏),想用一条命令最快速度查看到最近更新的文件。如何看?
-r时逆序显示 -t按时间顺序排序

  1. [root@znix clsn]# ls -lrt
  2. total 20
  3. -rw-r--r--. 1 root root 7 Aug 17 17:00 t.sh
  4. -rw-r--r--. 1 root root 0 Aug 17 17:00 clsn.txt
  5. -rw-r--r--. 1 root root 0 Aug 17 17:00 alex.txt
  6. -rw-r--r--. 1 root root 0 Aug 17 17:28 b
  7. -rw-r--r--. 1 root root 8 Aug 17 19:35 test.sh
  8. drwxr-xr-x 3 root root 4096 Aug 23 15:51 data
  9. drwxr-xr-x. 3 root root 4096 Aug 23 15:51 test
  10. -rw-r--r-- 1 root root 43 Aug 24 12:02 nginx.conf

2.3.1 指定ls命令显示日期的格式

  1. [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 模拟环境

创建目录

  1. [root@znix clsn]# mkdir -p /application/apache2.2.17
  2. [root@znix clsn]# ls -l /application/
  3. total 4
  4. drwxr-xr-x 2 root root 4096 Aug 30 10:10 apache2.2.17

2.4.2 创建软连接

  1. [root@znix clsn]# ln -s /application/apache2.2.17/ /application/apache
  2. [root@znix clsn]# cd /application/
  3. [root@znix application]# ls -l
  4. total 4
  5. lrwxrwxrwx 1 root root 26 Aug 30 10:12 apache -> /application/apache2.2.17/
  6. drwxr-xr-x 2 root root 4096 Aug 30 10:10 apache2.2.17

2.4.3 模拟升级

  1. [root@znix application]# mkdir -p /application/apache2.4.17
  2. [root@znix application]# ls -l /application/
  3. total 8
  4. lrwxrwxrwx 1 root root 26 Aug 30 10:12 apache -> /application/apache2.2.17/
  5. drwxr-xr-x 2 root root 4096 Aug 30 10:10 apache2.2.17
  6. drwxr-xr-x 2 root root 4096 Aug 30 10:16 apache2.4.17

2.4.4 修改软连接

先将旧的软链接删除,防止出错。

  1. [root@znix application]# \rm -f /application/apache
  2. [root@znix application]# ls -l /application/
  3. total 8
  4. drwxr-xr-x 2 root root 4096 Aug 30 10:10 apache2.2.17
  5. drwxr-xr-x 2 root root 4096 Aug 30 10:16 apache2.4.17
  6. [root@znix application]# ln -s /application/apache2.4.17/ /application/apache
  7. [root@znix application]# ls -l /application/
  8. total 8
  9. lrwxrwxrwx 1 root root 26 Aug 30 10:17 apache -> /application/apache2.4.17/
  10. drwxr-xr-x 2 root root 4096 Aug 30 10:10 apache2.2.17
  11. 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天

  1. [root@znix ~]# find /app/logs/ -type f -name "*.log" -mtime +7 |xargs ls -ltr
  2. -rw-r--r-- 1 root root 0 May 1 00:00 /app/logs/access_www_2017-05-01.log
  3. -rw-r--r-- 1 root root 0 May 2 00:00 /app/logs/access_www_2017-05-02.log
  4. -rw-r--r-- 1 root root 0 May 3 00:00 /app/logs/access_www_2017-05-03.log
  5. -rw-r--r-- 1 root root 0 May 4 00:00 /app/logs/access_www_2017-05-04.log
  6. -rw-r--r-- 1 root root 0 May 5 00:00 /app/logs/access_www_2017-05-05.log
  7. -rw-r--r-- 1 root root 0 May 6 00:00 /app/logs/access_www_2017-05-06.log
  8. -rw-r--r-- 1 root root 0 May 7 00:00 /app/logs/access_www_2017-05-07.log
  9. -rw-r--r-- 1 root root 0 May 8 00:00 /app/logs/access_www_2017-05-08.log
  10. -rw-r--r-- 1 root root 0 May 9 00:00 /app/logs/access_www_2017-05-09.log
  11. -rw-r--r-- 1 root root 0 May 10 00:00 /app/logs/access_www_2017-05-10.log
  12. -rw-r--r-- 1 root root 0 May 11 00:00 /app/logs/access_www_2017-05-11.log
  13. -rw-r--r-- 1 root root 0 May 12 00:00 /app/logs/access_www_2017-05-12.log

2.5.2 方法二 $(find )

  1. [root@znix ~]# ls -l $(find /app/logs/ -type f -name "*.log" -mtime +7)

2.5.3 方法三 find -exec {} \;

  1. [root@znix ~]# find /app/logs/ -type f -name "*.log" -mtime +7 -exec ls -l {} \;

2.6 第6题

调试系统服务时,希望能实时查看/var/log/messages系统日志的更新。
-f 显示文件的实时更新。

  1. [root@znix ~]# tail -f /var/log/secure
  1. tailftail -f 大致相同。
  1. [root@znix ~]# tailf /var/log/secure

2.7 第7题

打印轻量级 web 服务的配置文件 nginx.conf 内容的行号及内容

2.7.1 文件创建

stu{01..5}生成 stu01、stu02···stu05 字符

  1. [root@znix clsn]# echo stu{01..5}|xargs -n1 >nginx.conf
  2. [root@znix clsn]# cat nginx.conf
  3. stu01
  4. stu02
  5. stu03
  6. stu04
  7. stu05

2.7.2 方法一 cat

-n 显示文件行号

  1. [root@znix clsn]# cat -n nginx.conf
  2. 1 stu01
  3. 2 stu02
  4. 3 stu03
  5. 4 stu04
  6. 5 stu05

2.7.3 方法二 vim

输入:再输入命令

  1. :set nu ##显示行号
  2. :set nonu ##取消显示行号
  1. 快捷键
  1. G 把光标移动到最后一行
  2. gg 把光标移动到第一行
  3. o 在当前行下面插入一个空行 并进入到编辑模式

2.7.4 方法三 nl

nl 专门用于显示行号

  1. [root@znix clsn]# nl nginx.conf
  2. 1 stu01
  3. 2 stu02
  4. 3 stu03
  5. 4 stu04
  6. 5 stu05

2.7.5 方法四 grep -n

-n 显示行号,. 表示所有内容

  1. [root@znix clsn]# grep -n "." nginx.conf
  2. 1:stu01
  3. 2:stu02
  4. 3:stu03
  5. 4:stu04
  6. 5:stu05

2.7.6 方法五 awk

print NR 表示显示行号,$0 表示行的内容

  1. [root@znix clsn]# awk '{print NR,$0}' nginx.conf
  2. 1 stu01
  3. 2 stu02
  4. 3 stu03
  5. 4 stu04
  6. 5 stu05