Linux系统管理必备:高效命令行操作与实用技巧
1. Linux基础指令再探作为Linux系统管理员日常工作的基石命令行操作的高效性直接决定了生产力水平。上期我们探讨了文件目录操作的基础指令这次将深入更多实用场景特别针对新手容易混淆的参数组合进行实例演示。经验之谈在终端输入命令时善用Tab键自动补全不仅能避免拼写错误还能通过显示候选命令帮助记忆指令格式。1.1 文本处理三剑客grep的递归搜索是排查日志的利器grep -rn error /var/log/ # 递归搜索/var/log目录下所有文件内容-r参数实现目录递归-n显示匹配行号组合-i可忽略大小写sed的批量替换在实际运维中极为常用sed -i s/old_string/new_string/g *.conf # 批量修改当前目录conf文件内容-i直接修改源文件务必先备份g标志表示全局替换awk的字段处理能力适合提取结构化数据awk -F: {print $1,$6} /etc/passwd # 提取用户名和家目录-F指定分隔符为冒号$1表示第一列字段2. 系统监控指令实战2.1 进程管理进阶ps aux的常见输出解析USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.1 169316 13104 ? Ss May31 0:23 /sbin/initVSZ虚拟内存用量KBRSS实际物理内存占用STAT中S表示休眠状态s表示会话领导者top的交互命令备忘M按内存占用排序P按CPU占用排序1显示多核CPU详情q退出界面2.2 网络状态诊断netstat的经典组合netstat -tulnp # 查看所有监听端口及对应进程-tTCP连接-uUDP连接-l监听状态-n显示数字地址-p显示进程信息ss作为更现代的替代方案ss -ltp # 更快速的TCP监听端口查看3. 文件系统深度操作3.1 权限管理精髓权限数字表示法的计算逻辑r4, w2, x1 rwxr-xr-- 754修改权限的两种方式chmod 755 script.sh # 数字形式 chmod ux,g-w,or filename # 符号形式3.2 磁盘空间分析df和du的黄金组合df -h # 查看分区使用情况人类可读格式 du -sh * | sort -h # 排序显示当前目录各文件大小-h自动转换GB/MB单位-s只显示总计sort -h按人类可读数值排序4. 实用工具链技巧4.1 压缩解压大全不同压缩格式的处理方式# .tar.gz tar -czvf archive.tar.gz dir/ # 压缩 tar -xzvf archive.tar.gz # 解压 # .zip zip -r archive.zip dir/ unzip archive.zip # .bz2 bzip2 filename bunzip2 filename.bz24.2 定时任务配置crontab的时间格式详解* * * * * command ┬ ┬ ┬ ┬ ┬ │ │ │ │ └─ 星期几 (0 - 6) (0表示周日) │ │ │ └─── 月份 (1 - 12) │ │ └───── 日 (1 - 31) │ └─────── 小时 (0 - 23) └───────── 分钟 (0 - 59)添加每5分钟执行的示例*/5 * * * * /path/to/script.sh5. 环境配置与调试5.1 变量与路径管理查看环境变量的几种方式printenv # 显示所有环境变量 echo $PATH # 查看PATH变量 env | grep -i proxy # 查找代理设置添加PATH的持久化方法# 对当前用户生效 echo export PATH$PATH:/new/path ~/.bashrc source ~/.bashrc5.2 系统服务控制systemd常用操作systemctl status sshd # 查看服务状态 systemctl start nginx # 启动服务 systemctl enable docker # 设置开机自启 journalctl -u service -f # 实时查看服务日志6. 高级组合技巧6.1 管道重定向妙用统计代码行数的经典命令find . -name *.py -type f | xargs wc -l | sort -nfind定位所有.py文件xargs将结果作为参数传递wc -l统计行数sort -n按数值排序6.2 后台任务管理nohup与的配合使用nohup ./long_run.sh output.log 21 重定向标准输出21将错误输出合并到标准输出放入后台运行nohup防止SSH断开导致进程终止查看后台任务jobs -l # 显示任务列表 fg %1 # 将1号任务调回前台7. 安全相关指令7.1 用户权限控制sudo配置注意事项visudo # 安全编辑sudoers文件推荐配置格式username ALL(ALL) NOPASSWD: /usr/bin/systemctl restart nginx7.2 SSH安全加固密钥对认证设置流程ssh-keygen -t ed25519 # 生成密钥对 ssh-copy-id userhost # 上传公钥服务器端关键配置PasswordAuthentication no # 禁用密码登录 PermitRootLogin no # 禁止root直接登录8. 性能分析工具8.1 实时监控方案vmstat的输出解读vmstat 1 5 # 每隔1秒采样共5次关键指标r运行队列长度si/so交换区换入换出us/sy用户/系统CPU时间占比8.2 内存分析工具free的准确解读free -h重点关注available实际可用内存包含缓存可回收部分当swap使用率持续过高时需警惕内存瓶颈9. 日志分析实战9.1 常见日志位置关键日志文件路径/var/log/messages # 系统主日志 /var/log/secure # 认证相关 /var/log/nginx/ # Nginx日志目录 /var/log/syslog # Ubuntu系统日志9.2 日志分析技巧实时监控新日志tail -f /var/log/nginx/access.log | grep 500按时间范围过滤sed -n /May 30 10:00/,/May 30 11:00/p /var/log/messages10. 故障排查流程10.1 问题定位三板斧确认服务状态systemctl is-active nginx检查端口监听ss -ltnp | grep :80查看错误日志journalctl -u nginx --since 1 hour ago10.2 资源瓶颈检查快速诊断脚本echo CPU负载; uptime echo 内存使用; free -h echo 磁盘空间; df -h echo IO等待; iostat -x 1 3