Question Quelle est la différence entre Terminal, Console, Shell et Ligne de commande?


Quelle est la différence entre Terminal, Console, Shell et Ligne de commande?


173
2017-08-04 04:35


origine


(1/2) L'agent Cool est généralement correct, mais la définition de la console qu'il fournit est obsolète, compte tenu de ce sujet. Son lien contient les informations correctes si vous le suivez bien. Lis le entier définition à son lien. La console est généralement utilisée pour désigner un grand nombre de choses similaires, mais surtout, elle fait généralement référence aux dispositifs d’entrée et de sortie humaines, p. Ex. clavier, affichage et peut-être souris. - 0xSheepdog
(2/2) Cela peut sembler être un point pédant, mais en tant qu'administrateur système expérimenté, je vous dirai ce n'est pas. Lorsqu'un système a un problème et semble être complètement écrasé / en panne / hors ligne, vous devriez vérifier le console physique du système pour voir si elle fonctionne toujours, mais simplement perdu la connectivité réseau. Ce petit détail pourrait vous permettre d’économiser ou de vous coûter des données, un traitement de l’information, etc. Mais important - 0xSheepdog
@ 0xSheepdog Vous voudrez peut-être étendre ces commentaires en une réponse complète (y compris les définitions ou les explications pour les autres termes également), publiés en tant que tels. Ce n'est pas mal pour une question d'avoir plusieurs réponses (sauf peut-être quand elles transmettent exactement les mêmes informations et de la même manière). Je ne sais pas pourquoi l'importante pratique consistant à vérifier localement une machine repose sur la connaissance / l'appel de son interface physique physique par une console, mais il est peut-être important de communiquer efficacement avec des collègues ou d'utiliser la documentation. (Vous pourriez clarifier cela dans votre réponse.) - Eliah Kagan
En raison de leur relation étroite (voir toutes les bonnes réponses), ces termes sont parfois utilisés comme synonymes, ce qui vous a probablement amené à demander cela. - Mark
Voir: Quelle est la différence exacte entre un «terminal», un «shell», un «tty» et une «console»? chez Unix & LinuxSE. - Piotr Dobrogost


Réponses:


La réponse courte est que

  • terminal = environnement d'entrée / sortie de texte
  • console = terminal physique
  • shell = interpréteur de ligne de commande

La console et le terminal sont étroitement liés. À l’origine, ils signifiaient un équipement par lequel vous pouviez interagir avec un ordinateur: au début de Unix, cela signifiait téléscripteur-style ressemblant à une machine à écrire, parfois appelé un téléimprimeur, ou «tty» en sténographie. Le nom «terminal» provient du point de vue électronique et le nom «console» du point de vue du mobilier. Très tôt dans l'histoire d'Unix, les claviers et écrans électroniques sont devenus la norme pour les terminaux.

Dans la terminologie Unix, un Terminal est un type particulier de fichier de périphérique qui implémente un certain nombre de commandes supplémentaires (ioctls) au-delà de la lecture et de l’écriture. Certains terminaux sont fournis par le noyau pour le compte d'un périphérique matériel, par exemple avec l'entrée provenant du clavier et la sortie allant à un écran en mode texte, ou avec les entrées et les sorties transmises sur une ligne série. D’autres terminaux, parfois appelés pseudo-terminaux ou pseudo-ttys, sont fournis (via une couche noyau mince) par des programmes appelés émulateurs de terminaux. Certains types d’émulateurs de terminaux incluent:

  • Les applications graphiques s'exécutant dans le Système X Window: Xterm, Terminal Gnome, Konsole, Terminator, etc.
  • Écran et tmux, qui fournit une couche d'isolement entre un programme et un autre terminal
  • Ssh, qui connecte un terminal sur une machine avec des programmes sur une autre machine
  • Attendre, pour programmer les interactions entre terminaux

