第1章 linux啟動過程 1、開機自檢bios 2、mbr引導 3、GRUB 菜單:選擇不同的內核 4、載入內核 5、運行init進程 6、讀取/etc/inittab運行級別配置文件 7、執行 /etc/rc.d/rc.sysinit 腳本 (系統的初始化腳本)配置主機名,IP地址 8、執行 / ...
第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