tail
tail -f filename 会把 filename 文件里的最尾部的内容显示在屏幕上,并且不断刷新,只要 filename 更新就可以看到最新的文件内容
默认先展示最后10行
展示倒数300行并实时监听文件内容变化
tail -300f shopbase.log
grep
查找文件里符合条件的字符串
grep test f.txt
在文件f.txt中搜索test关键字
grep -i test f.txt
在文件f.txt中搜索test关键字,-i是忽略大小写匹配关键字
grep test f.txt g.txt
多文件搜索,在文件f.txt、g.txt中搜索test关键字
grep 1101 -r -n
在当前目录搜索1101关键字,如果含有子目录,则递归搜索
grep 1101 /home/admin -r -n
在 /home/admin目录搜索1101关键字,如果含有子目录,则递归搜索
grep 222 -r -n --include *java*
--include
只在含有java的文件名中查找
grep 222 -r -n --exclude *class*
--exclude
不在含有class的文件名中查找
seq 10 | grep 5 -A 3 #上匹配
seq 10 | grep 5 -B 3 #下匹配
seq 10 | grep 5 -C 3 #上下匹配,平时用这个就妥了
关键字上下n行搜索
awk
awk介绍:默认以空格分隔
awk '{print $1,$3}' sample.txt
输出第一列和第三列
1 this
2 Are
3 a
4 There
awk '{print NR,$0}' sample.txt
输出行号和行内容
1 1 2 this is a test
2 2 3 Are you like awk
3 3 This's a test
4 4 10 There are orange,apple,mongo
5
搜索
awk '/ldb/ {print}' f.txt
匹配ldb
awk '!/ldb/ {print}' f.txt
不匹配ldb
awk '/ldb/ && /LISTEN/ {print}' f.txt
匹配ldb和LISTEN
awk '$5 ~ /ldb/ {print}' f.txt
第五列匹配ldb
awk ‘$1!=2 || $3==”Are”’ sample.txt
过滤第一列不等于2或者第三列等于Are的行
过滤某一列包含th字符的行
awk ‘$3 ~ /re/’ sample.txt
awk ‘$4 ~ /re/’ sample.txt
awk ‘$5 ~ /re/’ sample.txt
find
命令用来在指定目录下查找文件
find 20200228 20200229 -name *test*
多目录搜索
find . -iname *.txt
在当前目录搜索忽略大小写关键字
find 20200228 20200229 -name *test*
多目录搜索
find 20200228 20200229 -name *test*
多目录搜索
find /home/admin -size +250000k
(超过250000k的文件,当然+改成-就是小于了)
find /home/admin -atime -1
1天内访问过的文件
find /home/admin -ctime -1
1天内状态改变过的文件
find /home/admin -mtime -1
1天内修改过的文件
find /home/admin -amin -1
1分钟内访问过的文件
find /home/admin -cmin -1
1分钟内状态改变过的文件
find /home/admin -mmin -1
1分钟内修改过的文件
top + jstack
ps -ef | grep process-a
搜索进程process-a 得到PID21773
top -H -p 21773
统计进程process-a 的线程情况,如下图所示
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
21809 root 20 0 4468572 506436 13192 S 0.3 3.1 6:32.41 java
21773 root 20 0 4468572 506436 13192 S 0.0 3.1 0:00.00 java
21775 root 20 0 4468572 506436 13192 S 0.0 3.1 0:02.63 java
21776 root 20 0 4468572 506436 13192 S 0.0 3.1 0:00.77 java
21777 root 20 0 4468572 506436 13192 S 0.0 3.1 0:00.80 java
21778 root 20 0 4468572 506436 13192 S 0.0 3.1 0:00.80 java
21779 root 20 0 4468572 506436 13192 S 0.0 3.1 0:00.79 java
21780 root 20 0 4468572 506436 13192 S 0.0 3.1 2:57.09 java
21781 root 20 0 4468572 506436 13192 S 0.0 3.1 0:00.00 java
21782 root 20 0 4468572 506436 13192 S 0.0 3.1 0:00.00 java
printf '%x\n' 21809
将线程PID21809
转换为16进制,得到5501jstack 21773 | grep -C 30 5531
搜索进程PID21773
中线程PID5501
执行情况,关键字上下30行
网络状态分析
netstat -nat|awk '{print $6}'|sort|uniq -c|sort -rn
#查看当前连接,注意close_wait偏高的情况
btrace
不重启应用,为相关的代码添加日志等信息输出
使用参考:https://blog.csdn.net/dengjili/article/details/105764916