是否可以从一个 shell 打开一个新 shell 并在它们之间切换?

是否可以从一个 shell 打开一个新 shell 并在它们之间切换?

大家好,我想知道我是否可以在 unix/linux 环境中从终端内打开 shell 或新终端。特别是没有 GUI 的命令行。这可行吗?我该怎么做?

答案1

运行screen(1)。它是一个终端多路复用器。它允许您创建多个在屏幕下运行的 shell,您可以在它们之间切换。您可以“分离”屏幕以返回原始 shell,也可以“重新连接”以重新访问这些 shell。

还有tmux(1),功能大致相同。在某些 Unix 上,window(1) 或splitvt(1)。但screen(1) 是最广泛使用的,并且可能是您最容易找到帮助的工具。

答案2

您可以在 zsh 中通过运行suspend从第二个 shell 切换到第一个 shell,以及fg从第一个 shell 切换到第二个 shell 来执行此操作。

您应该能够在 bash 中使用 来做类似的kill -STOP $$事情suspend

GNU 屏幕或者tmux会更容易。

答案3

默认情况下,Linux 中有多个虚拟控制台可供您切换,通常只需按 Alt + 某个功能键(通常是 F1 到 F7)即可。可用的控制台数量取决于编译内核时 NR_CONSOLES 指令的设置方式,它可能因发行版而异。

如果您想派生另一个 shell,只需运行二进制文件,例如:(/bin/bash只需 bash 就可以了,因为它通常在您的路径中)。请记住,除非您将其发送到后台或让其在屏幕会话中运行,否则这不会使旧 shell 可用。

如果您正在使用桌面环境并运行终端窗口,通常可以映射键以从环境中启动更多终端窗口。我知道 GNOME 和 KDE 有此功能。您可以使用 ALT+TAB 在图形窗口之间切换。

如果您告诉我们您的用例场景,我们可能会找到更合适的解决方案。

相关内容