本博文参照 https://blog.csdn.net/qq_43912191/article/details/123214679 对 tmux 进行总结和归纳。
tmux(Terminal Multiplexer)是一款命令行下的终端复用软件,用于在一个终端窗口中运行多个终端会话,并且可以在各会话之间快速切换,还可以在后台运行程序。
tmux 的优势:
通过 SSH 协议远程访问服务器进行工作时,即使远程连接的电脑非正常掉线(如掉网、断电等),tmux 会话仍然能够保存服务器当前的工作状态并保证当前任务继续运行,之后重新联网后只需要重新进入之前的会话便能查看程序的运行状态、结果等。
此外,tmux 还提供了多样的功能,包括多会话、多窗口、多面板等,一个会话就可以创建过个窗口分别执行不同的任务,就不必开启多个标签连接多个 ssh 窗口,极大地方便了用户的使用。
在Linux 服务器中,只需通过下面的一行命令便可安装 tmux:
sudo apt-get install tmux
这是tmux的一些常用命令,用到基本功能就足够了,在后面还会具体介绍。
# 显示会话列表
tmux ls
# 创建会话,其中XXX为创建的会话名称
# `新建完会话后就会直接进入该session`
tmux new -s XXX
# 连接指定会话,其中XXX为所要连接的会话名称
tmux attach -t XXX 或者 tmux a -t XXX
# 离开会话但仍保持该会话中的任务继续后台运行
tmux detach
# 关闭指定会话(该会话中的任务会中断),其中XXX为所要关闭的会话名称
tmux kill-session -t XXX
# 重命名会话的名称,将X_1会话重命名为X_2
tmux rename-session -t X_1 X_2 或者 tmux rename -t X_1 X_2
# 切换会话,从当前的会话快速切换到另一个会话XXX
tmux switch -t XXX
tmux 中的窗口操作中有大量的快捷键,可以通过 前缀键(Ctrl+b) 唤醒,然后按下相应的功能键即可执行相应的操作,下面是一些常用的窗口操作命令(每次都要先按下 Ctrl+b 组合键,然后再按下相应的功能键):
# 将当前的面板垂直拆分为左右两个窗格
Ctrl+b %
# 将当前的窗格水平拆分为上下两个窗格
Ctrl+b "
# 光标切换到其他窗格,按箭头方向<arrow key>方向进行切换
# a比如切换到下方窗格,就按方向下↓。
Ctrl+b <arrow key>
# 调整当前光标所在的窗格的大小,按箭头方向<arrow key>调整窗格大小
# 比如向右扩大该窗格,`按下组合键不放,同时按住Ctrl+方向右→`。
Ctrl+b Ctrl+<arrow key>
# 关闭当前窗格
Ctrl+b x
# 显示窗格编号
Ctrl+b q
# 光标切换到上一个窗格
Ctrl+b p
# 光标切换到下一个窗格
Ctrl+b n
在 tmux 2.1 中,对鼠标模式进行了重写,因此新版只需要增加一段设置即可,首先按下 ctrl + b 键,然后输入 : 进入编辑模式,之后手动输入 set -g mouse on
就可以将 tmux 窗口变成鼠标滚动模式。然后回车即可。
: set -g mouse on
但是在tmux鼠标滚动模式下不能直接复制窗口的输出,需要按住 shift 选择要复制的内容,然后再按住 Ctrl+c 复制快捷键进行复制。