GNU/Linux >> Tutoriels Linux >  >> Linux

8 types de shells Linux

Présentation

Linux est livré avec plusieurs shells différents. Bien qu'une distribution ait un shell par défaut, les utilisateurs peuvent passer à un autre type ou en installer un nouveau.

Si vous cherchez à changer votre shell par défaut, connaître les différents types disponibles aide à fournir un aperçu clair des options possibles.

Cet article présente l'importance et les fonctionnalités de huit shells Linux différents.

Qu'est-ce qu'un shell Linux et pourquoi est-ce important ?

Une coque est un programme interpréteur de ligne de commande qui analyse et envoie des commandes au système d'exploitation. Ce programme représente l'interface interactive d'un système d'exploitation et la couche la plus externe du noyau (ou shell). Il permet aux utilisateurs et aux programmes d'envoyer des signaux et d'exposer les utilitaires de bas niveau d'un système d'exploitation.

Le programme terminal (ou émulateur de terminal) permet l'interaction avec les utilitaires du système. Lorsque nous exécutons une commande dans le terminal, telle que ls ou cat, le shell analyse, évalue, recherche et exécute le programme correspondant, s'il est trouvé.

Types de shells Linux

Linux propose différents types de shell pour résoudre divers problèmes grâce à des fonctionnalités uniques. Les shells développés aux côtés d'Unix empruntaient souvent des fonctionnalités les uns aux autres au fur et à mesure que le développement progressait.

Vous trouverez ci-dessous un bref aperçu des différents types de coques et de leurs fonctionnalités .

1. Bourne Shell (sh)

Le coquillage Bourne était le premier shell par défaut sur les systèmes Unix, sorti en 1979. Le nom du programme shell est sh , et l'emplacement traditionnel est /bin/sh . L'invite passe à $ , tandis que l'invite racine est # .

La coque Bourne est rapidement devenue populaire car elle est compacte et rapide . Cependant, sh manque certaines fonctionnalités standard, telles que :

  • Développement logique et arithmétique.
  • Historique des commandes.
  • Autres fonctionnalités complètes, telles que la saisie semi-automatique.

Les systèmes modernes de type Unix ont le /bin/sh fichier exécutable. Le programme ne démarre pas le shell Bourne mais agit comme un fichier exécutable pointant vers le shell système par défaut .

Pour la plupart des systèmes, le lien physique ou symbolique pointe vers bash , tandis que sur Ubuntu et Debian, le lien est à tiret . Dans les deux cas, le lien imite autant que possible le shell Bourne.

2. Shell C (csh)

Le shell C (csh ) est un shell Linux de la fin des années 1970 dont l'objectif principal était d'améliorer l'utilisation interactive et d'imiter le langage C. Étant donné que le noyau Linux est principalement écrit en C, le shell vise à fournir une cohérence stylistique à travers le système.

Le chemin vers l'exécutable du shell C est /bin/csh . L'invite utilise % pour les utilisateurs réguliers et # pour l'utilisateur root.

Nouvelles fonctionnalités interactives incluses :

  • Historique de la commande précédente.
  • Alias ​​définis par l'utilisateur pour les programmes.
  • Répertoire personnel relatif (~ ).
  • Grammaire d'expression intégrée.

Les principaux inconvénients du shell C sont :

  • Incohérences de syntaxe.
  • Aucune prise en charge des descripteurs ou fonctions de fichier d'entrée/sortie standard (stdio).
  • Pas entièrement récursif, ce qui limite la gestion complexe des commandes.

Le shell C a amélioré la lisibilité et les performances par rapport au shell Bourne. Les fonctionnalités interactives et les innovations de csh ont influencé tous les shells Unix ultérieurs.

3. Coque TENEX C (tcsh)

La coque TENEX C (tcsh ) est une extension du shell C (csh ) ont fusionné au début des années 1980. Le shell est rétrocompatible avec csh, avec des fonctionnalités et des concepts supplémentaires empruntés au système d'exploitation TENEX.

Le chemin exécutable du shell TENEX C est dans /bin/tcsh . L'invite de l'utilisateur est hostname:directory> alors que l'invite racine est hostname:directory# . Les premières versions de Mac OS et le shell racine par défaut de FreeBSD utilisent tcsh.

Les fonctionnalités supplémentaires du shell incluent :

  • Historique des commandes avancées.
  • Saisie semi-automatique programmable.
  • Correspondance générique.
  • Contrôle des tâches.
  • Commande where intégrée.

Comme tcsh est une extension du shell C, de nombreux inconvénients persistent dans la version étendue.

4. KornShell (ksh)

