Linux 常用命令与脚本技巧汇总

2026-05-08 · 技术

← 返回 技术 · ← 返回首页

在使用 Linux 进行日常运维和开发的过程中,逐渐积累了一些高频使用的命令和脚本技巧。这些命令可能不是每天都会用到,但在需要的时候确实能帮上大忙。每隔一段时间我都会重新审视和整理自己的命令清单,删掉已经不再需要的、补充新发现的。这篇就是近期整理的一份汇总。

文件查找和操作方面,find 是我用得最多的命令之一。除了基本的按文件名查找,它的高级用法才是真正的效率利器。比如查找并删除 7 天前的日志文件可以用 find /var/log -name '*.log' -mtime +7 -delete。查找大于 1GB 的大文件可以用 find / -type f -size +1G。结合 -exec 参数还能对找到的文件执行任意操作,比如批量修改文件权限或所有者。grep 的递归搜索也很常用,加上 -v 反向匹配、-A 和 -B 显示匹配行的上下文、-P 启用 Perl 正则引擎以支持更复杂的正则表达式。

文本处理方面,awk 和 sed 是两个不容忽视的工具。awk 在处理按列分隔的文本数据方面非常强大——它能让你像操作数据库一样查询和变换文本。比如提取一个 CSV 文件中第三列大于 100 的所有行并输出前两列,可以用 awk -F',' ' > 100 { print , }' data.csv。sed 则擅长做流式的文本替换和处理,常用的如批量替换文件中的某一个字符串、在指定行之后插入内容等。这两个工具配合管道一起使用时,能完成很多看起来需要专门写脚本来处理的文本分析工作。

系统监控和诊断的命令是运维中的基本功。top 和 htop 用来查看系统实时负载和进程列表,htop 的交互性更好一些。ss 是取代 netstat 的现代化网络连接查看工具,ss -tlnp 可以查看所有监听中的端口及其对应的进程。journalctl 是 systemd 的日志查看工具,journalctl -u 服务名 --since '1 hour ago' 可以查看某个服务最近一小时的日志。df -h 和 du -sh 分别是查看磁盘使用情况和目录大小的标准选择。

定时任务是自动化运维的基础。crontab 是最常用的方式,但要注意它的执行环境和交互式 shell 有所不同,环境变量如 PATH 往往需要自己在 crontab 文件或者脚本内部设置。对于更复杂的定时需求,systemd timer 是一个现代化的替代方案——它可以把定时触发和具体的执行命令以单元文件的形式统一管理,并且支持 OnBootSec、OnUnitActiveSec 等灵活的触发条件。