第1章 练习题

1.1 第1题 取得/etc/hosts 文件的权限

如何取得/etc/hosts 文件的权限对应的数字内容,如-rw-r—r— 为 644,要求使用命令取得644 这样的数字。

1.1.1 方法一 awk 指定分隔符

  1. [root@znix ~]# stat /etc/hosts |awk -F "[0/]" 'NR==4{print $2}'
  2. 644

1.1.2 方法二 stat -c%a

  1. [root@znix ~]# stat -c%a /etc/hosts
  2. 644

1.2 第2题 目录的硬链接数

linux 下通过 mkdir 命令创建一个新目录/clsn/ett,它的硬链接数是多少,为什么?
如果在/clsn/ett下面再创建一个目录 test。再问/clsn/ett 的硬链接数是多少?为什么。

1.2.1 新目录的硬链接数为2

  1. [root@znix clsn]# ls -ldi ett/ ett/.
  2. 151313 drwxr-xr-x 2 root root 4096 Sep 4 10:09 ett/
  3. 151313 drwxr-xr-x 2 root root 4096 Sep 4 10:09 ett/.

1.2.2 目录下的硬链接数为 2+下级目录数

  1. [root@znix clsn]# mkdir -p ett/dir01
  2. [root@znix clsn]# ls -ldi ett/ ett/. ett/dir01/..
  3. 151313 drwxr-xr-x 3 root root 4096 Sep 4 10:11 ett/
  4. 151313 drwxr-xr-x 3 root root 4096 Sep 4 10:11 ett/.
  5. 151313 drwxr-xr-x 3 root root 4096 Sep 4 10:11 ett/dir01/..

1.3 第3题 取出ip地址

执行命令取出 linux中 eth0 的 IP地址。

1.3.1 方法一 awk

  1. [root@znix ~]# ifconfig eth0|awk -F "[ :]+" 'NR==2{print $4}'
  2. 10.0.0.201

1.3.2 方法二 grep

  1. [root@znix ~]# ifconfig eth0|egrep "([0-9]{1,3}\.?){4}" -o |head -1
  2. 10.0.0.201

1.3.3 方法三 sed 反向引用

  1. [root@znix ~]# ifconfig eth0|sed -nr '2s#^.*dr:(.*) Bc.*$#\1#gp'
  2. 10.0.0.201

1.4 第4题 网卡配置文件的路径DNS的路径

请给出默认情况 eth0 网卡配置文件的路径及客户端 DNS的路径。

  1. eth0 网卡
  2. /etc/sysconfig/network-scripts/eth0
  3. DNS配置
  4. /etc/resolv.conf

1.5 第5题

查找当前目录下所有文件,并把文件中的 www.etiantian.org 字符串替换成 www.clsn.cc

  1. [root@znix ~]# find /* |sed 's#www.etiantian.org#www.clsn.cc#g'

1.5.1 运维职责

1.数据不能丢 2.网站7*24运行 3.用户体验好 尽量让用户从内存 读/写

1.5.2 网站有关的问题从发现到解决的过程

1、运营人员、网站用户发现问题,网站有弹窗广告。 2、运营人员报给开发人员,开发联系运维人员。开发和运维共同解决。 3、开发发现的问题原因就是所有站点目录被嵌入了一段JS代码。 4、运维人员解决问题: a) 备份原始出问题的原始文件。 b) find+sed替换。 5、详细查看日志,寻找问题发生来源。 6、提供亡羊补牢解决方案

1.6 第8题 内容在同一行输出

在一个命令上加什么参数可以实现下面命令的内容在同一行输出。
-n 不输出每行行尾的回车
-e 让echo支持 \n \t 转移字符系列
\n 换行
\t tab键

  1. [root@znix etc]# echo -n "123" ; echo "223"
  2. 123223
  3. [root@znix etc]# echo -n "123"
  4. 123[root@znix etc]#
  5. [root@znix etc]# echo -e "123\n"
  6. 123
  7. [root@znix etc]# echo -ne "123\n"
  8. 123

1.7 第9题 date相关 时间同步

请给出如下格式的 date 命令 例:11-02-26。在给出实现按周输出 比如:周六输出为 6,请分别给出命令。

1.7.1 日期

  1. %F %Y-%m-%d 相同
  2. [root@znix etc]# date +%F
  3. 2017-09-04
  4. [root@znix etc]# date +%Y-%m-%d
  5. 2017-09-04

