Quelle est la différence entre Terminal, Console, Shell et Ligne de commande ?
Réponses
Trop de publicités?Une représentation visuelle.
Terminal
Quelque chose où vous pouvez vous asseoir et travailler comme un patron.
Console
Du matériel qui fait tout un tas de choses.
Un autre exemple de console serait une console de jeu vidéo telle que la Super Nintendo [où vous pouvez jouer à Actraiser].
Shell
Il s'agit essentiellement d'une application permettant d'exécuter des commandes.
Ligne de commande [Interface]
En gros, tout ce dans quoi vous entrez des commandes.
Von der Projet d'information sur Linux :
Terminal : Techniquement, une fenêtre de terminal, également appelée émulateur de terminal, est une fenêtre en mode texte dans une interface utilisateur graphique (GUI) qui émule une console.
En d'autres termes, une application GUI, à partir de laquelle nous pouvons accéder à la console d'un utilisateur.
Console : un tableau de bord contenant les commandes d'un ordinateur
Shell :Un Shell est un programme qui fournit l'interface utilisateur traditionnelle, en mode texte, de Linux et d'autres systèmes d'exploitation de type Unix.
Ligne de commande : Une ligne de commande est l'espace situé à droite de l'invite de commande sur un mode d'affichage tout texte sur un écran d'ordinateur (généralement un écran CRT ou LCD) dans lequel un utilisateur entre des commandes et des données.
Les réponses ici semblent très bonnes. Cependant, elles sont trop sèches et techniques à mon goût, alors je vais donner mon avis.
Terminal est la fin de quelque chose - là où ça se termine. Par exemple, si vous prenez le métro dans une ville, la station où vous descendez est votre terminal. Ou dans un aéroport, l'endroit où les gens sortent lorsqu'ils atteignent leur pays de destination est considéré comme le terminal. Si le terminal d'un aéroport est aujourd'hui à la fois l'endroit où les gens montent à bord et celui où ils descendent de l'avion, c'est pour des raisons économiques évidentes.
Le but d'un ordinateur est de recevoir des données, d'en faire quelque chose et de recracher le résultat. Le terminal est donc tout dispositif à partir duquel vous pouvez obtenir le résultat du calcul (un écran par exemple). Il se trouve que dans les premiers ordinateurs, l'entrée (clavier) et la sortie (écran) étaient généralement réunies en un seul dispositif. Pour cette raison, de nos jours, les terminaux sont considérés comme n'importe quel dispositif d'entrée/sortie. Une souris, un clavier, un écran, une caméra, ce sont tous des terminaux.
Shell est une question de système d'exploitation. Sur un ordinateur, vous avez le noyau qui, sur Ubuntu par exemple, est la partie Linux. Maintenant, puisque le noyau est vraiment de bas niveau, un Shell est fourni - un programme qui permet à l'utilisateur d'interagir avec le noyau d'une manière facile. C'est ce qu'est BASH par exemple.
Console est (d'après un dictionnaire)
une surface plane qui contient les commandes d'une machine, d'un équipement électrique, etc. d'un équipement électrique, etc.
C'est pourquoi, dans l'industrie musicale, le tableau avec tous les boutons, ou dans une navette spatiale la table de commande, sont tous considérés comme des consoles. La Super Nintendo et la PS2 sont également appelées consoles historiquement car les premiers appareils de divertissement de ce type ressemblaient à des boîtes avec un tas de boutons dessus.
Ligne de commande n'est qu'une interface - le contraire de GUI. Il existe deux types d'interfaces sur un ordinateur : CLI (command line interface) et GUI (graphical user interface). La principale différence est que la première reçoit les données du clavier, tandis que la seconde reçoit les données de la souris.
Le site Shell est un programme qui processus les commandes et renvoie à sortie, comme Bash sous Linux.
A Terminal est un programme qui exécute un Shell . Dans le passé, c'était un dispositif physique (avant que les terminaux ne soient des moniteurs avec des claviers, ils étaient Télétypes ), puis son concept a été transféré dans des logiciels, comme le terminal GNOME.
Ainsi, lorsque j'ouvre le terminal GNOME, une fenêtre noire qui exécute une Shell apparaît pour que je puisse exécuter mes commandes.
A Console es un une sorte de terminal spécial . Il s'agissait également d'un dispositif physique . Par exemple, sous Linux, nous avons consoles virtuelles à laquelle nous pouvons accéder par une combinaison de Ctrl + Alt + F1 a F7 .
Console signifie parfois le clavier et le moniteur physiquement attaché à cet ordinateur.
Ces termes vont souvent de pair, si bien que les gens utilisent l'un des deux termes pour désigner la collection. (c'est-à-dire qu'il est généralement évident à partir du contexte qu'ils veulent dire une fenêtre de terminal fournissant une interface à une ligne de commande Shell).
Pour éviter que cela ne devienne trop long, je vais simplement dire xterm comme un stand-in pour XTerm / Gnome Terminal / Konsole / mrxvt / etc / etc. Idem pour bash.
Console a de multiples autres significations spécifiques, donc laissez cela de côté pour le moment.
Terminal : Quelque chose qui permet une interaction humaine avec des programmes par le biais d'un flux bidirectionnel de caractères ASCII / UTF8 / autres, généralement avec un traitement de code d'échappement VT100 ou similaire. (Par exemple, les touches de retour arrière, de suppression, de flèche, etc. génèrent des codes d'échappement. Les programmes peuvent imprimer des codes d'échappement pour déplacer le curseur sur l'écran du terminal, passer au texte en gras et/ou en couleur, effacer ou faire défiler l'écran, etc.) Autrefois, il s'agissait souvent d'un appareil dédié avec un écran, un clavier et un port série. Aujourd'hui, c'est généralement un programme comme xterm.
Il existe des fichiers de périphérique pour que les programmes puissent lire/écrire depuis/vers les terminaux, et les terminaux virtuels ont également l'autre côté accessible comme un fichier de périphérique. C'est là que xterm écrit votre entrée pour que bash puisse la lire.
Tous les terminaux, y compris les terminaux virtuels, permettent une édition de base de la ligne lorsqu'ils sont en mode cuit (par opposition au mode brut). Ceci est géré par le code du noyau. C'est bash qui fournit l'édition de ligne que vous pouvez faire avec les touches fléchées. (Essayez d'exécuter cat
et taper si vous voulez voir à quoi ressemble l'édition de ligne de base fournie par le noyau. Le retour arrière fonctionne, et quelques autres choses selon vos paramètres stty).
Même si une grande partie du code du noyau se trouve derrière les terminaux, il s'agit du code de gestion des terminaux et non des terminaux eux-mêmes.
Edit : Gilles m'a convaincu qu'appeler un tty un terminal est un usage correct. Les émulateurs de terminal, et les programmes interactifs qui s'exécutent connectés à un terminal, dépendent tous de la sémantique du terminal implémentée par le noyau. (La plupart de ce comportement est standardisé par POSIX, et est le même à travers Linux/*BSD/autre Unix). Un éditeur de texte plein écran dépend du comportement du matériel tty d'Unix, ainsi que de la gestion du code d'échappement lors du déplacement du curseur, et de nombreuses autres caractéristiques de l'émulateur de terminal.
Cependant, un VT100 physique avec un écran, un clavier et un port série est un exemple de terminal. Il n'a pas besoin d'un noyau Unix à l'autre bout de son port série pour être complet. Quelque chose de complètement différent pourrait lui envoyer des codes d'échappement et du texte ASCII, et recevoir la même chose de lui. Ce serait juste un VT100, cependant, pas un terminal Unix. Un émulateur de terminal plus la sémantique tty d'Unix constituent l'ensemble complet d'un terminal Unix sur lequel un programme comme bash fonctionne normalement.
Ligne de commande est un style d'interface utilisateur, où vous tapez quelque chose, puis appuyez sur la touche retour pour que quelque chose se produise. Il est aussi utilisé comme raccourci pour un Shell de ligne de commande, comme bash ou MS-DOS, mais vous pouvez aussi dire "c'est un outil de ligne de commande" à propos de quelque chose comme fdisk. Si l'on considère uniquement les programmes qui utilisent un terminal pour leur interface utilisateur, les deux principales familles sont la ligne de commande et le texte plein écran (par exemple, un éditeur comme vi ou emacs -nw
).
Les programmes en ligne de commande qui s'exécutent normalement sur des terminaux fonctionnent presque toujours avec leurs entrées et sorties redirigées vers des fichiers, mais les programmes plein écran basés sur des terminaux, comme les éditeurs ou les clients de messagerie, sont uniquement interactifs et ne fonctionneraient pas.
A Shell est un programme permettant de lancer d'autres programmes. Dans un contexte Unix, il est courant de signifier Shell en ligne de commande (c'est-à-dire Bourne Shell ou C Shell équivalent). Les shells Unix peuvent également lire leur entrée à partir de fichiers, c'est-à-dire Shell Shell. Ce sont des langages de programmation à part entière, avec des variables, des boucles et des conditionnels, et de nombreux programmes sont écrits en bash (ou avec seulement la commande /bin/sh
POSIX Shell, pour plus de portabilité). Il est aussi facilement possible d'écrire un rapide for i in *.something; do some_program "$i";done
dans un Shell interactif.
En mettant tout cela ensemble, un Shell comme bash (ou n'importe quel programme que vous avez lancé en exécutant une commande Shell) recevra les caractères de la commande /dev/pts/N
après que xterm ait écrit votre entrée dans son côté du pseudo-terminal. Si vous exécutez cat
puis appuyez sur ^c
le code du tty du noyau agira sur le fichier ^c
et envoyer un SIGINT
au processus de premier plan sur ce terminal. (Notez l'utilisation de terminal dans ce contexte pour signifier le tty d'Unix, pas un émulateur de terminal ou quelque chose de branché sur un port série). Cela se produit parce que le Shell met le terminal en mode "cooked" avant de démarrer tout programme, ce qui signifie que le noyau agit sur certaines séquences de contrôle. (Le code du tty n'a toujours rien à voir avec la gestion des codes d'échappement VT100, juste quelques codes de contrôle low-ASCII). Si au lieu d'un xterm, vous utilisez le terminal texte de la console Linux, alors le noyau EST en train de faire l'émulation VT100, et de gérer toutes ces choses. Linux peut être compilé sans le support du terminal texte de la console virtuelle, mais pas sans le support du tty.
Console est parfois utilisé comme synonyme de terminal (KDE a même un émulateur de terminal appelé Konsole).
Comme le souligne 0xSheepdog, ce terme a également une autre signification : matériel d'interaction humaine attaché localement.
Dans un contexte de noyau, la console a une autre signification spécifique : c'est le terminal où les messages de démarrage sont écrits. Il peut s'agir d'un port série. Normalement, bien sûr, il s'agit de la console texte implémentée par le noyau en plus des pilotes pour le matériel graphique et les claviers USB/ps2/AT. Si vous démarrez Linux avec console=tty0 console=ttyS0,115200n8
sur la ligne de commande, vous obtiendrez des messages du noyau sur votre écran ET sur le port série.
Linux implémente des consoles virtuelles ( /dev/tty1
a N ). Vous pouvez intervertir celui que votre écran/clavier physique contrôle avec Ctrl + Alt + F<em>N</em> . Les distros Linux typiques créent 6, et démarrent getty
Ainsi, même si vous ne pouvez ou ne voulez pas lancer X11, vous pouvez vous connecter 6 fois et basculer entre une commande, une page de manuel et n'importe quoi d'autre, sans lancer un programme comme screen. Linux (le noyau) inclut un émulateur de terminal de style VT100 pour fournir une interface de terminal à travers votre écran et votre clavier sur les consoles virtuelles.
La norme des 6 terminaux virtuels avec des invites de connexion est la raison pour laquelle Ctrl + Alt + F7 vous ramène à votre session X11 : le serveur X saisit la prochaine console virtuelle disponible. (Le serveur X ouvre /dev/input/...
directement, plutôt que d'obtenir les pressions sur les touches à partir de l'application /dev/tty7
mais )
Donc, "passer à une console de texte" signifie appuyer sur Ctrl + Alt + F1 et utiliser ce terminal. À l'époque où les ordinateurs étaient lents et ne disposaient pas de beaucoup de RAM, certaines personnes passaient une grande partie de leur temps sur les consoles de texte, car elles étaient rapides, vous pouviez définir une belle police de caractères et même modifier la taille du terminal pour avoir des caractères plus petits, mais en avoir plus à l'écran en même temps. Alt + Left y Alt + Right passer à la console précédente/suivante. (X11 désactive cette fonction pour sa console, bien sûr, laissant seulement l'option Ctrl + Alt + F<em>N</em> combo.)
Alors console est le seul de ces termes qui n'a pas une seule signification technique bien définie. Il en a plusieurs. (Selon ce que vous pensez du terminal proprement dit par rapport au terminal plus la gestion des tty, vous pourriez dire que le terminal a également plusieurs significations).
- Réponses précédentes
- Plus de réponses