Linux常用命令-Java web环境
Linux 常用命令
大部分命令推荐sudo运行
-
端口和PID互查
# 根据端口查询PID $ lsof -i:8080 # 根据端口查询PID $ fuser -i 8080/tcp # 根据PID查占用端口 $ lsof -Pan -p 4978 -i # 根据PID查占用端口 $ netstat -plnt | grep 4978
-
查看已启动的java程序
# ps命令, 常用参数 # ps a 显示当前终端下执行的进程 # ps c 显示进程的真实名称 # ps e 列出程序所使用的环境变量 # ps f 用ASCII字符显示树状结构,表达程序间的相互关系 # ps x 显示所有进程,无论是否运行在终端上 # ps u 显示用户相关的进程或者与用户相关的属性 # ps r 只显示正在运行的进程 $ ps aux | grep java # openjdk不支持, 需要单独安装(注意java版本)`sudo yum install java-1.8.0-openjdk-devel` $ jps -l
-
文件相关
:' 查看文件夹下的文件, ls命令比较理解, 就这么写了, find命令需要逐个示例 a: 显示隐藏文件(`.`开头的文件) t: 根据最后修改时间排序 r: 倒序 l: 列表展示 h: 文件大小格式化(如: 1K 234M 2G) --time-style: 日期显示格式, 我常用iso,另外支持`full-iso,long-iso,locale` 也可以自己写, 如: --time-style=+"%Y-%m-%d %H:%M:%S %P" ' $ ls -atrlh --time-style=long-iso # find命令格式: # find path -option [ -print ] [ -exec -ok command ] {} # 以log结尾的文件(即文件名正则查询, `*`和`?`) $ find -name *.log # 空文件/目录 $ find -empty # 3天内修改过的文件(改成`+`号表示3天前修改的文件) $ find -ctime -3 # 删除3天前修改的日志文件(-exec/-ok后面跟对文件的命令, 区别是ok会再操作前询问, exec不会) $ find -name *.log -mtime +3 -ok rm {} \; # 列出大于1MB的文件 # size 支持的单位: bcwkMG, 分别是: # 其中bcw不常用, 自行百度(注意b不是byte), k为KB, M为MB, G为GB $ find -size +1M -exec ls -l {} \; # 查找nginx.conf文件位置(走索引比较快, 需要安装mlocate) $ locate nginx.conf
-
查日志常用(文本文件)
# 示例文件为log.log # 查看最后10行 $ tail log.log # 查看文件并监听文件内容(会将文件变更内容持续输出到屏幕, Ctrl-C 结束) $ tail -f log.log # 查看最后10M文件内容 $ tail -c 1M log.log # 查看文件, 并忽略前100行 $ tail -n +100 log.log # 打印2-5行 $ sed -n '2,5p' test.txt # 正则, 查到字符串"15:56:39.745"开始, 到第5行结束, $ sed -n "/15:56:39.745/,5p" log.log # 由于awk命令较为复杂, 不做展示
-
grep 字符过滤, 支持正则
# 查log.log文件中包含abcdef的行, -i表示忽略大小写 $ grep "abcdef" log.log -i # 查当前目录包含"2021"的文件 $ ls -trlh | grep 2021
-
临时启用/取消放行防火墙端口
firewall-cmd --add-port 8082/tcp firewall-cmd --remove-port=****/tcp