使用Mosh和Tmux在Linux上获得更好的远程会话

Linux的优势之一是其面向网络的定位,这在很大程度上要归功于它的Unix传统。 Linux之所以成为服务器的首选操作系统是有原因的。

远程访问Linux服务器的主要方法是通过SSH或Secure Shell。尽管实用且安全,但它是在Wi-Fi和蜂窝连接变得司空见惯的时代设计的。

如果将计算机移至其他Wi-Fi网络或使其进入睡眠状态,则可能会因终端屏幕似乎死机而断开连接。

为什么选择Mosh + Tmux?

幸运的是,有一些工具可以使SSH远程计算更易于使用和更可靠。您可以在从数据中心的物理终端到家庭服务器,云服务器甚至运行Unix或BSD操作系统的另一台台式机的所有设备上使用它们。

Mosh是SSH之上的工具,可让您了解网络连接的变化,而tmux是“终端多路复用器”,可让您在不同的登录名之间保留Shell会话,甚至共享它们。

阅读更多:什么是SSH?它代表什么?

Mosh入门

Mosh是一个开源项目,可以使SSH通过漫游和间歇连接进行工作,因为许多无线连接都可以使用。

您可以将计算机从有线网络切换到有线网络,也可以切换到其他无线网络,这样您的连接就会保持正常。您还可以使笔记本电脑在连接时进入睡眠状态,并且在网络重新连接后,您可以在终端窗口中键入内容。

相关:使用这些Linux命令管理远程SSH连接

如果您失去网络连接,Mosh会告诉您尚未收到远程服务器的消息。如果服务器回显字符的速度很慢,它将在您键入的内容下划线,直到返回最新的屏幕。

作者撰写的论文中有更多的技术细节,但是作为用户安装它非常简单。 Mosh在大多数Linux发行版的软件包管理器中都可以广泛使用。它也可以作为Google Chrome应用程序使用。

在Linux上安装Mosh

例如,要在Ubuntu中安装:

 sudo apt install mosh

当然,该服务器还必须安装Mosh服务器。 Mosh的优点是服务器组件可以在用户模式下运行,因此您不必是root用户即可安装它。

使用莫什

当您想连接到远程计算机时,只需键入:

 mosh [email protected]

显然,您将要用您的用户名和您要连接的计算机的名称替换“用户名”和“服务器”。

如果您有更特殊的需求,例如连接到其他端口,请参阅文档。

如果一切正常,您将使用SSH进行远程终端会话。您将能够以相同的方式发出命令,但是您的连接将更加可靠。

Tmux入门

您具有可以在无线网络更改中幸免的远程终端连接,但是当您最终连接时该怎么办?

您可能需要花费很长时间来完成一项工作,例如安装软件或什至是长时间的编译工作。如果断开连接会发生什么。当终端运行时,该作业可能会退出。

另外,即使使用作业控制,您一次只能在终端中做一件事。如果要运行全屏编辑器,它将占用整个终端。

Tmux是解决这些问题的一种方法。这是一个“终端多路复用器”,可让您在一个窗口中运行多个终端。它就像Linux桌面上的选项卡式终端,但更加灵活。

您可以分离会话并注销,以便稍后再返回并从上次中断的地方继续接听。您可以打开多个终端窗口。您可以在编辑器的一个窗口中编辑程序,然后在另一个窗口的命令行中对其进行测试。

安装tmux也非常容易。像Mosh一样,它包含在许多Linux发行版程序包管理器中。在Ubuntu中,您只需输入:

 sudo apt install tmux

显然,您必须将其安装在远程计算机上才能在此处使用,但是在本地也非常有用。

安装后,使用以下命令启动tmux:

 tmux

然后,您将启动到一个终端窗口,类似于您在本地启动的窗口。您会看到一个状态栏,显示您所在的窗口。

Tmux将屏幕分为带有多个“窗格”的“窗口”,显示它们自己的终端。您可以重新排列和调整这些窗格的大小,并使用无限制的窗口和自己的窗格。

因为tmux是基于终端的程序,所以它完全由键盘控制。在tmux中执行命令的默认前缀命令是Ctrl + B。可以在配置文件中更改。

用户配置文件是主目录中的.tmux.conf。该文档具有更多详细信息,但是您可以执行的自定义数量很多。

Tmux可能有一个学习曲线,但是对于Linux / Unix世界中的其他“困难”程序,许多用户发现花在学习这些程序上的时间都花在了它允许他们做的事情上。

最强大的选项之一是能够分离会话并在以后重新附加到该会话。为此,请按Ctrl + D。要重新连接,请在外壳上键入“ tmux attach”,然后您会回到会话中。

这意味着您的会话将与计算机保持一致。这种方法在运行IRC等聊天应用程序时也很流行,因为人们可以在聊天室中呆很长时间。还可以与其他人共享会话,例如进行配对编程。

结合Mosh和Tmux

远程会话的真正功能来自Mosh和tmux的组合。

使用Mosh,您可以从任何地方登录到远程计算机,而不必担心连接的可靠性。如果您想运行一些可能需要很长时间的内容,则可以分离会话并稍后再返回。

Mosh和tmux的结合将使您在远程登录中具有最大的可靠性和灵活性。仅在tmux中还有很多值得探索的东西,它们将释放您的终端会话的功能。