任何人都能浏览文件系统,但真正的系统工程师懂得如何操纵进程内存、恢复丢失的会话,以及在凌晨 3 点服务器磁盘使用率飙到 100% 时“凭空”创造磁盘空间。
这些不只是命令,它们是生存工具。下面这九个高级 Linux 技巧,让你从普通用户进阶为真正的大师 :)
目录
幽灵追踪:找出已删除但仍占用磁盘空间的文件(lsof)时间旅行:把正在运行的进程移入 screen(reptyr)X 光机:没有日志时调试进程(strace)配置间谍:读取运行中进程的环境变量(/proc)紧急按钮:瞬间为 Root 腾出磁盘空间(tune2fs)SSH 涡轮模式:连接复用(ControlMaster)快速修复:秒改命令拼写错误(^old^new)现代网络分析:netstat 已死,ss 万岁肌肉记忆:sudo !! 和 !$
1. 幽灵追踪:lsof +L1
场景
df -h 显示磁盘已经满了,但你明明刚删掉了好几个 G 的日志文件。
原因
如果某个进程(例如 Apache 或 Postgres)仍在向一个已经被删除的文件写数据,操作系统不会真正释放这部分空间(inode)。
这个文件会变成“僵尸文件”。
解决方法
# 查找标记为 (deleted) 但仍被某个 PID 占用的文件# 你需要 reload/restart 对应 PID 才能真正释放空间lsof +L1
2. 时间旅行:reptyr
场景
你启动了一个长时间运行的脚本,它已经跑了 4 个小时,但你忘记先开 screen 或 tmux。
现在你必须断开连接,但关闭终端会杀掉这个脚本。
解决方法
使用 reptyr “劫持”这个进程,并把它重新挂载到新的 screen/tmux 会话中。
# 1. 挂起当前进程:Ctrl+Z,然后输入:
# 2. 让它脱离当前 shell:
# 3. 新开一个 screen/tmux 会话并接管:
退出screen的快捷键 Ctrl+A 然后D,要恢复运行 screen -r;tmux是Ctrl+B 然后D,要恢复运行 tmux attach。
3. X 光机:strace
场景
某个进程卡住了。
没有日志。
CPU 使用率也没有异常。
它是在等待网络?还是权限被拒绝?
解决方法
不要猜。直接实时观察系统调用。
strace -p <PID># 你将看到内核正在执行什么:# open(), connect(), read() ...# 这是终极调试武器
4. 配置间谍:/proc 文件系统
场景
开发人员说:“在我机器是好的。”
但生产环境却启动失败。
你怀疑它读取了错误的数据库密码或 API Key。
解决方法
直接读取运行中进程的内存环境变量。
# 输出该进程启动时的所有环境变量# 不再靠猜cat /proc/<PID>/environ | tr '\0' '\n'
5. 紧急按钮:tune2fs
场景
生产环境挂了。
磁盘 100% 满。
甚至连命令自动补全都无法使用,因为系统已经没有临时文件空间。
解决方法
Linux 默认会为 root 用户保留 5% 的磁盘块。
在紧急情况下,你可以把这个比例临时设为 0%,瞬间释放数 GB 空间。
tune2fs -m 0 /dev/sdX# 警告:清理完磁盘后记得恢复为 5%
6. SSH 涡轮模式:ControlMaster
场景
运行 Ansible,或者同时打开多个 SSH 标签页时特别慢。
因为每次都要重新进行 SSH 握手认证。
解决方法
启用 SSH 连接复用。
第一次连接负责认证;之后的连接会直接复用已有隧道,几乎瞬间完成。
# 写入 ~/.ssh/configHost * ControlMaster auto ControlPath ~/.ssh/sockets/%r@%h-%p ControlPersist 600
7. 快速修复:^old^new
场景
你输入了一长串命令,按回车键后发现有个拼写错误。
解决方法
别再按方向键翻历史记录了,直接输入以下再按回车键。
Bash 会自动执行:
8. 现代网络分析:ss
场景
你还在使用 netstat。
解决方法
netstat 已经过时了:慢、输出容易截断。
ss(Socket Statistics)直接与内核通信,速度极快。
ss -tulpn# -t: TCP# -u: UDP# -l: Listening# -p: Process# -n: Numeric# 毫秒级查看服务器所有监听端口
9. 肌肉记忆:sudo !! 和 !$
sudo !!
场景
你执行了一个命令,但忘了加 sudo。
解决方法
sudo !!# 以 root 权限重新执行上一条命令
!$
场景
你刚创建了一个很长的目录,现在想进入它。
mkdir -p /var/www/html/project/v2cd !$
作用
!$ 会自动展开为上一条命令的最后一个参数。
总结
这些技巧不是为了炫技,而是在常规工具失效时拿来救命。
掌握它们之后,终端不再只是一个黑色窗口,而是你思维的延伸。
参考
https://medium.com/the-tech-notes/9-linux-tricks-ab64b595cb75