作为IT工程师,我为您精选12个强大但常被低估的Linux终端命令,附带技术解析和使用场景:
strace
- 系统调用追踪器strace -f -e trace=file ls /tmp # 追踪ls命令的所有文件操作
技术价值:实时显示进程的系统调用,用于调试程序行为或分析性能瓶颈。
lsof
- 全量文件描述符查看lsof -i :80 # 查看所有使用80端口的进程
lsof +D /var/log # 查看谁在访问日志目录
进阶用法:结合grep 'deleted'
可查找被删除但仍在占用的文件。
ncdu
- 磁盘分析神器ncdu --exclude /mnt / # 交互式分析根目录,排除/mnt
优势:比du
更直观的可视化界面,支持快速导航和删除操作。
screen
/tmux
- 终端复用器tmux new -s session1 # 创建持久化会话
Ctrl+b d # 分离会话
tmux a -t session1 # 重新连接
生产环境价值:SSH断开后任务持续运行,支持多窗口工作区。
rsync
- 增量同步专家rsync -avz --progress --partial ~/data user@remote:/backup
关键参数:
- --bwlimit=1000
限制带宽为1MB/s
- --link-dest
硬链接式快照备份
jq
- JSON处理利器curl api.example.com/data | jq '.[] | select(.value > 10)'
复杂示例:jq '.users | map(select(.age > 18)) | length'
ag
(The Silver Searcher)ag -G '\.py$' 'import requests' # 在py文件中搜索
优势:比grep快10倍,自动忽略.gitignore文件。
watch
- 实时监控watch -n 1 -d 'netstat -ant | grep ESTABLISHED'
高阶用法:watch -t -d 'ls -l | fgrep Jan'
column
- 表格格式化mount | column -t # 对齐输出为表格
sshuttle
- 无客户端VPNsshuttle -r user@vps 0/0 # 将所有流量通过SSH隧道转发
适用场景:快速建立安全网络通道,无需配置VPN服务端。
pv
- 管道监视器dd if=/dev/zero | pv | dd of=/dev/null # 测试管道吞吐量
tar -czf - bigfile | pv | ssh user@host "tar xzf -"
监控指标:实时显示进度、吞吐量和ETA。
tcpdump
- 网络流量分析tcpdump -i eth0 'port 443' -w https.pcap # 抓取HTTPS流量
tcpdump -nn -v -X 'icmp[icmptype] == icmp-echo' # 抓Ping包
高级过滤:'tcp[13] & 2 != 0'
捕获所有SYN包
每个命令都有其独特价值:
- 调试三剑客:strace
+lsof
+tcpdump
- 运维三板斧:rsync
+tmux
+watch
- 开发效率组:ag
+jq
+column
建议通过man -k <keyword>
探索相关命令,例如man -k "network"
查找网络相关工具。掌握这些命令将显著提升您在Linux环境下的工作效率和问题诊断能力。