LInux常用命令(持续更新中)
查看文件路径
查看当前文件所在路径
pwd
例子:
pwd
/home/small/crm/api/crm-chandol
查看某一文件的完整路径
realpath 文件名
例子:
realpath crm-chandol-service.jar
/home/small/crm/api/crm-chandol/crm-chandol-service.jar
还可以使用:
find / -name 文件名
解析:
find是命令。
/是在根目录开始搜索,如果能确定某一路径也可以写,比如/home,是在home目录下开始搜索。
-name是根据名字搜素。
例子:
find / -name alyoss-server-1.0.2-RELEASE.jar
/home/small/heyguys/api/system/alyoss-service/alyoss-server-1.0.2-RELEASE.jar
通过端口号查询占用的进程,并知道其所在的位置
比如要查询18004端口。
1、查询端口占用的进程ID
netstat -anp | grep 端口号
例子:
netstat -anp | grep 18004
tcp 0 0 0.0.0.0:18004 0.0.0.0:* LISTEN 103035/java
103035为PID
还可以使用:
lsof -i:端口号
2、根据PID查询所在进程位置
ps -ef | grep PID
例子:
ps -ef | grep 103035
small 103035 1 0 2021 ? 03:56:28 java -server -Xms512m -Xmx512m -XX:+HeapDumpOnOutOfMemoryError -XX:MaxMetaspaceSize=1024m -jar alyoss-server-1.0.2-RELEASE.jar --spring.profiles.active=prod
如果得到结果和我上面一样
可以再通过find / -name 文件名
找到完整位置:
例子:
find / -name alyoss-server-1.0.2-RELEASE.jar
/home/small/heyguys/api/system/alyoss-service/alyoss-server-1.0.2-RELEASE.jar
还可以使用:
cd /proc/PID
例子:
cd /proc/6877
cwd -> /usr/local/nginx/sbin
你所看到的cwd就是java虚拟机运行的12093pid的文件所在位置。
查看日志内容
实时查看日志
tail -f xxx.log
f前可以加数字,表示多少行,例如:
#实时查看最后100行日志
tail -100f xxx.log
cat查看日志使用
查看日志内容
cat xxx.log
根据关键字查看日志
cat xxx.log | grep "关键字"
根据关键字查看后10行日志
cat xxx.log | grep "关键字" -A 10
根据关键字查看前10行日志
cat xxx.log | grep "关键字" -B 10
根据关键字查看前后10行日志,并显示出行号(-n)
cat -n xxx.log | grep "关键字" -C 10
查看日志前 10 行
cat xxx.log | head -n 10
查看日志后 10 行,并显示出行号
cat -n xxx.log | tail -n 10
说明:
-A 表示关键字之后,After -B 表示关键字之前,Before -C 表示关键字前后,Context -n 表示打印显示行号
对压缩的(.gz)的日志。使用zcat,命令同cat
例如:
查找日期为2022-11-11的包含'123456789'的前后100行
zcat logs\2022-11-11* |grep '123456789' -C 100
可以多关键字匹配
或关系
查找日期为2022-11-11的包含'123456789'或者'987654321'的前后100行
zcat logs\2022-11-11* |grep -E '123456789|987654321' -C 100
与关系
查找日期为2022-11-11的包含'123456789'和'987654321'的前后100行
zcat logs\2022-11-11* |grep '123456789'|grep '987654321' -C 100