关于 tmux
tmux 是一个终端复用工具。它允许您使用多个虚拟终端访问 tmux 终端。
tmux 利用了客户端-服务器模型,这使您可以将终端附加到一个 tmux 会话中。
这意味着您可以在单个 tmux 会话中同时运行多个终端,而无需生成任何新的实际终端会话。
这也意味着从运行 tmux 的云服务器突然断开连接不会终止 tmux 会话中正在运行的进程。
tmux 还包括窗格思维,这意味着您可以在单个屏幕上运行多个终端。
客户端-服务器模型和窗格思维的优点将在下文进一步讨论。
在 VPS 上安装 tmux
在 VPS 上安装 tmux 之前,最好更新 apt 以确保我们拥有最新的软件包。
sudo apt-get update
然后安装 tmux:
sudo apt-get install tmux
基本用法
开始一个新的 tmux 会话:
tmux
tmux 将自动使用您的默认 shell 登录您的用户帐户。
一个区别是屏幕底部会出现 tmux 状态行。它会显示有关当前 tmux 会话的信息。
实际上,您可以将其视为全新的终端。事实上,它确实只是从 tmux 中运行的新终端。
在 tmux 上下文中,这个新终端称为 窗口。让我们将我们的窗口分成两个 窗格。
tmux 可以使用前缀键(默认为 Ctrl-b)和命令键进行控制。将窗口分成两个窗格的命令键是 %。在 tmux 中:
Ctrl-b %
窗口将分成两个窗格。第一个窗格将保留分割前的工作。第二个将登录到一个全新的终端。
我们可以水平分割我们的第二个窗格:
Ctrl-b "
现在我们的窗口中有三个窗格。它应该看起来像这样:
要切换到下一个窗格(窗格从左到右,从上到下编号):
Ctrl-b o
使用 exit
退出 shell 将销毁关联的窗格。相邻的窗格将扩展以利用释放的空间。
关闭最后一个窗格将结束 tmux。
使用窗口
在上面的窗格上下文中的一步是窗口。窗口的行为类似于浏览器中的标签。
当 tmux 启动时,它会为您提供一个窗口和一个窗格。
要创建一个新窗口:
Ctrl-b c
tmux 将自动切换到新窗口。您可以在状态行中看到新窗口的指示。窗口从 0 开始编号,因此我们的新窗口是编号 1。
现在您可以创建窗格并像之前一样处理这个窗口。甚至可以创建另一个窗口。我们的三个窗口的编号分别是 0、1 和 2。
要移动到索引中的下一个窗口:
Ctrl-b n
要向后移动索引:
Ctrl-b p
窗口提供比窗格更具体的分离。两个窗口永远不会同时可见。
利用客户端-服务器模型
当您调用 tmux 时,实际发生的事情比起初看起来更加复杂。tmux 实际上创建了一个新的 会话。然后在会话中创建了一个窗口。在窗口中创建了一个窗格。
当调用 tmux 时会创建新的会话。这是最高级别的上下文容器。tmux 的单个实例与单个会话相关联。
当您退出会话中最后一个窗格中的最后一个 shell 时,会话将终止。而不是完全退出会话,您可以从会话中 _分离_。
会话将继续在后台运行(tmux 将分叉到后台),运行您分离时在其中的任何 shell。
当您稍后重新附加到会话时,您将返回到与分离时相同的会话状态。所有窗口和窗格都由会话保留。
这对于让进程在虚拟专用服务器上运行而不保持连接到 VPS 特别有用。
要从会话中分离:
Ctrl-b d
要重新附加到会话:
tmux attach -t [会话名称]
会话和窗口一样,从 0 开始编号。如果您忘记要附加到哪个会话,您可以查看活动会话:
tmux list-sessions
可以使用以下命令键查看所有命令键的列表:
Ctrl-b ?