老男孩教育-第1周課前測試考試題

課前考試題彙總

如何成爲高手?

  1. 針對性刻意練習

  2. 學習的過程註定是辛苦的,分享可以得到即時反饋,這是良性循環的開始

  3. 學習過程必須養成做筆記的習慣,重複的力量是無窮怕,好的習慣只需要21天即可培養出來

  4. 技術的提升只是量的增長,思想的提升纔是質的飛躍  ——by 老男孩

第1章 第1周課前測試考試題

1.1 創建目錄

第1題創建一個目錄/data。

[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。

[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.”。

[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下。

[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下。

[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文件。

[root@lb01 ~]# cd /root/data/
[root@lb01 data]# rm -f oldboy.txt

1.7 刪除目錄

第7題接第6 題,退出到上一級目錄,刪除data目錄。

[root@lb01 data]# cd ..
[root@lb01 ~]# rm -fr data

1.8 過濾字符串

第8題請給輸出test.txt文件內容時,不包含oldboy字符串的命令。

已知文件test.txt內容爲:

test
liyao
oldboy

準備素材

cat >test.txt<<EOF
test
liyao
oldboy
EOF

方法一

[root@lb01 ~]# head -2 test.txt
test
liyao

方法二

[root@lb01 ~]# grep -v oldboy test.txt 
test
liyao

方法三

[root@lb01 ~]# sed -n '1,2p' test.txt 
test
liyao

方法四

[root@lb01 ~]# awk 'NR<3' test.txt 
test
liyao

1.9 遞歸創建目錄

第9題請用一條命令完成創建目錄,即創建/oldboy目錄及/oldboy/test目錄

[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權限下)。

[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

方法一:命令前加反斜槓,可以忽略別名的作用

[root@lb01 ~]# \cp /mnt/test.txt /tmp/

方法二:給命令寫全路徑

[root@lb01 ~]# /bin/cp /mnt/test.txt /tmp/

爲什麼會有提示?因爲設置了別名。別名全局生效的配置文件是:/etc/bashrc

[root@lb01 ~]# alias cp
alias cp='cp -i'

1.11 取行

第11題只查看ett.txt文件(共100行)內第20到第30行的內容

模擬數據

[root@lb01 ~]# head -100 /etc/services |cat -n>ett.txt

方法一

[root@lb01 ~]# head -30 ett.txt |tail -11

方法二

[root@lb01 ~]# sed -n '20,30p' ett.txt

方法三

[root@lb01 ~]# awk 'NR>19&&NR<31' ett.txt

1.12 分析日誌

第12題分析圖片服務日誌,把日誌(每個圖片訪問次數*圖片大小的總和)排行,取top10,也就是計算每個url的總訪問大小

【附加題:工作場景高難度加分題,不會的同學可以放棄不答】。

說明:本題生產環境應用:這個功能可以用於IDC網站流量帶寬很高,然後通過分析服務器日誌哪些元素佔用流量過大,進而進行優化或裁剪該圖片,壓縮js等措施。

本題需要輸出三個指標:【訪問次數】【訪問次數*單個文件大小】【文件名(可以帶URL)】

測試數據如下:

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。

準備素材

echo './hostlists.txt' >a.sh
echo './hostlists.txt' >b.sh
echo './hostlists.txt' >c.sh

查看素材的內容

[root@lb01 oldboy]# find /oldboy/ -type f -name "*.sh"|xargs cat
./hostlists.txt
./hostlists.txt
./hostlists.txt

解答:sed查找替換,一條命令搞定

[root@lb01 oldboy]# find /oldboy/ -type f -name "*.sh"|xargs sed -i 's#./hostlists.txt#../idctest_iplist#g'

驗證

[root@lb01 oldboy]# find /oldboy/ -type f -name "*.sh"|xargs cat
../idctest_iplist
../idctest_iplist
../idctest_iplist
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章