Como acessar o bash sem um emulador de terminal?

36

Digamos que eu desinstalei acidentalmente cada emulador de terminal no meu sistema: xterm , uxterm , gnome-terminal , guake , etc. Existe uma maneira de acessar bash sem um emulador de terminal? / p>

Uma maneira possível de pensar seria criar e executar um script de shell, mas, além disso, posso obter um shell interativo?

Isto é puramente hipotético, mas obrigado por todas as respostas!

    
por Huey 15.06.2015 / 14:07

7 respostas

63

Sim, pressionando Ctrl Alt F2 1 . Isso lhe dá acesso ao console virtual TTY2. E você pode reinstalar qualquer emulador de terminal com sudo apt-get install terminal-name , onde terminal-name é, gnome-terminal , por exemplo.

Para voltar à GUI, primeiro digite exit para sair do console virtual e pressione Ctrl Alt F7 para volte para a GUI. (Caso queira manter a sessão do TTY aberta, pule a digitação exit part)

Edit: junho de 17,2015

Eu criei outra solução: se você tiver alguma IDE de linguagem C, poderá compilar o código a seguir, e o console do IDE agora fornecerá acesso ao bash

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

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

Nota: Ctrl Alt F2 não é a única opção. Você pode usar Ctrl Alt F1 , Ctrl Alt F3 , Ctrl Alt F4 , Ctrl Alt F5 e Ctrl Alt F6 também, que lhe dará o console virtual TTY1, TTY3, TTY4, TTY5 ou TTY6 respectivamente.

    
por Sergiy Kolodyazhnyy 15.06.2015 / 14:09
30

Se você tem um servidor ssh em execução, então você pode se conectar via ssh de outro sistema.

ssh <your_remote_user_name>@<your_remote_host>

Se eu instalar um sistema, primeiro instalo e inicio o servidor SSH. Um tipo de seguro de vida. =)

    
por A.B. 15.06.2015 / 14:23
24

Ctrl + Alt + ( F1 a F4 pelo menos, talvez até F6 ) executa uma interface de terminal nos consoles virtuais. Uma vez lá, para voltar à GUI, use Ctrl + Alt + F7 .

Se você fizer algum desses, você deve ser capaz de acessar um terminal que você pode acessar e acessar o terminal. No entanto, os scripts bash continuarão a ser executados, se forem scripts automatizados descartados em cron e clicados ou clicados duas vezes para serem executados (mas não no terminal). Os emuladores de terminal que "fornecem" um shell interativo, mas, em última instância, bash , zsh etc., que são os shells reais que existem e podem ser executados via cron , scripts e até mesmo os consoles virtuais no teclado combos acima.

Note que se seus scripts precisarem da interface interativa, você terá que usar os consoles virtuais ou instalar um emulador novamente.

    
por Thomas Ward 15.06.2015 / 14:09
14

Se esta é uma pergunta de um teste, para completar eu adicionaria o serial normal tty, onde você se conectaria ao seu computador com um cabo serial. você precisaria de um getty (ou qualquer tty serial listeners são chamados agora) previamente configurado antes de você perder seu terminal tho, e você precisaria de um segundo computador para falar com o primeiro, então como uma emergência em casa isso não é provável que aconteça .

Você também pode ter algum console webmin que lhe dê (na verdade) acesso ao shell, embora não seja shell tecnicamente interativo. Nesse ponto, é melhor fazer comandos fáceis, como o apt-get emulador de algum terminal.

Se você tem uma janela do navegador aberta, você poderia, em teoria, procurar por um emulador de terminal java , mas meu palpite é que você ' Eu tenho que instalar antes do tempo, e apenas ter uma janela do navegador não permitiria que você acessasse o direito da página, mas não tenho tempo para testar de qualquer forma.

Portanto, as perguntas acima são "o que são todas as maneiras possíveis", não necessariamente úteis na vida real para o lar, embora a maioria das salas de servidores provavelmente tenha acesso serial.

hmm, muitas outras ferramentas (emacs, vim, etc) permitem algum nível de descarte. vamos esperar que você tenha xemacs abertos

    
por Rich Homolka 15.06.2015 / 21:49
6

Embora todas as respostas acima sejam perfeitas, e como você está usando o Linux, você tem muitas outras possíveis soluções:

  • Virtual ttys como descrito em @serg answer, que é a solução perfeita
  • SSH, conforme descrito na solução @ A.B, que é um ótimo truque, mas é preciso levar em consideração que o servidor openssh esteja em execução.
  • Outras soluções possíveis (não é a perfeita, mas apenas para mostrar outras possibilidades): LiveCD , Modo de recuperação
por Maythux 15.06.2015 / 16:23
2

Então eu vou ser pedante aqui:

  

Existe uma maneira de acessar o bash sem um emulador de terminal?

Certamente, qualquer script que comece com #!/bin/bash fará isso.

Existe uma maneira de obter um prompt bash sem um emulador de terminal?

Continuando com o meu tema de ser pedante, vamos fazer alguns furos em algumas das outras respostas.

  

Digamos que eu desinstalei acidentalmente cada emulador de terminal no meu sistema:

Isso é realmente muito difícil de realizar porque

  

pressionando Ctrl Alt F2

você alterna para outro console virtual que possui o emulador de terminal virtual do kernel Linux em execução, o que é muito difícil de remover e requer a recompilação do kernel com opções fora do padrão. Então, vamos fazer furos nas opções ssh / telnet / serial-port, que requerem um emulador de terminal remoto; Quanto ao webmin, também possui um emulador de terminal (apenas um péssimo).

Existe apenas uma maneira de usar a função de um terminal sem um emulador de terminal: use um terminal real. Eu costumava ter um Televideo e um teletipo (não um TeleType, isso era uma imitação) Eu era capaz de editar arquivos com os dois (vi no Televideo, ed no teletipo (que dor na parte traseira)) fazer chamadas para um bbs local usando minicom e seyon do televideo. Você sabe que a única coisa que eu sinto falta deles são os direitos de se gabar, mas eu peguei alguns terminais de configuração para impressoras industriais que têm uma tela de duas colunas de 20 linhas, um teclado e uma interface rs232 que funcionarão para reparo de configuração de emergência onde meu manual é ed.

    
por hildred 17.06.2015 / 05:10
0

Semelhante à resposta do @AB , se você tem um servidor web em execução (acredito que o stanard Ubuntu vem com o apache ), você pode executar um shell em seu próprio navegador com algo como phpshell .

Pessoalmente, acabei de iniciar o emacs e o M-x shell RETURN .

    
por user420930 17.06.2015 / 10:41