深夜两点,服务器突然报警,你顶着惺忪睡眼打开终端。这时候要是还去翻手册查命令,恐怕头发又要多掉几根。掌握这些藏在键盘里的"武功秘籍",关键时刻能让你少熬三小时夜班。
一、命令行里的瑞士军刀
老鸟们总说"工欲善其事必先利其器",在Linux世界里,这几个命令组合就像你的多功能工具包:
- 实时监控三件套:
watch -n 1 'ps aux | grep nginx'
盯着进程不撒手 - 数据侦探套装:
grep -C 3 'error' /var/log/syslog | awk '{print $5}'
瞬间定位问题根源 - 空间清理大师:
find /var/log -name ".log" -size +100M -exec rm {} \\;
专治磁盘爆满
场景 | 小白操作 | 老司机操作 |
查看实时进程 | 反复执行ps aux | 使用htop交互式查看 |
日志分析 | vim打开大文件卡死 | tail -f配合grep实时过滤 |
1.1 文件操作的隐藏技能
别再用FTP传文件了,试试这些骚操作:
- scp跨服务器搬运:
scp -r ~/project user@remote:/backup
- rsync增量同步:
rsync -avz /photos remote:/backup
- tar打包压缩一气呵成:
tar czvf archive.tar.gz --exclude='.tmp' /data
二、权限管理的艺术
还记得上次因为权限问题背锅吗?这几个命令能救你:
命令 | 典型用法 | 易错点 |
chmod | chmod 755 script.sh | 忘记-R递归修改目录 |
chown | chown www-data:dev /var/www | 用户组用冒号分隔 |
遇到"Permission denied"别急着sudo,先用namei -l /path/to/file
看看哪层权限卡脖子了。
2.1 特殊权限的妙用
给脚本加上chmod +x
只是入门,试试这些进阶操作:
- 让普通用户临时拥有root权限:
chmod u+s /usr/bin/myscript
- 防删文件小技巧:
chattr +i important_file
- 自动继承父目录权限:
setfacl -d -m u::rwx,g::r-x,o::r-x /shared
三、系统监控的十八般武艺
服务器抽风时,这几个命令就是你的听诊器:
- 实时负载:
uptime
看一眼就知道该不该加机器 - 内存侦探:
free -h
里的available才是真可用内存 - IO瓶颈:
iostat -x 1
看%util飙到多少了
突然发现CPU占用100%?别慌,跟着这个流程走:
top
按P排序找进程strace -p 可疑PID
看系统调用perf top
查函数级热点
3.1 网络问题排查三板斧
网站打不开?先来套组合拳:
telnet 目标端口
测连通性tcpdump -i eth0 port 80
抓包分析ss -tnlp
看端口监听情况
四、Shell脚本的奇技淫巧
别再用记事本写脚本了,试试这些专业操作:
需求 | 笨办法 | 优雅实现 |
遍历文件 | for i in $(ls) | find配合xargs |
参数检查 | 多个if判断 | getopts处理选项 |
记得在脚本开头加上set -euo pipefail
,能让你的脚本健壮性提升一个量级。处理用户输入时,一定要用[[ ]]
代替[ ]
,避免很多奇怪的bug。
4.1 日志分析的杀手锏
面对GB级的日志文件,这几个命令组合能救命:
- 按时间筛选:
sed -n '/2023-08-01 14:00:00/,/2023-08-01 15:00:00/p' access.log
- 统计TOP IP:
awk '{print $1}' access.log | sort | uniq -c | sort -nr | head
- 实时监控:
tail -f access.log | grep -E '500|503'
窗外的天色渐渐泛白,你保存完最后一个脚本,顺手敲下alias mycheck='/root/scripts/system_check.sh'
。晨光中,咖啡杯见底,而今天的运维战争,已经赢在起跑线上。