Linux 三劍客
摘要:
環境
windows git bash
mac iterm term
用自己的帳號登入 ssh 手機號碼後8位@ shell.testing-studio.com
沒有賬號的可以臨時用 ssh [email protected]...
環境
- windows git bash
- mac iterm term
- 用自己的帳號登入 ssh 手機號碼後8位 @ shell.testing-studio .com
- 沒有賬號的可以臨時用 ssh [email protected]
- /tmp/nginx.log 儲存了一份一天的nginx訪問log
Linux三劍客介紹
Grep
ps -ef| grep bash echo "ABC" | grep -iabc ps -ef | grep bash | grep -v grep echo "1234 7654" | grep -o "[0-9]4" echo "1234 7654" | grep -oE "[0-9]4|76"
測試題
- 找出nginx.log中所有404和503報錯的log資料,取出前3條資料,把命令貼到回覆裡
- 找出testerhome首頁的所有http和https的連結
awk
ps | awk 'BEGIN{print "start"}{print $0}END{print "end"}' awk '/ 404 | 500 /' /tmp/nginx.log echo '1 2 3 4 5' | awk '/2/,/4/' echo '1 2 3 4 5' | awk '$0>3' ps | awk 'NR>1' ps | awk '{print $NF}' echo $PATH | awk 'BEGIN{RS=":"}{print $0}' | grep -v "^$" | awk 'BEGIN{FS="\n";ORS=":"}{print $0}END{printf "\n" }' echo '1,10 2,20 3,30' | awk 'BEGIN{a=0;FS=","}{a+=$2}END{print a,a/NR}' awk 'BEGIN{print 33*20*76/200/3}' echo "123|456_789" | awk 'BEGIN{FS="\\||_"}{print $2}' echo "123|456_789" | awk "BEGIN{FS=\"\\\\||_\"}{print \$2}" #儘量使用單引號
測試題
- 找出404和500的資料,只打印狀態碼這一列,然後排序去重。把命令貼到回覆裡
- 去testerhome首頁找到所有的http的連線,然後列印不帶http的純域名部分
sed
pattern表示式
- 20 30,35 行數與行數範圍
- /pattern/ 正則匹配
- //,// 正則匹配的區間
action
- d 刪除
- p 列印,通暢結合-n引數
- s/REGEXP/REPLACEMENT/[FLAGS]
- 替換時引用 \1 \2 匹配的欄位
ps | sed -n 1,3p ps | sed 's/CMD/command/' ps | sed -n '/ps/p' echo '1 2 3 4 5' | sed -n '/3/,/4/p' echo '1 2 3 4 5' | sed '/3/,/4/d' ps | sed -e 's/CMD/command/' -e 's#00#20#g'
測試題
- 對所有404 500 的資料,統計出現這種狀態碼的url,需要對url彙總(彙總相似的url,把相同的資源但是變化的id去掉)去重,列印前5個出問題的路徑,把命令貼到回覆裡