Linux命令学习三部曲与高效运维技巧

发布时间:2026/7/16 10:16:34
Linux命令学习三部曲与高效运维技巧 1. Linux命令基础认知与学习路径作为一个在Linux环境下摸爬滚打多年的老运维我见过太多新手面对黑底白字的终端窗口时的手足无措。Linux命令系统就像一座庞大的工具库掌握正确的学习方法比死记硬背命令更重要。这里分享我总结的Linux命令学习三部曲1.1 命令体系结构解析Linux命令本质上都是可执行程序主要存放在以下几个目录/bin基础命令如ls、cp等系统必需命令/sbin系统管理命令如ifconfig、fdisk等/usr/bin用户通用命令如gcc、python等/usr/sbin系统管理工具如sshd、httpd等理解这种分类有助于快速定位命令位置。比如系统启动阶段只能使用/bin和/sbin下的命令因为其他目录尚未挂载。1.2 命令学习黄金法则我强烈建议新手遵循3W学习法What先用whatis命令查看简要说明whatis lsWhere用which或whereis定位命令位置which python whereis gccHow用--help查看简易帮助用man查看完整手册ls --help man grep1.3 命令自动补全技巧熟练使用Tab键补全可以提升3倍工作效率单次Tab唯一匹配时自动补全双击Tab显示所有匹配项补全路径时用/分隔目录层级提示在~/.inputrc中添加set show-all-if-ambiguous on可以让Tab在模糊匹配时直接显示候选项不用二次敲击2. 文件操作命令实战精要2.1 文件查看与搜索ls命令的进阶用法ls -lh # 人类可读的文件大小 ls -lt # 按时间排序 ls -d */ # 只显示目录 ls -R # 递归显示子目录find命令的黄金组合find /var/log -name *.log -mtime 7 -size 10M -exec rm {} \; # 查找/var/log下7天前创建的超过10MB的日志文件并删除2.2 文件内容处理三剑客grep文本搜索grep -rn error /var/log/ # 递归搜索error关键词 grep -v ^# nginx.conf # 排除注释行sed流编辑器sed -i s/old/new/g file.txt # 批量替换文本 sed -n 10,20p access.log # 打印10-20行awk数据处理awk {print $1,$4} access.log # 打印第1和第4列 awk -F: {print User: $1 Shell: $7} /etc/passwd2.3 文件权限深度管理权限数字表示法计算示例rwx r-x --x 111 101 001 → 751特殊权限位说明SUID4执行时临时拥有所有者权限SGID2在目录下新建文件继承组权限Sticky1只有所有者能删除自己的文件设置特殊权限chmod 4755 /usr/bin/passwd # 设置SUID chmod 2770 /shared # 设置SGID chmod 1777 /tmp # 设置Sticky3. 系统管理核心命令3.1 进程管理实战ps命令组合示例ps aux --sort-%mem | head -10 # 查看内存占用TOP10 ps -ef | grep nginx # 查找nginx进程top交互命令备忘M按内存排序P按CPU排序1显示所有CPU核心k结束指定PID进程3.2 网络配置与诊断ss替代netstat的现代用法ss -tulnp # 查看监听端口 ss -o state established ( dport :ssh or sport :ssh ) # 查看SSH活动连接tcpdump抓包实例tcpdump -i eth0 -nn port 80 and host 192.168.1.100 -w http.pcap3.3 磁盘空间管理df和du黄金组合df -hT /home # 查看挂载点空间 du -sh * | sort -h # 排序显示当前目录大小查找大文件的三种方法find / -type f -size 100M -exec ls -lh {} \; du -a / 2/dev/null | sort -n -r | head -n 10 ls -lhS /path | head -104. 高效运维技巧合集4.1 终端生产力工具tmux分屏操作tmux new -s session1 # 新建会话 Ctrlb % # 垂直分屏 Ctrlb # 水平分屏 Ctrlb 方向键 # 切换窗格history优化配置# 在~/.bashrc中添加 HISTSIZE10000 HISTFILESIZE20000 HISTTIMEFORMAT%F %T 4.2 命令行快捷键大全Ctrl a移动到行首Ctrl e移动到行尾Ctrl u删除到行首Ctrl k删除到行尾Alt b向后跳一个单词Alt f向前跳一个单词Ctrl r反向搜索历史命令4.3 实用脚本片段收藏批量重命名脚本# 将.JPG改为.jpg for file in *.JPG; do mv $file ${file%.JPG}.jpg; done日志分析脚本awk {print $1} access.log | sort | uniq -c | sort -nr | head -10监控脚本模板while true; do clear date echo CPU Load: $(uptime) echo Memory Use: $(free -m | awk /Mem/{print $3/$2MB}) sleep 5 done5. 进阶命令与排错指南5.1 性能分析命令vmstat解读示例vmstat 1 5 # procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- # r b swpd free buff cache si so bi bo in cs us sy id wa st关键指标说明r运行队列长度CPU瓶颈时CPU核数waIO等待百分比20%说明IO瓶颈us sy用户态和系统态CPU使用率理想情况70%5.2 系统启动问题排查救援模式常用命令journalctl -xb # 查看启动日志 dmesg | grep -i error # 检查内核错误 fsck /dev/sda1 # 文件系统检查 mount -o remount,rw / # 重新挂载为可写5.3 安全加固建议关键安全命令last -10 # 查看登录记录 chkconfig --list # 查看服务启动项 lsof -i :22 # 查看SSH端口连接 passwd -l username # 锁定用户账号6. 命令组合与自动化6.1 管道高级用法统计代码行数find src/ -name *.py -type f | xargs wc -l | sort -nr批量转换编码find . -name *.txt -exec iconv -f GBK -t UTF-8 {} -o {}.utf8 \;6.2 正则表达式实战提取IP地址grep -Eo [0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3} access.log验证邮箱格式grep -E ^[A-Za-z0-9._%-][A-Za-z0-9.-]\.[A-Za-z]{2,6}$ emails.txt6.3 计划任务配置crontab示例# 每天凌晨备份 0 2 * * * /usr/bin/rsync -avz /data/ backup:/backups/ # 每5分钟检查服务 */5 * * * * /usr/bin/systemctl is-active --quiet nginx || systemctl restart nginxat单次任务示例echo shutdown -h now | at 23:00