| 1 |
tail |
实时查看文件尾部。追查服务实时日志和抛出的异常最常用的指令。 |
tail -200f /var/log/app/info.log |
| 2 |
grep |
文本正则搜索。在海量日志中精确定位特定的报错堆栈或订单号。 |
grep -n "NullPointerException" error.log |
| 3 |
ps |
查看系统进程。定位Java应用的运行状态或获取其进程PID。 |
`ps -ef |
| 4 |
less |
分页查看大文件。比 cat 更安全,支持向上翻页和搜索,适合打开GB级日志。 |
less app.log (输入 /Exception 搜索) |
| 5 |
kill |
终止进程。安全下线或强制杀死无响应的Java进程。 |
kill -9 12345 (12345为PID) |
| 6 |
curl |
网络请求与API测试。在服务器本地模拟HTTP请求,验证RESTful接口联通性。 |
curl -X POST http://localhost:8080/api/login |
| 7 |
ls |
列出目录内容。检查部署包、配置文件或日志文件是否存在及其权限属性。 |
ls -lrt /opt/app/ (按时间倒序排列) |
| 8 |
cd |
切换工作目录。最基础的导航命令,频繁穿梭于日志、配置和部署目录。 |
cd /usr/local/tomcat/logs/ |
| 9 |
df |
查看磁盘空间使用率。排查因日志堆积或Dump文件过大导致磁盘100%引发的服务宕机。 |
df -h |
| 10 |
lsof |
查看端口与文件占用。排查端口冲突(如8080被占用)或文件句柄泄漏(Too many open files)。 |
lsof -i :8080 |
| 11 |
top |
实时性能监控。查看整机CPU、内存负载,并可通过快捷键排查哪个Java线程占用最高。 |
top -Hp 12345 (查看特定PID的线程级CPU) |
| 12 |
ss |
现代Socket统计。netstat 的现代化替代品,速度更快,用于查看TCP连接与监听端口状态。 |
`ss -ntlp |
| 13 |
du |
评估目录/文件大小。配合 df 使用,深度定位具体是哪个目录下的日志撑爆了磁盘。 |
`du -sh * |
| 14 |
free |
查看系统内存。检查宿主机剩余物理内存(RAM)和Swap交换分区使用情况。 |
free -h |
| 15 |
find |
搜索文件。在全盘或指定目录中按名称、时间或大小查找部署的jar包或历史日志。 |
find / -name "application-prod.yml" |
| 16 |
tar |
归档与解压缩。后端手动部署或备份文件时进行打包与解包操作。 |
tar -zxvf dist.tar.gz -C /opt/ |
| 17 |
systemctl |
系统服务管理。现代Linux管理开机自启和后台运行服务的标准指令。 |
systemctl restart my-springboot-app |
| 18 |
cat |
查看小文件内容。快速输出较短的配置文件内容到终端。 |
cat application.properties |
| 19 |
awk |
强大的文本处理工具。常用于在日志中按列切割数据、统计接口响应耗时或汇总是某类报错的总数。 |
`awk '{print $4}' access.log |
| 20 |
nohup |
后台免挂断运行。在不依赖systemd时,用于让 java -jar 脱离终端在后台持续运行。 |
nohup java -jar app.jar > output.log 2>&1 & |
| 21 |
rm |
删除文件/目录。清理无用的旧日志包或过期的临时文件。 |
rm -rf /opt/logs/2023-*/ |
| 22 |
cp |
复制文件/目录。在修改核心配置文件(如nginx.conf)前进行备份。 |
cp application.yml application.yml.bak |
| 23 |
mv |
移动或重命名。用于部署时的替换操作或归档旧的日志文件。 |
mv app-new.jar app.jar |
| 24 |
nc |
网络连通性测试 (Netcat)。取代 telnet,测试从当前服务器到数据库或第三方依赖端口是否开放。 |
nc -vz 192.168.1.100 3306 |
| 25 |
sed |
流编辑器。在不打开文件的情况下,快速批量替换配置文件中的IP或参数。 |
sed -i 's/8080/8081/g' application.yml |
| 26 |
ping |
测试网络连通性。验证基础的ICMP网络是否可达及延迟情况。 |
ping -c 4 www.google.com |
| 27 |
zgrep |
在压缩包中搜索正则。无需解压即可直接搜索 .gz 归档的旧历史日志。 |
zgrep "ERROR" app.log.2023-10-01.gz |
| 28 |
journalctl |
查看系统日志。排查由于OOM Killer杀死Java进程等系统底层引发的问题。 |
journalctl -u my-springboot-app -f |
| 29 |
pwd |
打印当前工作目录。在深层级目录中排查时确认自身的绝对路径。 |
pwd |
| 30 |
chmod |
修改文件权限。赋予Shell部署脚本或某些二进制监控工具执行权限。 |
chmod +x startup.sh |
| 31 |
chown |
修改文件所有者。解决因用root启动过一次Java应用后,普通用户无法写入日志的权限故障。 |
chown -R javauser:javauser /opt/app/ |
| 32 |
scp |
安全的远程文件拷贝。在多台Linux服务器之间传输Jar包、Dump文件或日志快照。 |
scp app.jar user@10.0.0.2:/opt/ |
| 33 |
ssh |
远程登录。连接到目标服务器以执行排障任务的基础操作。 |
ssh user@192.168.1.50 |
| 34 |
dmesg |
查看内核环形缓冲区日志。精准捕捉系统级的 Out of Memory (OOM-killer) 杀进程事件。 |
`dmesg -T |
| 35 |
vmstat |
报告虚拟内存及系统整体统计。快速判断当前系统的瓶颈是在CPU、内存还是IO。 |
vmstat 1 5 (每秒刷新1次,共5次) |
| 36 |
wget |
非交互式网络下载工具。在服务器上直接下载外部的探针(agent)、JDK包或脚本。 |
wget https://example.com/agent.jar |
| 37 |
htop |
交互式系统进程监控。top 的增强版(需额外安装),更直观地以彩色进度条展示资源消耗。 |
htop |
| 38 |
ip |
现代网络配置查看工具。全面取代 ifconfig,用于查看本机IP地址及路由表。 |
ip addr show |
| 39 |
pidstat |
进程级别性能监控。精确统计某个特定Java进程的CPU、内存占用及上下文切换频率。 |
pidstat -p 12345 1 3 |
| 40 |
uptime |
查看系统运行时间和平均负载。快速感知机器当前的宏观压力(1/5/15分钟Load值)。 |
uptime |
| 41 |
wc |
字数/行数统计。配合 grep 用于统计特定异常出现的总次数,或评估日志量。 |
`grep "Exception" app.log |
| 42 |
history |
历史命令查看。排障时快速找回之前执行过的一长串复杂诊断指令,或排查误操作。 |
`history |
| 43 |
head |
查看文件头部。快速查看日志文件的生成日期或配置文件的开篇说明。 |
head -n 20 application.yml |
| 44 |
tcpdump |
网络抓包分析工具。当接口排障遇到疑难杂症时,用于抓取底层网络包分析协议交互。 |
tcpdump -i any port 8080 -w dump.pcap |
| 45 |
nslookup |
查询DNS解析。排查后端服务调用外部第三方API时因域名解析失败导致的请求超时。 |
nslookup api.github.com |
| 46 |
strace |
跟踪系统调用。极高阶排障工具,当JVM卡死或JNI原生库崩溃时探查底层内核调用卡在哪。 |
strace -c -p 12345 |