Le mot Terminal peut également avoir un sens plus traditionnel d'un appareil par lequel on interagit avec un ordinateur, généralement avec un clavier et un écran. Par exemple, un terminal X est une sorte de client léger, un ordinateur à usage spécifique dont le seul but est de piloter un clavier, un écran, une souris et parfois d’autres périphériques d’interaction humaine, les applications réelles étant exécutées sur un autre ordinateur plus puissant.

UNE console est généralement un terminal au sens physique qui est par définition le terminal primaire directement connecté à une machine. La console apparaît au système d'exploitation sous la forme d'un terminal (implémenté par le noyau). Sur certains systèmes, tels que Linux et FreeBSD, la console apparaît sous la forme de plusieurs terminaux (ttys) (des combinaisons de touches spéciales permettent de basculer entre ces terminaux); Pour ne pas confondre les choses, le nom donné à chaque terminal peut être «console», «console virtuelle», «terminal virtuel» et d’autres variantes.

Voir également Pourquoi un terminal virtuel est-il «virtuel» et que / pourquoi / où se trouve le «vrai» terminal?.


UNE ligne de commande est une interface où l'utilisateur tape une commande (qui est exprimée sous la forme d'une séquence de caractères - généralement un nom de commande suivi de certains paramètres) et appuie sur la touche Revenir touche pour exécuter cette commande.

UNE coquille est l'interface principale que les utilisateurs voient lorsqu'ils se connectent, dont le but principal est de démarrer d'autres programmes. (Je ne sais pas si la métaphore originale est que le shell est l'environnement domestique de l'utilisateur, ou que le shell est ce que d'autres programmes exécutent.)

Dans les cercles Unix, coquille s'est spécialisé pour signifier shell de ligne de commande, centré autour de la saisie du nom de l'application que l'on veut démarrer, suivi des noms de fichiers ou d'autres objets sur lesquels l'application doit agir, et en appuyant sur la touche Entrée. D'autres types d'environnements (à l'exception notable récente de Gnome Shell) n'utilisent généralement pas le mot «shell»; Par exemple, les systèmes de fenêtres impliquent «gestionnaires de fenêtres" et "environnements de bureau”, Pas une“ coquille ”.

