Linux 中使用单个控制台进行多个会话?

Dam*_*ien 4 linux

假设我只有一个控制台,是否可以模拟多个控制台/会话?

我正在寻找 linux 命令/方法,而不是 ubuntu/debian 特定的。

#console1
$ ..

#console2
$ console_switch 2
$ ..

#console1 again
$ console_switch 1
$ ..
Run Code Online (Sandbox Code Playgroud)

有没有这样的东西,即使是作为一个包?

找到包“screen”,但在切换之间不保留输出。

use*_*686 6

和终端tmux多路复用screen器因此很受欢迎。通过垂直/水平分割,可以同时看到多个窗口;例如,Ctrl-B "在 tmux 中。甚至可以在窗口之间复制和粘贴文本。

\n

Emacs 编辑器允许再次在其多个缓冲区 \xe2\x80\x93 中运行交互式 shell,屏幕上有多个缓冲区,并在它们之间进行复制/粘贴。Vim 也是如此(使用“ :terminal”命令),Neovim 中也存在类似但不完全相同的功能。(在我 5 年前的测试中,Neovim 的 :terminal 工作得很好,而 Emacs 的终端仿真似乎相当缺乏。)

\n

tmux/screen 的一个更简单的替代方案是dtach,它不执行完整的终端仿真,而只允许分离/重新连接,因此保留之前的输出。(但是,这也意味着在全屏程序中分离将无法正常工作。)

\n

Heirloom 工具箱似乎提供了shlUnix SVR3 中存在的“shell 层”版本(不久后就消失了,但仍然存在于 Unix SVR3 中stty swtch)。然而,我根本无法获得构建工具箱,而且我不确定现代 Linux 内核是否对shl. 不过,如果它有效,它几乎与您的示例中的一样。

\n

最后,您可以将多个 shell 进程作为作业运行:

\n
$ bash\n  $ suspend\n$ bash\n  $ suspend\n$ jobs\n[1]-  Stopped                 bash\n[2]+  Stopped                 bash\n
Run Code Online (Sandbox Code Playgroud)\n