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
自定义状态行的示例配置。
至此你已学会如何使用Tmux。现在您可以在单个会话创建多个Tmux窗格,通过创建新窗格来分割窗口。在窗口之间导航。