#sed 's#正则#结果#g'
echo 123abc456 | sed 's#abc#_#'
echo 123abc456 | sed 's#[2-9]#x#g'
awk '/00:00:01/,/00:00:04/' /tmp/nginx.log
sed -n '/00:00:01/,/00:00:04/p' /tmp/nginx.log
awk '{print $7}' /tmp/nginx.log |sed -e "s#[0-9]\{1,\}#*#g" -e 's#?.*##' -e 's#/[^/]*\.png.*##'| sort | uniq -c | sort -nr |head -10
for i in $(seq 1 20);do time=$(date +%H:%M:%S); info=$(ps -o %cpu -o %mem 9081 | tail -1 );echo $time $info ;sleep 1;done
16:46:50 0.9 0.2
16:46:58 0.9 0.3
16:47:00 0.9 0.2
while true; do count=$(jobs -l | grep Running|wc -l); [ $count -le 5 ] && { time curl https://testerhome.com/topics/17870 &>/dev/null & } || echo $count waiting ;done
adb shell "uiautomator dump && cat /sdcard/window_dump.xml"
adb shell input tap x y
adb shell input text 123
adb shell "uiautomator dump && cat /sdcard/window_dump.xml" |grep -oE "<node[^>]*>" | grep -v 'resource-id=""' | grep -oE 'bounds=".*?]"' | sed 's#[^0-9]\{1,\}# #g'
获取界面结构 xml -> node -> 坐标 -> input
echo '1
3
2
4
6' | gnuplot -e "set terminal dumb;plot '<cat' using 1 with line"
1.
#1.
cat /tmp/nginx.log |grep -E "404|500"|head -5
#2.
cat /tmp/nginx.log |grep -E "500" -C1
less /tmp/nginx.log |grep -E " 404 | 500 "|head -5
cat /tmp/nginx.log |grep -E "404|500"|head -5
less /tmp/nginx.log |grep -Eo "404 |500"
less \tmp\nignx.log | grep -E "404|500"
作业 1 cat /tmp/nginx.log | grep '404'| head -3
$ cat nginx.log |awk '{print $9}'|grep '400\|500'|head -3
500
400
500
cat /tmp/nginx.log | grep -o "404|500"
以上答案全错
awk '$9=="404"' /tmp/nginx.log | grep -B 10
作业 2
grep -B 10 "500" /tmp/nginx.log | less
grep -10h " 500 " /tmp/nginx.log
grep -C 10 -E " 500 " nginx.log | less
grep -B 10 " 500 " /tmp/nginx.log|less
grep -b10 C " 500 " /tmp/nginx.log
grep ' 500 ' -B 10 nginx.log |less
grep -B 10 "500 " /tmp/nginx.log
awk '{print $1}' /tmp/nginx.log | sort | uniq -c | sort -r | head -1
awk '{print $1}' nginx.log | sort | uniq -c | sort -rn | head -5
awk '{print $1}' nginx.log | sort | uniq -c | head -5
awk '{print $1}' /tmp/nginx.log |sort |uniq -c |sort -n |tail -5
作业 3
head -10000 /tmp/nginx.log | awk '{print $1}' | sort | uniq -c | sort -nr | head -5
作业 4
awk '{print $7}' /tmp/nginx.log |sed "s#[1-9]#*#g"|sort |uniq -c |sort -nr|head -5
作业 4:
awk '{print $7}' nginx.log |sed 's/[0-9]//g' | sed 's/?.*//g' | sort | uniq -c | sort -rn | head -5
2396 /cable
1812 /topics/
1218 /topics//replies//edit
818 /topics//replies//reply_suggest
442 /
作业 4:awk '{print $7}' /tmp/nginx.log | sed 's#[0-9]#xxx#g'|sort |uniq -c|sort -nr |head -1
awk '{print $7}' /tmp/nginx.log | sed 's#[0-9]#x#g' | sort | uniq -c | sort -nr | head -5
awk '{print $7}' nginx.log|sed 's#/[0-9]*/#/x/#g'|sort|uniq -c|sort -nr|head -1
作业 4、awk '{print $7}' nginx.log | sed 's#[0-9]#*#g' |sort |uniq -c |sort -nr|head -5
awk '{print $7}' /tmp/nginx.log |sed 's#/[0-9].*#_#g'|sort|uniq -c|sort -nr |less
作业 4:
awk '{print $7}' nginx.log | sed 's#/[0-9]*/#/ID/#g' | sort | uniq -c | sort -nr | head -5
作业 4:
awk '{print $7}' /tmp/nginx.log | sed 's#[0-9]#_#g' | sort | uniq -c | sort -nr | head -5
awk '{print $7}' /tmp/nginx.log | sed 's#[0-9]#x#g'| sort | uniq -c | sort -nr |head -5
netstat|grep ":ssh"|awk '{print $5}'|uniq -c|wc -l
netstat -ntp | grep 22 | sort | uniq -c | wc -l
作业 5:
netstat -ltnp | sed 1,2d | grep 22 | sort | uniq -c
while true;do cpu=`ps -o %cpu 10125 |tail -1`;mem=`ps -o %mem 10125|tail -1`;time=`date +%H%M%s`;echo $time,$cpu,$mem;sleep 1;done
echo date cpu mem;for ((i=0;i<20;i++));do date=$(date +%H%M%S);cpu=$(ps -o %cpu $$|awk 'NR==2');mem=$(ps -o %mem $$|awk 'NR==2');echo $date $cpu $mem;done;sleep 1
工作中遇到 tail -f xxx.log >> test.txt,追加保存到 txt 文件,但想要这个文件只存最新的 50 条 log 数据,不知道怎么做比较好
看了下调查结果,有部分同学反映没学会,下周我找个时间给大家加课。重点讲下 Linux 三剑客的语法和应用场景。
这些我感觉我永远也记不住,只能需要时 Google 了。
黄老师越来越赞了。缺少的就是这些基本功。
第一题的附加(同时打印出 404 和 500 的前三条,是在想不出来,也没查到,才用了这个弱鸡办法)
awk '$9=="500"' nginx.log |head -3;echo -e "\n================================================\n";awk '$9=="404"' nginx.log |head -3
电脑连接 Android 真机,adb shell 后,输入 ps -ef ,结果是,如何解决?
while true;do count=$(jobs -l |grep Running| wc -l);[ $count -le 5 ] && { time curl https://www.baidu.com &>/dev/null & };echo $count waiting;sleep 0.5;done
问题:
思寒老师,小括号是定义变量 ,中括号里面是判断语句,后面 { time curl https://www.baidu.com &>/dev/null & } 这里为啥是花括号?
然后花括号前面为什么是&& 与呢?
我的理解:
先定义一个 count 变量统计当前进程总数,如果 count 小于 5 ,那么把访问的地址放到后台执行;大于 5 时输出 waiting .写了下面的语句,貌似也是可以的。盼回复,不知道我的理解对不对。
while true;do count=$(jobs -l |grep Running| wc -l);if [ $count -le 5 ];then { time curl https://www.baidu.com &>/dev/null & };else echo $count waiting;sleep 0.5;fi;done
作业 3:
awk '{print $1}' nginx.log | sort | uniq -c | sort -nr | head -5
cat nginx.log | head -n 5
cat nginx.log | awk '$9~/404|500/{print $0}'
作业 2
作业三
找出访问量最高的 ip
cat nginx.log | awk '{print $1}' | sort |uniq -c | sort -nr -k 1 | head -1
作业四
找出访问量最高的页面地址
cat nginx.log | awk -F ' |?' '{print $7}' | sed -E 's#/[0-9]+#/xxx#g' | sort | uniq -c | sort -nr -k 1 | head -1