web-dev-qa-db-fra.com

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

Supposons que j'ai désinstallé accidentellement chaque émulateur de terminal de mon système: xterm, uxterm, gnome-terminal, guake, etc. Puis-je accéder à bash sans émulateur de terminal?

Une façon possible de penser 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!

37
Huey

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

Pour revenir à l'interface graphique, tapez d'abord exitpour vous déconnecter de la console virtuelle, puis appuyez sur CtrlAltF7 pour revenir à l'interface graphique. (Si vous souhaitez garder la session TTY ouverte, ignorez la partie exiten tapant)

Édition: 17 juin 2015

J'ai imaginé une autre solution: si vous avez un IDE en langage C, vous pouvez compiler le code suivant, et la console du IDE vous donnera maintenant accès à bash

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

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

Note: CtrlAltF2 n'est pas la seule option. Vous pouvez utiliser CtrlAltF1CtrlAltF3CtrlAltF4CtrlAltF5 et CtrlAltF6 aussi, ce qui vous donnera la console virtuelle TTY1, TTY3, TTY4, TTY5 ou TTY6 respectivement.

63

Si vous avez un serveur ssh en cours d'exécution, vous pouvez vous connecter via ssh à partir d'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. =)

30
A.B.

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

Dans ce cas, vous devriez pouvoir accéder à un terminal auquel vous pouvez vous connecter, puis accéder au terminal. Les scripts Bash continueront toutefois à s'exécuter s'ils sont automatiquement automatisés dans cronet qu'ils cliquent ou exécutent un double clic pour s'exécuter (mais pas dans le terminal). Les émulateurs de terminal qui "vous" donnent un shell interactif, mais finalement bashname__, zshname__, etc., qui sont les shells actuels existent et peuvent être exécutés via cronname__, des scripts et même les consoles virtuelles sur les combos de clavier ci-dessus.

Notez cependant que si vos scripts nécessitent une interface interactive, vous devrez utiliser les consoles virtuelles ou installer à nouveau un émulateur.

24
Thomas Ward

S'il s'agit d'une question d'un test, j'ajouterais des ttés série normaux pour que vous puissiez vous connecter à votre ordinateur avec un câble série. vous auriez besoin d'un getty (ou de tout autre écouteur série appelé maintenant) préalablement configuré avant de perdre votre terminal, et d'un deuxième ordinateur pour communiquer avec le premier, de sorte qu'en cas d'urgence à la maison, cela ne risque pas d'arriver .

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

Si vous avez une fenêtre de navigateur ouverte, vous pouvez en théorie rechercher un émulateur de terminal Java , mais j’imagine qu’il faudrait installer à l’avance et qu’une fenêtre de navigateur ne laisserait pas vous accédez au droit de pty sous-jacent, mais je n'ai pas le temps de tester de toute façon.

les questions ci-dessus sont donc "quelles sont toutes les manières possibles", des questions qui ne sont pas forcément utiles dans la vie réelle, 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 bombardement. permet d'espérer que vous avez ouvert xemacs

14
Rich Homolka

Bien que toutes les réponses ci-dessus soient parfaites et que vous utilisiez Linux, vous avez beaucoup d'autres solutions possibles:

  • Des ttys virtuels comme décrit dans @serg answer qui est la solution parfaite
  • SSH comme décrit dans la solution @A.B, ce qui est une astuce intéressante, mais vous devez prendre en considération le fait d’avoir un serveur openssh en marche.
  • Une autre solution possible (ce n’est pas la solution parfaite mais juste pour montrer d’autres possibilités): LiveCD , mode de récupération
6
Maythux

Je vais donc être pédant ici:

Existe-t-il un moyen d’accéder à bash sans émulateur de terminal?

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

Existe-t-il un moyen d'obtenir un prompt bash sans émulateur de terminal?

Continuant avec mon thème de pédantisme, permet de creuser des trous dans certaines des autres réponses.

Supposons que j'ai désinstallé accidentellement chaque émulateur de terminal de mon système:

C'est en fait très difficile à retirer parce que

en appuyant CtrlAltF2

vous basculez vers une autre console virtuelle sur laquelle l'émulateur de terminal virtuel du noyau Linux s'exécute, ce qui est très difficile à supprimer et nécessite une recompilation du noyau avec des options non standard. Laissons donc les trous dans les options ssh/telnet/port série, celles-ci nécessitant un émulateur de terminal distant; Quant à Webmin, il a aussi un émulateur de terminal (juste un moche).

Il n’existe qu’une seule façon d’utiliser la fonction d’un terminal sans émulateur de terminal: utiliser un terminal réel. J'avais l'habitude d'avoir une Televideo et un télétype (pas un TeleType, c'était un imitation), j'étais capable de modifier des fichiers avec (vi sur Televideo, éd sur le télétype (quel ennui à l'arrière)) un bbs local utilisant minicom et seyon de la televideo. Vous savez que la seule chose qui me manque, c’est le droit de me vanter, mais j’ai ramassé quelques terminaux de configuration pour imprimantes industrielles qui ont un affichage sur deux lignes et 20 colonnes, un clavier et une interface rs232 qui fonctionneront pour la réparation de configuration d’urgence une fois que je figurerai. où est mon manuel ed.

2
hildred

Semblable à la réponse de @ AB , si vous avez un serveur Web en marche (je crois que Ubuntu est livré avec Apache), vous pouvez exécuter un Shell dans votre propre navigateur avec quelque chose comme phpshell .

Personnellement, je lancerais simplement emacs et M-x Shell RETURN.

0
user420930