如何在没有终端模拟器的情况下访问 bash?

Hue*_*uey 39 command-line bash

说我不小心卸载了每一个终端模拟器我的系统上:xtermuxtermgnome-terminalguake,等有没有一种方法,我可以访问bash没有一个终端仿真器?

我能想到的一种可能的方法是创建并运行一个 shell 脚本,但除此之外,我可以获得一个交互式 shell 吗?

这纯粹是假设,但感谢所有答案!

Ser*_*nyy 64

是的,按CtrlAltF21。这使您可以访问虚拟控制台 TTY2 。并且您可以从那里重新安装任何终端模拟器sudo apt-get install terminal-namegnome-terminal例如,终端名称是。

要返回 GUI,首先键入exit退出虚拟控制台,然后按CtrlAltF7切换回 GUI。(如果您想保持 TTY 会话打开,请跳过打字 exit部分)

编辑:2015 年 6 月 17 日

我想到了另一个解决方案:如果您有任何 C 语言 IDE,您可以编译以下代码,IDE 的控制台现在将允许您访问 bash

#include<stdio.h>
#include <unistd.h>

void main()
{
        system("bash");
}
Run Code Online (Sandbox Code Playgroud)

注意: CtrlAltF2不是唯一的选择。您可以使用CtrlAltF1CtrlAltF3CtrlAltF4CtrlAltF5CtrlAltF6也将分别给你的虚拟主机TTY1,tty3上,TTY4,TTY5或TTY6。

  • @Huey 这可以在所有系统上访问,故障安全,除非您手动禁用了 ttys,并且基本上是 linux/unix 默认情况下的方式 - 文本控制台。GUI 在 *nix 系统上确实是可选的 (19认同)
  • 曾几何时,如果出于某种原因需要运行 GUI 程序,您通常会通过文本控制台登录,然后运行 ​​`xinit` 或 `startx` 以实际进入 X11。:) (11认同)
  • @Huey 虚拟控制台是 Linux 最初的构建目的。其他一切都是后来添加的功能。它只是一个太有用的功能,再次删除它是有意义的。 (8认同)

A.B*_*.B. 30

如果您有一个 ssh 服务器正在运行,那么您可以通过 ssh 从另一个系统进行连接。

ssh <your_remote_user_name>@<your_remote_host>
Run Code Online (Sandbox Code Playgroud)

如果我安装一个系统,那么我首先安装并启动 SSH 服务器。一种人寿保险。=)


Tho*_*ard 24

Ctrl+ Alt+(至少F1通过F4,也许最多F6)在虚拟控制台上运行终端界面。一旦出现,要回了GUI,使用Ctrl+ Alt+ F7

如果您执行其中任何一项操作,您应该能够进入一个可以登录的终端,然后访问该终端。但是,如果 Bash 脚本是自动脚本放入cron并双击或双击运行(但不在终端中),它们将继续运行。“给你”一个交互式 shell 的终端仿真器,但最终bash,zsh等实际的 shell 仍然存在,并且可以通过cron、脚本甚至上面键盘组合上的虚拟控制台运行。

但请注意,如果您的脚本需要交互式界面,则必须使用虚拟控制台,或再次安装模拟器。

  • 在我的电脑上 F1 到 F6。 (2认同)

Ric*_*lka 13

如果这是来自测试的问题,为了完整起见,我会添加普通的串行 tty,您可以在其中使用串行电缆连接到计算机。您需要在丢失终端之前预先配置一个 getty(或现在调用的任何 tty 串行侦听器),并且您需要第二台计算机与第一台计算机通信,因此作为家庭紧急情况,这不太可能发生.

您可能还有一些 webmin 控制台可以让您(实际上)访问 shell,但不是技术上的交互式 shell。在这一点上,您最好执行简单的命令,例如 apt-get some-terminal-emulator。

如果你打开了一个浏览器窗口,理论上你可以搜索一个java 终端模拟器,但我的猜测是你必须提前安装,只有一个浏览器窗口不会让你访问底层 pty 的权利,但我没有时间测试任何一种方式。

所以,以上是“所有可能的方法”的问题,在现实生活中不一定对家庭有用,尽管大多数服务器机房可能有串行访问。

嗯,很多其他工具(emacs、vim 等)允许一定程度的炮击。让我们希望你有 xemacs 打开


May*_*hux 6

尽管以上所有答案都是完美的,而且由于您使用的是 Linux,那么您还有许多其他可能的解决方案:

  • @serg 回答中描述的虚拟 ttys,这是完美的解决方案
  • SSH 如@AB 解决方案中所述,这是一个可爱的技巧,但您必须考虑运行 openssh 服务器。
  • 另一种可能的解决方案(它不是完美的,只是为了展示其他可能性):LiveCD恢复模式

  • 矫枉过正的解决方案。 (3认同)
  • @Maythux 虽然在技术上是正确的,但当我们已经有可用的 TTY 和 ssh 时,它确实有点矫枉过正。LiveCD 解决方案在您安装了 coreutils(是的,我之前偶然安装过)或某些东西真的搞砸了时更适用。 (2认同)