Il existe de nombreux shells Unix. Le shell par défaut d'Ubuntu est Frapper (comme la plupart des autres distributions Linux). Les alternatives populaires incluent zsh (qui met l'accent sur le pouvoir et la personnalisation) et poisson (qui met l'accent sur la simplicité).

Les shells de ligne de commande incluent des constructions de contrôle de flux pour combiner des commandes. En plus de taper des commandes à une invite interactive, les utilisateurs peuvent écrire des scripts. Les shells les plus courants ont une syntaxe commune basée sur le Bourne_shell. En discutant “programmation shell”, Le shell est presque toujours impliqué dans un shell de type Bourne. Certains shells souvent utilisés pour les scripts mais dépourvus de fonctionnalités interactives avancées incluent le shell Korn (ksh) et beaucoup cendre variantes. À peu près tous les systèmes de type Unix ont un shell de type Bourne installé en tant que /bin/sh, généralement ash, ksh ou bash. Sur Ubuntu, /bin/sh est Tiret, une variante de cendre (choisie car elle est plus rapide et utilise moins de mémoire que bash).

Dans l'administration système unix, un utilisateur coquille est le programme appelé lors de la connexion. Les comptes utilisateur normaux ont un shell de ligne de commande, mais les utilisateurs ayant un accès restreint peuvent avoir un coquille restreinte ou une autre commande spécifique (par exemple pour les comptes de transfert de fichiers uniquement).


La division du travail entre le terminal et le shell n'est pas complètement évidente. Voici leurs tâches principales.

  • Entrée: le terminal convertit les clés en séquences de contrôle (par ex. La gauche → \e[D). Le shell convertit les séquences de contrôle en commandes (par ex. \e[D → backward-char).
  • L'édition de ligne, l'historique d'entrée et l'achèvement sont fournis par le shell.
    • Le terminal peut fournir sa propre édition de ligne, son historique et son achèvement, et envoyer une ligne uniquement au shell lorsqu'il est prêt à être exécuté. Le seul terminal commun qui fonctionne de cette manière est M-x shellà Emacs.
  • Sortie: le shell émet des instructions telles que «display foo”,“ Passe la couleur du premier plan au vert ”,“ déplace le curseur sur la ligne suivante ”, etc. Le terminal agit sur ces instructions.
  • L'invite est purement un concept de shell.
  • Le shell ne voit jamais la sortie des commandes qu'il exécute (sauf s'il est redirigé). L'historique de sortie (scrollback) est purement un concept terminal.
  • Le copier-coller inter-applications est fourni par le terminal (généralement avec la souris ou des séquences de touches telles que Ctrl+Décalage+V ou Décalage+Insérer). Le shell peut également avoir son propre mécanisme interne de copier-coller (par ex. Meta+W et Ctrl+Y).
  • Contrôle de l'emploi (lancer des programmes en arrière-plan et les gérer) est principalement exécuté par le shell. Cependant, c'est le terminal qui gère les combinaisons de touches comme Ctrl+C pour tuer le travail de premier plan et Ctrl+Z le suspendre

 Recyclé de Unix et Linux 


120
2017-08-04 10:30



Je serais en désaccord avec vous sur le terminal étant un terme approprié pour un fichier de terminal et / ou le code de gestion de terminal dans le noyau (tty ioctls, raw / cooked, édition de ligne de base). terminal = truc qui gère les codes d'échappement, transforme les opérations de frappe en caractères et dessine sur un écran (ou imprime sur du papier / du ruban adhésif). Voir ma réponse pour plus de détails. - Peter Cordes
@PeterCordes A ce niveau de détail, il n'y a pas de distinction. POSIX définit Terminal comme synonyme de dispositif terminal, dans le sens d'un fichier de périphérique. C'est la signification d'Unix. Il se trouve qu’il s’agit bien de gérer les codes d’échappement, de transformer les opérations de frappe en caractères et de dessiner sur un écran (ou de les transmettre via le réseau ou de se connecter à un fichier, etc.). - Gilles
hrm, oui, le terminal est aussi utilisé dans ce sens. En supposant qu'il existe un émulateur de terminal ou un port série auquel un terminal est connecté, il se trouve à une extrémité du terminal géré par le noyau. Le traitement tty du noyau (en mode cuit) ne gère que quelques codes de contrôle (signaux sur ^ c, édition de ligne sur ^ u / ^? (Delete). J'essaie de tracer une ligne entre le code tty et la partie de Linux qui implémente un terminal de type VT100 sur une carte graphique et un clavier USB / ps2 / AT. Vous pouvez compiler Linux sans cela, mais pas sans tty. - Peter Cordes
@PeterCordes Dans la configuration du noyau, le support des terminaux peut être omis (il est utile pour certains systèmes embarqués rares où la mémoire est extrêmement restreinte); c'est contrôlé par CONFIG_TTY. La prise en charge des émulateurs de terminal (plus communément appelés pseudo-terminaux - «émulateur de terminal» n'inclut pas toujours telnetd, screen, expect,…) est contrôlée par CONFIG_UNIX98_PTYS. La prise en charge de l'affichage en mode texte PC et du clavier ou similaire est contrôlée par CONFIG_VT. Voir drivers/tty/Kconfig dans la source du noyau. - Gilles
Oups, je ne disposais pas d'une source de noyau récente. CONFIG_TTY n'a été ajouté qu'en 2012. Quoi qu'il en soit, oui, j'espère que cela aidera quiconque essaie de comprendre les différentes pièces du puzzle et comment elles s'emboîtent. - Peter Cordes


Une représentation visuelle

Terminal

enter image description here

Quelque chose que vous pouvez vous asseoir et travailler comme un patron.

Console

enter image description here

Du matériel qui fait beaucoup de choses.

Un autre exemple de console serait une console de jeu vidéo telle qu'une Super Nintendo [où vous pouvez jouer à Actraiser]

coquille

enter image description hereenter image description here

Fondamentalement, une application pour exécuter des commandes.

Ligne de commande [interface]

enter image description hereenter image description here

En gros, tout ce que vous entrez des commandes dans.


52
2017-08-04 20:09



Vous avez volé mon idée - j'allais donner essentiellement la même réponse. Donc, vous pouvez avoir un vote. Le fait est que bien que ces termes soient pour la plupart synonymes de nos jours, des termes comme "terminal" et "console" trouvent leur origine dans des concepts informatiques plus anciens. - thomasrutter
Bon effort. Simple et facile - A Umar Mukthar


Du Projet d'information Linux:

Terminal : Techniquement, une fenêtre de terminal, également appelée émulateur de terminal, est une fenêtre de texte uniquement dans une interface utilisateur graphique qui émule une console.

En nos mots Une application graphique, à partir de laquelle nous pouvons accéder à la console d'un utilisateur.

Console: un tableau de bord contenant les commandes d'un ordinateur

coquille : Un shell est un programme qui fournit l'interface utilisateur traditionnelle en texte uniquement pour Linux et les 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 en 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


19
2017-08-04 04:39



"Terminal" signifie un écran physique de texte uniquement. Ce que vous dites est en fait "émulateur de terminal". - Registered User
@RegisteredUser Un émulateur de terminal est une sorte de terminal. Le mot Terminal n'est pas limité aux terminaux physiques (le mot habituel pour cela est console). - Gilles
Cette définition de ligne de commande est faux. Une ligne de commande ne se limite pas à un mode d'affichage entièrement textuel. - Gilles
@Gilles Je l'ai saisi à partir d'un lien Web. Vous avez mentionné une bonne réponse. - Ten-Coin
@AgentCool Je ne doute pas de votre capacité à copier-coller. Je doute de votre choix de source. Ce que vous publiez est votre responsabilité, que vous l'ayez écrite ou non. - Gilles


Les réponses ici semblent très bonnes. Cependant, ils sont trop secs et techniques à mon goût alors je vais vous donner une idée ..

Terminal est la fin de quelque chose - où il se termine. Par exemple, si vous prenez le métro dans une ville, la gare où vous vous trouvez est votre terminal. Ou dans un aéroport, le lieu où les gens sortent lorsqu'ils atteignent leur pays de destination est considéré comme le terminal. La raison pour laquelle l’aérogare de l’aéroport est à la fois l’endroit où vous embarquez les personnes et l’endroit où vous les avez embarqués est pour des raisons économiques évidentes.

Le but d'un ordinateur est d'obtenir des données, de faire quelque chose et de recracher le résultat. Ainsi, le terminal est tout appareil à partir duquel vous pouvez obtenir le résultat du calcul .. un écran par exemple. Il est juste arrivé que dans les premiers ordinateurs, vous disposiez généralement de l'entrée (clavier) et de la sortie (écran) en tant que périphérique unique. De ce fait, les terminaux sont désormais considérés comme des périphériques d’entrée / sortie. Une souris, un clavier, un écran, une caméra, ce sont tous des terminaux.

Shellest un truc OS. Sur un ordinateur, vous avez le noyau qui, sur Ubuntu par exemple, est la partie Linux. Maintenant que le noyau est vraiment bas, un shell est fourni - un programme qui permet à l'utilisateur d'interagir avec le noyau de manière simple. C'est ce que BASH est par exemple.

Console est (d'un dictionnaire)

une surface plane contenant les commandes d'une machine, pour une pièce   de matériel électrique, etc.

C'est pourquoi, dans l'industrie de la musique, le tableau avec tous les boutons, ou dans la navette spatiale, la table de commande, sont tous considérés comme des consoles. Super Nintendo et PS2 sont aussi appelées consoles historiquement depuis que les premiers appareils de ce type ressemblaient à des boîtes avec un tas de boutons.

Command line est juste une interface - le contraire de l'interface graphique. À savoir, il existe deux types d’interfaces sur un ordinateur; CLI (interface de ligne de commande) et interface graphique (interface graphique). La principale différence est que le premier est saisi par le clavier et le second par la souris.


14
2017-08-06 10:40



Que voulez-vous dire par "l'opposé de GUI"? - Koray Tugay
Avec le contraire je veux dire que vous avez soit CLI ou GUI. J'ai clarifié maintenant un peu plus dans la réponse. - Pithikos


Pour résumer ma réponse:

coquille est un programme qui processes commandes et returns sortie, comme frapper sous Linux.

Terminal est un programme qui run une coquille , dans le passé c'était un dispositif physique (Avant les terminaux étaient des moniteurs avec des claviers, ils étaient télétypes) puis son concept a été transféré dans Logiciel , comme Gnome-Terminal .

Donc j'ouvre Gnome-Terminal , une fenêtre noire apparaît qui fonctionne coquille donc je peux exécuter mes commandes.

La console est un type spécial de terminal , c'était aussi un périphérique physique. par exemple sous Linux, nous avons virtual console auquel je peux y accéder en combinant Ctrl + Alt + F1 à F7 .

Console signifie parfois le clavier et le moniteur physiquement attaché à cet ordinateur.


7
2017-08-05 11:59





Ces termes vont souvent de pair, de sorte que les utilisateurs utilisent l'un des termes pour désigner la collection. (c’est-à-dire qu’il est généralement évident dans le contexte qu’elles signifient une fenêtre de terminal fournissant une interface à un shell de ligne de commande).

Pour éviter que cela n'arrive à long terme, je vais juste dire xterm en tant que remplaçant pour XTerm / Gnome Terminal / Konsole / mrxvt / etc / etc. Idem pour bash.

Console a plusieurs autres significations spécifiques, alors laissez cela pour le moment.

Terminal: Quelque chose qui fournit une interaction humaine avec les programmes via un flux bidirectionnel de caractères ASCII / UTF8 / autres, généralement avec VT100 ou un traitement similaire du code d'échappement. (P. Ex. Retour arrière, suppression, touches fléchées, 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, basculer en texte gras et / ou couleur, effacer ou faire défiler l'écran, etc.) Autrefois, c'était souvent un appareil dédié avec un écran et un clavier et un port série. Maintenant, 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 l’autre côté des terminaux virtuels est accessible en tant que fichier de périphérique. C'est là que xterm écrit vos entrées pour que bash puisse les lire.

Chaque terminal, y compris les terminaux virtuels, offre une édition de ligne de base en mode cuit (par opposition à brut). Ceci est géré par le code du noyau. C'est bash qui fournit l'édition de lignes que vous pouvez faire avec les touches fléchées. (Essayez de courir cat et en tapant si vous voulez voir à quoi ressemble l'édition en ligne de base fournie par le noyau. Backspace fonctionne, et quelques autres choses selon vos paramètres stty.)

Bien qu'il y ait beaucoup de code de noyau derrière les terminaux, il serait appelé code de gestion de terminal, pas comme terminal lui-même.

Edit: Gilles m'a convaincu que faire référence à un tty en tant que terminal est un bon usage. Les émulateurs de terminal et les programmes interactifs 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 normalisé par POSIX, et identique sur Linux / * BSD / autre Unix.) Un éditeur de texte en plein écran dépend du comportement des éléments Unix tty ainsi que de la gestion des codes d’évitement du déplacement du curseur, et de nombreuses autres fonctionnalités de l'émulateur de terminal.

Cependant, un VT100 physique avec un écran, un clavier et un port série est une instance d'un terminal. Il ne nécessite pas qu'un noyau Unix à l'autre extrémité de son port série soit complet. Quelque chose de complètement différent pourrait être de lui envoyer des codes d'échappement et du texte ASCII, et de recevoir la même chose. Ce serait juste un VT100, cependant, pas un terminal Unix. Un émulateur de terminal plus la sémantique Unix tty constitue le package complet d'un terminal Unix sur lequel s'exécute normalement un programme comme bash.

Ligne de commande est un style d'interface utilisateur, où vous tapez quelque chose, puis appuyez sur Entrée pour que quelque chose se produise. Il est également utilisé comme raccourci pour un shell de ligne de commande, comme bash ou MS-DOS, mais vous pouvez également dire «c'est un outil de ligne de commande» à propos de quelque chose comme fdisk. Considérant uniquement les programmes qui utilisent un terminal pour leur interface utilisateur, les deux familles principales sont la ligne de commande et le texte plein écran (par exemple, un éditeur comme vi ou emacs -nw).

Les programmes de ligne de commande qui s'exécutent normalement sur les 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 tels que les éditeurs ou les clients de messagerie sont uniquement interactifs et ne fonctionnent pas.

UNE coquille est un programme pour démarrer d'autres programmes. Dans un contexte Unix, il est courant d'entendre un shell de ligne de commande (c'est-à-dire un shell Bourne ou un équivalent de shell C). Les shells Unix peuvent également lire leurs entrées à partir de fichiers, à savoir des scripts shell. Ce sont des langages de programmation complets, avec des variables, des boucles et des conditions, et de nombreux programmes sont écrits en bash (ou avec seulement le /bin/sh Fonctions du shell POSIX, pour plus de portabilité). Il est également facile d'écrire un rapide for i in *.something; do some_program "$i";done  dans un shell interactif.

En mettant tout cela en place, un shell comme bash (ou tout autre programme que vous avez lancé en exécutant une commande shell) recevra les caractères du /dev/pts/N périphérique terminal après xterm écrit votre entrée sur son côté du pseudo-terminal. Si tu cours cat, puis frapper ^c, le code tty du noyau agira sur le ^c et envoyer un SIGINT au processus de premier plan sur ce terminal. (Notez l'utilisation de Terminal dans ce contexte, on entend le tty Unix, pas un émulateur de terminal ou quelque chose relié à un port série.) Ceci est dû au fait que le shell met le terminal en mode "cooked" avant de démarrer un programme. séquences. (Le code tty n'a toujours rien à voir avec le traitement des codes d'échappement VT100, juste quelques codes de contrôle ASCII faibles.) Si au lieu d'un xterm, vous utilisez le terminal texte de la console Linux, le noyau effectue l'émulation VT100. manipuler tout ça. Linux peut être compilé sans prise en charge de terminal de texte de la console virtuelle, mais pas sans le support de tty.

Console est parfois utilisé comme synonyme de terminal (KDE a même un émulateur de terminal appelé Konsole).

Comme 0xSheepdog le fait remarquer, cela a aussi une autre signification: le 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. Cela peut être un port série. Normalement, bien entendu, c'est la console de 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 obtenez des messages du noyau sur votre écran ET sur le port série.

Linux implémente des consoles virtuelles (/dev/tty1 à N). Vous pouvez échanger avec lequel votre écran / clavier physique contrôle Ctrl+Alt+FN. Les distributions Linux typiques créent 6 et démarrent getty sur chacun d'entre eux, même si vous ne pouvez pas ou ne voulez pas démarrer X11, vous pouvez vous connecter 6 fois et basculer entre une commande, une page de manuel et tout le reste, sans exécuter de programme comme l'écran. Linux (le noyau) inclut un émulateur de terminal de style VT100 pour fournir une interface de terminal via votre écran et votre clavier sur les consoles virtuelles.

Les 6 terminaux virtuels standard avec invites de connexion expliquent pourquoi Ctrl+Alt+F7 vous ramène à votre session X11: le serveur X récupère la console virtuelle disponible suivante. (Le serveur X s'ouvre /dev/input/... directement, plutôt que de récupérer vos touches à partir de /dev/tty7, bien que.)

Donc "swap to a text console" signifie appuyer sur Ctrl+Alt+F1 et utilisez ce terminal. Lorsque les ordinateurs étaient lents et qu’ils n’avaient pas beaucoup de mémoire vive, certains passaient beaucoup de temps sur les consoles de texte, car ils étaient rapides, vous pouviez définir une police agréable et même changer la taille du terminal pour obtenir des caractères plus petits. plus à l'écran à la fois. Alt+La gauche et Alt+Droite basculer sur prev / next console. (X11 désactive cela pour sa console, bien sûr, ne laissant que le Ctrl+Alt+FN combo.)

Alors console est le seul de ces termes qui n'a pas de sens technique bien défini. Il y en a deux différents. (Selon ce que vous pensez de la gestion du terminal par rapport à la gestion du terminal et du terminal, vous pourriez dire que ce terminal a également plusieurs significations.)


7
2017-08-05 09:16



Console ce qui signifie que le terminal physique «principal» n'est pas seulement dans un contexte de noyau. C'est le même sens dans /dev/console. Console n'est pas particulièrement ambigu - bien qu'il soit occasionnellement utilisé dans le sens plus général Terminal, c'est assez rare (plus rare que Terminal étant utilisé pour désigner spécifiquement une console). - Gilles
oui, echo foo | sudo tee / dev / console> / dev / null imprimera à l'écran, si votre VT actuel est en mode texte (y compris la console framebuffer, pas seulement littéralement le mode texte VGA). Si vous avez démarré avec la console sur un port série, je pense que cela irait là-bas. Vous pourriez dire que / dev / console le fichier de périphérique pour tout ce que le noyau traite comme la console système. Rien d'autre dans le système ne doit avoir la moindre notion de console tty (à l'exception des éléments de récupération au démarrage qui démarrent un shell sur la console TTY si le système ne parvient pas à démarrer en mode multi-utilisateur. Habituellement depuis initrd) - Peter Cordes
Le serveur xorg X (strings / usr / bin / Xorg) n'utilise pas / dev / console pour obtenir un accès matériel. Il utilise / dev / tty0 et / dev / tty% d et / dev / vc /% d pour se configurer sur son propre VT. Je suis presque sûr que Xorg fonctionnerait toujours correctement sur un PC démarré avec la console du noyau sur un port série. Et que les terminaux virtuels en mode texte fonctionnent toujours. Plus je considère cela, plus je me penche sur la visualisation de la console dans un contexte de noyau comme un terminal spécial, sélectionné au démarrage. (Linux peut en fait afficher ses messages de console sur plusieurs terminaux à la fois, si vous le lui demandez). - Peter Cordes


Je pense que dans les premiers temps des ordinateurs partageant le temps, chaque utilisateur avait un terminal (quand il pouvait en obtenir un!), Mais seuls les opérateurs du système avaient une console. La console peut être utilisée pour des tâches telles que le redémarrage de la machine ou l'obtention de diagnostics du système qui n'étaient pas possibles à partir des terminaux utilisateur. La console était dans la salle des machines, une partie intrinsèque de l'ordinateur, alors que les terminaux pouvaient être distants. La console comprendrait également des voyants et des commutateurs matériels, et pas seulement des entrées et des sorties de texte.

Je dirais que la ligne de commande est un domaine où un utilisateur peut taper une commande, alors que le shell est le programme qui interprète / obéit à cette commande. Le terme "shell" est très particulier aux dérivés d'Unix; "ligne de commande" est plus dans la tradition Windows / DOS. L'équivalent sur les mainframes est généralement appelé "langage de contrôle des tâches".

Clairement, ces distinctions originales se sont estompées avec le temps, à mesure que la technologie évolue.


5
2017-08-04 22:35