系统运维工作中,命令行是高效管理服务器的核心工具,掌握常用命令能快速排查问题、优化性能,以下从文件管理、磁盘监控、网络诊断、进程管理、系统信息查询五个维度,结合具体场景和参数详解常用命令。

文件与目录管理
文件操作是运维基础,ls
、cd
、cp
、mv
、rm
命令需熟练搭配参数使用。ls -laht
可按修改时间倒序显示所有文件(含隐藏文件),并显示文件大小;cp -r /source /destination
递归复制整个目录;rm -rf /path/to/dir
强制删除非空目录(需谨慎使用),文本查看中,cat
适合小文件快速输出,less
支持分页浏览大文件,tail -f /var/log/nginx/access.log
实时追踪日志更新,排查实时故障时必备,批量修改文件名可结合 rename
命令,如 rename 's/\.log$/\.bak/' *.log
将当前目录下所有 .log
文件扩展名改为 .bak
。
磁盘与存储监控
磁盘空间不足是常见故障,df -h
以人类可读格式(GB/MB)显示各分区使用情况,du -sh /*
则递归统计根目录下各子目录大小,定位大文件占用,当磁盘 I/O 性能异常时,iostat -dx 2
每2秒输出磁盘详细统计(如util、await、svctm),iotop
命令类似 top
,可实时进程级磁盘读写排序,文件系统检查中,fsck /dev/sda1
需在卸载分区后执行,修复文件系统错误;mount -o remount,rw /dev/sdb1 /data
可重新挂载分区并调整读写权限。
网络诊断与配置
网络问题排查需结合多层级命令:ping -c 4 8.8.8.8
发送4个包测试连通性;traceroute -n www.baidu.com
显示路由路径(-n
避免DNS解析加速);netstat -tuln
列出所有监听端口及协议,ss -tuln
是其替代工具(性能更优),抓包分析时,tcpdump -i eth0 -nn 'port 80'
监听eth0网卡80端口的HTTP流量,-nn
避免IP和端口解析,防火墙规则管理中,iptables -L -n --line-numbers
查看链规则并显示行号,iptables -I INPUT 5 -p tcp --dport 22 -j ACCEPT
在第5行插入允许SSH的规则。
进程与服务管理
进程管理是保障服务稳定的关键,ps -ef
显示所有进程完整信息,ps aux --sort=-%cpu
按CPU使用率倒序排序;top
动态监控进程,htop
提供更友好的交互界面(支持鼠标操作),结束进程时,kill -9 PID
强制终止(-9
为SIGKILL信号),killall nginx
通过进程名批量结束,服务管理中,systemctl status nginx
查看服务状态,systemctl restart nginx
重启服务,journalctl -u nginx -f
查看服务日志(-f
实时跟踪)。

系统信息与性能监控
快速获取系统信息可提升排查效率:uname -a
显示内核版本、主机名等完整信息;lscpu
查看CPU架构、核心数;free -h
以人类可读格式显示内存使用情况,性能监控中,vmstat 1
每秒输出CPU、内存、I/O等摘要信息,mpstat 1
专注CPU各核使用率统计;dmesg | tail
查看内核最新错误日志,定位硬件或驱动问题。
以下为常用命令速查表:
| 功能分类 | 命令示例 | 说明 |
|----------------|-----------------------------------|------------------------------------|
| 文件列表 | ls -laht
| 按时间倒序显示所有文件及大小 |
| 实时日志 | tail -f /var/log/syslog
| 实时跟踪系统日志更新 |
| 磁盘空间 | df -h
| 分区使用情况(人类可读格式) |
| 目录大小 | du -sh /var/log
| 统计指定目录总大小 |
| 网络连通 | ping -c 3 192.168.1.1
| 发送3个测试包 |
| 端口监听 | netstat -tuln
| 显示所有监听端口 |
| 进程监控 | top -p <PID>
| 监控指定进程资源使用 |
| 服务状态 | systemctl is-active sshd
| 检查服务是否运行 |
| 内存使用 | free -h
| 内存及交换区使用情况 |
相关问答FAQs
Q1: 如何查找并删除某目录下7天前的旧日志文件?
A: 可结合 find
和 rm
命令实现:find /var/log -name "*.log" -mtime +7 -exec rm -f {} \;
,参数说明:/var/log
为搜索目录,-name "*.log"
匹配所有.log文件,-mtime +7
查找7天前修改的文件,-exec rm -f {} \;
对每个匹配文件执行强制删除,若需先确认文件列表,可先执行 find /var/log -name "*.log" -mtime +7
查看结果。
Q2: 服务器负载过高时,如何快速定位高CPU占用进程?
A: 分三步定位:① 使用 top
或 htop
查看进程级CPU占用,找到PID;② 若top中未显示完整进程名,可通过 ps -ef --sort=-%cpu | head -n 10
按CPU使用率排序查看前10个进程;③ 若需进一步分析,使用 strace -p <PID>
跟踪系统调用,或 perf top -p <PID>
分析CPU热点函数,最终通过 kill -9 <PID>
终止异常进程(谨慎操作)。
