如何在linux上使用tmux(以及为什么它比screen更好)

linuxtmux命令是一个终端多路复用器,类似于screen。它的倡导者很多,声势浩大,所以我们决定将两者进行比较。是tmux真的更好,还是只是喜欢你所知道的?...

linuxtmux命令是一个终端多路复用器,类似于screen。它的倡导者很多,声势浩大,所以我们决定将两者进行比较。是tmux真的更好,还是只是喜欢你所知道的?

tmux与屏幕

tmux和GNU屏幕命令都是终端多路复用器。它们允许您在一个终端窗口中有多个窗口,并在它们之间来回跳转。窗口可以分为多个窗格,每个窗格都提供一个独立的命令行。

您还可以分离一个会话,它将成为一个在后台运行的无头实体,甚至可以关闭启动它的终端窗口。准备好后,可以打开一个新的终端窗口并重新连接仍在运行的会话。您还可以通过SSH连接执行此操作。

您可以分离一台计算机上的会话,回家,然后登录到远程计算机。重新连接后,可以重新连接后台会话并以交互方式再次使用它。

屏幕命令是什么?

screen命令也是一个终端多路复用器,它包含很多选项。关于你能用它做的所有事情的真相,请查看我们的深入文章。

这一次,我们将专注于tmux。接下来,我们将介绍screen如何处理相同的特性或功能。

关于屏幕,只有一件事让我们恼火。我们到了以后再谈,看看tmux是否更好。

相关:如何使用Linux的screen命令

安装tmux

虽然screen通常在流行的Linux发行版上默认安装,但tmux不是。要在Ubuntu上安装tmux,请键入以下命令:

sudo apt-get install tmux

如何在linux上使用tmux(以及为什么它比screen更好)

在Manjaro,你可以使用pacman:

sudo pacman -Sy tmux

如何在linux上使用tmux(以及为什么它比screen更好)

在Fedora31上,已经安装了tmux。

启动tmux会话

要启动tmux,只需键入它并按回车键:

tmux

如何在linux上使用tmux(以及为什么它比screen更好)

在tmux会话中,终端窗口将显示一个状态栏。

如何在linux上使用tmux(以及为什么它比screen更好)

状态栏的右侧显示主机名、时间和日期。左侧显示以下会话相关信息:

  • [0]:这是会话名称。默认情况下,它们从零开始编号。我们将介绍如何为下面的会话提供有意义的名称。
  • 0:bash*:0表示这是此会话中的第一个窗口。此会话中运行的唯一进程是bash。如果你运行一个程序,它的名字会出现在这里。星号(*)表示这是您正在查看的窗口。每次在tmux会话中创建一个新窗口时,它的窗口号和在其中运行的程序的名称都会添加到状态栏中。

screen命令不提供状态栏。你必须瞎飞,依靠你的智慧去知道发生了什么,这需要一点练习。

好的一面是,你不会失去一个终端窗口房地产线。当然,您通常会扩展您的终端窗口,使使用终端多路复用器变得有价值。在这种情况下,状态栏丢失一行并不是什么大问题。我们将终端窗口的图像保留为默认大小,以便您可以查看信息。

命令是通过击键提供给tmux的,这有两个部分。首先,按下Ctrl+B以引起tmux的注意。然后快速按next键向mux发送命令。通过按字母、数字、标点符号或箭头键来发出命令。

它在屏幕上是一样的,只是你按下Ctrl+A来引起它的注意。

要关闭窗口,请按Ctrl+B,然后快速按X。状态栏变为琥珀色。然后系统会提示您确认是否要关闭窗口。

按Y键关闭窗口,如果你改变主意,按N键。之后不必按Enter键;Y或N就足以注册您的选择。

如何在linux上使用tmux(以及为什么它比screen更好)

如果按Y键,窗口将关闭。因为这是此会话中的唯一窗口,所以会话被终止。

如何在linux上使用tmux(以及为什么它比screen更好)

tmux会话将关闭,您将返回到启动tmux的命令行。您将在终端窗口中看到“[退出]”。

