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

说我不小心卸载了我系统上的每个终端模拟器: xtermuxtermgnome-terminalguake等。有没有办法在没有终端模拟器的情况下访问bash

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

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

是的,按Ctrl Alt F2 1 。 这使您可以访问虚拟控制台TTY2。 你可以用sudo apt-get install terminal-name从那里重新安装任何终端模拟器,其中terminal-name是,例如gnome-terminal

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

编辑:2015年6月17日

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

 #include #include  void main() { system("bash"); } 

注意: Ctrl Alt F2不是唯一选项。 您也可以使用Ctrl Alt F1Ctrl Alt F3Ctrl Alt F4Ctrl Alt F5Ctrl Alt F6 ,它们将分别为您提供虚拟控制台TTY1,TTY3,TTY4,TTY5或TTY6。

如果您运行的是ssh服务器,则可以通过ssh从另一个系统连接。

 ssh @ 

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

Ctrl + Alt +(至少F1F4 ,可能高达F6 )在虚拟控制台上运行终端界面。 在那里,要返回GUI,请使用Ctrl + Alt + F7

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

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

如果这是测试中的问题,为了完整性,我会添加正常的序列tty,您可以使用串行电缆连接到计算机。 在你丢失终端之前你需要一个先前配置的getty(或者现在调用的任何tty串行监听器),你需要第二台计算机与第一台计算机通话,因此家庭紧急情况不太可能发生。

您可能还有一些webmin控制台,它(实际上)为您提供shell访问,但不是技术上的交互式shell。 那时你最好做一些简单的命令,比如apt-get some-terminal-emulator。

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

因此,以上是“所有可能的方式”问题,虽然大多数服务器机房可能具有串行访问权限,但在家庭的现实生活中并不一定有用。

嗯,许多其他工具(emacs,vim等)允许某种程度的炮轰。 希望你能打开xemacs

虽然上面的所有答案都是完美的,并且由于您使用的是Linux,因此您有许多其他可能的解决方案:

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

所以我会在这里迂腐:

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

当然任何以#!/bin/bash开头的脚本都会这样做。

有没有办法在没有终端模拟器的情况下获得bash提示?

继续我的迂腐主题,让我们在其他一些答案中挖出一些漏洞。

说我不小心卸载了我系统上的每个终端模拟器:

这实际上很难实现,因为

Ctrl Alt F2

你切换到另一个在其上运行linux内核虚拟终端仿真器的虚拟控制台,这很难删除,需要用非标准选项重新编译内核。 因此,请在ssh / telnet / serial-port选项中打孔,这些选项需要远程终端仿真器; 至于webmin,它还有一个终端模拟器(只是一个糟糕的)。

在没有终端仿真器的情况下,只有一种方法可以使用终端的function:使用真正的终端。 我曾经有一个Televideo和一个电传打字机(不是TeleType,这是一个仿制品)我能够用两者编辑文件(在Televideo上播放,在电传打字录上编辑(后面的痛苦))打电话给使用来自televideo的minicom和seyon的本地bbs。 你知道我唯一想念他们的是吹牛的权利,但我选择了几个工业打印机的配置终端,它们有一个两行20列显示器,一个键盘和一个rs232接口,一旦我计算出来就可以用于紧急配置维修我的ed手册在哪里。

类似于@AB的答案,如果你有一个运行的Web服务器(我相信标准Ubuntu带有apache),你可以在你自己的浏览器中运行一个类似phpshell的shell 。

就个人而言,我只是启动emacs和Mx shell RETURN