Question Quelle est la différence entre shell, console et terminal?


Je suis confondu avec la terminologie. Quelle est la différence entre shell, console et terminal?


162
2018-05-24 13:22


origine


et à propos de prompt et même command line? - n611x007
Jetez un oeil à cette question d'Unix & Linux: unix.stackexchange.com/questions/4126/... - Flimm
Ma femme a dit "l'écran noir" - Kenji Noguchi


Réponses:


Dans le monde Linux, ils peuvent tous se ressembler du point de vue de l'utilisateur au clavier. Les différences sont dans la façon dont ils interagissent les uns avec les autres.

le coquille est le programme qui traite réellement les commandes et renvoie la sortie. La plupart des shells gèrent également les processus de premier plan et d'arrière-plan, l'historique des commandes et la modification de la ligne de commande. Ces fonctionnalités (et bien d’autres) sont standard dans bash, le shell le plus commun dans les systèmes linux modernes.

UNE Terminal fait référence à un programme wrapper qui exécute un shell. Il y a des décennies, il s'agissait d'un appareil physique constitué d'un peu plus qu'un moniteur et un clavier. Comme les systèmes unix / linux ajoutaient de meilleurs systèmes de multitraitement et de fenêtrage, ce concept de terminal a été extrait dans un logiciel. Maintenant, vous avez des programmes tels que Terminal Gnome qui lance une fenêtre dans un environnement de fenêtrage Gnome qui exécutera un coquille dans lequel vous pouvez entrer des commandes.

le console est un type spécial de Terminal. Historiquement, la console était un clavier unique et un moniteur connecté à un port de console série dédié sur un ordinateur utilisé pour une communication directe à un niveau bas avec le système d'exploitation. Les systèmes linux modernes fournissent consoles virtuelles. Celles-ci sont accessibles via des combinaisons de touches (par ex. Alt+F1 ou Ctrl+Alt+F1; la clé de fonction nombre de consoles différentes) qui sont traitées à de faibles niveaux du système d'exploitation Linux - cela signifie qu'il n'y a pas de service spécial à installer et à configurer pour s'exécuter. L'interaction avec la console se fait également à l'aide d'un coquille programme.


143
2018-05-24 13:37



Avant les terminaux étaient des moniteurs avec des claviers, ils étaient des téléscripteurs - une sorte de machine à écrire électrique. en.wikipedia.org/wiki/Teleprinter - Kevin Panko
Console signifie parfois "le clavier et le moniteur physiquement connectés à cet ordinateur". Par exemple, "je me suis connecté depuis la console car le serveur ne répondait pas au réseau". - Kevin Panko
@Doug Harris: Pouvez-vous ajouter des photos du matériel dont vous parlez? - claws
Quand j'étais à la fin des années 1980, j'ai beaucoup travaillé sur les terminaux DEC VT220 - en.wikipedia.org/wiki/VT220 - C'est un bon exemple du périphérique physique que j'ai décrit. - Doug Harris
Donc si terminaux et consoles sont, de nos jours, chacune implémentée dans un logiciel - quelle est la différence entre les deux (maintenant)? - Gavin Hope


Un shell est un programme qui affiche une invite et attend que vous tapiez des commandes. Il les exécute puis imprime une autre invite. Donc, comme CMD sous Windows ou Bash sous Unix. Il peut fonctionner dans un terminal ou sur la console.

Une console était à l'origine une chose physique, un panneau de contrôle. En termes de calcul, cela signifie généralement l'affichage que vous voyez avant le démarrage ou après la fin de l'interface graphique; vous pouvez parfois basculer vers l'affichage au lieu de l'interface graphique. C'est le lieu où le système d'exploitation imprime les messages d'erreur. Sur un ordinateur multi-utilisateur, c'est l'écran qui est réellement connecté à l'ordinateur. Pour vous confondre, sous Windows, cela peut aussi signifier une fenêtre avec un shell de commande, c’est-à-dire un terminal.

Un terminal était également à l'origine du matériel, utilisé pour communiquer avec un ordinateur. De nos jours, il fait généralement référence à une fenêtre avec une ligne de commande (shell), qui peut apparaître dans une fenêtre graphique ou à la place d'une interface graphique.


10
2018-05-24 13:39





