当前位置:首页>Linux>Linux王者进阶:100条“保命指令”清单上篇

Linux王者进阶:100条“保命指令”清单上篇

  • 2026-09-02 19:41:22
Linux王者进阶:100条“保命指令”清单上篇

同样的Linux系统,有人还在逐条敲命令,有人已经用脚本实现自动化运维。差距不在经验,而在对命令行工具链的掌握深度。今天,送上这份压箱底的100条指令清单上篇50条,建议收藏,用到时随时查阅。

在Linux的世界里,命令行是最高效的交互方式。但真正的高手,不是记住所有命令,而是知道在什么场景下用什么命令。

文件与磁盘类:

1. 查找大文件

find / -type f -size +100M -exec ls -lh {} \; 2>/dev/null | sort -k5 -h
场景:磁盘空间告警,需要快速找到哪些文件占用了大量空间。
说明:-size +100M查找大于100MB的文件,sort -k5 -h按人类可读的大小排序。
2. 统计目录大小
du -sh /* 2>/dev/null | sort -hr | head -10
场景:想知道根目录下哪些目录最占空间。
说明:-s汇总,-h人类可读,sort -hr按大小倒序。
3. 找出目录下文件数
ls -l | grep "^-" | wc -l

场景:统计当前目录下有多少个普通文件。
说明:grep "^-"匹配以-开头的行(普通文件),wc -l计数。

4. 批量重命名文件

rename 's/\.txt$/\.bak/' *.txt

场景:想把当前目录下所有.txt文件改成.bak。
说明:rename支持Perl正则表达式,比写循环更简洁。

5. 统计文件行数

find . -name "*.log" -exec wc -l {} \;

场景:想知道所有日志文件的总行数,用于评估日志量。

进程与性能类:

6. 找出消耗CPU最高的进程

ps aux --sort=-%cpu | head -10

场景:服务器负载突然升高,想找出“罪魁祸首”。
说明:--sort=-%cpu按CPU使用率降序排列。

7. 找出消耗内存最高的进程

ps aux --sort=-%mem | head -10

场景:内存不足时,找出内存大户。
说明:同上,按内存使用率排序。

8. 查看进程树

pstree -p PID | head -20
场景:想知道某个进程创建了哪些子进程。
说明:-p显示PID,方便后续操作。
9. 查看端口占用
ss -tulpn | grep LISTEN

场景:启动服务提示“端口已被占用”,想知道谁在用。
说明:ss是netstat的现代替代品,-tulpn显示监听端口及对应进程。

10. 实时查看日志

tail -f /var/log/messages | grep ERROR

场景:实时监控日志,只关心错误信息。
说明:tail -f实时跟踪,管道给grep过滤。

系统信息类:

11. 查看系统启动时间

who -b

场景:想知道服务器上次重启是什么时候。
说明:输出系统最后一次启动时间。

12. 查看当前连接数

netstat -an | grep ESTABLISHED | wc -l

场景:粗略评估当前服务负载。
说明:统计已建立的TCP连接数。

13. 查看TCP连接状态统计

netstat -n | awk '/^tcp/ {print $6}' | sort | uniq -c

场景:想知道当前连接中ESTABLISHED、TIME_WAIT各有多少。
说明:awk提取第6列(状态字段),sort+uniq -c统计。

14. 查看系统发行版信息

cat /etc/os-release

场景:接手一台服务器,想知道装的是什么系统。
说明:显示操作系统名称、版本等。

15. 查看内核版本

uname -a
场景:确认内核版本,判断是否需要升级或修复漏洞。

批量操作类:

16. 批量创建用户

for user in user{1..10}; do useradd $user; echo "$user:pass123" | chpasswd; done

场景:实验室环境需要创建10个测试用户。
说明:{1..10}生成序列,循环批量创建。

17. 批量修改文件内容

find . -name "*.conf" -exec sed -i 's/old_ip/new_ip/g' {} \;

场景:迁移服务后,需要批量修改配置文件中的IP地址。
说明:find找到所有.conf文件,sed -i直接修改文件。

18. 批量压缩日志

for file in *.log; do gzip "$file"; done

场景:日志轮转前,手动压缩旧日志。
说明:循环压缩,注意文件名有空格时加引号。

19. 批量修改文件权限

find . -type f -exec chmod 644 {} \;find . -type d -exec chmod 755 {} \;

场景:上传文件后,需要统一设置权限。
说明:文件644(rw-r--r--),目录755(rwxr-xr-x)。

20. 批量删除旧文件

find /tmp -type f -name "*.tmp" -mtime +7 -delete

场景:清理7天前的临时文件。
说明:-mtime +7修改时间超过7天,-delete直接删除(慎用!)。

文本处理类:

21. 查看历史命令使用频率

history | awk '{print $2}' | sort | uniq -c | sort -rn | head -20

场景:想知道自己最常用的20个命令是什么。
说明:提取命令名,统计频率,很有趣的自我分析。

22. 提取文件中的IP地址

grep -oE '([0-9]{1,3}\.){3}[0-9]{1,3}' access.log | sort | uniq -c | sort -rn

场景:分析访问日志,统计哪些IP访问最多。
说明:-o只输出匹配部分,-E扩展正则。

23. 找出重复行

sort file.txt | uniq -d

场景:检查配置文件是否有重复项。
说明:uniq -d只显示重复的行。

24. 文件分割

split -l 1000 bigfile.txt part_

场景:文件太大打不开,想分成小文件处理。
说明:每1000行分割成一个文件,前缀为part_。

25. 文件合并

cat part_* > original.txt

场景:分割处理后,需要合并回原文件。
说明:cat按文件名顺序合并。

系统管理类:

26. 生成随机密码

openssl rand -base64 12

场景:需要生成一个安全的临时密码。
说明:输出12字节的base64编码,约16个字符。

27. 定时任务管理

(crontab -l 2>/dev/null; echo "0 */6 * * * /scripts/check.sh") | crontab -

