终端管理七要素 终端管理


终端管理七要素 终端管理


我们已经了解到如何通过 GNU Screen进行多会话管理 。今天,我们将要领略另一个著名的管理会话的命令行实用工具Tmux 。类似 GNU Screen,Tmux 是一个帮助我们在单一终端窗口中创建多个会话,同一时间内同时运行多个应用程序或进程的终端复用工具 。Tmux 自由、开源并且跨平台,支持 Linux、OpenBSD、FreeBSD、NetBSD 以及 Mac OS X 。本文将讨论 Tmux 在 Linux 系统下的高频用法 。
Linux 下安装 tmux
Tmux 可以在绝大多数的 Linux 官方仓库下获取 。
在 Arch Linux 或它的变种系统下,执行下列命令来安装:
$ sudo pacman -S tmux
Debian、Ubuntu 或 Linux Mint:
$ sudo apt-get install tmux
Fedora:
$ sudo dnf install tmux
RHEL 和 CentOS:
$ sudo yum install tmux
SUSE/openSUSE:
$ sudo zypper install tmux
以上,我们已经完成 Tmux 的安装 。之后我们继续看看一些 Tmux 示例 。
Tmux 命令示例: 多会话管理
Tmux 默认所有命令的前置命令都是 Ctrl+b,使用前牢记这个快捷键即可 。
注意:Screen的前置命令都是Ctrl+a.
创建 Tmux 会话
在终端中运行如下命令创建 Tmux 会话并附着进入:
tmux
抑或,
tmux new
一旦进入 Tmux 会话,你将看到一个 沉在底部的绿色的边栏,如下图所示 。
创建 Tmux 会话
这个绿色的边栏能很容易提示你当前是否身处 Tmux 会话当中 。
【终端管理七要素 终端管理】退出 Tmux 会话
退出当前 Tmux 会话仅需要使用 Ctrl+b和d 。无需同时触发这两个快捷键,依次按下Ctrl+b和d即可 。
退出当前会话后,你将能看到如下输出:
[detached (from session 0)]
创建有名会话
如果使用多个会话,你很可能会混淆运行在多个会话中的应用程序 。这种情况下,我们需要会话并赋予名称 。譬如需要 web 相关服务的会话,就创建一个名称为 “webserver”(或任意一个其他名称) 的 Tmux 会话 。
tmux new -s webserver
这里是新的 Tmux 有名会话:
拥有自定义名称的 Tmux 会话
如你所见上述截图,这个 Tmux 会话的名称已经被标注为 “webserver” 。如此,你可以在多个会话中,轻易的区分应用程序的所在 。
退出会话,轻按 Ctrl+b和d 。
查看 Tmux 会话清单
查看 Tmux 会话清单,执行:
tmux ls
示例输出:
列出 Tmux 会话
如你所见,我们开启了两个 Tmux 会话 。
创建非附着会话
有时候,你可能想要简单创建会话,但是并不想自动切入该会话 。
创建一个非附着会话,并赋予名称 “ostechnix”,运行:
tmux new -s ostechnix -d
上述命令将会创建一个名为 “ostechnix” 的会话,但是并不会附着进入 。
你可以通过使用 tmux ls命令验证:
创建非附着会话
附着进入 Tmux 会话
通过如下命令,你可以附着进入最后一个被创建的会话:
tmux attach
抑或,
tmux a
如果你想附着进入任意一个指定的有名会话,譬如 “ostechnix”,运行:
tmux attach -t ostechnix
或者,简写为:
tmux a -t ostechnix
关闭 Tmux 会话
当你完成或者不再需要 Tmux 会话,你可以通过如下命令关闭:
tmux kill-session -t ostechnix
当身处该会话时,使用 Ctrl+b以及x 。点击y来关闭会话 。
可以通过 tmux ls命令验证 。
关闭所有 Tmux 服务下的所有会话,运行:
tmux kill-server
谨慎!这将终止所有 Tmux 会话,并不会产生任何警告,即便会话存在运行中的任务 。

推荐阅读