我们学习了如何通过GNUScreen来管理多会话。今天,我们将了解Tmux,这是另一个著名的用于管理会话的命令行实用程序。与GNUScreen类似,Tmux是一个终端多路复用工具,可以帮助我们在单个终端窗口中创建多个会话,同时运行多个应用程序或进程。Tmux免费、开源、跨平台,支持Linux、OpenBSD、FreeBSD、NetBSD和MacOSX。本文将讨论Tmux在Linux系统下的高频使用。在Linux下安装tmuxTmux可以在大多数官方Linux存储库下获得。在ArchLinux或其变体上,执行以下命令进行安装:$sudopacman-StmuxDebian、Ubuntu或LinuxMint:$sudoapt-getinstalltmuxFedora:$sudodnfinstalltmuxRHEL和CentOS:$sudoyuminstalltmuxSUSE/openSUSE:$sudozypperinstalltmux以上,我们就完成了Tmux的安装。然后我们继续看一些Tmux示例。Tmux命令示例:多会话管理Tmux默认所有命令的前置命令都是Ctrl+b,使用前记住这个快捷键即可。注意:Screen的前置命令都是Ctrl+a。创建Tmuxsession,在终端运行如下命令创建一个Tmuxsession并附加:tmuxor,tmuxnew进入Tmuxsession后,会看到底部Sidebar有一个绿色的下沉,如图下图。创建一个Tmux会话这个绿色的侧边栏可以很容易地指示您当前是否处于Tmux会话中。退出Tmux会话退出当前Tmux会话只需要Ctrl+b和d。不需要同时触发这两个快捷键,依次按Ctrl+b和d即可。退出当前会话后,您将看到以下输出:[detached(fromsession0)]Createnamedsession如果您使用多个会话,您很可能会混淆运行在多个会话中的应用程序。在这种情况下,我们需要会话并为其命名。例如,如果您需要一个用于Web相关服务的会话,请创建一个名为“webserver”(或任何其他名称)的Tmux会话。tmuxnew-swebserver这是新的Tmux命名会话:Tmuxsessionwithcustomname正如你在上面的截图中看到的,这个Tmux会话的名称被标记为“webserver”。通过这种方式,您可以轻松区分应用程序在多个会话中的位置。要退出会话,请点击Ctrl+b和d。查看Tmux会话列表要查看Tmux会话列表,请执行:tmuxls示例输出:listTmuxsessions如您所见,我们打开了两个Tmux会话。创建一个非附加会话有时,您可能想简单地创建一个会话,而不是自动切换到会话中。要创建一个非附加会话并将其命名为“ostechnix”,请运行:tmuxnew-sostechnix-d上述命令将创建一个名为“ostechnix”的会话,但不会附加它。您可以使用tmuxls命令验证这一点:创建一个非附加会话附加到Tmux会话您可以使用以下命令附加到最后创建的会话:tmuxattach或tmuxa如果您想附加到任何指定的命名会话,例如“ostechnix”,运行:tmuxattach-tostechnix或者,简称:tmuxa-tostechnix关闭Tmux会话当您完成或不再需要Tmux会话时,您可以使用以下命令关闭它:tmuxkill-session-tostechnixwhen在会话中,使用Ctrl+b和x。按y关闭会话。可以通过tmuxls命令验证。要关闭所有Tmux服务下的所有会话,请运行:tmuxkill-serverBecareful!这将在没有警告的情况下终止所有Tmux会话,即使会话正在运行任务也是如此。如果没有活动的Tmux会话,您将看到以下输出:$tmuxlsnoserverrunningon/tmp/tmux-1000/default“。不同的程序可以同时在每个窗格中运行,并同时与所有窗格交互。每个窗格都可以调整大小、移动和关闭,而不会影响其他窗格。我们可以水平、垂直或混合地切分屏幕。要水平切割窗格,请使用Ctrl+b和"(半个双引号)。要水平切割Tmux窗格,您可以使用组合键进一步切割面板。要垂直切割窗格,请使用Ctrl+b和%。垂直切割Tmuxpanes水平和垂直混切panes我们也可以使用水平和垂直的方案同时切panes,看下面的截图:CuttingTmuxpanes首先,我通过Ctrl+b”水平切,然后通过Ctrl+b%垂直切割下窗格。如您所见,我在每个窗格下运行了不同的程序。切换面板通过Ctrl+b和箭头键(上、下、左、右)切换面板。在前面向所有窗格发送命令的示例中,我们在每个窗格上运行了三个不同的命令。实际上,也可以向所有窗格发送相同的命令。为此,使用Ctrl+b并键入以下命令,然后按Enter::setwsynchronize-panes现在在任何窗格中键入任何命令。您将看到影响所有窗格的相同命令。交换窗格使用Ctrl+b和o交换窗格。显示窗格编号使用Ctrl+b和q显示窗格编号。终止窗格要关闭窗格,只需键入exit并按Enter。或者,按Ctrl+b和x。您会看到一条确认消息。按y关闭窗格。关闭面板放大和缩小Tmux面板我们可以将Tmux面板缩放到当前终端窗口的完整大小,以获得更好的文本可见性和查看更多内容。当您需要更多空间或专注于特定任务时,这很有用。完成该任务后,您可以将Tmux窗格缩小(取消缩放)到其正常位置。有关更多详细信息,请参见下面的链接。如何缩放Tmux窗格以提高文本可见性?自动启动Tmux会话当通过SSH使用远程系统时,在Tmux会话中运行长时间运行的进程始终是一个好习惯。因为,它可以防止您在网络连接突然中断时失去对正在运行的进程的控制。避免此问题的一种方法是自动启动Tmux会话。有关更多详细信息,请参阅下面的链接。通过SSH登录远程系统时自动启动Tmux会话总结在这个阶段,您已经掌握了基本的Tmux多会话管理技能。有关详细信息,请参阅手册页。$mantmuxGNUScreen和Tmux工具可以通过SSH很好地管理远程服务器。学习Screen和Tmux命令,并通过这些工具像专业人士一样管理远程服务器。