场景:想添加一个cron任务,同时保留原有任务。
说明:先列出原有任务,加上新任务,再一次性写入。

28. 查看服务依赖

systemctl list-dependencies sshd

场景:想知道sshd服务依赖哪些单元。
说明:显示单元依赖树,方便排查启动问题。

29. 查看启动耗时

systemd-analyze blame | head -10

场景:服务器启动慢,想找出哪些服务拖后腿。
说明:按初始化耗时排序,显示最慢的10个服务。

30. 防火墙规则备份

iptables-save > iptables.rules
场景:修改防火墙前先备份,防止改错无法恢复。
说明:保存当前规则到文件。

系统追踪类:

31. 追踪系统调用

strace -p PID -e trace=file,network

场景:怀疑进程在读写哪个文件、连接哪个网络。
说明:-e trace=file,network只追踪文件和网络相关调用,减少噪音。

32. 追踪库函数调用

ltrace -p PID -e malloc,free

场景:怀疑有内存泄漏,想看内存分配释放情况。
说明:追踪动态库调用,-e指定函数名。

33. 查看进程打开的文件

lsof -p PID | wc -l

场景:遇到“Too many open files”错误,查看当前打开文件数。
说明:lsof -p PID列出进程打开的所有文件描述符。

34. 查看哪个进程在使用某个文件

lsof /var/log/messages

场景:想修改日志文件,提示“设备或资源忙”。
说明:找出谁占用了这个文件。

35. 查看系统调用统计

strace -c -p PID

场景:想知道进程主要在做什么系统调用,分析性能瓶颈。
说明:运行一段时间后按Ctrl+C,输出统计报告。

性能分析类:

36. 分析磁盘IO

iostat -x 1 5

场景:系统响应慢,怀疑磁盘IO是瓶颈。
说明:-x显示扩展统计,1 5每秒一次共5次。

37. 查看IO等待进程

iotop -o

场景:想知道哪些进程在大量读写磁盘。
说明:-o只显示正在IO的进程。

38. 网络抓包分析

tcpdump -i eth0 -c 100 -w capture.pcap

场景:怀疑网络有问题,需要抓包分析。
说明:-c 100抓100个包,-w保存文件,用Wireshark分析。

39. 查看网络带宽使用

iftop -i eth0

场景:想知道哪些连接在占用带宽。
说明:交互式工具,显示实时带宽使用情况。

40. 查看内存分配详情

cat /proc/meminfo | grep -E "^(MemTotal|MemFree|Cached|Buffers)"

场景:free -h不够详细,想看缓存、缓冲区的具体值。
说明:直接读取内核内存信息。

硬件诊断类:

41. 查看CPU信息

lscpu | grep -E "Model name|CPU\(s\)|MHz"

场景:想知道服务器CPU型号、核心数、频率。
说明:过滤关键信息,避免输出太多。

42. 查看内存硬件信息

dmidecode -t memory | grep -E "Size|Type|Speed"

场景:需要确认物理内存插槽使用情况。
说明:需要root权限,显示内存硬件详细信息。

43. 查看硬盘健康状态

smartctl -H /dev/sda

场景:怀疑硬盘即将损坏,提前检查。
说明:需要安装smartmontools,-H查看健康状态。

44. 测试磁盘读写速度

dd if=/dev/zero of=/tmp/test bs=1M count=100 conv=fdatasync

场景:想粗略测试磁盘写入性能。
说明:conv=fdatasync确保数据真正写入磁盘,不计缓存。

45. 查看PCI设备信息

lspci -v | grep -A 10 "Ethernet"

场景:想确认网卡型号和驱动。
说明:-v详细信息,-A 10显示匹配行后10行。

日志与调试类:

46. 查看内核环缓冲区

dmesg -T | tail -20

场景:硬件问题、驱动报错通常在这里。
说明:-T显示人类可读的时间戳。

47. 跟踪内核事件

trace-cmd record -e sched_switch sleep 10trace-cmd report

场景:想分析调度器行为、任务切换情况。
说明:trace-cmd是ftrace的前端,功能强大。

48. 动态追踪内核函数

perf probe --add tcp_sendmsgperf record -e probe:tcp_sendmsg -aR sleep 10perf script

场景:想追踪TCP发送函数的调用情况。
说明:perf是性能剖析利器,支持动态探针。

49. 查看应用程序错误日志

journalctl -u nginx --since "1 hour ago" -p err

场景:想看nginx过去1小时的错误日志。
说明:-p err只显示ERROR及以上级别。

50. 实时监控日志并触发动作

tail -f /var/log/app.log | while read line; do    if echo "$line" | grep -q "FATAL"; then        curl -X POST -d "text=$line" https://alert-server/webhook    fidone
场景:日志中出现致命错误时,实时发送告警。
说明:结合管道和条件判断,实现自动化响应。
关注我,为您分享更多的IT知识!后期为您整理分享进阶下篇,记得点赞收藏哟!

最新文章

随机文章