Linux 命令行高效技巧大全
命令行是Linux系统管理的核心工具。掌握高效的命令行技巧,可以大幅提升日常运维和开发效率,将重复性工作压缩到极致。本文分享实用的Linux命令行高效技巧集锦。
一、Shell快捷键(大幅提升输入速度)
Ctrl+A/Ctrl+E:光标移到行首/行尾Ctrl+W:删除光标前一个单词Ctrl+K:删除光标到行尾的内容Ctrl+U:删除光标到行首的内容Ctrl+R:反向搜索历史命令(输入关键词快速匹配)Alt+.:插入上一条命令的最后一个参数!!:重复执行上一条命令(sudo !! 用sudo执行上条命令)!$:上一条命令的最后一个参数
二、文件操作技巧
# 批量创建多级目录
mkdir -p /var/www/{html,css,js,images}
# 快速备份文件
cp nginx.conf{,.bak} # 等同于 cp nginx.conf nginx.conf.bak
# 找到最大的10个文件
du -ah / | sort -rh | head -10
# 查找并删除30天前的日志文件
find /var/log -name "*.log" -mtime +30 -delete
# 实时查看文件新增内容
tail -f /var/log/nginx/access.log
# 同时查看多个文件
tail -f /var/log/nginx/error.log /var/log/php-fpm/error.log
# 统计文件行数、单词数
wc -l /etc/passwd # 行数
wc -w large_file.txt # 单词数
三、进程管理技巧
# 找到占用某端口的进程 ss -tlnp | grep :80 lsof -i :80 # 找到CPU/内存占用最高的进程 ps aux --sort=-%cpu | head -10 ps aux --sort=-%mem | head -10 # 杀死所有同名进程 pkill -f "python my_script.py" killall nginx # 后台运行且断开SSH不停止 nohup python server.py & # 或使用screen/tmux # 查看进程打开的文件 lsof -p PID
四、网络诊断技巧
# 测试TCP端口连通性(比telnet更好用) nc -zv 192.168.1.10 3306 timeout 3 bash -c 'cat < /dev/null > /dev/tcp/192.168.1.10/3306' && echo "open" # 查看所有监听端口 ss -tlnp # 比netstat更快 netstat -tlnp # 传统方式 # 实时网络流量监控 iftop -i eth0 # 查看各IP流量 nethogs # 按进程查看流量 nload # 总体带宽监控 # 抓包分析 tcpdump -i eth0 -w capture.pcap 'port 80 and host 10.0.0.1' tcpdump -i eth0 -A 'port 80' | grep "GET\|POST" # DNS诊断 dig example.com +short dig @8.8.8.8 example.com # 指定DNS服务器查询 nslookup example.com
五、文本处理三剑客(grep/sed/awk)
# grep:搜索文本
grep -r "ERROR" /var/log/ # 递归搜索
grep -c "ERROR" app.log # 统计匹配行数
grep -B 5 -A 5 "Exception" app.log # 显示前后5行上下文
grep -E "ERROR|WARN" app.log # 正则匹配多个关键词
# sed:流式编辑
sed -i 's/old_text/new_text/g' file.txt # 原地替换
sed -n '10,20p' file.txt # 输出第10-20行
sed '/^#/d' config.txt # 删除注释行
# awk:列处理神器
awk '{print $1, $7}' access.log # 打印第1和第7列
awk -F: '{print $1}' /etc/passwd # 以冒号分隔
awk '{sum += $1} END {print sum}' numbers.txt # 求和
awk 'NR==FNR{a[$1]=1;next} a[$1]' file1.txt file2.txt # 取交集
六、系统监控技巧
# 实时系统资源监控 htop # 比top更好用 glances # 全面的系统监控 # 查看系统历史负载 sar -u 1 10 # 每1秒采样一次,共10次 uptime # 查看当前负载 # 内存分析 free -h # 内存使用概况 vmstat 1 5 # 每秒输出一次虚拟内存统计 # 磁盘I/O iostat -x 1 5 # 每秒输出I/O统计 iotop # 按进程查看I/O使用
七、高效别名配置
# ~/.bashrc 中添加常用别名 alias ll='ls -lh --color=auto' alias la='ls -lah --color=auto' alias grep='grep --color=auto' alias df='df -h' alias du='du -h' alias ..='cd ..' alias ...='cd ../..' alias please='sudo' # 快速SSH跳板 alias jump-prod='ssh -J bastion.example.com app-server-01' source ~/.bashrc # 立即生效
八、总结
命令行高效操作的核心是:减少重复输入(利用历史记录、Tab补全、别名);批量处理(find + xargs、花括号展开);善用管道组合多个命令。将这些技巧融入日常工作,每天可以节省大量时间,日积月累效益显著。