当前位置: 首页>>技术问答>>正文


如何在没有终端模拟器的情况下访问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<stdio.h>
#include <unistd.h>

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 <your_remote_user_name>@<your_remote_host>

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

第三种解决办法

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

如果您执行其中任何一项操作,您应该能够访问可登录的终端,然后访问终端。但是,Bash脚本将继续运行,如果它们是自动脚本放入cron并且这样或双击运行(但不在终端中)。终端仿真器’give you’是一个交互式shell,但最终bashzsh等实际的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服务器运行。

  • 另一种可能的解决方案(它不是完美的,只是为了显示其他可能性):LiveCDRecovery 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手册在哪里。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/2265.html,未经允许,请勿转载。