问题描述
假设我不小心卸载了我系统上的每个终端仿真器:xterm
,uxterm
,gnome-terminal
,guake
等。有没有办法在没有终端仿真器的情况下访问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<stdio.h>
#include <unistd.h>
void main()
{
system("bash");
}
注意:Ctrl
Alt
F2
不是唯一的选择。您可以使用Ctrl
Alt
F1
,Ctrl
Alt
F3
,Ctrl
Alt
F4
,Ctrl
Alt
F5
和Ctrl
Alt
F6
也将分别给你的虚拟主机TTY1,tty3上,TTY4,TTY5或TTY6。
次佳解决办法
如果您运行的是ssh服务器,则可以通过ssh从另一个系统连接。
ssh <your_remote_user_name>@<your_remote_host>
如果我安装了系统,那么我首先安装并启动SSH服务器。一种人寿保险。 =)
第三种解决办法
Ctrl
+ Alt
+(F1
至F4
至少,可能高达F6
)在虚拟控制台上运行终端接口。在那里,要返回GUI,请使用Ctrl
+ Alt
+ F7
。
如果您执行其中任何一项操作,您应该能够访问可登录的终端,然后访问终端。但是,Bash脚本将继续运行,如果它们是自动脚本放入cron
并且这样或双击运行(但不在终端中)。终端仿真器’give you’是一个交互式shell,但最终bash
,zsh
等实际的shell仍然存在并且可以通过cron
,脚本,甚至键盘组合上的虚拟控制台运行。
请注意,如果您的脚本需要交互式界面,则必须使用虚拟控制台,或者再次安装模拟器。
第四种办法
如果这是测试中的问题,为了完整性,我会添加正常的序列tty,您可以使用串行电缆连接到计算机。在丢失终端之前你需要一个先前配置的getty(或者现在调用的任何tty串行监听器),你需要第二台计算机与第一台计算机通话,因此家庭紧急情况不太可能发生。
您可能还有一些webmin控制台,它(实际上)为您提供shell访问,但不是技术上的交互式shell。那时你最好做一些简单的命令,比如apt-get some-terminal-emulator。
如果你打开了一个浏览器窗口,理论上你可以搜索一个java terminal emulator,但我的猜测是你必须提前安装,只是有一个浏览器窗口不会让你访问底层的pty,但我没有时间测试任何一种方式。
因此,以上是“所有可能的方式”问题,虽然大多数服务器机房可能具有串行访问权限,但在家庭的现实生活中并不一定有用。
嗯,许多其他工具(emacs,vim等)允许某种程度的炮击。希望你有xemacs打开
第五种办法
虽然上面的所有答案都是完美的,并且由于您使用的是Linux,因此您有许多其他可能的解决方案:
-
@serg中描述的虚拟ttys是完美的解决方案
-
在@ A.B解决方案中描述的SSH是一个可爱的技巧,但你必须考虑让openssh服务器运行。
-
另一种可能的解决方案(它不是完美的,只是为了显示其他可能性):LiveCD,Recovery Mode
第六种办法
所以我会在这里迂腐:
Is there a way I can access bash without a terminal emulator?
当然,任何以#!/bin/bash
开头的脚本都会这样做。
有没有办法在没有终端模拟器的情况下获得bash提示?
继续我的迂腐主题,让我们在其他一些答案中挖出一些漏洞。
Say I’ve accidentally uninstalled every terminal emulator on my system:
这实际上很难实现,因为
by pressing CtrlAltF2
你切换到另一个在其上运行linux内核虚拟终端仿真器的虚拟控制台,这很难删除,需要用非标准选项重新编译内核。因此,请在ssh /telnet /serial-port选项中打孔,这些选项需要远程终端仿真器;至于webmin,它还有一个终端模拟器(只是一个糟糕的)。
在没有终端仿真器的情况下,只有一种方法可以使用终端的功能:使用真正的终端。我曾经有一个Televideo和一个电传打字机(不是TeleType,这是一个仿制品)我能够用两者编辑文件(在Televideo上播放vi,在电传打字机上编辑(后面的痛苦))调用使用来自televideo的minicom和seyon的本地bbs。你知道我唯一想念他们的是吹牛的权利,但我选择了几个工业打印机的配置终端,它们有一个两行20列显示器,一个键盘和一个rs232接口,一旦我想到,它将用于紧急配置维修我的ed手册在哪里。