掌握这些强大的 Shell 命令,你的 Linux 命令行效率将大幅提升:
grep -rin "error" /var/log/ # 递归搜索日志中的错误(-i忽略大小写,-n显示行号)
grep --color=auto -C 3 "pattern" file.txt # 高亮显示匹配并展示上下文3行
awk '{print $1,$3}' access.log # 提取日志第1和第3列
awk -F: '{sum+=$3} END {print sum}' /etc/passwd # 计算所有用户UID总和
sed -i 's/old/new/g' file.txt # 批量替换文件内容
sed -n '10,20p' file.txt # 只打印文件的10-20行
find /home -name "*.jpg" -size +1M -exec ls -lh {} \; # 查找大于1MB的jpg文件并列出详情
find /var/log -mtime -7 -type f # 查找7天内修改过的普通文件
find . -name "*.tmp" | xargs rm -f # 批量删除临时文件
cat urls.txt | xargs -P 5 -I {} wget {} # 并行下载(5个进程)
curl -s api.example.com/data.json | jq '.users[].name' # 提取JSON中的用户名
jq '.config | {ip: .network.ip, port: .services.web}' config.json # 结构化提取特定字段
tmux new -s mysession # 创建新会话
tmux split-window -h # 水平分割窗口
tmux list-sessions # 列出所有会话
rsync -avz --progress /source/ user@remote:/dest/ # 增量同步并显示进度
rsync --dry-run --delete -av source/ dest/ # 模拟运行并删除目标多余文件
进阶技巧组合:
# 统计nginx日志中访问量前10的IP
awk '{print $1}' access.log | sort | uniq -c | sort -nr | head -10
# 批量重命名文件
find . -name "*.jpg" | awk -F. '{print $2}' | xargs -I{} mv ./{} ./{}.bak
掌握这些命令后,你将能够: - 快速分析日志文件 - 高效处理文本数据 - 自动化日常管理任务 - 批量操作文件系统 - 处理结构化数据(JSON/CSV) - 保持终端工作会话
每个命令都有更多高级用法,建议通过 man [command]
查看完整手册。