1. Linux运维工程师的日常工具箱作为一名从业十年的Linux系统管理员我深知命令行工具是我们最亲密的战友。每天与服务器打交道的过程中某些命令就像瑞士军刀一样不可或缺。这些工具不仅能提高工作效率更是排查系统问题的利器。下面这20个命令是我在运维工作中每天都会用到的核心工具它们构成了Linux运维的基础技能树。2. 系统状态监控类命令2.1 top - 实时系统监控top命令是Linux下最常用的性能监控工具它提供了系统运行的动态实时视图。我通常用它来快速查看CPU使用率包括用户空间和内核空间占比内存使用情况物理内存和交换分区各个进程的资源占用情况实用技巧在top界面中按1可以展开显示所有CPU核心的详细使用情况按M按内存排序按P按CPU排序。2.2 vmstat - 系统资源统计vmstat命令报告关于进程、内存、分页、块IO、陷阱和CPU活动的信息。我常用它来检查系统瓶颈vmstat 1 5 # 每隔1秒采样一次共采样5次这个命令特别适合发现间歇性性能问题比如内存泄漏或IO瓶颈。2.3 df/du - 磁盘空间管理df -h显示文件系统的磁盘空间使用情况而du -sh *则显示当前目录下各文件/目录的大小。这两个命令组合使用可以快速定位磁盘空间问题。3. 网络管理类命令3.1 netstat/ss - 网络连接分析虽然netstat正在被ss取代但两者都是分析网络连接的利器。我常用它们来查看所有TCP连接ss -tulnp检查特定端口的监听情况netstat -tuln | grep 80统计各种状态的连接数3.2 ping/traceroute - 网络连通性测试ping是最基础但最有用的网络诊断工具而traceroute则能显示数据包到达目标经过的路由路径。当网络出现问题时这两个命令通常是第一步。3.3 tcpdump - 网络包捕获tcpdump是网络问题排查的终极武器。例如要捕获所有进出eth0网卡、目标端口为80的流量tcpdump -i eth0 port 80 -w capture.pcap4. 文件与文本处理类命令4.1 grep - 文本搜索grep是Linux下最强大的文本搜索工具。我几乎每天都会用到它的各种变体grep -r error /var/log/ # 递归搜索目录 grep -v debug log.txt # 反向匹配 grep -A 3 -B 2 exception # 显示匹配行前后内容4.2 find - 文件查找find命令可以根据各种条件查找文件比如find / -name *.log -mtime 7 -size 10M # 查找大于10M且7天前的日志文件4.3 sed/awk - 文本处理sed和awk是文本处理的瑞士军刀。比如用awk统计Nginx日志中每个IP的访问量awk {print $1} access.log | sort | uniq -c | sort -nr5. 系统管理类命令5.1 ps - 进程查看ps aux可以查看系统所有进程的详细信息。我经常结合grep使用ps aux | grep nginx # 查找nginx相关进程5.2 kill/pkill - 进程管理当需要终止进程时kill和pkill是必备工具。但要注意重要提示先用kill -15发送SIGTERM信号让进程优雅退出如果无效再用kill -9强制终止。5.3 crontab - 定时任务crontab -e编辑当前用户的定时任务。我常用它来设置定期备份、日志轮转等任务。6. 权限与用户管理类命令6.1 chmod/chown - 文件权限管理chmod修改文件权限chown修改文件所有者。记住权限的数字表示法4 读(r)2 写(w)1 执行(x)6.2 sudo - 特权执行sudo允许授权用户以root权限执行命令。配置/etc/sudoers时需要特别小心。6.3 useradd/passwd - 用户管理创建新用户和设置密码是基础操作useradd -m -s /bin/bash newuser passwd newuser7. 软件包管理类命令7.1 apt/yum - 包管理根据发行版不同使用不同的包管理工具Debian/Ubuntu:apt update apt upgradeCentOS/RHEL:yum update7.2 dpkg/rpm - 底层包管理当需要直接操作软件包文件时使用dpkg -i package.deb # 安装deb包 rpm -ivh package.rpm # 安装rpm包8. 日志分析类命令8.1 tail/head - 日志查看tail -f实时查看日志文件的变化是排查问题的利器tail -f /var/log/nginx/error.log8.2 journalctl - 系统日志在systemd系统中journalctl是查看系统日志的主要工具journalctl -u nginx --since 1 hour ago9. 系统信息类命令9.1 uname - 系统信息uname -a显示系统内核版本和其他信息常用于确认系统环境。9.2 lscpu/lshw - 硬件信息lscpu显示CPU信息lshw显示详细的硬件配置。10. 高级运维技巧10.1 命令组合使用真正的Linux高手擅长将简单命令组合起来解决复杂问题。例如统计当前目录下各种类型文件的数量find . -type f | awk -F. {print $NF} | sort | uniq -c | sort -nr10.2 命令别名在~/.bashrc中设置别名可以大大提高效率alias llls -alhF alias grepgrep --colorauto10.3 历史命令利用history命令结合!可以快速重用历史命令!!重复上一条命令!$上一条命令的最后一个参数!ssh执行最近以ssh开头的命令掌握这20个命令只是Linux运维的起点。在实际工作中每个命令都有数十种参数组合和使用场景。我建议新手运维工程师先精通这些基础命令再逐步扩展知识面。记住真正的专业不在于知道多少命令而在于能否用最简单的工具解决最复杂的问题。