Pensez à un autre contexte, c'est le développement.
Même si vous ne connaissez pas très bien le développement, vous connaissez probablement les bases: vous éditez un programme, vous le soumettez à un compilateur ou à un interpréteur qui construit une application compilée.
La console est comme l'éditeur de votre programme; ça vous aide l'écriture mais il n'exécute pas vraiment quoi que ce soit: lorsque vous avez terminé, vous l'envoyez au compilateur pour cela.

Vous pouvez utiliser votre éditeur préféré, vim, gedit, emacs, notepad ++, Netbeans, eclise, etc.etc mais à la fin ce ne sont que des outils différents: si vous écrivez le même programme, la sortie sera la même.
Dans cette métaphore, le shell est le compilateur. Les commandes entrées dans le terminal sont envoyées au shell qui les interprète et les exécute immédiatement.
Donc, alors que les terminaux ne sont que des frontaux pour le shell, le shell contient le langage réel, comme cela se produit pour le compilateur.

De toute évidence, un terminal n'est pas exactement un éditeur de texte, principalement parce qu'il ne produit pas de fichier mais envoie du texte au shell sous-jacent et en extrait la sortie.

Et le shell n'est pas un compilateur, en fait, il interprète votre commande et l'exécute immédiatement au lieu de créer un exécutable.

Même avec cette grande différence, je trouve que cette métaphore aide beaucoup à comprendre cette idée.


1
2017-09-21 20:13





Il n'y a vraiment pas beaucoup de différence. Il y a longtemps, lorsque le "shell" était un programme, le "terminal" était un wrapper frontal pour ce programme et la "console" était la connexion physique à l'ordinateur (clavier / écran).

Il y a une différence selon le système d'exploitation que vous utilisez. Le shell "standard" est FRAPPER, qui est normalement disponible sur toutes les versions de Linux / Unix. Windows utilise un shell entièrement différent.


0
2018-05-24 13:37





Un terminal est une interface textuelle (éventuellement vers un shell)

La différence entre la console et le shell est une différence que je ne sais pas encore, mais je peux vous dire comment un terminal est différent d’un shell.

le Terminal est (selon Wikipedia) "une interface série pour la saisie et l'affichage de texte. Les informations sont présentées sous la forme d'un tableau de caractères formés présélectionnés".

Vous pouvez utiliser un terminal pour interagir avec un shell, mais vous pouvez également l'utiliser pour interagir avec un interface graphique basée sur le texte, parfois appelé un Interface utilisateur du terminal. Par exemple:

  • Vim possède des éléments d'interface graphique, y compris des numéros de ligne et des onglets nommés
  • Nano a des éléments d'interface graphique incluant un menu d'aide de commandes
  • Tmux possède des éléments d'interface graphique comprenant une barre d'état et des lignes de séparation entre les volets
  • Minicom possède des éléments d'interface graphique, y compris des menus et une barre d'état

Dans chaque cas, les éléments de l'interface graphique sont "dessinés" avec du texte plutôt que des pixels.


0
2018-01-27 21:26



Je ne suis pas sûr que cette définition ne soit que textuelle. D'une certaine manière, certaines interfaces graphiques peuvent être considérées comme des terminaux imo. - jiggunjer


Pour les débutants débutants

Pour une description plus détaillée: https://askubuntu.com/a/506628/130518

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

Je vais décrire le cas d'utilisation le plus normal pour cela dans le texte suivant.

Un terminal les usages une coquille. Un shell peut fonctionner sans terminal.

Relier aux objets du quotidien:

  • Terminal -> Écran TV dans votre maison
  • Shell -> Programme en cours d'exécution sur l'écran du téléviseur

Une autre façon de voir les choses: Vos oreilles (entrée) et votre bouche (sortie) sont les bornes du son. Votre cerveau est l'interprète de ces sons en utilisant un shell spécifique (traitement).

Le terminal est pour nous les humains, donc nous pouvons lire et écrire depuis / vers le shell. Les shells peuvent s'exécuter dans des processus d'arrière-plan ne nécessitant pas d'interaction humaine, par exemple cron job, et donc ne nécessite pas de terminal.

Quelques exemples de terminaux existants:

  • Invite de commandes
  • guake
  • gnome-terminal
  • terminateur

Quelques exemples de coques qui existent:

  • Frapper
  • sh (Bourne shell)
  • PowerShell [windows]
  • zsh (shell Z)

J'ai seulement écrit comment ces deux fonctionnent normalement, il y a d'autres façons de travailler, mais c'est pour un utilisateur plus avancé.


0
2018-03-06 10:29