Linux 系统运维与 Java 应用排障中,熟练掌握常用命令能显著提升工作效率。本文整理了一份高频使用的 Linux 命令速查清单,涵盖多个实战场景:JVM 故障排查(jstack 线程栈 dump、jmap 内存快照、kill -3 保留现场)、Tomcat/Java 进程管理(查找、优雅终止 kill -15、强制终止 kill -9)、NFS 挂载与开机自动配置(/etc/fstab)、磁盘与文件管理(du 查看占用、find 按时间删除旧文件、df -i 检查 inode 空间)、网络诊断(netstat 统计连接数与 IP 访问情况)、日志分析(who /var/log/wtmp 查看登录历史)、vi/vim 全局替换(:g/旧/s//新/g)、grep 递归搜索关键字,以及 runuser/su 指定用户运行命令等。
本文适用于 Linux 运维人员及 Java 后端开发者。
shelljstack -l $(jps |grep Bootstrap |awk '{print $1}') > $(hostname).dump.jstack
shelljstack -l -F $(jps |grep unavailable |awk '{print $1}') > $(hostname).dump.jstack
shelljmap -F -dump:format=b,file=~/$(hostname).dump $(jps |grep Bootstrap |awk '{print $1}')
shellps aux | grep tomcat
shellfor i in `ps aux|grep tomcat|grep -v grep|awk '{print $2}'`;do kill -9 $i;done
# 强杀
kill -9 $(jps |grep Bootstrap |awk '{print $1}')
# 等待业务结束
kill -15 $(jps |grep Bootstrap |awk '{print $1}')
# 打印进程各个线程的堆栈信息,kill -3 pid 后文件的保存路径为:/proc/${pid}/cwd,文件名为:antBuilderOutput.log, 保留现场的神奇命令
kill -3 $(jps |grep Bootstrap |awk '{print $1}')
shellpkill redis-server
shellmount -t nfs IP地址:/data /data
shelldu -shc *
shellyum install net-tools -y netstat -n|awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
shellnetstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n
shellnetstat -nat|grep -i "PORT"|wc -l
shellfind ./ -mtime +5 -name "log.*" -exec rm -f {} \; -mtime -n +n #按文件更改时间来查找文件,-n指n天以内,+n指n天以前 -atime -n +n #按文件访问时间来查找文件,-n指n天以内,+n指n天以前 -ctime -n +n #按文件创建时间来查找文件,-n指n天以内,+n指n天以前
shellfind . -mtime +31 -type f | xargs rm -rf
shellrunuser -u 角色名称 "/usr/local/zookeeper/bin/zkServer.sh" restart
shellsu - tomcat -c "nohup java $JAVA_OPTS -jar $DORADO_HOME/$JAR_FILE > /dev/null 2>&1 &"
shellwho /var/log/wtmp
shell# /root/.bash_history
history
text磁盘有空间却提示磁盘空间不足,此时应该果断查看inode空间是否已满; Linux索引节点(Inode)用满导致空间不足
shell:g/旧文本/s//新文本/g
shell# 远程/data目录挂载到本地/home/app/upload
# qs
192.168.100.1:/data /home/app/upload nfs defaults,_rnetdev 0 0
# CentOS6/7
# 客户端
service rpcbind start
# 服务端
# 配置白名单
vim /etc/exports
------------------------样式
/uc/files 10.205.61.0/24(rw,sync,no_root_squash)
------------------------------------
# 启动NFS服务
# 注意这两个服务的启动的顺序。必须先启动rpcbind服务
service rpcbind start
service nfs start
text源码:https://github.com/yavijava/yavijava 示例:https://github.com/yavijava/yavijava-samples
shell#-r 是递归查找
#-n 是显示行号
#-R 查找所有文件包含子目录
#-i 忽略大小写
#-o 只输出匹配的内容(一般用于获取关键字在文件中出现的次数查找)
#-w 按单词位单位过滤
#-v 取反(获取不包含关键字的文件内容)
grep -r '关键字' 目录


本文作者:Odboy
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 CC 4.0 BY-SA 许可协议。转载请注明出处!