在 Linux 下使用 screen 命令是拥有多个工作“窗口”的有效方法。一个屏幕可能是 bash shell,另一个针对数据库打开的 mysql 命令行,还有一个用于编辑源代码文件的 vim 会话。
在 Windows 下,可以使用 alt-tab 快速将焦点移至另一个窗口。在 Linux 下,我可能必须:
- 输入 Ctrl-a + “d”(分离当前屏幕)
- 输入“screen -ls”来查看活动屏幕的 pid(假设我不记得其他屏幕的 pid)
- 输入“screen -r [pid]”(恢复选定的屏幕)
现在,一旦掌握了正确的命令和快捷方式,通常使用命令行会很快。但是,与在 Windows 中按 Alt-tab 相比,在屏幕之间切换似乎并不优雅和快速。事实上,输入命令和 pid 似乎很繁琐、笨拙和乏味。
(上面的第 3 点可以通过输入“scr”+Ctrl-r 返回命令历史记录来稍微改进一下,假设我之前已经访问过另一个屏幕,但这仍然不是很优雅)
因此,我想知道是否有一种方法可以通过单个或几个键击在屏幕之间快速切换 - 最好是每次针对服务器启动新的终端会话时不需要重新设置。
更新:正如 Lister 先生指出的那样,Linux 桌面中的终端应用程序(甚至是 Windows 中的 Putty)本身就提供了打开多个控制台并使用快捷方式在它们之间切换的选项,例如 Ubuntu 中的 Ctrl+PgUp/Dn。但是,在这种情况下,我在云中的无头服务器中使用基本的 bash 终端,因此可接受的解决方案是完美的,因为所描述的功能驻留在服务器本身的 bash 中,并且不依赖于打开与服务器的其他连接。
答案1
为什么要运行单独的屏幕实例。我认为您想要做的事情可以更有效地完成(既节省资源又减少输入,如下所示:)
- 仅启动一个屏幕实例。
- Control- AC
您现在有一个带有两个活动 shell 的屏幕程序。
Control您可以使用-号在窗口之间切换A。
您可以使用 - 查看哪些窗口正在运行。您可以使用-ControlA "
为当前活动窗口指定名称ControlA A
如果您有几个经常使用的屏幕,您可以将其放在 .screenrc 中。以下是同时启动 4 个 shell 并为其指定易于记忆的名称的文件示例:
$ cat ~/.screenrc
vbell off
startup_message off
screen -t ele 0
screen -t OS 1
screen -t A2 2
screen -t Universes 3
而且只有一个屏幕运行时,就不需要了screen -ls
。任何screen -d
和screen -r
或screen -x
都可以。