Comment accéder à bash sans émulateur de terminal?

36

Disons que j'ai désinstallé accidentellement chaque émulateur de terminal sur mon système: xterm , uxterm , gnome-terminal , guake , etc. Existe-t-il un moyen d'accéder à bash sans émulateur de terminal? / p>

Une solution possible serait de créer et d’exécuter un script shell, mais à part cela, puis-je obtenir un shell interactif?

Ceci est purement hypothétique, mais merci pour toutes les réponses!

    
posée Huey 15.06.2015 - 14:07
la source

7 réponses

63

Oui, en appuyant sur Ctrl Alt F2 1 . Cela vous donne accès à la console virtuelle TTY2. Et vous pouvez réinstaller n'importe quel émulateur de terminal avec sudo apt-get install terminal-name , où nom-terminal est, par exemple, gnome-terminal .

Pour revenir à l'interface graphique, tapez d'abord exit pour vous déconnecter de la console virtuelle, puis appuyez sur Ctrl Alt F7 pour revenir à l'interface graphique. (Si vous souhaitez garder la session TTY ouverte, ignorez la partie de saisie exit )

Edit: 17 juin 2015

J'ai conçu une autre solution: si vous avez un IDE en langage C, vous pouvez compiler le code suivant, et la console de l'EDI vous donnera désormais accès à bash

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

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

Remarque: Ctrl Alt F2 n'est pas la seule option. Vous pouvez utiliser Ctrl Alt F1 , Ctrl Alt F3 , Ctrl Alt F4 , Ctrl Alt F5 et Ctrl Alt F6 également, ce qui vous donnera la console virtuelle TTY1, TTY3, TTY4, TTY5 ou TTY6 respectivement.

    
réponse donnée Sergiy Kolodyazhnyy 15.06.2015 - 14:09
la source
30

Si vous avez un serveur ssh en cours d'exécution, vous pouvez vous connecter via ssh depuis un autre système.

ssh <your_remote_user_name>@<your_remote_host>

Si j'installe un système, je commence par installer et démarrer le serveur SSH. Une sorte d'assurance vie. =)

    
réponse donnée A.B. 15.06.2015 - 14:23
la source
24

Ctrl + Alt + ( F1 via F4 au moins, peut-être jusqu'à F6 ) lance une interface de terminal sur les consoles virtuelles. Une fois là, pour revenir à l'interface graphique, utilisez Ctrl + Alt + F7 .

Si vous faites l'une de ces opérations, vous devriez pouvoir accéder à un terminal auquel vous pouvez vous connecter, puis accéder au terminal. Les scripts Bash continueront cependant à s'exécuter s'ils sont exécutés avec des scripts automatisés dans cron et que vous les double-cliquez pour les exécuter (mais pas dans le terminal). Les émulateurs de terminal qui vous «donnent» un shell interactif, mais finalement bash , zsh , etc. qui sont les shells actuels existent toujours et peuvent s'exécuter via cron , des scripts et même les consoles virtuelles du clavier combos ci-dessus.

Notez toutefois que si vos scripts ont besoin de l’interface interactive, vous devrez utiliser les consoles virtuelles ou réinstaller un émulateur.

    
réponse donnée Thomas Ward 15.06.2015 - 14:09
la source
14

S'il s'agit d'une question provenant d'un test, par souci d'exhaustivité, j'ajouterais un tty de série normal, où vous vous connecteriez à votre ordinateur avec un câble série. vous auriez besoin d'un getty (ou de tout autre appel série que vous appelez maintenant) préalablement configuré avant de perdre votre terminal, et vous auriez besoin d'un deuxième ordinateur pour communiquer avec le premier, ce qui est peu probable en cas d'urgence .

Vous pouvez également avoir une console webmin qui vous donne (en effet) un accès au shell, mais pas un shell techniquement interactif. à ce stade, il vaut mieux faire des commandes simples, comme apt-get some-terminal-emulator.

Si une fenêtre de navigateur est ouverte, vous pouvez en théorie rechercher un émulateur de terminal java , mais je pense que vous Je dois installer à l'avance, et le simple fait d'avoir une fenêtre de navigateur ne vous permet pas d'accéder aux droits d'accès de base, mais je n'ai pas le temps de les tester.

Ainsi, les questions ci-dessus sont "quelles sont toutes les manières possibles", pas nécessairement utiles dans la vie réelle pour la maison, bien que la plupart des salles de serveurs aient probablement un accès série.

hmm, beaucoup d'autres outils (emacs, vim, etc.) permettent un certain niveau de décompression. espérons que xemacs est ouvert

    
réponse donnée Rich Homolka 15.06.2015 - 21:49
la source
6

Bien que toutes les réponses ci-dessus soient parfaites et que vous utilisez Linux, vous disposez de nombreuses autres solutions possibles:

  • Ttys virtuels comme décrit dans @serg répond à la solution parfaite
  • SSH comme décrit dans la solution @A.B, ce qui est une astuce, mais vous devez prendre en compte le fait que le serveur openssh soit actif.
  • Une autre solution possible (ce n’est pas la solution parfaite mais juste pour montrer d’autres possibilités): LiveCD , Recovery Mode
réponse donnée Maythux 15.06.2015 - 16:23
la source
2

Je vais donc être pédant ici:

  

Est-il possible d’accéder à bash sans émulateur de terminal?

Bien sûr, tout script commençant par #!/bin/bash le fera.

Y a-t-il un moyen d'obtenir une invite bash sans émulateur de terminal?

Poursuivre sur le thème du pédantisme laisse quelques traces dans certaines des autres réponses.

  

Disons que j'ai accidentellement désinstallé tous les émulateurs de terminaux sur mon système:

C'est en fait très difficile à faire car

  

en appuyant sur Ctrl Alt F2

vous basculez sur une autre console virtuelle sur laquelle est installé l'émulateur de terminal virtuel du noyau linux, ce qui est très difficile à supprimer et nécessite de recompiler le noyau avec des options non standard. Laisse donc les trous dans les options ssh / telnet / serial-port, celles-ci nécessitent un émulateur de terminal distant; Quant à webmin, il a aussi un émulateur de terminal (juste un moche).

Il n’ya qu’une seule façon d’utiliser la fonction d’un terminal sans émulateur de terminal: utilisez un terminal réel. J'avais l'habitude d'avoir un televideo et un teletype (pas un teleType, c'était un knockoff), j'ai pu éditer des fichiers avec les deux (vi sur le televideo, sur le télétype un bbs local utilisant minicom et seyon du televideo. Vous savez que la seule chose qui me manque est le droit de se vanter, mais j'ai pris quelques terminaux de configuration pour les imprimantes industrielles qui ont un affichage à deux lignes de 20 colonnes, un clavier et une interface RS232 où est mon manuel ed.

    
réponse donnée hildred 17.06.2015 - 05:10
la source
0

Similaire à la réponse de @AB si vous avez un serveur Web en cours d’exécution (je crois que Stanard Ubuntu est livré avec Apache ), vous pouvez exécuter un shell dans votre propre navigateur avec quelque chose comme phpshell .

Personnellement, je viens de lancer emacs et M-x shell RETURN .

    
réponse donnée user420930 17.06.2015 - 10:41
la source

Lire d'autres questions sur les étiquettes