linux系统运维常用命令
-
系统监控和资源分析
服务器卡顿或者服务不可用时:
| 命令 | 用途 | 核心参数/技巧 |
|---|---|---|
top / htop |
实时查看进程、CPU、内存占用 | htop 交互性更好,支持鼠标点击和颜色区分。 |
free -h |
查看内存使用情况 | -h 以易读单位(GB/MB)显示。 |
df -h |
查看磁盘空间占用 | 检查磁盘是否写满(尤其是 / 目录)。 |
du -sh \* |
统计当前目录下各文件/文件夹大小 | 定位是哪个大文件占满了磁盘。 |
uptime |
查看系统运行时间及平均负载 | 关注 load average 的三个值(1/5/15分钟)。 |
iostat |
监控磁盘 I/O 读写状态 | 确认是否因磁盘写入过高导致系统变慢。 |
-
网络诊断与连接管理
网络安全和服务器通信
ip addr: 查看网卡 IP 地址(替代了旧的ifconfig)。netstat -tunlp/ss -tunlp:- 查看当前系统监听了哪些端口。
-t(TCP),-u(UDP),-n(数字显示),-l(监听),-p(显示进程 ID)。
ping/mtr:ping测试连通性。mtr(My Traceroute) 结合了 ping 和 traceroute,能实时看到每一跳的丢包率。
curl -I [URL]: 仅查看 HTTP 响应头,常用于调试 Web 服务状态。tcpdump: 强大的抓包工具。例如tcpdump -i eth0 port 80抓取 80 端口流量。
-
文件处理与搜索
查找与定位
find /etc -name "\*.conf": 在指定目录下按名称寻找文件。which/whereis: 查找二进制命令的存放路径。grep: 文本过滤神器。grep -r "error" /var/log/: 递归搜索日志中的错误关键词。
查看与修改
tail -f /var/log/nginx/access.log: 实时滚动查看日志(运维必备)。sed/awk: 流式编辑工具,用于批量替换配置或提取日志中的特定列。vim: 终端编辑器的霸主,必须掌握基础的i(插入)、:wq(保存退出) 和/(查找)。
-
进程与权限管理
ps -ef/ps aux: 查看系统当前运行的所有进程。kill -9 [PID]: 强制杀死进程(慎用-9,通常先尝试kill -15平滑退出)。lsof -i :80: 查看是谁占用了 80 端口。chmod/chown:chmod 755 [file]修改权限。chown root:root [file]修改所属用户和组。
sudo: 以管理员权限执行命令。-
软件包与日志管理
根据发行版不同,工具也不同:
- Ubuntu/Debian:
apt update && apt install [package] - CentOS/RHEL:
yum install或dnf install
日志管理:
journalctl -u nginx -f: 查看使用 Systemd 管理的服务(如 Nginx)的实时日志。
-
进阶技巧
善用管道符
|: 将多个命令组合。例如:ps -ef | grep mysql | grep -v grep(查找 mysql 进程并排除 grep 自身)。别名
alias: 如果某个长命令常用,可以在~/.bashrc里设置别名。快捷键:
Ctrl + R: 搜索历史执行过的命令。Ctrl + C: 强制停止当前进程。Ctrl + Z: 将进程挂起到后台(配合fg回到前台)。