Tmux 使用教程

Tmux 是一款终端复用命令行工具,一般用于 Terminal 的窗口管理。Tmux 拥有如下特性:

  • 可以同时开启多个会话和窗口,并持久地保存工作状态。

例如,若您需要在 Terminal 中编辑一个文件,同时还需要在 Python 交互环境中执行命令,那么正常情况下您需要开启两个 Terminal。
若您使用 Tmux,则无须开启多个 Terminal,您可使用 session 管理会话和窗口,在多个会话和窗口之间进行切换。

  • 断线后任务能够在后台继续执行。

Tmux 还能解决由于断线导致的任务丢失问题。一般的 shell 工具遇到断线,远程任务可能会中止并无法继续,重连后任务需从头再来。而在 Tmux 中运行的命令,会一直保存在服务器上,断线后只需从 Tmux 中恢复该会话,任务仍然在运行。

Tmux安装

在 Terminal 中使用如下命令:

sudo apt update
sudo apt install tmux

Tmux 由如下三个基础组成

  • 1. Session。即会话,任务通常在 session 中运行,在断开连接后 session 仍会保持。
  • 2. Window。即窗口,一个会话可以包含多个窗口。可以存在多个窗口。
  • 3. Pane。即窗格,一个窗口可以包含多个窗格。类似于 Vim 中 C-w +v 后的效果。

使用 Tmux 管理会话

在Terminal中输入:

tmux

这样就会开启了一个 session-name 为 0 的 Tmux 会话。

tmux会话

左下角即当前窗口的 session-name,此时就可以在这个会话中正常输入命令。

在tmux的会话中启动一个服务

此时如果您和服务器断开连接,tmux 中的任务还会继续保持。您可重新打开 Terminal 后,输入命令:

tmux a -t 0 

其中 0 为之前会话的 session-name。

如果您想从该会话中退出,可以输入如下命令回到普通的 Termina:

tmux detach

此时可以再次输入 tmux 命令开启一个新的会话。Tmux 默认的 session-name 会逐次加一,再次新建的会话默认 session-name 就是 1 了。

在启用会话时可以指定session的名称,方便自己记忆:

tmux new -s [session-name]

eg:
tmux new -s tcpserver
自定义名称的 session

普通 Terminal 页面中,可以查看所有的 Tmux 会话:

tmux ls

如果要删除指定会话,在普通 Terminal 页面中,输入命令:

tmux kill-session -t [session-name]

eg:
tmux kill-session -t 0     #删除名称为0的会话
tmux kill-server           #删除所有会话

切换会话:

tmux switch -t <session-name>

重命名会话:

tmux rename-session -t 0 <new-name>

窗口管理

在每个 session 会话中,您可以开启多个窗口和面板。
Tmux 为了防止与全局快捷键冲突,大部分快捷键需要先需要输入前缀,默认为 Ctrl + b。该操作被定义为 Prefix
 
创建一个窗口需要两步:
  • 第一步:按 Ctrl+B 组合键,然后松开。
  • 第二步:再单独按一下 c 键。
创建了三个窗口

选择窗口

星号(*)在这里表示的是“当前处于活跃状态的窗口”,也就是哪个窗口现在处于可操作状态,星号(*)就在哪个窗口的后面

Tmux 常用快捷键
快捷键	说明	
Prefix ?	显示快捷键帮助	
Prefix :	进入命令模式	
Prefix C-z	挂起会话,不影响其他命令的运行,C 表示 Ctrl 键	
Prefix C-o	调换窗格位置	
Prefix 空格键	采用下一个内置布局	
Prefix !	把当前窗格(pane)变为新窗口(window)	
Prefix "	横向分隔窗格	
Prefix %	纵向分隔窗格	
Prefix q	显示分隔窗格的编号	
Prefix o	跳到下一个分隔窗格	
Prefix 上下键	上一个及下一个分隔窗格	
Prefix C-方向键	调整分隔窗格大小,C 表示 Ctrl 键	
Prefix z	最大化当前窗格,再一次则恢复	
Prefix c	创建新窗口	
Prefix 0~9	选择几号窗口	
Prefix n	选择下一个窗口	
Prefix p	选择前一个窗口	
Prefix l	切换到前一个窗口,该快捷键通常会被重定义为符合 vim 下的空格切换	
Prefix w	以菜单方式显示及选择窗口	
Prefix s	以菜单方式显示和选择会话	
Prefix t	显示时钟	
Prefix ;	切换到最后一个使用的面板	
Prefix x	关闭面板	
Prefix &	关闭窗口	
Prefix d	退出 Tmux,并保存当前会话,此时 Tmux 仍在后台运行,可以通过 Tmux attach 进入指定的会话