Linux 三劍客

Linux Bash Windows Java識堂 2019-04-07

Java識堂,一個高原創,高收藏,有乾貨的微信公眾號,歡迎關注

環境

  • windows git bash
  • mac iterm term
  • 用自己的帳號登錄 ssh 手機號碼後8位 @ shell.testing-studio .com
  • 沒有賬號的可以臨時用 ssh [email protected]
  • /tmp/nginx.log 保存了一份一天的nginx訪問log

Linux三劍客介紹

Linux 三劍客

Linux 三劍客

Grep

Linux 三劍客

Linux 三劍客

ps -ef | grep bash
echo "ABC" | grep -i abc
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

Linux 三劍客

Linux 三劍客

Linux 三劍客

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

Linux 三劍客

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個出問題的路徑,把命令貼到回覆裡

相關推薦

推薦中...