这看起来像是在陈述一个显而易见的事实,但这是一个确认,您已经关闭了会话,没有让它分离并运行。我们将在下面讨论分离会话。

启动命名的tmux会话

如果您定期启动多个tmux会话,您将很快体会到为每个会话赋予一个有意义的名称的功能。您也可以在屏幕中命名会话,但它们不会显示在会话窗口的任何位置。

要使用会话名称启动tmux,请使用new(new session)命令和-s(session name)选项。我们的会话将被称为“geek-1”,因此我们键入以下内容:

tmux new -s geek-1

如何在linux上使用tmux(以及为什么它比screen更好)

当tmux会话加载时,“geek-1”显示为状态栏最左侧的第一个条目。

如何在linux上使用tmux(以及为什么它比screen更好)

添加更多窗口

要在当前会话中创建新窗口,请按Ctrl+B,然后按C。当前会话中会出现一个空白的终端窗口。因此,我们将在这个新窗口中运行一些程序,让我们使用-w(follow)选项启动dmesg命令:

dmesg -w

如何在linux上使用tmux(以及为什么它比screen更好)

现在会话中有两个窗口:一个运行top,另一个运行dmesg。不过,我们一次只能看到一个。

如何在linux上使用tmux(以及为什么它比screen更好)

查看状态栏的左侧。我们还在“geek-1”tmux会话中。在窗口0中,top正在运行,而在窗口1中,dmesg正在运行。dmesg后面的星号(*)告诉我们哪个窗口是可见的。

要在窗口之间切换,请按Ctrl+B,然后按以下键之一:

  • N:显示下一个窗口。
  • P:显示上一个窗口。
  • 0到9:显示编号为0到9的窗口。

也可以从列表中选择窗口。如果按Ctrl+B,然后按W,将显示一个窗口列表。

如何在linux上使用tmux(以及为什么它比screen更好)

要移动琥珀色突出显示栏,请按向上或向下箭头、Home或End。显示屏的底部显示高亮显示窗口中内容的预览。

按Enter键移到高亮显示的窗口,或按Esc键离开窗口列表而不切换。

分离和附加会话

如果按Ctrl+B,然后按D,则将分离会话。它将继续在后台运行,但您将无法看到或与之交互。

我们已经在课程中开始了,所以我们有一个正在运行的过程来演示。然后,我们按Ctrl+B,然后按D。会话消失并成为后台会话。

如何在linux上使用tmux(以及为什么它比screen更好)

我们回到原来的终端窗口。来自tmux的消息告诉我们会话已分离。这也让我们想起了我们给会议起的名字。这很方便,因为这就是我们用来附加到后台会话,然后将其恢复到交互式会话的方法。

要附加分离的会话,我们将使用带有-t(目标会话)选项的自解释的attach session命令。我们还将提供我们希望回忆的会话的名称。

我们键入以下内容:

tmux attach-session -t geek-1

如何在linux上使用tmux(以及为什么它比screen更好)

我们的会话返回并再次成为可见的交互式会话。

如何在linux上使用tmux(以及为什么它比screen更好)

附加会话时,在分离会话之前启动的任何长时间运行或连续进程仍将在后台运行(除非它们已完成)。

屏幕可以做到这一点,但不是直观的。

处理多个会话

让我们打开另一个终端窗口,开始一个名为“geek-2”的新tmux会话:

tmux new -s geek-2

如何在linux上使用tmux(以及为什么它比screen更好)

在那节课中,我们将开始dmesg:

dmesg -w

如何在linux上使用tmux(以及为什么它比screen更好)

现在,我们有了原来的“geek-1”tmux会话,还有一个新的叫做“geek-2”

如何在linux上使用tmux(以及为什么它比screen更好)

状态栏向我们显示这个会话称为“geek-2”,它有一个运行dmesg的窗口。

如果我们按Ctrl+B,然后按D,我们将分离该会话。

如何在linux上使用tmux(以及为什么它比screen更好)

