1. 为什么需要掌握Linux关键指令
第一次接触Linux终端的新手,面对黑底白字的命令行界面总会感到手足无措。记得我2008年刚入行时,连最基本的文件列表命令都要翻手册。但经过十五年运维工作验证,真正高频使用的核心指令不超过50个,掌握这些就能应对90%的日常操作。
与图形界面相比,命令行操作具有三大不可替代的优势:
- 远程管理:通过SSH连接服务器时,命令行是唯一选择
- 批处理效率:用管道组合简单命令,能完成复杂任务
- 资源消耗低:在老旧设备或生产环境更稳定可靠
2. 文件操作核心指令
2.1 目录导航与查看
bash复制pwd # 显示当前工作目录(print working directory)
ls -lh # 人性化显示文件大小(-h参数将字节转换为KB/MB)
cd - # 快速返回上一个目录(比反复按Tab补全更高效)
经验:
ls -lht按修改时间倒序排列,排查最新文件时特别有用
2.2 文件操作四件套
bash复制cp -a source dest # 归档模式复制,保留所有属性
mv old new # 重命名比Windows更直观
rm -i *.log # 交互式删除防止误操作
mkdir -p a/b/c # 自动创建多级目录
避坑指南:
- 生产环境慎用
rm -rf,可配置alias rm='rm -i' - 跨设备复制时
rsync比cp更可靠,支持断点续传
2.3 文本处理三板斧
bash复制grep -n "error" log.txt # 显示行号的精准搜索
sed -i 's/foo/bar/g' file # 批量替换文件内容
awk '{print $1}' data.csv # 提取CSV第一列
性能对比:
| 命令 | 10MB文件耗时 | 适用场景 |
|---|---|---|
| grep | 0.02s | 简单模式匹配 |
| ack | 0.15s | 递归搜索代码 |
| ripgrep | 0.01s | 超大型日志文件 |
3. 系统监控与进程管理
3.1 资源监控黄金组合
bash复制top -c # 显示完整命令(定位Java进程必备)
htop # 交互式进程管理器(需额外安装)
df -hT # 显示磁盘使用情况和文件系统类型
free -m # 以MB为单位显示内存
诊断案例:
当发现load average持续高于CPU核心数时:
- 用
top查看%CPU高的进程 strace -p PID跟踪系统调用perf top分析性能瓶颈
3.2 进程管理实战
bash复制nohup ./server & # 后台运行并忽略SIGHUP信号
kill -9 $(pgrep java) # 强制终止所有Java进程
lsof -i :8080 # 查看占用端口的进程
警告:
kill -9是最后手段,应先尝试kill -15给进程清理机会
4. 网络调试技巧
4.1 连通性测试
bash复制ping -c 4 example.com # 限制发送包数
traceroute -n 8.8.8.8 # 禁用DNS解析加快速度
mtr --report google.com # 结合ping+traceroute
4.2 端口与服务检查
bash复制netstat -tulnp # 显示所有监听端口(老系统)
ss -plnt # 更现代的替代方案
telnet mail 25 # 手动测试SMTP服务
网络状态速查表:
| 状态 | 含义 | 常见原因 |
|---|---|---|
| TIME_WAIT | 连接正常关闭 | 高并发短连接 |
| CLOSE_WAIT | 远端已关闭,本地未关闭 | 程序未调用close() |
| SYN_RECV | 正在建立连接 | SYN洪水攻击 |
5. 权限管理精髓
5.1 用户与组操作
bash复制useradd -m -s /bin/bash user1 # 创建用户并生成家目录
passwd -l user2 # 锁定账户(比删除更安全)
usermod -aG sudo user1 # 添加sudo权限
5.2 文件权限控制
bash复制chmod 750 script.sh # 所有者可读写执行,组可读执行
chown -R www:www /var/www # 递归修改属主和属组
setfacl -m u:user1:rw file # 添加ACL特殊权限
权限数字记忆法:
- 4 = 读(r)
- 2 = 写(w)
- 1 = 执行(x)
- 7 = 4+2+1 = rwx
- 6 = 4+2 = rw-
6. 高效工作流技巧
6.1 终端多路复用
bash复制tmux new -s session1 # 创建新会话
Ctrl+b % # 垂直分屏
Ctrl+b d # 分离会话(后台运行)
6.2 历史命令优化
bash复制!$ # 重用上条命令的最后一个参数
Ctrl+r # 反向搜索历史命令
history | grep "docker" # 过滤特定命令
常用组合技:
bash复制# 统计当前目录下每种文件类型的数量
find . -type f | awk -F. 'NF>1{print $NF}' | sort | uniq -c
# 快速备份配置文件
cp /etc/nginx/nginx.conf{,.bak}
十五年运维生涯让我深刻体会到:与其死记硬背数百个命令,不如精通这几十个核心指令的组合运用。建议新手先在测试环境反复练习危险命令(如rm、chmod等),养成man command查看手册的习惯,逐步建立自己的命令速查笔记。