当前位置:首页>Linux>月薪2W+运维工程师都在用的Linux命令清单(建议收藏)

月薪2W+运维工程师都在用的Linux命令清单(建议收藏)

  • 2026-09-23 12:45:19
月薪2W+运维工程师都在用的Linux命令清单(建议收藏)

作为一名运维工程师,熟练掌握Linux命令是基本功中的基本功。无论是日常工作中的系统维护,还是面试时的技术考核,Linux命令都是绕不开的核心技能。本文将从实战角度出发,系统梳理运维工程师必须掌握的Linux命令,并结合实际场景解析其应用方法。

一、文件和目录操作:基础中的基础

1.1 文件查看命令

# 查看文件内容cat /etc/passwd              # 显示完整文件内容more /var/log/messages       # 分页查看大文件less /var/log/syslog         # 更灵活的分页查看head -20 /var/log/nginx.log  # 查看文件前20行tail -f /var/log/apache.log  # 实时监控日志文件

面试常问:more和less的区别?

  • • more只能向前翻页,less可以前后翻页
  • • less占用内存更少,适合查看大文件
  • • less支持搜索功能(/关键词)

1.2 文件查找命令

# find命令的高级用法find /var/log -name "*.log" -mtime -7        # 查找7天内修改的日志文件find /home -type f -size +100M               # 查找大于100M的文件find /etc -name "*.conf" -exec grep -l "port" {} \;  # 查找包含port的配置文件# locate命令(需要定期更新数据库)updatedb                     # 更新文件数据库locate nginx.conf           # 快速定位文件# which和whereiswhich python3               # 查找命令路径whereis nginx              # 查找二进制文件、源码、手册位置

1.3 文件权限管理

# 权限查看和修改ls -la /etc/passwd          # 查看详细权限信息chmod 755 /usr/local/bin/script.sh    # 修改权限chmod u+x,g+r,o-w filename           # 使用符号模式chown nginx:nginx /var/www/html      # 修改所有者和组chgrp www-data /var/log/nginx/       # 修改组所有权# 特殊权限chmod +t /tmp               # 设置粘滞位chmod +s /usr/bin/passwd    # 设置SUID

二、系统监控与性能分析

2.1 系统资源监控

# CPU和内存监控top                         # 实时查看系统状态htop                        # 更美观的topps aux | grep nginx         # 查看特定进程ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%cpu | head -10  # 按CPU使用率排序# 内存分析free -h                     # 查看内存使用情况cat /proc/meminfo          # 详细内存信息vmstat 1 5                 # 每秒显示一次,共5次系统状态

2.2 磁盘空间管理

# 磁盘使用情况df -h                      # 查看磁盘使用率du -sh /var/log/*          # 查看目录大小du -ah /home | sort -rh | head -20  # 查找最大的20个文件/目录# 磁盘IO监控iostat -x 1                # 每秒显示磁盘IO统计iotop                      # 实时查看进程IO使用情况

2.3 网络监控

# 网络连接状态netstat -tulpn             # 查看端口监听状态ss -tulpn                  # 更现代的netstat替代品lsof -i :80                # 查看80端口被哪个进程占用# 网络流量监控iftop                      # 实时网络流量监控nethogs                    # 按进程显示网络使用情况tcpdump -i eth0 port 80    # 抓包分析

三、文本处理与日志分析

3.1 文本处理三剑客

# grep:文本搜索grep -r "error" /var/log/                    # 递归搜索错误日志grep -i "failed" /var/log/auth.log           # 忽略大小写搜索grep -v "INFO" /var/log/app.log | head -20   # 排除INFO级别日志grep -E "192\.168\.1\.[0-9]+" access.log     # 使用正则表达式# sed:文本编辑sed 's/old/new/g' file.txt                   # 替换所有old为newsed -n '10,20p' file.txt                     # 显示10-20行sed -i 's/DEBUG/INFO/g' config.conf          # 直接修改文件sed '/^#/d' config.conf                      # 删除注释行# awk:文本分析awk '{print $1}' /var/log/nginx/access.log   # 提取第一列(IP地址)awk -F: '{print $1}' /etc/passwd             # 使用冒号分隔符awk '$3 > 100 {print $0}' data.txt          # 条件过滤

