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

172

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

claws
la source
8
et à propos de prompt et même command line?
n611x007
1
Regardez cette question de Unix & amp; Linux: unix.stackexchange.com/questions/4126/…
Flimm
4
Ma femme a dit "l'écran noir"
Kenji Noguchi

Réponses:

153

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 l'édition en ligne de commande. Ces fonctionnalités (et bien d’autres encore) sont standard dans bash, le shell le plus courant 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 périphérique physique constitué d'un peu plus qu'un moniteur et un clavier. Comme les systèmes unix / linux ont ajouté de meilleurs systèmes de multitraitement et de fenêtrage, ce concept de terminal a été résumé dans un logiciel. Maintenant, vous avez des programmes tels que Gnome Terminal qui lance une fenêtre dans un environnement de fenêtres Gnome qui exécutera une coquille dans lequel vous pouvez entrer des commandes.

le console est un genre particulier de Terminal . Auparavant, la console était constituée d'un seul clavier et d'un moniteur branché sur un port de console série dédié d'un ordinateur utilisé pour la 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 exemple Alt + F1 ou Ctrl + Alt + F1 ; la clé de fonction numérotation de consoles différentes) qui sont gérées à des niveaux bas du système d’exploitation Linux - cela signifie qu’aucun service spécial ne doit être installé et configuré pour être exécuté. L’interaction avec la console se fait également à l’aide d’un coquille programme.

Doug Harris
la source
1
Avant les terminaux étaient des moniteurs avec des claviers, ils étaient des télétypes - une sorte de machine à écrire électrique. en.wikipedia.org/wiki/Teleprinter
Kevin Panko
11
Console signifie parfois "le clavier et le moniteur physiquement connectés à cet ordinateur". Par exemple, "je me suis connecté à partir de la console parce que le serveur ne répondait pas au réseau."
Kevin Panko
1
@Doug Harris: Pouvez-vous ajouter quelques photos du matériel dont vous parlez?
claws
1
Quand j'étais au collège à 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
5
Donc si terminaux et consoles sont, à l’heure actuelle, implémentés chacun dans un logiciel - quelle est la différence entre les deux (maintenant)?
Gavin Hope
12

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 informatiques, cela signifie généralement l'affichage que vous voyez avant ou après la fin de l'interface graphique; vous pouvez parfois passer à l'afficher à la place de l'interface graphique. C'est l'endroit où le système d'exploitation imprime des messages d'erreur. Sur un ordinateur multi-utilisateur, c'est l'écran qui est réellement connecté à l'ordinateur. Pour vous dérouter, sous Windows, cela peut également signifier une fenêtre avec un interpréteur de commande, c'est-à-dire un terminal.

Un terminal était également à l'origine un 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.

Peter Westlake
la source
1

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 dans l'écriture mais il n'exécute vraiment rien: 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, le résultat sera le 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.
Ainsi, alors que les terminaux ne sont que des interfaces pour le shell, celui-ci contient le langage actuel, comme dans le cas du 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 m'aide beaucoup à comprendre cette idée.

AgostinoX
la source
0

Il n'y a vraiment pas beaucoup de différence. Il y a bien longtemps, lorsque le "shell" était un programme, le "terminal" était une interface frontale 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 totalement différent.

Josh K
la source
0

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

La différence entre console et shell est une différence que je ne comprends pas encore, mais je peux vous dire en quoi un terminal est différent d’un shell.

le Terminal est ( selon Wikipedia ) "une interface informatique 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 textuelle , parfois appelé un Interface utilisateur du terminal . Par exemple:

  • Vim comporte des éléments d'interface graphique, notamment des numéros de ligne et des onglets nommés
  • Nano a des éléments de l'interface graphique, y compris un menu d'aide de commandes
  • Tmux comporte des éléments d'interface graphique, y compris une barre d'état et des lignes de séparation entre les volets
  • Minicom comporte 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.

Nathan Long
la source
Je ne suis pas sûr que cette définition soit uniquement basée sur du texte. D'une certaine manière, certaines interfaces graphiques pourraient être considérées comme des terminaux imo.
jiggunjer
0

Pour débutants débutants

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

  • terminal = environnement de saisie / 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.

Se rapporter aux objets de tous les jours:

  • Terminal - & gt; Écran de télévision dans votre maison
  • Shell - & gt; Programme diffusé 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 interprète ces sons en utilisant un shell spécifique (traitement).

Le terminal est pour nous les humains, nous pouvons donc lire et écrire dans le shell. Les shells peuvent s'exécuter en arrière-plan, sans nécessiter d'interaction humaine, par exemple. travail cron, et ne nécessite donc pas de terminal.

Quelques exemples de terminaux existants:

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

Quelques exemples de coquillages existants:

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

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

Karl Morrison
la source