Tmux最常用的用法
Tmux是一个终端窗口管理工具。当需要长时间运行某个命令或者操作时,如果只是单纯地用终端窗口,难免会出现长时间闲置导致断连,或者网络原因导致进程中断等问题。为了解决这些问题,Tmux创建的终端会话支持后台运行命令,而且可以随时调出,方便监控。本文整理了作者常用的相关方法。
启动Tmux
1 | tmux new -s session_name |
这样便启动了一个Tmux的Session终端。而平时为了贪图方便,直接在终端窗口输入tmux
也未尝不可,但是长远来说不建议养成这样的习惯。没有名字的Session,可能会增加运维成本。
切换session
会话分离
输入启动命令后,将会自动跳转到创建的Session。当我们完成会话中命令的输入,想要切换回原来的终端窗口页面,习惯的做法是:
- 首先按下
Ctrl
+B
。这一步按下的按键叫做前缀键,执行快捷命令前都需要按下。 - 然后按下
D
。这是分离会话的快捷键,意思为“Detach”。
这样做是因为我在开发深度学习模型的时候,往往需要一个专门的Session监控输出,而在输出状态下,是没有办法输入tmux相关命令的。所以,快捷键成为了一种理想的方式。
在Session可以输入命令的条件下,可以输入下面的命令实现Session分离。
1 | tmux detach |
直接切换Session
无论是在原生的终端窗口,还是在Tmux创建的Session内部,都可以运行下面的命令,实现切换到某个特定的会话。
1 | tmux switch -t session_name |
无论是分配好的编号,还是自定义的会话名称,都可以替代上面的session_name
。
查看所有的Session列表
1 | tmux ls |
输入该命令后,会得到下列结果。
1 | 0: 1 windows (created Fri Sep 16 17:00:20 2022) |
其中第一条是直接输入tmux
命令创建的session窗口,tmux自动用阿拉伯数字来命名session。而对于第二条,即第二个session,不难看出被命名了“test”。
接入Session
与直接切换session类似,对应操作的英文是attach
,为了简便也可以直接输入a
。
1 | tmux attach -t session_name |
退出Session
习惯直接敲exit
,即可直接退出当前的Session。如果想直接中止一个Session,可以输入下面的命令、
1 | tmux kill-session -t session_name |
总结
上面设计到的常用命令可以归纳成表格如下。
操作 | 英文操作 | 简称 |
---|---|---|
创建新Session | new -s |
|
切换Session | switch |
s |
接入Session | attach |
a |
中止Session | kill-session |
目前只整理了当前开发过程中常用的Tmux命令,方便日常查询和回顾。