你的位置:首页 > 操作系统

[操作系统]Day11

第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题

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

2.1.1 环境创建

mkdir /oldboy -p

cd /oldboy

mkdir ext/oldboy test xiaodong xiaofan xingfujie -p

touch jeacen oldboy wodi.gz yingsui.gz

2.1.2 方法一 tree

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

[root@oldboyedu-40-nb oldboy]# tree -dL 1

.

├── data

└── test

2.1.3 方法二 find

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

[root@oldboyedu-40-nb oldboy]# find . -maxdepth 1 -type d ! -name "."

./data

./test

2.1.4 方法三 ls +grep

^d 表示以d开头的。

[root@oldboyedu-40-nb oldboy]# 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@oldboyedu-40-nb oldboy]# ls -F /oldboy/|grep "/"

tandao/

test/

2.1.6 方法五ls+awk

^d表示以d开头的。

[root@oldboyedu-40-nb oldboy]# 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@oldboyedu-40-nb oldboy]# ls -l /oldboy/|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@oldboyedu-40-nb tmp]# cd /oldboy/

[root@oldboyedu-40-nb oldboy]# pwd

/oldboy

[root@oldboyedu-40-nb oldboy]# cd /tmp/

[root@oldboyedu-40-nb tmp]# pwd

/tmp

[root@oldboyedu-40-nb tmp]# cd -

/oldboy

[root@oldboyedu-40-nb oldboy]# #cd - ==== cd $OLDPWD(存放着 你上一次所在的位置)

 

cd ..   ###进入到上一级目录 当前目录的上一级目录

   .    ###当前目录 cp /etc/hosts .

cd ~    ###当前用户的家目录     回老家

cd      ###回老家

cd -    ###进入到上一次所在的位置

2.2.2 练习

#进入到/etc/sysconfig/network-scripts/目录,并查看你所在位置

#进入到上一级目录,并查看你所在位置

#进入到/root目录下面,并显示你所在位置

#快速返回到/你上一次的位置

#回到老家

 

[root@oldboyedu-40-nb ~]# cd /etc/sysconfig/network-scripts/

[root@oldboyedu-40-nb network-scripts]# pwd

/etc/sysconfig/network-scripts

[root@oldboyedu-40-nb network-scripts]# cd ..

[root@oldboyedu-40-nb sysconfig]# pwd

/etc/sysconfig

[root@oldboyedu-40-nb sysconfig]# cd /root/

[root@oldboyedu-40-nb ~]# pwd

/root

[root@oldboyedu-40-nb ~]# cd -

/etc/sysconfig

[root@oldboyedu-40-nb sysconfig]# cd

[root@oldboyedu-40-nb ~]# pwd

/root

2.3 第3题

一个目录中有很多文件(ls -l 查看时好多屏),想用一条命令最快速度查看到最近更新的文件。如何看?

       -r时逆序显示   -t按时间顺序排序

[root@oldboyedu-40-nb oldboy]# 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 oldboy.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@oldboyedu-40-nb 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@oldboyedu-40-nb oldboy]# mkdir -p /application/apache2.2.17

[root@oldboyedu-40-nb oldboy]# ls -l /application/

total 4

drwxr-xr-x 2 root root 4096 Aug 30 10:10 apache2.2.17

2.4.2 创建软连接

[root@oldboyedu-40-nb oldboy]# ln -s /application/apache2.2.17/ /application/apache

[root@oldboyedu-40-nb oldboy]# cd /application/

[root@oldboyedu-40-nb 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@oldboyedu-40-nb application]# mkdir -p /application/apache2.4.17

[root@oldboyedu-40-nb 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@oldboyedu-40-nb application]# \rm -f /application/apache

[root@oldboyedu-40-nb 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@oldboyedu-40-nb application]# ln -s /application/apache2.4.17/ /application/apache

[root@oldboyedu-40-nb 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@oldboyedu-40-nb ~]# 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@oldboyedu-40-nb ~]# ls -l $(find /app/logs/ -type f -name "*.log" -mtime +7)

2.5.3 方法三 find -exec {} \;

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

2.6 第6题

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

-f 显示文件的实时更新。

[root@oldboyedu-40-nb ~]# tail -f /var/log/secure

       tailf与tail -f 大致相同。

[root@oldboyedu-40-nb ~]# tailf /var/log/secure

2.7 第7题

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

2.7.1 文件创建

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

[root@oldboyedu-40-nb oldboy]# echo stu{01..5}|xargs -n1 >nginx.conf

[root@oldboyedu-40-nb oldboy]# cat nginx.conf

stu01

stu02

stu03

stu04

stu05

2.7.2 方法一  cat

       -n 显示文件行号

[root@oldboyedu-40-nb oldboy]# 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@oldboyedu-40-nb oldboy]# nl nginx.conf

     1  stu01

     2  stu02

     3  stu03

     4  stu04

     5  stu05

2.7.5 方法四 grep -n

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

[root@oldboyedu-40-nb oldboy]# grep -n "." nginx.conf

1:stu01

2:stu02

3:stu03

4:stu04

5:stu05

2.7.6 方法五 awk

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

[root@oldboyedu-40-nb oldboy]# awk '{print NR,$0}' nginx.conf

1 stu01

2 stu02

3 stu03

4 stu04

5 stu05