第1章 練習題
1.1 第1題 取得/etc/hosts 文件的權限
如何取得/etc/hosts 文件的權限對應的數字內容,如-rw-r--r-- 為 644,要求使用命令取得644 這樣的數字。
1.1.1 方法一 awk 指定分隔符
[root@znix ~]# stat /etc/hosts |awk -F "[0/]" 'NR==4{print $2}'
644
1.1.2 方法二 stat -c%a
[root@znix ~]# stat -c%a /etc/hosts
644
1.2 第2題 目錄的硬鏈接數
linux 下通過 mkdir 命令創建一個新目錄/clsn/ett,它的硬鏈接數是多少,為什么?
如果在/clsn/ett下面再創建一個目錄 test。再問/clsn/ett 的硬鏈接數是多少?為什么。
1.2.1 新目錄的硬鏈接數為2
[root@znix clsn]# ls -ldi ett/ ett/.
151313 drwxr-xr-x 2 root root 4096 Sep 4 10:09 ett/
151313 drwxr-xr-x 2 root root 4096 Sep 4 10:09 ett/.
1.2.2 目錄下的硬鏈接數為 2+下級目錄數
[root@znix clsn]# mkdir -p ett/dir01
[root@znix clsn]# ls -ldi ett/ ett/. ett/dir01/..
151313 drwxr-xr-x 3 root root 4096 Sep 4 10:11 ett/
151313 drwxr-xr-x 3 root root 4096 Sep 4 10:11 ett/.
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
[root@znix ~]# ifconfig eth0|awk -F "[ :]+" 'NR==2{print $4}'
10.0.0.201
1.3.2 方法二 grep
[root@znix ~]# ifconfig eth0|egrep "([0-9]{1,3}\.?){4}" -o |head -1
10.0.0.201
1.3.3 方法三 sed 反向引用
[root@znix ~]# ifconfig eth0|sed -nr '2s#^.*dr:(.*) Bc.*$#\1#gp'
10.0.0.201
1.4 第4題 網卡配置文件的路徑DNS的路徑
請給出默認情況 eth0 網卡配置文件的路徑及客戶端 DNS的路徑。
eth0 網卡
/etc/sysconfig/network-scripts/eth0
DNS配置
/etc/resolv.conf
1.5 第5題
查找當前目錄下所有文件,並把文件中的 www.etiantian.org 字符串替換成 www.clsn.cc
[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鍵
[root@znix etc]# echo -n "123" ; echo "223"
123223
[root@znix etc]# echo -n "123"
123[root@znix etc]#
[root@znix etc]# echo -e "123\n"
123
[root@znix etc]# echo -ne "123\n"
123
1.7 第9題 date相關 時間同步
請給出如下格式的 date 命令 例:11-02-26。在給出實現按周輸出 比如:周六輸出為 6,請分別給出命令。
1.7.1 日期
%F 與 %Y-%m-%d 相同
[root@znix etc]# date +%F
2017-09-04
[root@znix etc]# date +%Y-%m-%d
2017-09-04
1.7.2 時間
%H:%M:%S 與 %T相同
[root@znix etc]# date +%T
10:57:48
[root@znix etc]# date +%H:%M:%S
10:58:53
1.7.3 時間和周數
%w 表示周
[root@znix ~]# date +%F_%w
2017-09-04_1
1.7.4 手動設置系統日期
使用date -s 命令,手動設置命令,但是很少使用。
[root@znix ~]# date -s "20170101 11:41:00"
Sun Jan 1 11:41:00 CST 2017
1.7.5 自動同步系統時間
ntpdate 聯網同步主機時間。
[root@znix ~]# ntpdate ntp1.aliyun.com
4 Sep 15:17:22 ntpdate[11593]: step time server 182.92.12.11 offset 27.049824 sec
1.8 第10題 環境變量問題
當從root用戶切到普通用戶clsn時,執行ifconfig會提示。
-bash: command not found.
1.8.1 運行目錄的過程
先去PATH找
找到 運行命令解釋器 shell
找不到 提示 command not found
1.8.2 臨時修改 PATH
export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/tmp
1.8.3 永久修改 PATH
PATH 內容放到/etc/profile 文件最后
soucre /etc/profile 讓它生效
1.9 第11題 打印三天前的日期格式
-d "-3day" 表示三天前
-d "3day" 表示三天后
[root@znix ~]# date +%F
2017-09-04
[root@znix ~]# date -d "-3day" +%F
2017-09-01
[root@znix ~]# date -d "3day" +%F
2017-09-07
1.10 第12題 已知/clsn/test.txt 文件內容為:
clsn
xizi
xiaochao
請問如何把文件中的空格過濾掉。
1.10.1 方法一 grep
-v 排除 ^$ (空行)
[root@znix ~]# grep -v "^$" test.txt
clsn
xizi
xiaochao
1.10.2 方法二 awk
'!/^$/' 排除空行
[root@znix ~]# awk '!/^$/' test.txt
clsn
xizi
xiaochao
1.10.3 方法三 sed
'/^$/d' 排除空行
[root@znix ~]# sed '/^$/d' test.txt
clsn
xizi
xiaochao
1.10.4 sed與awk
awk '找誰{干啥}'
sed '找誰干啥'
1.11 第13題 已知/clsn/ett.txt 文件內容為
clsn
clssssn
test
請使用 grep或 egrep 正則匹配的方式過濾出前兩行內容
1.11.1 + 表示前一個字符出現一次或一次以上。
[root@znix ~]# egrep "c+l+n" test.txt
clsn
clssssn
1.11.2 排除以t開頭的
[root@znix ~]# grep -v "^t" test.txt
clsn
clssssn
1.11.3 排除以t結尾的
[root@znix ~]# grep "^[^t]" test.txt
clsn
clssssn
1.12 第14題
1.12.1 請描述下列路徑的內容是做什么的?
/var/log/messages 系統普通日志
/var/log/secure 用戶登陸日志
/etc/fstab 開機自動掛載
/etc/profile 配置別名 環境變量
/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