Linux 命令行高效技巧

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、花括号展开);善用管道组合多个命令。将这些技巧融入日常工作,每天可以节省大量时间,日积月累效益显著。