Le KornShell (ksh ) est un shell Unix et un langage basé sur le shell Bourne (sh) développé au début des années 1980. L'emplacement est dans /bin/ksh ou /bin/ksh93 , alors que l'invite est la même que le shell Bourne ($ pour un utilisateur et # pour la racine).

Le shell implémente des fonctionnalités du shell C et du shell Bourne, visant à se concentrer à la fois sur les commandes interactives et les fonctionnalités de programmation. Le KornShell ajoute de nouvelles fonctionnalités qui lui sont propres, telles que :

  • Fonctions mathématiques intégrées et arithmétique à virgule flottante
  • Programmation orientée objet.
  • Extensibilité des commandes intégrées.
  • Compatible avec le shell Bourne.

Le shell est plus rapide que le shell C et le shell Bourne.

5. Debian Almquist Shell (tiret)

Le shell Debian Almquist (tiret ) est un shell Unix développé à la fin des années 1990 à partir du shell Almquist (ash), qui a été porté sur Debian et renommé.

Dash est célèbre pour être le shell par défaut d'Ubuntu et de Debian. Le shell est minimal et conforme à POSIX, ce qui le rend pratique pour les scripts de démarrage du système d'exploitation.

Le chemin de l'exécutable est /bin/dash , en plus de /bin/sh pointant vers /bin/dash sur Ubuntu et Debian. L'invite de l'utilisateur root et par défaut est la même que dans le shell Bourne.

Les fonctionnalités de Dash incluent :

  • L'exécution est jusqu'à 4 fois plus rapide qu'avec bash et d'autres shells.
  • Nécessite un minimum d'espace disque, de CPU et de RAM par rapport aux alternatives.

Le principal inconvénient est que dash n'est pas compatible avec bash. Les fonctionnalités non incluses dans le tableau de bord sont appelées "bashismes". Par conséquent, les scripts bash nécessitent des retouches supplémentaires des bashismes pour s'exécuter avec succès.

6. Bourne Again Shell (bash)

La coque Bourne Again est un shell Unix et un langage de commande créé comme une extension du shell Bourne (sh ) en 1989. Le programme shell est le shell de connexion par défaut pour de nombreuses distributions Linux et les versions antérieures de macOS.

Le nom du shell se raccourcit en bash , et l'emplacement est /bin/bash . Comme le shell Bourne, l'invite bash est $ pour un utilisateur régulier et # pour la racine.

Bash introduit des fonctionnalités introuvables dans le shell Bourne, dont certaines incluent :

  • Extension du renfort.
  • Achèvement de la commande.
  • Débogage de base et gestion du signal.
  • Historique des commandes.
  • Commandes conditionnelles, telles que les instructions bash if et bash case.
  • Assistance Heredoc.

Remarque : Certaines fonctionnalités ne sont pas uniques à Bash, mais plutôt empruntées à d'autres shells.

Étant donné que bash est un sur-ensemble du shell Bourne, la plupart des scripts sh s'exécutent dans bash sans aucune modification supplémentaire.

7. Coque Z (zsh)

La coque Z (zsh ) est un shell Unix créé comme extension du shell Bourne au début des années 1990. Le shell riche en fonctionnalités emprunte des idées à ksh et tcsh pour créer une alternative bien construite et utilisable.

L'emplacement de l'exécutable est dans /bin/zsh . L'invite est [email protected] location % pour les utilisateurs réguliers et hostname# pour l'utilisateur racine. Le shell Z est le shell par défaut de Kali Linux et Mac OS.

Certaines nouvelles fonctionnalités ajoutées au zsh incluent :

  • Historique partagé entre toutes les sessions shell en cours d'exécution.
  • Amélioration de la gestion des tableaux et des variables.
  • Corrections orthographiques et remplissage automatique du nom de la commande.
  • Divers modes de compatibilité.
  • Extensibilité grâce aux plugins.

Le shell est hautement configurable et personnalisable grâce au support communautaire via le framework Oh My Zsh.

8. Coquille interactive amicale (poisson)

Le coque interactif convivial (poisson ) est un shell Unix sorti au milieu des années 2000 avec un accent sur la convivialité. Le shell riche en fonctionnalités ne nécessite aucune configuration supplémentaire, ce qui le rend convivial dès le départ.

Le chemin de l'exécutable par défaut est /usr/bin/fish . L'invite de l'utilisateur est [email protected] location> , tandis que l'invite racine est [email protected] location# .

Les fonctionnalités du shell incluent :

  • Suggestions avancées/remplissage des onglets en fonction de l'historique actuel du répertoire.
  • Mise en évidence de la syntaxe utile et messages d'erreur descriptifs.
  • Configuration Web.
  • Historique des commandes avec options de recherche.

Le principal inconvénient de fish est la non-conformité POSIX. Cependant, les développeurs visent à améliorer les conceptions défectueuses de POSIX.

Conclusion

Après avoir lu plusieurs types de shell différents dans cet article, vous avez un meilleur aperçu des shells Linux disponibles. D'autres shells existent pour des cas d'utilisation spécifiques, et chaque type de shell résout des problèmes différents.


Linux
  1. Comment changer de shell sous Linux

  2. rbash - Définir le shell restreint sous Linux

  3. Exemples de commandes chsh sous Linux

  4. Script de translittération pour le shell Linux

  5. Linux =Existe-t-il quelque chose comme un shell Java au lieu d'autres shells Linux ?

Shells open source populaires sous Linux

Comment changer un shell d'utilisateurs sous Linux

Commande source sur Linux expliquée

Résumé du shell Linux :15 shells Linux open source les plus populaires

Qu'est-ce que le sous-shell sous Linux ?

Qu'est-ce que le shell de connexion sous Linux ?