Tmux终端多路复用器,是GNU Screen的替代品,你也可以启动Tmux会话,然后在会话中打开多个窗口。每个窗口占据整个屏幕,可以分成多个窗口。

使用Tmux,您可以轻松在终端切换多个程序,退出程序并将它们重新连接到不同的终端。

Tmux会话是持久的,这意味着即使断开连接,在Tmux运行的程序也将继续运行。Tmux所有快捷键都有一个前缀开头,默认前缀ctrl+b

在大多数Linux发行版和macOS都可以通过软件包管理器轻松安装Tmux。要检查tmux命令在您的系统是否可用,请运行命令tmux -V,命令将会打印tmux的版本号。

tmux -V
tmux 3.0a

安装 Tmux

如果你的系统未安装Tmux,命令将显示tmux: command not found,tmux命令未找到。您可以使用发行版的软件包管理器轻松安装tmux。

如果你的计算机运行的是基于Debian的Linux发行版,例如Ubuntu,Linux mint。请运行命令sudo apt update && sudo apt install tmux安装tmux。

如果你的计算机运行的是基于RedHat的Linux发行版,例如CentOS,Fedora。请运行命令sudo yum install tmux安装tmux。Mac用户请运行命令brew install tmux

sudo apt update && sudo apt install tmux
sudo yum install tmux
brew install tmux

启动Tmux

要开始一个Tmux会话,只需在终端运行tmux命令。这将打开一个新的会话,创建一个新窗口并在窗口启动shell。

进入Tmux后,您会在屏幕底部看到状态行,其中显示当前会话的信息。您现在可以获取所有命令的列表,按快捷键 Ctrl+b ?

这里说明一下按键的顺序,首先按下Ctrl+b,然后放开Ctrl+b按键,最后按下问号?。如果需要退出帮助列表,请按下快捷键q

tmux

Ctrl+b ? #快捷键
q #快捷键

Tmux用法

这是使用Tmux的最基本步骤,首先在终端运行命令tmux new -s my_session创建启动tmux。my_session是会话名称,虽然不是必须,但建议命名tmux会话。

运行你要做的任务,然后按下快捷键Ctrl+b d退出tmux,你的任务将会继续运行。如果需要恢复会话请在终端运行命令tmux attach-session -t my_session

例如你的任务是使用wget命令下载Ubuntu发行版的镜像。并将任务命名为wget_ubuntu_iso

tmux attach-session -t wget_ubuntu_iso
##执行下载任务
Ctrl+b d #退出tmux
tmux attach-session -t wget_ubuntu_iso #恢复tmux会话

退出Tmux

您可以键入快捷键 Ctrl+b d。退出Tmux会话并返回到普通的shell会话,退出Tmux会话,在Tmux会话运行的程序将继续运行。

创建命名Tmux会话

默认情况下,Tmux会话以数字命名。运行多个tmux会话时,命名tmux会话非常有用,它可以让你快速进入会话。

通常你应该根据tmux会话运行的任务命名tmux会话并保证简单容易理解。例如你的任务是使用wget命令下载Ubuntu发行版的镜像。应该命名为wget_ubuntu_iso

要创建命名会话,请使用tmux的子命令new-s选项创建会话。tmux new -s session_name命令将会创建名称是session_name的tmux会话。

tmux new -s session_name

恢复Tmux会话

要重新重新连接到Tmux会话,您需要找到tmux的会话名称。要获取当前正在运行的会话列表。请运行命令tmux ls列出所有tmux会话。

从下面的输出中可以看出,有两个正在运行的Tmux会话,第一个tmux会话名称是0,第二个的会话名称my_named_session

例如要附加到会话0,请运行命令tmux attach-session -t 0

tmux ls
tmux attach-session -t 0
0: 1 windows (created Sat Sep 15 09:38:43 2018) [158x35]
my_named_session: 1 windows (created Sat Sep 15 10:13:11 2018) [78x35]

Tmux 快捷键

默认情况下,当您启动tmux会话时,它会创建一个带有shell会话的单个窗口。要创多个窗口请按Ctrl+b c,tmux将会使用0...9范围中分配可用的编号。

所有窗口的列表显示在屏幕底部的状态行。[session1]0:zsh  1:zsh- 2:zsh*表示有两个窗口正在运行zsh*表示当前会话的窗口。

这是一些用于管理Tmux窗口常用命令,Ctrl+b c创建一个新窗口,Ctrl+b w 从列表中选择窗口。

Ctrl+b 0 切换到窗口0。Ctrl+b , 重命名当前窗口,Ctrl+b %将当前窗口水平分割为两个窗格。

Ctrl+b "将当前窗格垂直拆分为两个窗格。Ctrl+b o转到下一个窗格。Ctrl+b ;在当前窗格和上一窗格之间切换。Ctrl+b x 关闭当前窗格。

自定义Tmux

启动Tmux时,它会从~/.tmux.conf文件读取其配置参数。以下是~/.tmux.conf自定义状态行的示例配置。

# Improve colors
set -g default-terminal 'screen-256color'

# Set scrollback buffer to 10000
set -g history-limit 10000

# Customize the status line
set -g status-fg  green
set -g status-bg  black
~/.tmux.conf

至此你已学会如何使用Tmux。现在您可以在单个会话创建多个Tmux窗格,通过创建新窗格来分割窗口。在窗口之间导航。