Linux 中单个控制台有多个会话吗?

Linux 中单个控制台有多个会话吗?

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

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

#console1
$ ..

#console2
$ console_switch 2
$ ..

#console1 again
$ console_switch 1
$ ..

甚至喜欢这可用吗,即使作为一个包裹?

找到包“screen”,但是切换之间输出没有保持。

答案1

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

Emacs 编辑器允许在其多个缓冲区中运行交互式 shell — 同样,屏幕上有多个缓冲区,并且可以在它们之间进行复制/粘贴。Vim 也是如此(使用“ :terminal”命令),Neovim 中也有一个类似但不完全相同的功能。(在我 5 年前的测试中,Neovim 的 :terminal 运行良好,而 Emacs 的终端仿真似乎相当欠缺。)

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

传家宝工具箱似乎提供的一个版本shl,即“shell 层”,它存在于 Unix SVR3 中(不久后就消失了,但仍在 中存在stty swtch)。但是,我根本无法构建工具箱,而且我不确定现代 Linux 内核是否有必要支持shl。但是,如果它有效,它几乎和您的示例中的一样。

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

$ bash
  $ suspend
$ bash
  $ suspend
$ jobs
[1]-  Stopped                 bash
[2]+  Stopped                 bash

答案2

在 GNU Screen 中您可以:

  1. Ctrl使用+ AShift+拆分窗口S
  2. Ctrl使用+ A, Tab,切换到新的拆分
  3. Ctrl使用+ A, C,打开新屏幕
  4. 重复。

此外,要关闭当前分割,请按Ctrl+ A, Shift+ X

答案3

GNU 屏幕tmux,可能还有很多很多。你要找的词条是终端复用器我认为。

答案4

不确定这是否正是你要找的东西,但是屏幕/屏风看起来类似。您不是使用命令切换,而是使用 emacs 风格的组合键。如果您的发行版有它作为软件包,我建议使用 byobu。

编辑:Byobu 是建立在屏幕顶部的可用性层。据我所知,它们能做的东西并不多,但 byobu 通常会让事情变得容易得多。

相关内容