Linux 运维必备 50 条命令速查:故障排查与日常运维实战手册

关注「Raymond运维」公众号,并设为「星标」,也可以扫描底部二维码加入群聊,第一时间获取最新内容,不再错过精彩内容。
Linux 运维必备 50 条命令速查:故障排查与日常运维实战手册
适用场景 & 前置条件
适用场景:日常运维、故障排查、性能诊断、自动化脚本、应急处理、新人培训。
前置条件:
-
• OS:RHEL/CentOS 7.x-9.x、Ubuntu 18.04-24.04 -
• 权限:部分命令需 root 或 sudo 权限 -
• 工具:大部分为系统自带,少数需安装(标注包名) -
• 网络:部分命令需网络访问(如 yum/apt)
命令分类索引
-
1. 系统信息查询(1-10):uname, hostname, uptime, who, last, dmesg, lsb_release, hostnamectl, timedatectl, systemctl -
2. 文件与目录操作(11-20):find, locate, tree, stat, file, ln, diff, rsync, scp, tar -
3. 进程管理(21-25):ps, top, htop, pgrep, pkill -
4. 网络诊断(26-35):ping, traceroute, ss, netstat, ip, curl, wget, nc, nslookup, dig -
5. 磁盘与文件系统(36-40):df, du, lsblk, fdisk, mount -
6. 日志查看(41-43):tail, grep, journalctl -
7. 性能监控(44-47):iostat, vmstat, sar, free -
8. 安全与权限(48-50):chmod, chown, ssh
命令详解(50 条核心命令)
系统信息查询(1-10)
1. uname – 查看系统内核信息
用途:确认系统内核版本、架构、主机名。
# 查看所有信息uname -a# Linux web01 5.15.0-88-generic #98-Ubuntu SMP x86_64 x86_64 x86_64 GNU/Linux# 只看内核版本uname -r# 5.15.0-88-generic# 查看架构uname -m# x86_64
适用场景:排查内核兼容性问题、确认是否 64 位系统。
2. hostname – 查看/设置主机名
用途:查看或临时修改主机名。
# 查看主机名hostname# web01# 查看 FQDN(完全限定域名)hostname -f# web01.example.com# 临时修改主机名(重启失效)sudo hostname new-hostname# 永久修改(RHEL/CentOS)sudo hostnamectl set-hostname new-hostname
适用场景:配置集群节点、配置监控标识。
3. uptime – 查看系统运行时间与负载
用途:快速查看系统启动时长、当前用户数、系统负载。
uptime# 14:23:01 up 10 days, 3:45, 2 users, load average: 0.52, 0.58, 0.60
输出解释:
-
• 14:23:01:当前时间 -
• up 10 days, 3:45:运行了 10 天 3 小时 45 分钟 -
• 2 users:当前 2 个登录用户 -
• load average: 0.52, 0.58, 0.60:1 分钟、5 分钟、15 分钟平均负载
负载阈值:
-
• 负载 < CPU 核数:正常 -
• 负载 = CPU 核数:满负荷 -
• 负载 > CPU 核数 * 1.5:过载,需排查
查看 CPU 核数:
nproc# 或 grep -c processor /proc/cpuinfo# 4
4. who / w – 查看当前登录用户
用途:查看谁在登录系统、登录时间、来源 IP。
# 简单列表who# root pts/0 2025-10-24 10:15 (192.168.1.100)# alice pts/1 2025-10-24 14:20 (192.168.1.101)# 详细信息(含负载)w# 14:25:01 up 10 days, 3:47, 2 users, load average: 0.50, 0.55, 0.58# USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT# root pts/0 192.168.1.100 10:15 0.00s 0.05s 0.02s -bash# alice pts/1 192.168.1.101 14:20 2:00 0.10s 0.05s vim log.txt
适用场景:安全审计、发现异常登录、排查用户操作。
5. last – 查看用户登录历史
用途:查看历史登录记录、重启记录。
# 查看最近 10 条登录记录last -n 10# 查看指定用户登录历史last root# 查看系统重启历史last reboot# reboot system boot 5.15.0-88-gen Thu Oct 24 10:00 - 14:25 (04:25)# 查看登录失败记录sudo lastb -n 10
适用场景:安全事件排查、审计登录行为。
6. dmesg – 查看内核消息
用途:查看内核启动日志、硬件错误、驱动加载信息。
# 查看所有内核消息dmesg | less# 查看最近 20 条dmesg | tail -20# 查看磁盘相关错误dmesg | grep -i "sd\|nvme\|error"# 查看网卡信息dmesg | grep -i "eth\|network"# 实时监控内核消息dmesg -w
适用场景:硬件故障排查、驱动问题诊断、启动失败分析。
7. lsb_release – 查看发行版信息
用途:查看 Linux 发行版名称和版本。
# 查看所有信息lsb_release -a# Distributor ID: Ubuntu# Description: Ubuntu 24.04 LTS# Release: 24.04# Codename: noble# 只看版本号lsb_release -r# Release: 24.04# 如未安装,查看文件cat /etc/os-releasecat /etc/redhat-release # RHEL/CentOS
8. hostnamectl – 查看主机详细信息
用途:查看主机名、OS 版本、内核、架构等综合信息。
hostnamectl# Static hostname: web01# Icon name: computer-vm# Chassis: vm# Operating System: Ubuntu 24.04 LTS# Kernel: Linux 5.15.0-88-generic# Architecture: x86-64
9. timedatectl – 查看/设置时间与时区
用途:查看系统时间、时区、NTP 同步状态。
# 查看时间与时区timedatectl# Local time: Thu 2025-10-24 14:30:00 CST# Universal time: Thu 2025-10-24 06:30:00 UTC# RTC time: Thu 2025-10-24 06:30:00# Time zone: Asia/Shanghai (CST, +0800)# System clock synchronized: yes# NTP service: active# 设置时区sudo timedatectl set-timezone Asia/Shanghai# 启用 NTP 同步sudo timedatectl set-ntp true
10. systemctl – 服务管理
用途:管理 systemd 服务、查看服务状态。
# 查看服务状态systemctl status nginx# 启动/停止/重启服务sudo systemctl start nginxsudo systemctl stop nginxsudo systemctl restart nginxsudo systemctl reload nginx # 重载配置不中断服务# 设置开机自启sudo systemctl enable nginxsudo systemctl disable nginx# 查看所有运行的服务systemctl list-units --type=service --state=running# 查看启动失败的服务systemctl --failed
适用场景:服务管理、故障排查、开机启动配置。
文件与目录操作(11-20)
11. find – 强大的文件搜索
用途:按名称、类型、大小、时间查找文件。
# 按名称查找(忽略大小写)find /var/log -iname "*.log"# 查找大于 100MB 的文件find /home -type f -size +100M# 查找 7 天前未修改的文件find /tmp -type f -mtime +7# 查找并删除(危险操作)find /tmp -name "*.tmp" -mtime +7 -delete# 查找并执行命令find /data -name "*.log" -exec gzip {} \;# 查找空文件/目录find /var -type f -emptyfind /var -type d -empty# 排除目录find /var -path /var/lib -prune -o -name "*.log" -print
适用场景:磁盘清理、日志归档、文件定位。
12. locate – 快速文件定位
用途:基于索引数据库快速查找文件(比 find 快)。
# 查找文件locate nginx.conf# 更新索引数据库(新建文件需先更新)sudo updatedb# 忽略大小写locate -i NGINX.CONF# 限制结果数量locate -n 10 "*.log"
适用场景:快速定位配置文件、可执行文件。
13. tree – 树形显示目录结构
用途:直观显示目录层级关系。
# 安装(如未安装)sudo yum install -y tree # RHEL/CentOSsudo apt install -y tree # Ubuntu# 显示 2 层目录tree -L 2 /etc# 只显示目录tree -d /var# 显示文件大小tree -h /data# 排除目录tree -I "node_modules|.git" /project
14. stat – 查看文件详细信息
用途:查看文件元数据(时间戳、权限、inode)。
stat /etc/passwd# File: /etc/passwd# Size: 2345 Blocks: 8 IO Block: 4096 regular file# Device: 8,1 Inode: 131074 Links: 1# Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)# Access: 2025-10-24 10:15:30.123456789 +0800# Modify: 2025-10-20 08:30:00.000000000 +0800# Change: 2025-10-20 08:30:00.000000000 +0800# 查看文件系统信息stat -f /home
时间戳说明:
-
• Access:最后访问时间(atime) -
• Modify:最后修改时间(mtime,内容变化) -
• Change:最后改变时间(ctime,元数据变化)
15. file – 识别文件类型
用途:判断文件实际类型(不依赖扩展名)。
file /bin/ls# /bin/ls: ELF 64-bit LSB executable, x86-64file nginx.conf# nginx.conf: ASCII textfile image.png# image.png: PNG image data, 1920 x 1080, 8-bit/color RGB
16. ln – 创建链接
用途:创建硬链接或软链接(符号链接)。
# 创建软链接(快捷方式)ln -s /opt/app/current /appls -l /app# lrwxrwxrwx 1 root root 16 Oct 24 14:00 /app -> /opt/app/current# 创建硬链接(共享 inode)ln /data/file1 /data/file2ls -i /data/file*# 12345 /data/file1# 12345 /data/file2 ← 相同 inode# 覆盖已存在的链接ln -sf /new/target /existing-link
软链接 vs 硬链接:
-
• 软链接:类似 Windows 快捷方式,可跨文件系统,源删除则失效 -
• 硬链接:共享数据块,不能跨文件系统,源删除不影响
17. diff – 比较文件差异
用途:对比两个文件或目录的差异。
# 基础对比diff file1.txt file2.txt# 并排显示(side-by-side)diff -y file1.txt file2.txt# 忽略空白字符diff -w file1.txt file2.txt# 对比目录diff -r dir1/ dir2/# 生成补丁文件diff -u old.conf new.conf > config.patch# 应用补丁patch old.conf < config.patch
18. rsync – 高效文件同步
用途:本地或远程文件同步、增量备份。
# 本地同步(增量)rsync -avz --progress /source/ /destination/# 远程同步(推送)rsync -avz -e ssh /local/ user@remote:/remote/# 远程同步(拉取)rsync -avz -e ssh user@remote:/remote/ /local/# 排除文件rsync -avz --exclude='*.log' --exclude='tmp/*' /src/ /dst/# 删除目标多余文件(镜像同步)rsync -avz --delete /src/ /dst/# 限速(KB/s)rsync -avz --bwlimit=1024 /src/ /dst/# 断点续传rsync -avzP /src/ /dst/
参数说明:
-
• -a:归档模式(保留权限、时间戳、符号链接) -
• -v:详细输出 -
• -z:压缩传输 -
• -P:显示进度 + 断点续传
19. scp – SSH 文件传输
用途:通过 SSH 安全传输文件。
# 上传文件scp /local/file.txt user@remote:/path/# 下载文件scp user@remote:/path/file.txt /local/# 递归传输目录scp -r /local/dir user@remote:/path/# 指定端口scp -P 2222 file.txt user@remote:/path/# 保留权限与时间戳scp -p file.txt user@remote:/path/
20. tar – 打包与压缩
用途:归档与压缩文件。
# 打包并压缩(gzip)tar czf archive.tar.gz /path/to/dir# 打包并压缩(bzip2,压缩率更高)tar cjf archive.tar.bz2 /path/to/dir# 解压 gziptar xzf archive.tar.gz -C /destination/# 解压 bzip2tar xjf archive.tar.bz2# 查看压缩包内容(不解压)tar tzf archive.tar.gz# 排除文件tar czf backup.tar.gz --exclude='*.log' /data# 追加文件到 tar 包(只能用于未压缩的 tar)tar rf archive.tar newfile.txt
参数速记:
-
• c:create(创建) -
• x:extract(解压) -
• z:gzip -
• j:bzip2 -
• f:file(指定文件名) -
• v:verbose(详细输出)
进程管理(21-25)
21. ps – 查看进程
用途:查看当前运行的进程。
# 查看所有进程(BSD 风格)ps aux | less# 查看所有进程(System V 风格)ps -ef | less# 查看指定用户进程ps -u nginx# 查看进程树ps auxf # 或 pstree# 查看线程ps -eLf# 自定义输出列ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%cpu | head -10
常用组合:
# 查找 nginx 进程ps aux | grep nginx# 查看进程占用最高的前 10 个ps aux --sort=-%mem | head -10ps aux --sort=-%cpu | head -10
22. top – 实时进程监控
用途:实时查看系统资源与进程状态。
# 启动 toptop# 常用快捷键(运行中按键)# P - 按 CPU 排序# M - 按内存排序# k - 杀死进程(输入 PID)# 1 - 显示所有 CPU 核心# q - 退出# 只显示指定用户进程top -u nginx# 批量模式(输出到文件)top -b -n 1 > top-output.txt# 设置刷新间隔(2 秒)top -d 2
输出解释:
top - 14:30:00 up 10 days, 3:52, 2 users, load average: 0.50, 0.55, 0.58Tasks: 250 total, 1 running, 249 sleeping, 0 stopped, 0 zombie%Cpu(s): 5.2 us, 2.1 sy, 0.0 ni, 92.5 id, 0.2 wa, 0.0 hi, 0.0 si, 0.0 stMiB Mem : 16000.0 total, 2000.0 free, 8000.0 used, 6000.0 buff/cacheMiB Swap: 4096.0 total, 4096.0 free, 0.0 used. 7500.0 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1234 root 20 0 2000000 500000 20000 S 5.0 3.1 10:25.50 nginx
关键指标:
-
• us:用户空间 CPU(正常业务) -
• sy:内核空间 CPU(系统调用) -
• wa:I/O 等待(>20% 表示 I/O 瓶颈) -
• id:空闲 CPU
23. htop – 增强版 top
用途:彩色、交互式进程监控(需安装)。
# 安装sudo yum install -y htop # RHEL/CentOSsudo apt install -y htop # Ubuntu# 启动htop# 常用快捷键# F3 - 搜索进程# F4 - 过滤进程# F5 - 树形显示# F6 - 排序# F9 - 杀死进程# F10 - 退出
24. pgrep – 按名称查找进程 PID
用途:快速查找进程 PID。
# 查找 nginx 进程 PIDpgrep nginx# 1234# 1235# 显示进程名称pgrep -l nginx# 1234 nginx# 1235 nginx# 查找完整命令行匹配pgrep -f "nginx: worker"# 查找指定用户进程pgrep -u nginx
25. pkill – 按名称杀死进程
用途:批量杀死进程。
# 杀死所有 nginx 进程sudo pkill nginx# 强制杀死(SIGKILL)sudo pkill -9 nginx# 优雅关闭(SIGTERM,默认)sudo pkill -15 nginx# 杀死指定用户所有进程sudo pkill -u alice# 杀死匹配完整命令行的进程sudo pkill -f "java.*tomcat"
网络诊断(26-35)
26. ping – 测试网络连通性
用途:测试网络延迟、丢包率。
# 持续 pingping 8.8.8.8# ping 5 次后停止ping -c 5 8.8.8.8# 设置包大小(1000 字节)ping -s 1000 8.8.8.8# 设置超时时间(3 秒)ping -W 3 192.168.1.1# 快速 ping(0.2 秒间隔)ping -i 0.2 8.8.8.8
27. traceroute – 路由跟踪
用途:查看数据包到达目标的路径。
# 基础跟踪traceroute 8.8.8.8# 使用 ICMP(默认 UDP)traceroute -I 8.8.8.8# 设置最大跳数traceroute -m 20 8.8.8.8# 不解析域名(加速)traceroute -n 8.8.8.8
28. ss – 查看网络连接
用途:查看 socket 连接(替代 netstat,更快)。
# 查看所有 TCP 连接ss -t# 查看所有监听端口ss -tln# 查看所有 UDP 连接ss -u# 查看进程信息ss -tlnp# 查看连接数统计ss -s# 查看指定端口ss -tnlp | grep :80# 查看 ESTABLISHED 连接ss -t state established# 查看连接最多的 IPss -tn | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr | head -10
29. netstat – 网络统计(传统工具)
用途:查看网络连接、路由表、接口统计。
# 查看所有监听端口netstat -tln# 查看所有连接(含进程)netstat -tunlp# 查看路由表netstat -rn# 查看网络接口统计netstat -i# 持续显示连接状态netstat -c
30. ip – 网络接口与路由管理
用途:配置 IP、路由、网卡(替代 ifconfig)。
# 查看所有网卡ip addr show# 或简写ip a# 查看指定网卡ip a show eth0# 临时添加 IPsudo ip addr add 192.168.1.100/24 dev eth0# 删除 IPsudo ip addr del 192.168.1.100/24 dev eth0# 启用/禁用网卡sudo ip linkset eth0 upsudo ip linkset eth0 down# 查看路由表ip route show# 或简写ip r# 添加静态路由sudo ip route add 10.0.0.0/8 via 192.168.1.1 dev eth0# 删除路由sudo ip route del 10.0.0.0/8# 查看 ARP 表ip neigh show
31. curl – HTTP 客户端
用途:测试 HTTP 接口、下载文件、调试 API。
# 基础 GET 请求curl https://api.example.com/users# 显示响应头curl -I https://example.com# 保存输出到文件curl -o output.html https://example.com# 使用文件名保存curl -O https://example.com/file.tar.gz# POST 请求(JSON)curl -X POST https://api.example.com/users \ -H "Content-Type: application/json" \ -d '{"name":"alice","email":"alice@example.com"}'# 上传文件curl -F "file=@/path/to/file.txt" https://api.example.com/upload# 跟随重定向curl -L https://short.url/abc123# 显示详细过程curl -v https://example.com# 设置超时(5 秒)curl --connect-timeout 5 --max-time 10 https://example.com# 认证curl -u username:password https://api.example.com
32. wget – 文件下载
用途:下载文件、镜像网站。
# 基础下载wget https://example.com/file.tar.gz# 断点续传wget -c https://example.com/large-file.iso# 后台下载wget -b https://example.com/file.tar.gz# 限速(500KB/s)wget --limit-rate=500k https://example.com/file.tar.gz# 递归下载网站(慎用)wget -r -np -k https://example.com/docs/# 下载多个 URL(从文件读取)wget -i urls.txt# 设置 User-Agentwget --user-agent="Mozilla/5.0" https://example.com
33. nc (netcat) – 网络瑞士军刀
用途:端口扫描、端口监听、数据传输。
# 测试端口连通性nc -zv 192.168.1.1 22# Connection to 192.168.1.1 22 port [tcp/ssh] succeeded!# 扫描端口范围nc -zv 192.168.1.1 20-80# 监听端口(服务端)nc -l 8080# 连接并发送数据(客户端)echo"test message" | nc 192.168.1.1 8080# 文件传输(接收方)nc -l 8080 > received-file.tar.gz# 文件传输(发送方)nc 192.168.1.1 8080 < file.tar.gz# 聊天模式(服务端)nc -l 8080# 聊天模式(客户端)nc 192.168.1.1 8080
34. nslookup – DNS 查询
用途:查询域名 DNS 记录。
# 基础查询nslookup example.com# 指定 DNS 服务器nslookup example.com 8.8.8.8# 查询 MX 记录(邮件服务器)nslookup -query=mx example.com# 查询 NS 记录(域名服务器)nslookup -query=ns example.com# 反向查询(IP 到域名)nslookup 8.8.8.8
35. dig – DNS 诊断工具
用途:详细 DNS 查询与诊断。
# 基础查询dig example.com# 只显示答案dig example.com +short# 查询 MX 记录dig example.com MX# 查询所有记录dig example.com ANY# 指定 DNS 服务器dig @8.8.8.8 example.com# 反向查询dig -x 8.8.8.8# 跟踪递归查询dig example.com +trace
磁盘与文件系统(36-40)
36. df – 查看磁盘空间
用途:查看文件系统使用情况。
# 人类可读格式df -h# 显示文件系统类型df -hT# 查看 inode 使用df -i# 只看指定类型df -hT -t xfsdf -hT -t ext4
37. du – 查看目录大小
用途:统计文件或目录占用空间。
# 查看目录总大小du -sh /var/log# 查看子目录大小(1 层)du -h --max-depth=1 /var | sort -hr# 排除文件du -sh --exclude='*.log' /var# 查看文件大小du -h /var/log/messages# 总计du -ch /var/log/*.log | tail -1
38. lsblk – 列出块设备
用途:查看磁盘分区、挂载点、大小。
# 基础列表lsblk# 显示文件系统类型lsblk -f# 显示详细信息lsblk -o NAME,SIZE,TYPE,MOUNTPOINT,FSTYPE,UUID
39. fdisk – 分区管理
用途:查看和管理磁盘分区(MBR)。
# 查看所有磁盘sudo fdisk -l# 进入交互模式sudo fdisk /dev/sdb# 常用命令:# m - 帮助# p - 打印分区表# n - 新建分区# d - 删除分区# w - 保存并退出# q - 不保存退出
40. mount – 挂载文件系统
用途:挂载/卸载文件系统。
# 查看所有挂载点mount# 挂载文件系统sudo mount /dev/sdb1 /mnt# 挂载 ISO 镜像sudo mount -o loop /path/to/image.iso /mnt# 重新挂载(应用新参数)sudo mount -o remount,rw /data# 卸载sudo umount /mnt# 强制卸载(危险)sudo umount -f /mnt# 懒卸载(进程释放后卸载)sudo umount -l /mnt
日志查看(41-43)
41. tail – 查看文件末尾
用途:查看日志文件最新内容、实时监控日志。
# 查看最后 10 行(默认)tail /var/log/syslog# 查看最后 50 行tail -n 50 /var/log/syslog# 实时监控日志(常用)tail -f /var/log/nginx/access.log# 实时监控并显示行号tail -fn 100 /var/log/app.log# 监控多个文件tail -f /var/log/nginx/*.log
42. grep – 文本搜索
用途:在文件中搜索匹配的行。
# 基础搜索grep "error" /var/log/syslog# 忽略大小写grep -i "error" /var/log/syslog# 显示行号grep -n "error" /var/log/syslog# 显示匹配行前后 3 行grep -C 3 "error" /var/log/syslog# 只显示匹配行后 3 行grep -A 3 "error" /var/log/syslog# 递归搜索目录grep -r "database connection" /var/log/# 排除匹配行grep -v "debug" /var/log/app.log# 正则表达式grep -E "error|warning|critical" /var/log/syslog# 统计匹配行数grep -c "error" /var/log/syslog# 只显示文件名grep -l "error" /var/log/*.log
43. journalctl – systemd 日志查看
用途:查看 systemd 服务日志。
# 查看所有日志journalctl# 查看指定服务日志journalctl -u nginx# 实时监控日志journalctl -u nginx -f# 查看最近 100 行journalctl -n 100# 查看今天的日志journalctl --since today# 查看指定时间范围journalctl --since "2025-10-24 00:00:00" --until"2025-10-24 12:00:00"# 查看最近 1 小时journalctl --since "1 hour ago"# 查看内核日志journalctl -k# 按优先级过滤(0=emerg, 3=err, 6=info)journalctl -p err# 清理日志(保留最近 7 天)sudo journalctl --vacuum-time=7d# 清理日志(保留 1GB)sudo journalctl --vacuum-size=1G
性能监控(44-47)
44. iostat – I/O 统计
用途:监控磁盘 I/O 性能。
# 安装(sysstat 包)sudo yum install -y sysstat # RHEL/CentOSsudo apt install -y sysstat # Ubuntu# 显示 CPU 和磁盘 I/Oiostat# 每 2 秒刷新一次iostat 2# 只看磁盘 I/O(扩展信息)iostat -x 2# 以 MB 为单位iostat -xm 2# 查看指定磁盘iostat -x /dev/sda 2
关键指标:
-
• %util:磁盘使用率(>80% 表示 I/O 瓶颈) -
• await:平均等待时间(ms) -
• r/s、w/s:每秒读写次数
45. vmstat – 虚拟内存统计
用途:监控内存、swap、CPU、I/O。
# 显示统计(2 秒刷新)vmstat 2# 显示 5 次后退出vmstat 2 5# 显示详细内存统计vmstat -s# 显示磁盘统计vmstat -d
输出解释:
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 1 0 0 200000 50000 600000 0 0 5 10 100 150 5 2 92 1 0
-
• r:运行队列(>CPU 核数表示 CPU 瓶颈) -
• b:阻塞进程数 -
• si/so:swap 换入/换出(>0 表示内存不足) -
• wa:I/O 等待(>20% 表示 I/O 瓶颈)
46. sar – 系统活动报告
用途:历史性能数据收集与分析。
# 实时 CPU 使用率(2 秒刷新)sar -u 2# 实时内存使用率sar -r 2# 实时磁盘 I/Osar -d 2# 实时网络流量sar -n DEV 2# 查看历史数据(今天)sar -u -f /var/log/sysstat/sa$(date +%d)# 查看昨天数据sar -u -f /var/log/sysstat/sa$(date -d yesterday +%d)# 查看指定时间范围sar -u -s 10:00:00 -e 12:00:00
启用 sar 数据收集:
# RHEL/CentOSsudo systemctl enable sysstatsudo systemctl start sysstat# Ubuntusudo systemctl enable sysstatsudo sed -i 's/ENABLED="false"/ENABLED="true"/' /etc/default/sysstatsudo systemctl restart sysstat
47. free – 内存使用统计
用途:查看内存与 swap 使用情况。
# 人类可读格式free -h# 以 MB 为单位free -m# 持续监控(2 秒刷新)free -h -s 2# 显示总计行free -h -t
输出解释:
total used free shared buff/cache availableMem: 15Gi 7.5Gi 1.2Gi 500Mi 6.8Gi 7.2GiSwap: 4.0Gi 0B 4.0Gi
-
• available:实际可用内存(含可回收的 cache) -
• buff/cache:内核缓存(可释放)
安全与权限(48-50)
48. chmod – 修改文件权限
用途:设置文件或目录的读写执行权限。
# 数字模式(推荐)chmod 644 file.txt # -rw-r--r-- (所有者读写,其他只读)chmod 755 script.sh # -rwxr-xr-x (所有者全部,其他读执行)chmod 600 secret.key # -rw------- (所有者读写,其他无权限)# 符号模式chmod u+x script.sh # 所有者添加执行权限chmod g-w file.txt # 组去除写权限chmod o=r file.txt # 其他设置为只读# 递归修改目录chmod -R 755 /var/www/html# 只修改目录权限find /var/www -type d -execchmod 755 {} \;# 只修改文件权限find /var/www -type f -execchmod 644 {} \;
权限数字对照表:
-
• 7 (rwx):读+写+执行 -
• 6 (rw-):读+写 -
• 5 (r-x):读+执行 -
• 4 (r--):只读 -
• 0 (---):无权限
49. chown – 修改所有者
用途:修改文件或目录的所有者和组。
# 修改所有者sudochown alice file.txt# 修改所有者和组sudochown alice:devops file.txt# 只修改组sudochown :devops file.txt# 或sudochgrp devops file.txt# 递归修改sudochown -R nginx:nginx /var/www/html# 引用其他文件的所有者sudochown --reference=file1.txt file2.txt
50. ssh – 安全远程登录
用途:远程登录服务器、执行命令、文件传输。
# 基础登录ssh user@192.168.1.100# 指定端口ssh -p 2222 user@192.168.1.100# 执行远程命令ssh user@remote "df -h"# 执行本地脚本ssh user@remote 'bash -s' < local-script.sh# SSH 隧道(端口转发)ssh -L 8080:localhost:80 user@remote # 本地 8080 转发到远程 80# 反向隧道ssh -R 9090:localhost:3000 user@remote # 远程 9090 访问本地 3000# 禁用密码认证(只用密钥)ssh -o PasswordAuthentication=no user@remote# 跳板机登录ssh -J jumphost user@target# SSH 密钥生成ssh-keygen -t rsa -b 4096 -C "your_email@example.com"# 复制公钥到服务器ssh-copy-id user@remote
命令组合实战
1. 快速排查高 CPU 进程
ps aux --sort=-%cpu | head -10top -b -n 1 | head -20
2. 快速排查高内存进程
ps aux --sort=-%mem | head -10
3. 查找占用端口的进程
sudo ss -tlnp | grep :80sudo netstat -tlnp | grep :80sudo lsof -i :80
4. 批量杀死僵尸进程
ps aux | grep 'Z' | awk '{print $2}' | sudo xargs kill -9
5. 监控网络流量(实时)
iftop # 需安装nload # 需安装# 或原生方式watch -n 1 'cat /proc/net/dev'
6. 检查磁盘写入速度
ddif=/dev/zero of=/tmp/testfile bs=1M count=1024 oflag=direct
7. 批量检查服务器存活
for ip in 192.168.1.{1..254}; do ping -c 1 -W 1 $ip &>/dev/null && echo"$ip alive"done
8. 快速清理日志(保留最新 1000 行)
tail -n 1000 /var/log/app.log > /tmp/app.log.tmp && mv /tmp/app.log.tmp /var/log/app.log
最佳实践
-
1. 命令别名:在 ~/.bashrc添加常用别名:alias ll='ls -lh'alias la='ls -lAh'aliasdf='df -hT'aliasdu='du -h'alias free='free -h'alias psg='ps aux | grep'alias ports='ss -tlnp' -
2. 历史命令优化: # ~/.bashrcexport HISTSIZE=10000export HISTFILESIZE=10000export HISTTIMEFORMAT="%F %T "# 显示时间戳 -
3. 安全登录:统一使用 SSH 密钥,禁用密码认证。 -
4. 日志查看:优先使用 journalctl查看系统日志,tail -f实时监控应用日志。 -
5. 性能监控:定期查看 sar历史数据,排查性能趋势问题。 -
6. 脚本化:将常用命令组合封装为脚本,提高效率。 -
7. 权限最小化:生产环境避免使用 root 直接登录,使用 sudo 授权。 -
8. 定期备份:关键配置文件( /etc/fstab、/etc/ssh/sshd_config等)使用版本控制或定期备份。 -
9. 监控告警:结合 Prometheus + node_exporter 监控系统指标,设置告警阈值。 -
10. 文档化:将常用命令与故障排查步骤文档化,建立团队知识库。
微
信
群
WeChat group
为了方便大家更好的交流运维等相关技术问题,创建了微信交流群,需要加群的小伙伴们可以扫一扫下面的二维码加我为好友拉您进群(备注:加群)。

代
码
仓
库
| 代码仓库 | 网址 |
| Github | https://github.com/raymond999999 |
| Gitee | https://gitee.com/raymond9 |
博
客
Blog
| 博客 | 网址 |
|
|
https://blog.csdn.net/qq_25599925 |
| 稀土掘金 | https://juejin.cn/user/4262187909781751 |
| 知识星球 | https://wx.zsxq.com/group/15555885545422 |
| 阿里云社区 | https://developer.aliyun.com/profile/snzh3xpxaf6sg |
| 腾讯云社区 | https://cloud.tencent.com/developer/user/11823619 |
| 华为云社区 | https://developer.huaweicloud.com/usercenter/mycommunity/dynamics |
访问博客网站,查看更多优质原创内容。
夜雨聆风