Dans les années 1970, nous avions un terminal matériel avec une interface CUI (interface utilisateur de caractères) pour les entrées / sorties.
Maintenant, nous avons des émulateurs de terminaux ( Ctrl+ Alt+ Fn) dans le monde Unix / Linux.
Dans Ubuntu OS, je vois sept émulateurs de terminal, où l'interface graphique occupe le 7ème émulateur de terminal ( Ctrl+ Alt+ F7).
Par exemple, c'est mon premier émulateur de terminal ( Ctrl+ Alt+ F1)
$ tty
/dev/tty0
Pourquoi Unix / Linux fournit-il plusieurs émulateurs de terminaux?
Réponses:
Pour la même raison, votre émulateur de terminal GUI prend probablement en charge les onglets (par exemple GNOME Terminal), et sinon (par exemple
rxvt
), alors pour la même raison, le lancement d'une deuxième instance d'application de terminal GUI ne fait pas que tirer la première au premier plan et quitter, vous forçant à utiliser la première instance.J'utilise régulièrement au moins 3 fenêtres de terminal dans mon travail, et souvent plus:
Éditeur de texte pour le côté serveur du système sur lequel je travaille
Éditeur de texte pour le côté client du même système
Fenêtre de commande pour exécuter le serveur
J'ai rarement besoin d'un quatrième terminal pour exécuter le programme client, car il s'exécute généralement ailleurs (application Web, application GUI native, application mobile, etc.), mais si je développais un client CLI pour mon application serveur, j'aurais un un terminal séparé lui est également ouvert.
Dans le passé, avant de
sudo
devenir populaire, je gardais unroot
terminal ouvert tout le temps.J'utilise rarement les boîtes Unix / Linux de manière interactive sur la console sans interface graphique ces jours-ci, mais je les exécute souvent sans tête et y accède via SSH. Mon client de terminal SSH de choix prend en charge les onglets, configurés comme ci-dessus.
L'un de mes projets de passe-temps actuels consiste à utiliser de temps en temps un vrai vieux terminal en verre , ce qui signifie que je n'ai plus plusieurs fenêtres de terminal, donc j'apprends enfin un peu plus sur GNU
screen
, un programme pour lequel je n'ai jamais beaucoup utilisé auparavant, depuis que j'avais soit plusieurs terminaux de console, soit plusieurs terminaux GUI. Et que faitscreen
-il? Entre autres choses, vous pouvez le configurer pour vous donner plusieurs terminaux virtuels sur un seul écran, tout comme Linux le fait avec Ctrl- Alt- .Fxla source
C'est une fonctionnalité fournie par presque tous, sinon tous, Unix et Unix, comme sur un matériel x86. Fait intéressant, les consoles virtuelles ont été introduites dans un Unix par Microsoft Xenix au début des années quatre-vingt et étaient également disponibles en CP / M simultané.
Cette fonctionnalité a ensuite été intégrée dans AT&T SVR4 Unix, Solaris et empruntée par BSD et Linux.
Lors de leur introduction, aucun environnement graphique n'était disponible pour les machines exécutant ces implémentations Unix. Tout en ayant un terminal physique connecté à un serveur Unix central via des lignes RS232 était la norme, la connexion de plusieurs terminaux à un PC standard exécutant Xenix était exagérée si l'objectif était juste pour un seul utilisateur d'exécuter plusieurs programmes interactifs simultanément. Les terminaux virtuels ont fourni une solution élégante et pratique à ce problème.
D'autres implémentations Unix ont fourni plus tard cette même fonctionnalité pour répondre au même besoin.
Lorsque les environnements graphiques, en particulier X11, se sont répandus, la possibilité de voir plusieurs émulateurs de terminaux en même temps sur le même écran a été une amélioration significative. La fonctionnalité de console virtuelle a cependant été généralement conservée, ne serait-ce que parce qu'il était toujours pratique de pouvoir basculer vers une console si l'environnement graphique était gelé ou dysfonctionnel pour une raison quelconque.
Notez que les utilitaires aiment
screen
ettmux
sont venus bien plus tard que les terminaux virtuels pour généraliser la même fonctionnalité. Leur avantage est qu'ils peuvent être utilisés non seulement sur la console physique locale, mais aussi sur ce que session, soit locale ou à distance (par exempletelnet
,ssh
). Lorsqu'elles sont utilisées sur la console physique, les consoles virtuelles sont toujours utiles car elles sont fonctionnelles dans certaines situations oùscreen
/tmux
ne peut pas aider, comme si X11 est figé, ou si une fenêtre a capturé le focus et ne le libère pas.La virtualisation basée sur un conteneur comme les zones Solaris ou Linux LXC fournit également une méthode pour se connecter à la console du conteneur via
zlogin -C zone
etlxc-console -t 0 -n container
respectivement.la source
Je suppose qu'une bonne raison d'avoir des émulateurs de terminaux supplémentaires est que si vous faites quelque chose de mal dans votre interface graphique et que cela devient inutilisable, vous pouvez rapidement passer à un émulateur de terminal et corriger tous les problèmes que vous rencontrez dans l'interface graphique. Cela arrive en fait assez souvent lorsque vous apportez des modifications à votre gestionnaire de fenêtres ou à d'autres fonctionnalités de l'interface graphique. Je suppose qu'il serait également utile d'avoir quelques terminaux supplémentaires, mais avoir 6 dépassements de l'interface graphique principale semble un peu excessif.
Corrigez-moi également si je me trompe, mais n'est-il pas possible d'exécuter plusieurs commandes en tant qu'utilisateurs différents à partir d'un seul émulateur de terminal?
la source
La plupart des autres questions semblent répondre à la raison pour laquelle la fonctionnalité a été introduite.
Pourtant, la vraie question est:
"fait", pas "a fait".
Donc, en se concentrant sur l'heure actuelle, voici quelques raisons actuelles:
Par exemple, je me souviens que Alt-Ctrl-F2 est l'éditeur de texte qui regarde un fichier texte (par exemple, la documentation), et Alt-Ctrl-F3 est utilisé pour regarder rapidement un autre fichier (par exemple, un fichier de configuration), et Alt-Ctrl-F4 est utilisé pour une invite de commande, tandis que le bureau graphique peut être divisé entre la navigation Web, le courrier électronique, le lecteur de musique, etc.
En résumé, il n'y a tout simplement pas beaucoup de raisons de ne pas soutenir cela. Il y a un avantage que certaines personnes apprécient, au moins quelques fois, et pas beaucoup de coûts.
En fait, supprimer le support pour cela peut être plus de travail que de simplement laisser le support là-bas. Bien que la suppression du support soit probablement simple, en cas de problème, l'identification et la résolution du problème peuvent s'avérer un peu difficiles. Ainsi, la réduction de la quantité d'effort requise (pour développer la prochaine version d'un système d'exploitation) est encore une autre raison de laisser les choses telles quelles. Cela signifie que cette fonctionnalité est susceptible de rester disponible.
la source
Tout d'abord, vous avez demandé une fonctionnalité d'un noyau nommé Linux. Pas d'Unix en général, ni de Gnu.
Quant à savoir pourquoi, vous devriez demander aux auteurs. Cependant, je suppose que cela permet à un administrateur d'un appareil non connecté au réseau (ici, j'inclus un RS232 comme type de réseau), de se connecter et de faire un travail d'administrateur, sans déconnecter un autre utilisateur.
la source