回到“geek-1”tmux会话中,我们按Ctrl+B,然后按S查看tmux会话的列表。

如何在linux上使用tmux(以及为什么它比screen更好)

要明确的是,这是一个会话列表。我们之前看到的类似显示是单个会话中的窗口列表。

您可以通过按向上和向下箭头、Home和End来移动琥珀色突出显示栏。底部部分显示突出显示的会话中内容的预览。

如何在linux上使用tmux(以及为什么它比screen更好)

如果按向右箭头,将显示突出显示的会话的窗口。

如何在linux上使用tmux(以及为什么它比screen更好)

按Enter键移动到突出显示的会话或窗口,或按Esc键离开会话列表而不更改会话。如果选择一个新会话,则当前会话将分离,并且所选会话将附加。

在此之前,我们分离了“极客2”会话。但是,您可以使用仍然附加到其原始终端窗口的会话来执行此操作。当您这样做时,任何屏幕更改都将同时出现在两个tmux会话中。

screen命令也可以通过一组类似的命令来实现这一点。

使用窗格

如果按Ctrl+B,然后按双引号(“”),则将窗口水平拆分为两个窗格。

如何在linux上使用tmux(以及为什么它比screen更好)

这只影响当前窗口;会话中的其他窗口不会更改。我们使用了顶部窗格中的tmuxls命令来列出此会话中的窗口。有两个,状态行告诉我们我们在第一窗口。如果我们按Ctrl+B跳转到窗口0,然后按0(零),我们会看到它和我们离开时一样。

这是两个独立的命令行,而不是一个窗口中的两个视图;它们是不同的独立shell。我们可以通过在每个窗格中运行不同的命令来显示这一点。

我们键入以下内容:

找到对应内核版本

ls-hl型

要从一个窗格移动到另一个窗格,请按Ctrl+B,然后按向上、向下、向左或向右箭头。

如何在linux上使用tmux(以及为什么它比screen更好)

如果按Ctrl+B,然后按百分号(%),则会垂直拆分当前窗格。

如何在linux上使用tmux(以及为什么它比screen更好)

按Ctrl+B,然后按Q使tmux短暂地闪烁每个窗格的编号。

如何在linux上使用tmux(以及为什么它比screen更好)

这些数字用于来自tmux的提示和消息中。按Ctrl+B,然后按X关闭当前窗格。状态栏变为琥珀色,系统将提示您确认是否要关闭该窗格编号。按Y键删除窗格,或按N键保持原样。

如何在linux上使用tmux(以及为什么它比screen更好)

如果按Y键,窗格将被删除。

如何在linux上使用tmux(以及为什么它比screen更好)

screen命令也有窗格,但是,它们的使用不够直观。screen让我们恼火的是,如果您用窗格分离了一个会话,那么当您重新连接该会话时,窗格就会消失。这个很快就会变老。

a ctrl+b备忘单

我们在下面的tmux中包含了不同命令的备忘单。

会话命令

  • S:列出会话。
  • $:重命名当前会话。
  • D:分离当前会话。
  • Ctrl+B,然后呢?:在tmux中显示帮助页。

窗口命令

  • 创建一个新窗口。
  • ,:重命名当前窗口。
  • W:列出窗户。
  • 护士:移到下一个窗口。
  • P:移到上一个窗口。
  • 0到9:移动到指定的窗口编号。

