日常工作中排查问题经常会使用到一些命令, 所以在这里记录一下
查看日志:
(这里的 logFileName 表示日志文件名称, 在实际应用中, 请把logFileName 替换为你实际想要查看的日志文件名称)
#动态日志输出
tail -f logFileName
#查看某个关键字所在的行号
cat -n logFileName | 'keyword'
#显示日志里匹配字串那行以及前后5行
cat filename | grep -C 5 '关键字'
#显示匹配字串及前5行
cat filename | grep -B 5 '关键字'
#显示匹配字串及后5行
cat filename | grep -A 5 '关键字'
#显示匹配字串及后10行 (带行数)
cat -n filename | grep '关键字' -A 10
#根据行号查看 起点行到截止行的数据
(例如: 我用上面的命令已经知道关键字所在的行号为第 200 行, 我这里想要查看200到500行之间的日志记录)
sed -n '200,500p' logFileName
#查看某个端口是否启用
netstat -an | grep 8077
当显示tcp一行则说明该端口启用了
tcp6 0 0 :::8077 :::* LISTEN
#查看端口被哪个PID使用
lsof -i:8084
杀死pid
kill -9 pid
#复制文件夹
cp -r logs/ ../test #将当前目录下的logs文件夹移动上上层目录的test文件夹下
参数说明:
- -a:此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容。其作用等于dpR参数组合。
- -d:复制时保留链接。这里所说的链接相当于Windows系统中的快捷方式。
- -f:覆盖已经存在的目标文件而不给出提示。
- -i:与-f选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆盖,回答"y"时目标文件将被覆盖。
- -p:除复制文件的内容外,还把修改时间和访问权限也复制到新文件中。
- -r:若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件。
- -l:不复制文件,只是生成链接文件。
#查询文件所在位置
find / -name filename
#查看进程信息
netstat -tnlp
#查看cpu使用情况
top
#查询进程下的线程cpu使用情况
top -H -p pid //top -H -p 17751
#将pid 转换为十六进制
printf "%x\n" 17963
# jstack 进程号|grep 16进制异常线程号 -A90 来定位异常代码的位置(最后的-A90是日志行数,也可以输出为文本文件或使用其他数字)。可以看到异常代码的位置。
jstack 8825 | grep 229f -A90
#查看所有的java进程
ps -ef | grep java
#查看某一时间段的日志
命令: grep '时间' '日志文件名 '
grep '2021-10-20 15:4[0-1]' logback.log (后面可加 -A 50)
-------------------------- 未完待续 -------------------------------