Tmux 极简实战教程:服务器上的“平行宇宙”

玩海外 VPS 跑脚本、跑机器人,经常会遇到网络卡顿或一关本地终端程序就死掉的痛点。tmux 就是为你量身定制的救星。它的核心逻辑就一句话:“为你开辟一个永远不会断电、不会受你本地网络影响的独立终端空间。”

哪怕你电脑没电关机了,或者家里网断了,只要把程序扔进 tmux 里,它就会在远端服务器上日夜兼程地跑。


1. 🌟 三大核心口诀(只要会这三句就够了)

你在登录 SSH 之后,绝大多数时候只需要用到这三个命令:

第一步:开启平行宇宙(新建会话)

tmux new -s 任意名字
# 例如:tmux new -s my_bot

敲下回车后,你会发现屏幕底部多了一条绿色的状态栏,说明你已经进入了 tmux 的平行宇宙。这时候你启动任何程序,它都会在这个宇宙里死死扎根。

第二步:离开但不关闭(挂起到后台)

当你的程序跑起来之后,怎么退出界面但不关掉程序?不要按窗口上的红叉! 记住这两个组合键:

  1. 先按下键盘上的 Ctrl + B(然后立刻松开双手)
  2. 再按一下键盘上的 D(代表 Detach 脱离)

此时界面会闪退回普通的 Linux 命令行,提示 [detached]。别慌,你的程序正在后台疯狂运行!

第三步:重返平行宇宙(恢复会话)

晚上回家,你想看看白天跑得怎么样了,重新连上 SSH 后输入:

tmux attach -t 任意名字
# 例如:tmux attach -t my_bot

你会瞬间“穿越”回白天离开时的那个界面,所有的运行日志都在上面!


2. 🧹 日常管理命令(收拾屋子专用)

用久了之后,你可能会不小心建了好多乱七八糟的会话,可以用这些命令管理:

TIP / 查看当前有几个后台在跑:
tmux ls

输出示例:my_bot: 1 windows (created Wed...)

WARNING / 精准杀掉某一个不需要的后台:
tmux kill-session -t 名字
CAUTION / 一键核爆(清理所有 tmux 后台):

当你遇到莫名其妙的卡顿,或者忘了自己开了多少个窗口时,这招最好用(注意:会杀掉所有正在跑的程序)。

tmux kill-server

3. 📖 进阶必杀技:怎么在 Tmux 里往回翻看日志?

进入 tmux 之后,很多人会发现鼠标滚轮失效了,没法往上翻看之前打印的日志。这时候你需要进入**“翻页模式”**:

  1. 先按 Ctrl + B(松开)
  2. 按下左中括号 [

此时屏幕右上角会出现 [0/xxx] 的字样。现在你可以用键盘的 箭头,或者 PageUp PageDown 键自由上下翻看日志了。

看完之后,按一下字母 q,就能退出翻页模式,回到实时终端界面。


4. 🚀 骨灰级高阶玩法:远程门外施法(Remote Execution)

如果你的网络卡到连敲键盘都费劲,你可以完全不用进 SSH,直接在本地电脑的终端里一行命令完成所有动作:

# 门外直接杀掉服务器上的 tmux
ssh user@server_ip "tmux kill-server"

# 门外直接在服务器后台“静默”开启一个新会话并运行脚本
# (-d 参数的意思是 detached,即建好之后直接挂在后台,不跳转过去)
ssh user@server_ip "tmux new-session -d -s my_bot 'python main.py'"

💡 小贴士:这种单行命令执行完如果脚本报错崩溃,tmux 会话会连带自动关闭。如果想让它报错后依然保留界面方便看日志,可以改写成:'python main.py; bash'

用好这套连招,你管理海外服务器会有一种“运筹帷幄之中,决胜千里之外”的丝滑感!