当前位置:首页>Linux>九个大师级Linux技巧

九个大师级Linux技巧

  • 2026-10-11 07:37:40
九个大师级Linux技巧

任何人都能浏览文件系统,但真正的系统工程师懂得如何操纵进程内存、恢复丢失的会话,以及在凌晨 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,然后输入:

bg

# 2. 让它脱离当前 shell:

disown <PID>

# 3. 新开一个 screen/tmux 会话并接管:

reptyr <PID>

退出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

场景

你输入了一长串命令,按回车键后发现有个拼写错误。

systemctl restart nginxx

解决方法

别再按方向键翻历史记录了,直接输入以下再按回车键。

^nginxx^nginx

Bash 会自动执行:

systemctl restart nginx

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

最新文章

随机文章