作为IT工程师,Linux命令是日常必备技能。以下分类整理常用命令及场景说明,并附上实用技巧:
一、文件与目录操作
1. 核心命令:
- ls -alh
(显示隐藏文件+详细信息+人性化大小)
- cd -
(快速返回上一个目录)
- pwd -P
(显示真实物理路径)
- mkdir -p project/{src,log,bak}
(递归创建多级目录结构)
- cp -av source dest
(保留属性递归复制)
- rm -rf !(important)
(删除除important外的所有文件)
高阶技巧:
# 快速备份文件(带时间戳)
cp config.conf{,.bak_$(date +%F)}
# 按大小排序文件
du -sh * | sort -h
二、文本处理三剑客
1. grep进阶:
bash
grep -P '\d{3}-\d{4}' access.log # 正则匹配电话号码
grep --color=auto -n 'error' *.log # 高亮显示行号
sed实战:
# 批量替换文本
sed -i 's/old_domain/new_domain/g' *.conf
# 删除空行和注释
sed -i '/^$/d; /^#/d' config.ini
awk数据分析:
# 统计Nginx日志状态码
awk '{count[$9]++} END {for(code in count) print code, count[code]}' access.log
# 提取特定列并计算
df | awk '$1!="tmpfs"{sum+=$3}END{print "Used:",sum/1024,"GB"}'
三、系统监控与性能 1. 实时监控组合: ```bash watch -n 1 'df -h; free -m; top -bn1 | head -10'
# 网络流量监控 nload -u M eth0 ```
进程管理技巧:
# 查找并杀死僵尸进程
ps -A -ostat,ppid | grep -e '[zZ]' | awk '{print $2}' | xargs kill -9
# 查看进程树
pstree -apnh
四、网络诊断工具链
1. 连通性测试:
bash
mtr -w 8.8.8.8 # 结合ping+traceroute
tcpping -p 443 example.com # TCP端口测试
bash
tcpdump -i eth0 -nn 'port 80 and host 192.168.1.100' -w http.pcap
tshark -r http.pcap -Y "http.request" -T fields -e http.host
五、权限与安全 1. 特殊权限管理: ```bash # 查找SUID文件 find / -perm -4000 -exec ls -ld {} \;
# 批量修改权限 find /var/www -type d -exec chmod 750 {} \; ```
bash
# 免密登录+超时设置
ssh-keygen -t ed25519
ssh -o ServerAliveInterval=60 user@host
六、实用组合技 1. 日志分析: ```bash # 统计每小时请求量 awk -F: '{count[$2]++}END{for(h in count)print h,count[h]}' access.log
# 实时监控错误日志 tail -f /var/log/nginx/error.log | grep -E '500|503' ```
系统信息速查:
# 硬件信息汇总
lscpu && lsblk && lspci | grep -i vga
# 查看系统启动时间线
systemd-analyze blame
七、开发相关命令 1. 编译调试: ```bash # 编译并行加速 make -j$(nproc)
# 调试运行 strace -ff -o trace.log ./server ```
版本控制:
# 查找代码变更历史
git log -p -S'function_name' -- path/to/file
# 批量重置修改
git status -s | awk '{print $2}' | xargs git checkout --
高频使用技巧:
1. 历史命令优化:
bash
!$ # 上条命令的最后一个参数
!ssh # 执行最近ssh开头的命令
^old^new # 替换上条命令中的字符串
终端生产力:
ctrl+r # 反向搜索历史命令
ctrl+x+e # 用默认编辑器编辑当前命令
数据备份:
# 快速差异备份
rsync -avz --delete /data/ user@backup:/backup/
# 打包时排除特定目录
tar --exclude='*.log' -czvf backup.tar.gz /path/
掌握这些命令组合能应对90%的Linux运维场景。建议通过man -k <keyword>
和tldr <command>
快速查阅命令文档,关键是要理解每个参数的含义而非死记硬背。