云网牛站
所在位置:首页 > Linux命令 > 在Linux系统中使用Tmux命令管理多个终端会话

在Linux系统中使用Tmux命令管理多个终端会话

2019-06-08 11:07:38作者:李全运稿源:云网牛站

本文介绍在Linux操作系统中安装并使用Tmux命令的方法,用它可以管理多个终端会话。

 

简介

与GNU Screen类似,Tmux是一个终端多路复用器,它允许我们在单个终端窗口内创建多个终端会话并同时运行多个程序或进程,Tmux是免费的开源和跨平台程序,支持Linux、OpenBSD、FreeBSD、NetBSD和Mac OS X,在本文中,我们将讨论Linux中最常用的Tmux命令。

在Linux系统中使用Tmux命令管理多个终端会话

 

在Linux中安装Tmux的方法

Tmux可以在大多数Linux发行版的官方存储库中找到。

可以参考在Linux系统中安装和使用tmux的方法一文,里面介绍了在Arch Linux、Ubuntu、Fedora系统中安装tmux的方法,这里补充一下。

1、在Arch Linux及其变体上,运行以下命令进行安装:

$ sudo pacman -S tmux

2、在Debian、Ubuntu、Linux Mint上安装:

$ sudo apt-get install tmux

3、在Fedora上:

$ sudo dnf install tmux

4、在RHEL和CentOS上:

$ sudo yum install tmux

5、在SUSE/openSUSE上:

$ sudo zypper install tmux

注:我们刚刚安装了Tmux,让我们继续看一些示例来学习如何使用Tmux,图文讲解,非常容易懂。

 

Tmux命令示例-管理多个终端会话

Tmux中所有命令的默认前缀快捷键是Ctrl+b,使用Tmux时,请记住此键盘快捷键。

注意:所有屏幕命令的默认前缀是Ctrl+a。

1、创建Tmux会话

要创建新的Tmux会话并将其附加到它,请从终端运行以下命令:

tmux

或者:

tmux new

进入Tmux会话后,你将在底部看到一个绿色条,如下面的屏幕截图所示:

在Linux系统中使用Tmux命令管理多个终端会话

验证你是否在Tmux会话中是非常方便的。

2、从Tmux会话中分离

要从当前的Tmux会话中分离,只需按Ctrl+b和d即可,不需要一次按两个键盘快捷键,首先按“Ctrl+b”,然后按“d”。

一旦你从会话中分离出来,你会看到类似下面的输出:

[detached (from session 0)]

3、创建命名会话

如果使用多个会话,可能会混淆哪些程序正在哪些会话上运行,在这种情况下,只需创建命名会话即可,例如,如果想在会话中执行与Web服务器相关的一些活动,只需使用自定义名称创建Tmux会话,例如“webserver”(或你选择的任何名称)。

tmux new -s webserver

这是新命名的Tmux会话:

在Linux系统中使用Tmux命令管理多个终端会话

正如在上面的屏幕截图中看到的,Tmux会话的名称是webserver,这样,可以轻松识别哪个程序正在哪个会话上运行。

要分离,只需按Ctrl+b和d即可。

4、列出Tmux会话

要查看打开的Tmux会话列表,请运行:

tmux ls

样本输出:

在Linux系统中使用Tmux命令管理多个终端会话

如你所见,我有两个开放的Tmux会话。

5、创建分离的会话

有时,可能只想创建一个会话而不想自动附加到该会话。

要创建名为“ostechnix”的新分离会话,请运行:

tmux new -s ostechnix -d

上面的命令将创建一个名为“ostechnix”的新Tmux会话,但不会附加到它。

可以使用“tmux ls”命令验证会话是否已创建:

在Linux系统中使用Tmux命令管理多个终端会话

6、附加到Tmux会话

可以通过运行此命令附加到上次创建的会话:

tmux attach

或者:

tmux a

如果要附加到任何特定的命名会话,例如“ostechnix”,请运行:

tmux attach -t ostechnix

或者:

tmux a -t ostechnix

7、杀死Tmux会话

当完成并且不再需要Tmux会话时,可以随时使用命令将其终止:

tmux kill-session -t ostechnix

要在连接时终止,请按Ctrl+b和x,点击“y”即可终止会话。

可以使用“tmux ls”命令验证会话是否已关闭。

要杀死Tmux服务器以及所有Tmux会话,请运行:

tmux kill-server

参考:Linux进程管理:用kill和killall命令杀死进程

这里要小心,这将终止所有Tmux会话,即使会话中有任何正在运行的作业而没有任何警告。

如果没有正在运行的Tmux会话,将看到以下输出:

$ tmux ls

no server running on /tmp/tmux-1000/default

8、拆分Tmux会话Windows

Tmux可以选择将单个Tmux会话窗口拆分为多个较小的窗口,称为Tmux窗格(英文名:Tmux panes),这样我们就可以在每个窗格上运行不同的程序,并同时与所有程序进行交互,可以调整每个窗格的大小,移动和关闭,而不会影响其他窗格,我们可以水平或垂直分割Tmux窗口,或者同时分割两者。

1]、水平分割窗格

要水平拆分窗格,请按Ctrl+b和“(单引号):

在Linux系统中使用Tmux命令管理多个终端会话

使用相同的组合键进一步分割窗格。

2]、垂直拆分窗格

要垂直拆分窗格,请按Ctrl+b和%:

在Linux系统中使用Tmux命令管理多个终端会话

3]、水平和垂直分割窗格

我们还可以同时水平和垂直分割窗格,看一下下面的截图:

在Linux系统中使用Tmux命令管理多个终端会话

首先,我按Ctrl+b“进行水平分割,然后按Ctrl+b %垂直分割下方窗格。

正如你在上面的屏幕截图中看到的,我在每个窗格上运行三个不同的程序。

4]、在窗格之间切换

要在窗格之间切换,请按Ctrl+b和箭头键(左、右、上、下)。

5]、将命令发送到所有窗格

在前面的示例中,我们在每个窗格上运行三个不同的命令,但是,也可以同时向所有窗格运行相同的命令。

为此,请按Ctrl+b并输入以下命令并按Enter:

:setw synchronize-panes

现在在任何窗格上输入任何命令,将看到所有窗格都反映了相同的命令。

6]、交换窗格

要交换窗格,请按Ctrl+b和o。

7]、显示窗格编号

按Ctrl+b和q显示窗格编号。

8]、杀死窗格

要杀死窗格,只需输入exit和ENTER键即可,或者按Ctrl+b和x,将看到确认消息,只需按“y”即可关闭窗格:

在Linux系统中使用Tmux命令管理多个终端会话

 

结语

以上内容将帮助你了解Tmux的基本概念以及如何使用它来管理多个终端会话,有关更多详细信息,请参阅手册页,运行以下命令:

$ man tmux

当通过SSH远程管理服务器时,GNU Screen和Tmux实用程序都非常有用。

 

相关主题

在Fedora系统中安装终端多路复用器Tmux、Dvtm、Byobu及Mtm的方法

Linux命令子频道
精选文章
热门文章