窗格命令

  • %:创建水平拆分。
  • “:创建垂直拆分。
  • H或左箭头:移到左边的窗格。
  • I或向右箭头:移到右侧窗格。
  • J或向下箭头:移动到下面的窗格。
  • K或向上箭头:移动到上面的窗格。
  • 问:简要显示窗格编号。
  • O:按顺序在窗格中移动。每次按下都会把你带到下一个,直到你遍历所有的按键。
  • }:将当前窗格的位置与下一个窗格交换。
  • {:将当前窗格的位置与上一个窗格交换。
  • X:关闭当前窗格。

他们如何比较

在功能方面,screen和tmux的性能相似,并且提供相同的主要特性。访问这些功能的方式明显不同。tmux提供了更流畅、更舒适的方式来实现各种功能。然而,这并不是唯一的区别。

在tmux中重命名会话和窗口的功能非常简洁,而在重新连接会话时保留窗格的事实改变了游戏规则。

另一方面,当您分离并重新连接会话时,屏幕将完全丢失窗格。这几乎够烦人的,让你一开始就避免分离。

tmux还有很多功能,包括其难以置信的灵活脚本功能。你应该亲自去看看。

  • 发表于 2021-04-02 05:16
  • 阅读 ( 236 )
  • 分类:互联网

你可能感兴趣的文章

你的电脑不再支持windows 10?这是你能做的!

... 像这样的问题是为什么我们不建议立即安装新的更新。不幸的是,目前还没有解决这个问题的方法。您可以尝试通过安装媒体而不是使用提示符来安装Creators Update,但即使您成功升级,也...

  • 发布于 2021-03-13 10:03
  • 阅读 ( 257 )

从命令行关闭linux计算机的5种方法

... 让我们依次查看这些命令,并检查如何以及何时使用这些命令。 ...

  • 发布于 2021-03-14 17:35
  • 阅读 ( 227 )

如何在raspberry pi上安装android

... 为什么在raspberry pi上安装android而不是linux? ...

  • 发布于 2021-03-18 23:47
  • 阅读 ( 319 )

如何在带屏幕的linux终端上进行多任务处理

...具。但是,它并不是Linux终端工具箱的唯一命令,这就是为什么您应该将这个重要Linux命令的备忘单添加为书签的原因。 ...

  • 发布于 2021-03-21 22:09
  • 阅读 ( 200 )

linux正在吃掉你的公羊吗?如何管理你的记忆

...安装Linux的前提是它比Windows需要更少的系统资源。那么,为什么你的系统突然内存不足呢? ...

  • 发布于 2021-03-23 08:31
  • 阅读 ( 322 )

所有平台的顶级免费屏幕录制软件

... 这就是为什么OBS工作室是游戏玩家和专业人士经常选择的原因。它不仅适用于Windows和macOS,而且也适用于Linux。 ...

  • 发布于 2021-03-26 21:00
  • 阅读 ( 395 )

如何让人们在缩放会议中共享屏幕

...幕上,但它也需要启用缩放的白板功能。我们将向您展示如何做到这一点,以及如何允许多人同时共享屏幕。 相关:如何在缩放中使用白板功能来标记屏幕 允许人们共享缩放屏幕 为了让参与者共享他们的屏幕,您需要先创建...

  • 发布于 2021-03-31 12:40
  • 阅读 ( 174 )

如何使用linux的screen命令

...生。但是,您现在正在多路复用终端仿真器中运行shell。为什么这是件好事?好吧,让我们开始一个需要很长时间才能完成的过程。我们将下载最新Linux内核的源代码,并将其重定向到名为latest的文件中_内核.zip. 为此,我们键入...

  • 发布于 2021-04-02 11:06
  • 阅读 ( 182 )

windows 10的2018年4月更新中的所有新功能,现已提供

...部GPU。 应用权限选项 相关:如何禁用网络摄像头(以及为什么要禁用) 当您将“设置”>“隐私”>“摄像头”下的“让应用程序使用我的摄像头硬件”切换到“关闭”时,传统桌面应用程序将无法使用您的网络摄像头。以...

  • 发布于 2021-04-06 10:18
  • 阅读 ( 227 )

用于linux终端多任务的gnu屏幕的2种替代方案

我们以前写过关于在Linux终端上使用GNU屏幕进行多任务处理的文章。GNU-Screen是这些程序的鼻祖,但是tmux和dvtm+dtach是您可能更喜欢的其他解决方案。 Tmux是对GNU屏幕的改进重写。Dvtm是一个控制台多路复用器,其灵感来自平铺窗口...

  • 发布于 2021-04-12 10:36
  • 阅读 ( 149 )
洗澡的泥巴
洗澡的泥巴

0 篇文章

相关推荐