很多时候我们需要通过SSH连接服务器进行一些操作,费了好长时间调好了程序,一顿饭的功夫SSH超时了(broken pipe),重新连上去正在运行的程序也都没了,一切又得从头再来。这个时候你就非常需要用到tmux了,用tmux在服务器上创建一个会话(Session),在该会话中进行操作,你可以随时随地断开和重新连接会话(Session),即便是SSH中断了你在远程服务器上的工作状态也可以持久化地保存。
tmux 是一个优秀的终端复用器类自由软件,功能类似 GNU Screen,但使用 BSD 许可发布。用户可以通过 tmux 在一个终端内管理多个分离的会话,窗口及面板,对于同时使用多个命令行,或多个任务时非常方便。
tmux的主要元素分为三层:
sudo apt-get install tmux
brew install tmux
首先在tmux会话中使用的快捷键都需要一个前缀来激活,前缀默认为Ctrl+b(即:在按快捷键之前需要按一下前缀)。
在命令行输入下列命令查询当前所有会话。
tmux ls
你会发现no server running on /private/tmp/tmux-501/default
,这是因为我们还没有创建会话(Session)。
tmux new -s session-name
通过上述命令新建一个有特定名称的会话。 一般情况下我们不会使用下列命令创建不指定名字的会话。
tmux new
使用下列命令断开当前会话(断开会话并不影响会话中运行的程序,断开后还可以重新连接)
tmux new
或者使用tmux中的快捷键
Ctrl+b d(即先使用Ctrl+b快捷键前缀,然后再按d)
在命令行输入tmux a
即可快速连接第一个所有会话中的第一个。
Ctrl+b d(即先使用Ctrl+b快捷键前缀,然后再按d)
或者通过会话名连接该一个会话
tmux a -t session-name
通过下列命令关闭会话后,会话中的程序也会全部关闭。
tmux kill-session -t session-name
当然你也可以通过直接按Ctrl+d
关闭会话、窗口或窗格。
注意以下快捷键适用于tmux会话中,使用前皆需要按下快捷键前缀Ctrl+b
。