1.7.2 时间

%H:%M:%S 与 %T相同

  1. [root@znix etc]# date +%T
  2. 10:57:48
  3. [root@znix etc]# date +%H:%M:%S
  4. 10:58:53

1.7.3 时间和周数

%w 表示周

  1. [root@znix ~]# date +%F_%w
  2. 2017-09-04_1

1.7.4 手动设置系统日期

使用date -s 命令,手动设置命令,但是很少使用。

  1. [root@znix ~]# date -s "20170101 11:41:00"
  2. Sun Jan 1 11:41:00 CST 2017

1.7.5 自动同步系统时间

ntpdate 联网同步主机时间。

  1. [root@znix ~]# ntpdate ntp1.aliyun.com
  2. 4 Sep 15:17:22 ntpdate[11593]: step time server 182.92.12.11 offset 27.049824 sec

1.8 第10题 环境变量问题

当从root用户切到普通用户clsn时,执行ifconfig会提示。

  1. -bash: command not found.

1.8.1 运行目录的过程

先去PATH找
找到 运行命令解释器 shell
找不到 提示 command not found

1.8.2 临时修改 PATH

  1. export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/tmp

1.8.3 永久修改 PATH

  1. PATH 内容放到/etc/profile 文件最后
  2. soucre /etc/profile 让它生效

1.9 第11题 打印三天前的日期格式

-d “-3day” 表示三天前
-d “3day” 表示三天后

  1. [root@znix ~]# date +%F
  2. 2017-09-04
  3. [root@znix ~]# date -d "-3day" +%F
  4. 2017-09-01
  5. [root@znix ~]# date -d "3day" +%F
  6. 2017-09-07

1.10 第12题 已知/clsn/test.txt 文件内容为:

  1. clsn
  2. xizi
  3. xiaochao

请问如何把文件中的空格过滤掉。

1.10.1 方法一 grep

-v 排除 ^$ (空行)

  1. [root@znix ~]# grep -v "^$" test.txt
  2. clsn
  3. xizi
  4. xiaochao

1.10.2 方法二 awk

‘!/^$/‘ 排除空行

  1. [root@znix ~]# awk '!/^$/' test.txt
  2. clsn
  3. xizi
  4. xiaochao

1.10.3 方法三 sed

‘/^$/d’ 排除空行

  1. [root@znix ~]# sed '/^$/d' test.txt
  2. clsn
  3. xizi
  4. xiaochao

1.10.4 sed与awk

  1. awk '找谁{干啥}'
  2. sed '找谁干啥'

1.11 第13题 已知/clsn/ett.txt 文件内容为

  1. clsn
  2. clssssn
  3. test

请使用 grep或 egrep 正则匹配的方式过滤出前两行内容

1.11.1 + 表示前一个字符出现一次或一次以上。

  1. [root@znix ~]# egrep "c+l+n" test.txt
  2. clsn
  3. clssssn

1.11.2 排除以t开头的

  1. [root@znix ~]# grep -v "^t" test.txt
  2. clsn
  3. clssssn

1.11.3 排除以t结尾的

  1. [root@znix ~]# grep "^[^t]" test.txt
  2. clsn
  3. clssssn

1.12 第14题

1.12.1 请描述下列路径的内容是做什么的?

  1. /var/log/messages 系统普通日志
  2. /var/log/secure 用户登陆日志
  3. /etc/fstab 开机自动挂载
  4. /etc/profile 配置别名 环境变量
  5. /etc/spool/cron/root 定时任务

第2章 回顾

2.1 linux启动过程

1、接通电源
2、进入BIOS自检
3、进入mbr引导
4、进入grub选择内核
5、加载内核
6、运行init进程
7、读取运行级别
8、配置主机名ip地址/etc/rc.sysinit
9、根据不同的运行级别运行不同的软件或服务/etc/rc3.d
10、显示登录界面

2.2 软硬链接区别

2.2.1 创建方式

软连接 ln -s
硬链接 ln 两个文件inode号相同互为硬链接

2.2.2 区别

目录不能创建硬链接
硬链接不能跨文件相同(分区)
软连接可以跨文件相同,可以对目录创建软连接。

2.3 文件删除原理

1、inode数为0
2、进程调用数为0