3.2 日志分析实战

# 分析访问日志# 统计访问量最高的IPawk '{print $1}' access.log | sort | uniq -c | sort -nr | head -10# 统计404错误awk '$9 == 404 {print $0}' access.log | wc -l# 分析访问时间分布awk '{print $4}' access.log | cut -d: -f2 | sort | uniq -c# 统计不同状态码数量awk '{print $9}' access.log | sort | uniq -c | sort -nr

四、进程管理与服务控制

4.1 进程管理

# 进程控制kill -9 PID                # 强制终止进程killall nginx              # 终止所有nginx进程pkill -f "python script"# 按名称模式终止进程pgrep -f nginx             # 查找进程PID# 后台任务管理nohupcommand &            # 后台运行命令jobs# 查看后台任务bg %1                      # 将任务转到后台fg %1                      # 将任务调到前台

4.2 系统服务管理

# SystemD服务管理systemctl start nginx      # 启动服务systemctl stop nginx       # 停止服务systemctl restart nginx    # 重启服务systemctl reload nginx     # 重载配置systemctl enable nginx     # 设置开机自启systemctl disable nginx    # 禁止开机自启systemctl status nginx     # 查看服务状态# 查看服务日志journalctl -u nginx        # 查看nginx服务日志journalctl -f -u nginx     # 实时跟踪日志

五、网络配置与故障排查

5.1 网络配置

# IP配置ip addr show               # 查看IP地址ip route show              # 查看路由表ip link show               # 查看网络接口# 传统网络命令ifconfig eth0              # 查看网卡信息route -n                   # 查看路由表arp -a                     # 查看ARP表

5.2 网络故障排查

# 连通性测试ping -c 4 google.com       # 测试网络连通性traceroute google.com      # 追踪路由路径mtr google.com             # 实时路由追踪# 端口测试telnet 192.168.1.1 80      # 测试端口连通性nc -zv 192.168.1.1 80      # 使用nc测试端口

六、压缩与备份

6.1 文件压缩

# tar命令tar -czf backup.tar.gz /var/www/           # 创建压缩包tar -xzf backup.tar.gz                     # 解压缩tar -tzf backup.tar.gz                     # 查看压缩包内容tar -czf backup-$(date +%Y%m%d).tar.gz /etc/  # 带日期的备份# 其他压缩工具zip -r backup.zip /var/www/                # 创建zip文件unzip backup.zip                           # 解压zip文件gzip file.txt                              # 压缩单个文件gunzip file.txt.gz                         # 解压缩

6.2 数据同步

# rsync数据同步rsync -avz /var/www/ user@remote:/backup/  # 同步到远程服务器rsync -avz --delete /var/www/ /backup/     # 同步并删除目标多余文件rsync -avz --exclude='*.log' /var/www/ /backup/  # 排除日志文件

七、系统安全与用户管理

7.1 用户管理

# 用户操作useradd -m -s /bin/bash username           # 创建用户usermod -aG sudo username                  # 添加用户到sudo组passwd username                            # 设置密码userdel -r username                        # 删除用户及主目录# 用户信息查看id username                                # 查看用户ID和组信息who# 查看当前登录用户w                                          # 查看用户活动last                                       # 查看登录历史

7.2 系统安全

# 系统日志检查tail -f /var/log/auth.log                  # 监控登录日志grep "Failed password" /var/log/auth.log   # 查找失败登录grep "sudo" /var/log/auth.log              # 查看sudo使用记录# 文件完整性检查md5sum file.txt                            # 计算MD5值sha256sum file.txt                         # 计算SHA256值

八、高级命令技巧

8.1 命令组合与管道

# 复杂的命令组合ps aux | grep nginx | grep -v grep | awk '{print $2}' | xargs kill -9# 查找nginx进程并终止cat /var/log/nginx/access.log | grep "GET" | awk '{print $1}' | sort | uniq -c | sort -nr | head -10# 统计GET请求最多的IPfind /var/log -name "*.log" -exec grep -l "error" {} \; | xargs ls -la# 查找包含error的日志文件并显示详细信息

8.2 脚本化运维

