如何在Ubuntu12.10上安装和使用tmux

来自菜鸟教程
跳转至:导航、​搜索

关于 tmux

tmux 是一个终端多路复用器。 它允许您使用多个虚拟终端访问一个 tmux 终端。

tmux 利用客户端-服务器模型,它允许您将终端附加到 tmux 会话。

这意味着您可以在单个 tmux 会话之外同时运行多个终端,而无需产生任何新的实际终端会话。

这也意味着与运行 tmux 的云服务器的突然断开连接不会杀死在 tmux 会话中运行的进程。

tmux 还包括一种窗口窗格的思维方式,这意味着您可以在一个屏幕上运行多个终端。

客户端-服务器模型和窗格思维的优点将在下面进一步讨论。

在 VPS 上安装 tmux

在 VPS 上安装 tmux 之前,最好更新 apt 以确保我们拥有最新的软件包。

 <pre>sudo apt-get update</pre>

然后安装 tmux:

 <pre>sudo apt-get install tmux</pre>

基本用法

开始一个新的 tmux 会话:

 <pre>tmux</pre>

tmux 将使用您的用户帐户自动登录到您的默认 shell。

一个区别是屏幕底部的 tmux 状态行的外观。 它将向您显示有关当前 tmux 会话的信息。

实际上,您可以将其视为一个全新的终端。 事实上,它实际上只是一个从 tmux 内部运行的新终端。

这个新终端在 tmux 的上下文中称为 window。 让 ' 将我们的窗口分成两个 窗格

可以使用前缀键(默认为 Ctrl-b)和命令键来控制 tmux。 拆分为两个窗格的命令键是 %。 从 tmux 内部:

 <pre>Ctrl-b %</pre>

窗口将分成两个窗格。 第一个窗格将保留拆分前的工作。 第二个将登录到一个全新的终端。

我们可以水平拆分第二个窗格:

 <pre>Ctrl-b "</pre>

现在我们的窗口中有三个窗格。 它应该如下所示:

要切换到下一个窗格(窗格从左到右、自上而下编号):

<pre>Ctrl-b o</pre>

使用 exit 退出 shell 将破坏关联的窗格。 相邻窗格将展开以利用释放的空间。

关闭最后一个窗格将结束 tmux。

使用视窗

窗格上方上下文中的一个步骤是窗口。 Windows 的行为类似于浏览器中的选项卡。

当 tmux 启动时,它会为您提供一个窗口和窗口内的单个窗格。

要创建一个新窗口:

 <pre>Ctrl-b c</pre>

tmux 将自动切换到新窗口。 您可以看到状态行中指示的新窗口。 窗口从 0 开始编号,因此我们的新窗口编号为 1。

现在您可以像以前一样创建窗格并处理此窗口。 我们甚至可以创建另一个窗口。 我们的三个窗口编号为 0、1 和 2。

要移动到索引中的下一个窗口:

 <pre>Ctrl-b n</pre>

在索引中向后移动:

 <pre>Ctrl-b p</pre>

窗户提供了比窗格更具体的分隔。 永远不会同时看到两个窗口。

利用客户端-服务器模型

当您调用 tmux 时真正发生的事情比最初看起来要复杂得多。 tmux 实际上创建了一个新的 session。 然后在会话中创建一个窗口。 在窗口中创建了一个窗格。

调用 tmux 时会创建新会话。 这是最高级别的上下文包含。 单个 tmux 实例链接到单个会话。

当您在会话的最后一个窗口的最后一个窗格中退出最后一个 shell 时,会话将终止。 您可以从会话中_分离_,而不是完全退出会话。

会话将继续在后台运行(tmux 将分叉到后台),在您分离时运行其上的任何 shell。

当您稍后重新连接到会话时,您将以与分离时相同的状态返回到会话。 会话保留所有窗口和窗格。

这对于让进程在虚拟专用服务器上运行而不与 VPS 保持连接特别有用。

要从会话中分离:

 <pre>Ctrl-b d</pre>

要重新附加到会话:

 <pre>tmux attach -t [session name]</pre>

会话和窗口一样,从 0 开始编号。 如果您忘记了要附加到哪个会话,您可以查看活动会话:

 <pre>tmux list-sessions</pre>

可以通过以下方式访问所有命令键的列表:

 <pre>Ctrl-b ?</pre>