用tmux管理远程会话,再也不怕SSH断线了

王尘宇 实用技巧 2

你是不是也遇到过:在服务器上跑一个长任务,SSH一断,任务也挂了。tmux就是解决这个问题的。下面是最常用的5个操作,5分钟学会。

tmux是什么

简单说:在服务器上开一个"虚拟终端",即使你SSH断线了,里面的程序继续跑。重新连上后可以"恢复"这个终端,看到之前的所有输出。

安装:Ubuntu/Debian用 apt install tmux,CentOS用 yum install tmux。基本所有Linux发行版源里都有。

5个核心操作

1. 新建会话

tmux new -s work

创建一个名叫"work"的会话。然后你在里面可以正常执行任何命令。即使SSH断开,里面的程序不受影响。

2. 断开(detach)

在tmux会话里按 Ctrl+B,松开,再按 D

快捷键规则:先同时按Ctrl和B,松手后按D。这会让你退出tmux会话,但程序还在后台跑。

3. 重新连接

tmux attach -t work

SSH重新连上服务器后执行这个命令,恢复之前的工作环境。所有输出都还在。

4. 分屏

• 左右分屏:Ctrl+B,然后按 %
• 上下分屏:Ctrl+B,然后按 "

这个功能很方便:一边看日志,一边写命令;或者一边编辑代码,一边运行测试。

5. 切换窗格和关闭

• 切换窗格:Ctrl+B,然后按方向键
• 关闭当前窗格:直接输入 exit 并回车,或者按 Ctrl+D

一个实际使用场景

比如你要在服务器上跑一个数据库导入,预计要2小时。不关机的那种。用tmux:

① SSH连上服务器
② tmux new -s import(新建会话)
③ 运行你的导入命令
④ Ctrl+B, D(断开会话)
⑤ 关掉SSH,去干别的
⑥ 2小时后SSH回来,tmux attach -t import(恢复会话)
⑦ 看到导入已经完成,所有输出都在

比nohup好用的地方:可以随时回来看到完整的输出,不只是日志文件。而且支持分屏、复制粘贴。

进阶用法

• tmux ls:列出所有会话
• tmux kill-session -t work:杀掉名叫work的会话
• 鼠标模式(tmux 2.1+):在~/.tmux.conf里加 set -g mouse on,就能用鼠标滚轮翻页、点击切换窗格

就这些。tmux属于那种"学了5分钟,受益一辈子"的工具。

标签: tmux SSH Linux技巧 远程管理 终端

发布评论 0条评论)

  • Refresh code

还木有评论哦,快来抢沙发吧~