# 一键系统信息收集脚本#!/bin/bashecho"=== 系统信息 ===" > system_info.txtuname -a >> system_info.txtecho"=== CPU信息 ===" >> system_info.txtcat /proc/cpuinfo | grep "model name" | head -1 >> system_info.txtecho"=== 内存信息 ===" >> system_info.txtfree -h >> system_info.txtecho"=== 磁盘信息 ===" >> system_info.txtdf -h >> system_info.txtecho"=== 网络信息 ===" >> system_info.txtip addr show >> system_info.txt

九、面试常见问题解答

9.1 性能调优相关

Q: 如何查看系统负载?

uptime# 查看系统负载cat /proc/loadavg          # 详细负载信息w                          # 查看负载和用户

Q: 如何排查CPU使用率过高?

top -p PID                 # 监控特定进程strace -p PID              # 跟踪系统调用perf top                   # 性能分析工具

9.2 存储管理相关

Q: 如何找出占用空间最大的文件?

du -ah /var | sort -rh | head -20find /var -type f -size +100M -execls -lh {} \;

Q: 如何监控文件系统使用情况?

df -h                      # 查看磁盘使用率inotifywait -m /var/log/   # 监控文件变化

十、实战场景演练

10.1 服务器故障排查流程

# 1. 系统基本信息检查uptime && free -h && df -h# 2. 进程状态检查ps aux | head -20top -n 1 | head -20# 3. 网络状态检查netstat -tulpn | grep LISTENss -tulpn# 4. 日志检查tail -50 /var/log/messagesjournalctl -xe

10.2 日常维护脚本

#!/bin/bash# 系统健康检查脚本LOG_FILE="/var/log/health_check.log"DATE=$(date'+%Y-%m-%d %H:%M:%S')echo"[$DATE] 开始系统健康检查" >> $LOG_FILE# 检查磁盘使用率DISK_USAGE=$(df -h | grep -E "8[0-9]%|9[0-9]%|100%")if [ ! -z "$DISK_USAGE" ]; thenecho"[$DATE] 警告:磁盘使用率过高" >> $LOG_FILEecho"$DISK_USAGE" >> $LOG_FILEfi# 检查内存使用率MEM_USAGE=$(free | grep Mem | awk '{print ($3/$2) * 100.0}')if (( $(echo "$MEM_USAGE > 90" | bc -l) )); thenecho"[$DATE] 警告:内存使用率过高:$MEM_USAGE%" >> $LOG_FILEfi# 检查系统负载LOAD_AVG=$(uptime | awk -F'load average:''{print $2}' | cut -d, -f1 | tr -d ' ')if (( $(echo "$LOAD_AVG > 2.0" | bc -l) )); thenecho"[$DATE] 警告:系统负载过高:$LOAD_AVG" >> $LOG_FILEfiecho"[$DATE] 系统健康检查完成" >> $LOG_FILE

总结

掌握这些Linux命令不仅能帮助你在面试中脱颖而出,更重要的是能在实际工作中提高效率,快速定位和解决问题。记住,命令只是工具,真正的技能在于理解系统原理,能够根据实际情况灵活运用这些命令。

作为运维工程师,建议你:

  1. 1. 多动手实践,在测试环境中反复练习
  2. 2. 理解每个命令的工作原理,不只是记忆用法
  3. 3. 学会组合使用命令,提高工作效率
  4. 4. 关注系统安全,养成良好的运维习惯
  5. 5. 持续学习新的工具和技术

希望这篇文章能帮助你在Linux运维的道路上更进一步!


本文涵盖了运维工程师必须掌握的Linux命令技能,如果你觉得有用,欢迎分享给更多的运维同行!

文末福利

分享570个常用的Linux命令,它能一键搜索,快速查阅,PDF格式随时打开记忆,除了功能还包括详解,非常值得收藏。
同时,还准备了其他对应的Linux命令文档,包括常用命令解读、Linux命令速查等一并分享出来,大家可以参考收藏一下。
570个超全Linux命令大全!
 Linux命令大全完整版!

……

 领取方式在这里!

长按或扫描二维码
并备注关键词:Linux命令合集
即可免费直接获取

最新文章

随机文章