金钱(警告)
** 状态:** 被贬值
如果您目前正在运行运行 Ubuntu 12.04 的服务器,我们强烈建议升级或迁移到支持的 Ubuntu 版本:
** 原因:** Ubuntu 12.04 已于 2017 年 4 月 28 日到期(EOL)并且不再收到安全补丁或更新。
** 相反,请参阅:** 此指南可能仍然有用作为参考,但可能不会在其他Ubuntu版本上工作. 如果可用,我们强烈建议使用为您正在使用的Ubuntu版本撰写的指南。
介绍
当您开始使用多个远程服务器时,您打开的终端会话的数量可能会开始变得压倒性。例如,在编译代码时,您的终端被一个漫长的过程所占据时,有许多次,为了绕过这一点,并避免需要连接到新的SSH会话来继续工作,终端复合器被发明。
终端复合器允许您在单个主
会话中管理多个终端窗口. 它们允许您轻松地安排和以类似于图形窗口管理器的方式与窗口进行交互。
在本指南中,我们将讨论不同的方法. 虽然其他两种选项对许多人来说是好的,但它们比大多数用户所需要的更具负担,并且缺乏一些不错的介绍。 为了解决这些问题,我们将向您展示如何使用dvtm
的组合,一个动态虚拟终端管理器,它将处理窗口管理,以及dtach
的实用程序,允许您分离会话以保持持久性。
我们将涵盖在Ubuntu 12.04 VPS实例上的安装和使用,但大多数发行版应该能够通过一些修改使用这些步骤。
安装组件
在 Linux 服务器上做大多数事情的第一步是确保您有所需的工具。
在我们的情况下,我们将不得不下载和安装dtach
和dvtm
。幸运的是,Ubuntu 12.04 存储库有这两个实用程序。
1sudo apt-get update
2sudo apt-get install dvtm dtach
这就是我们所需要的!我们现在可以开始探索这些工具的每个功能。
如何使用 dvtm 终端管理器
dvtm
终端管理器是一个窗口管理器,试图模拟一些图形板窗口管理器用户喜欢的功能和属性,如awesomewm
,dwm
,i3
,xmonad
,等等。
要开始一个dvtm
会话,你只需要从命令行调用它:
1dvtm
1─[demouser@dvtm: ~ #1]────────────────────────────────────────────────
2demouser@dvtm:~#
正如你所看到的,你现在有一个新的终端会话,但上面有一个标题. 这个标题基本上是一个窗口标题栏. 它告诉你它正在管理的会话和窗口号码。
你需要知道的第一件事是,所有的dvtm
命令都以mod
键序列开始,当你击中这个序列时,它会向dvtm
发出信号,表示它应该开始聆听并拦截下一个键。
默认情况下,mod 序列为CTRL-g
。因此,对dvtm
的每个命令都具有以下格式:
CTRL-g [keypress]
基本窗口管理
让我们直接跳入并开始使用多个窗口。你将学习的第一个序列将允许你创建第二个窗口:
1CTRL-g c
你需要握住控制
键,点击g
键,然后释放这两个键,然后按c
。
1──[demouser@dvtm: ~ | #1]──────────┬──[demouser@dvtm: ~ | #2]──────────
2demouser@dvtm:~# │demouser@dvtm:~#
3 │
4 │
正如你所看到的,你现在有两个窗口! 如果你输入一些字符,你会看到它们出现在其中一个窗口中。
1CTRL-g j # Cycle forward through windows
2CTRL-g k # Cycle backward through windows
如果您想跳到特定窗口,您可以通过引用其窗口号来做到这一点:
1CTRL-g [window #]
例如,要将焦点移动到窗口3,我们可以键入CTRL-g 3
。
要摧毁具有焦点的窗口,键入:
1CTRL-g x
要摧毁 all windows 并结束你的dvtm
会话,键入:
1CTRL-g q
调整布局布局
当你创建更多的窗口时,你会注意到,默认情况下,一个区域仍然更大,而额外的窗户堆积在一侧。
默认情况下,窗户放置在所谓的垂直堆栈
面板布局中,这会创建一个主
窗户,所有其他窗户将剩余空间分开。
创建四或五个窗口,并在某些窗口中启动一些程序,以便您可以将它们分开。
要循环通过布局,使用此序列:
1CTRL-g [SPACE]
默认情况下,您可以循环的布局,顺序是:
- 垂直堆栈:默认布局. 主窗在左侧,所有其他窗户在右侧共享空间。
- grid: 所有窗户试图在窗户区域占用平等的空间. 没有相关的主窗户(这是技术上左侧的空间)。
- 底堆: 主窗位于屏幕的上半部分。 剩余的窗户占据下半部分。
- 全屏: 最大化当前聚焦的窗户。 您可以像往常一样在最大化状态下循环每个窗户。
您可以使用空间
键继续循环这些布局,但您也可以使用特定的密钥序列单独引用它们:
1CTRL-g t # Switch to vertical stack
2CTRL-g g # Switch to grid
3CTRL-g b # Switch to bottom stack
4CTRL-g m # Switch to fullscreen
若要将当前聚焦的窗口变为新主窗口,请键入:
1CTRL-g [ENTER]
如果您在当前的主窗口中使用此功能,它将简单地与下一个窗口(时钟方向)交换。
操纵你的窗户和窗户区域
虽然这些功能很有用,但有时你需要一些额外的功能。
例如,您可能需要调整主窗口所占用的大小,您可以使用以下键:
1CTRL-g l # Increase master window space
2CTRL-g h # Decrease master window space
这意味着你可以根据手中的任务来调整你的屏幕房地产。
有时,你不需要处理一个窗口一段时间,但你仍然需要有它可用. 在传统的窗户系统中,你会尽量减少窗口,允许你暂时让它走出路径。
同樣的事情是可能的「dvtm」。 專注於您想要減少的窗口,然後輸入:
1CTRL-g .
这将最小化当前聚焦的窗口。
您仍然可以轻松地通过您的窗口循环,并使用CTRL-g j
和CTRL-g k
或将其参考为数字(CTRL-g #
)。
通过最小化的窗户自行车的能力是一个很好的功能,因为它允许它们被操纵和引用,然而,有时你只想通过目前在窗户区域内的窗户自行车。
要做到这一点,‘dvtm’还包括一组单车命令,只会影响未被最小化的窗口,所以如果您有窗口 1-5 和 2 和 4 被最小化,这些窗口将循环通过窗口 1,3,和 5:
1CTRL-g u # Cycle forward through un-minimized windows
2CTRL-g i # Cycle backward through un-minimized windows
一个额外的命令,有时可能有用的是能够同时将键盘输出发送到您的终端窗口的所有。
1CTRL-g a
这将将从键盘发送所有输出到每个单独的窗口,直到您再次发出命令来关闭此功能为止。
如何使用 dtach 使您的会话持久
dvtm
内的所有这些功能都很棒,它允许应用程序比屏幕
或tmux
更专注,并专注于其优势,但是,由于这一点,它仅限于窗口管理。
许多用户想要的终端多元化器的一个功能是持久的会话的能力,这意味着能够从会话中分离,并离开窗户,以及其中的一切,运行。
虽然dvtm
设计上没有这个功能,但它与其他专注于提供分离能力的工具非常好。
首先,退出当前的dvtm
会话,如果你还没有,你可以输入CTRL-g q
,如果你不需要保存任何工作。
现在,我们可以开始一个dtach
会话,我们需要通过这样的命令:
1dtach -A /tmp/dvtm -r winch dvtm
让我解释这里发生了什么事,首先,我们称之为dtach
命令本身,这应该是自我解释的。
- -A:上面的
A
旗帜附加到现有的指定会话,如果它存在,否则它会创建一个新的会话并附加到它。 - /tmp/dvtm:这是
dtach
将使用的存储和传输信息的插槽。该插槽的权限将决定谁可以连接,所以如果您希望该会话不能被其他用户在您的服务器上使用,请将其放置在他们无法访问的地方。 - -r winch:这指定了重绘方法。为了使我们的会话在重新连接后正确显示,我们需要告诉
dtach
将WINCH信号发送到程序中。 dvtm*:这说明了一旦会话开始,我们应该启动`dvtm
如果您在这个命令中键入,一个dvtm
会话将在一个dtach
会话中启动,它将与您的正常dvtm
会话完全相同。
唯一的区别是,您现在可以脱离会话,让所有窗口运行。
1CTRL-\
要在我们分开后返回我们的会话,我们可以简单地再次拨打相同的命令。
因为启动和重新连接到会话的命令是相同的,并且因为命令有点麻烦,我们可以创建一个名称,使我们能够轻松地管理这一点。
使用您的文本编辑器打开 shell 的配置文件:
1nano ~/.bashrc
在底部,添加一个名称,以便您可以轻松地开始或访问您的会话,用一个单词,例如,我在我的配置中选择了序列wm
(窗口管理器):
1alias wm="dtach -A /tmp/dvtm -r winch dvtm"
保存和关闭文件 我们现在可以源文件,以获得我们的更改:
1source ~/.bashrc
现在,当我们键入wm
,我们将创建一个dtach
会话,如果没有一个,并在里面启动dvtm
。
结论
正如您所看到的,通过使用dvtm
来管理您的窗户和dtach
来添加坚持性,您可以设置一个非常有用的环境,允许您高效地使用多个窗户。