1. 程式人生 > >老男孩-第一關測試

老男孩-第一關測試

占用 文件內容 優化 放棄 應用 次數 忽略 1.8 ice

課前考試題匯總
如何成為高手?
針對性刻意練習
學習的過程註定是辛苦的,分享可以得到即時反饋,這是良性循環的開始
學習過程必須養成做筆記的習慣,重復的力量是無窮怕,好的習慣只需要21天即可培養出來
技術的提升只是量的增長,思想的提升才是質的飛躍 ——by 老男孩
第1章 第1周課前測試考試題
1.1 創建目錄
第1題創建一個目錄/data。
1
2
3
4
[root@lb01 ~]# mkdir /data
驗證
[root@lb01 ~]# ls -ld /data
drwxr-xr-x 2 root root 4096 8月 25 21:25 /data
1.2 創建文件
第2題在/data下面建立一個文件oldboy.txt。
1
2
3
4
5
[root@lb01 ~]# cd /data/
[root@lb01 data]# touch oldboy.txt
驗證
[root@lb01 data]# ls -l oldboy.txt
-rw-r--r-- 1 root root 0 8月 25 21:26 oldboy.txt
1.3 給文件加內容
第3題為oldboy.txt 增加內容為“I am studying linux.”。
1
2
3
4
[root@lb01 data]# echo "I am studying linux." >oldboy.txt
驗證
[root@lb01 data]# cat oldboy.txt
I am studying linux.
1.4 復制文件並粘貼
第4題把oldboy.txt文件拷貝到/tmp下。
1
2
3
4
[root@lb01 data]# cp oldboy.txt /tmp/
驗證
[root@lb01 data]# ls -l /tmp/oldboy.txt
-rw-r--r-- 1 root root 21 8月 25 21:27 /tmp/oldboy.txt
1.5 移動目錄
第5題把/data目錄移動到/root下。
1
2
3
4
5
[root@lb01 data]# cd
[root@lb01 ~]# mv /data /root/
驗證
[root@lb01 ~]# ls -ld /root/data/
drwxr-xr-x 2 root root 4096 8月 25 21:26 /root/data/
1.6 刪除文件
第6題進入/root目錄下的data 目錄,刪除oldboy.txt文件。
1
2
[root@lb01 ~]# cd /root/data/
[root@lb01 data]# rm -f oldboy.txt
1.7 刪除目錄
第7題接第6 題,退出到上一級目錄,刪除data目錄。
1
2
[root@lb01 data]# cd ..
[root@lb01 ~]# rm -fr data
1.8 過濾字符串
第8題請給輸出test.txt文件內容時,不包含oldboy字符串的命令。
已知文件test.txt內容為:
1
2
3
test
liyao
oldboy
準備素材
1
2
3
4
5
cat >test.txt<<EOF
test
liyao
oldboy
EOF
方法一
1
2
3
[root@lb01 ~]# head -2 test.txt
test
liyao
方法二
1
2
3
[root@lb01 ~]# grep -v oldboy test.txt
test
liyao
方法三
1
2
3
[root@lb01 ~]# sed -n ‘1,2p‘ test.txt
test
liyao
方法四
1
2
3
[root@lb01 ~]# awk ‘NR<3‘ test.txt
test
liyao
1.9 遞歸創建目錄
第9題請用一條命令完成創建目錄,即創建/oldboy目錄及/oldboy/test目錄
1
2
3
4
5
6
7
8
9
[root@lb01 ~]# mkdir -p /oldboy/test
驗證一
[root@lb01 ~]# ls -ld /oldboy/test/
drwxr-xr-x 2 root root 4096 8月 25 21:43 /oldboy/test/
驗證二
[root@lb01 ~]# tree /oldboy/
/oldboy/
└── test
1 directory, 0 files
1.10 別名
第10題已知/tmp下已經存在test.txt文件,如何執行命令才能把/mnt/test.txt拷貝到/tmp下覆蓋掉/tmp/test.txt,而讓系統不提示是否覆蓋(root權限下)。
1
2
3
4
[root@lb01 ~]# touch /{tmp,mnt}/test.txt
[root@lb01 ~]# ls -l /{tmp,mnt}/test.txt
-rw-r--r-- 1 root root 0 8月 25 21:48 /mnt/test.txt
-rw-r--r-- 1 root root 0 8月 25 21:48 /tmp/test.txt
方法一:命令前加反斜杠,可以忽略別名的作用
1
[root@lb01 ~]# \cp /mnt/test.txt /tmp/
方法二:給命令寫全路徑
1
[root@lb01 ~]# /bin/cp /mnt/test.txt /tmp/
為什麽會有提示?因為設置了別名。別名全局生效的配置文件是:/etc/bashrc
1
2
[root@lb01 ~]# alias cp
alias cp=‘cp -i‘
1.11 取行
第11題只查看ett.txt文件(共100行)內第20到第30行的內容
模擬數據
1
[root@lb01 ~]# head -100 /etc/services |cat -n>ett.txt
方法一
1
[root@lb01 ~]# head -30 ett.txt |tail -11
方法二
1
[root@lb01 ~]# sed -n ‘20,30p‘ ett.txt
方法三
1
[root@lb01 ~]# awk ‘NR>19&&NR<31‘ ett.txt
1.12 分析日誌
第12題分析圖片服務日誌,把日誌(每個圖片訪問次數圖片大小的總和)排行,取top10,也就是計算每個url的總訪問大小
【附加題:工作場景高難度加分題,不會的同學可以放棄不答】。
說明:本題生產環境應用:這個功能可以用於IDC網站流量帶寬很高,然後通過分析服務器日誌哪些元素占用流量過大,進而進行優化或裁剪該圖片,壓縮js等措施。
本題需要輸出三個指標:【訪問次數】【訪問次數
單個文件大小】【文件名(可以帶URL)】
測試數據如下:
1
2
3
4
5
6
59.33.26.105 --[08/Dec/2010:15:43:56 +0800] "GET /static/images/photos/2.jpg HTTP/1.1" 200 11299 "http://oldboy.blog.51cto.com/static/web/column/17/index.shtml?courseId=43" "Mozil-la/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)"
59.33.26.105 --[08/Dec/2010:15:43:56 +0800] "GET /static/images/photos/2.jpg HTTP/1.1" 200 11299"http://oldboy.blog.51cto.com/static/web/column/17/index.shtml?courseId=43" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)"
59.33.26.105 --[08/Dec/2010:15:44:02 +0800] "GET /static/flex/vedioLoading.swf HTTP/1.1" 200 3583"http://oldboy.blog.51cto.com/static/flex/AdobeVideoPlayer.swf?width=590&height=328&url=/`DYNAMIC`/2" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)"
124.115.4.18 --[08/Dec/2010:15:44:15 +0800] "GET /?= HTTP/1.1" 200 46232 "-" "-"
124.115.4.18 --[08/Dec/2010:15:44:25 +0800] "GET /static/js/web_js.js HTTP/1.1" 200 4460 "-" "-"
124.115.4.18 --[08/Dec/2010:15:44:25 +0800] "GET /static/js/jquery.lazyload.js HTTP/1.1" 200 1627 "-" "-"

1.13 查找文件並替換文件的內容
第13題把/oldboy目錄及其子目錄下所有以擴展名.sh結尾的文件中含./hostlists.txt的字符串全部替換為../idctest_iplist。
準備素材
1
2
3
echo ‘./hostlists.txt‘ >a.sh
echo ‘./hostlists.txt‘ >b.sh
echo ‘./hostlists.txt‘ >c.sh
查看素材的內容
1
2
3
4
[root@lb01 oldboy]# find /oldboy/ -type f -name ".sh"|xargs cat
./hostlists.txt
./hostlists.txt
./hostlists.txt
解答:sed查找替換,一條命令搞定
1
[root@lb01 oldboy]# find /oldboy/ -type f -name "
.sh"|xargs sed -i ‘s#./hostlists.txt#../idctest_iplist#g‘
驗證
1
2
3
4
[root@lb01 oldboy]# find /oldboy/ -type f -name "*.sh"|xargs cat
../idctest_iplist
../idctest_iplist
../idctest_iplis

老男孩-第一關測試