Zsh vs Bash - 36 principales différences que vous devez savoir

Table des matières:

Anonim

Différence entre Zsh vs Bash

  • Zsh est appelé Z Shell qui est une extension de Bash qui a de nombreuses nouvelles fonctionnalités et thèmes. Zsh a été libéré en 1990 par Paul Falstad. Zsh a également des similitudes avec le shell Korn. Linux et Mac OS utilisent Bash comme shell par défaut.
  • Bash est l'abréviation du shell Bourne-again. En 1971, le système d'exploitation UNIX est sorti avec le shell Thompson. En 1979, le coquillage Thompson a été modifié et commercialisé sous le nom de coquillage Bourne. Brian Fox a sorti Bash en 1989 pour son projet qui a apporté des améliorations par rapport à ses versions précédentes. La version de Bash a amélioré son utilisation en tant que langage de script. Le Zsh par défaut est différent de Bash.

Comparaison directe entre Zsh et Bash (infographie)

Ci-dessous, le top 36 des comparaisons entre Zsh et Bash:

Différences clés entre Zsh et Bash

Laissez-nous discuter de certaines des principales différences entre Zsh et Bash:

  • Zsh est plus interactif et personnalisable que Bash.
  • Zsh a un support en virgule flottante que Bash ne possède pas.
  • Les structures de données de hachage sont prises en charge dans Zsh qui ne sont pas présentes dans Bash.
  • Les fonctionnalités d'invocation dans Bash sont meilleures en comparaison avec Zsh.
  • L'aspect rapide peut être contrôlé dans Bash tandis que Zsh est personnalisable.
  • Les fichiers de configuration sont .bashrc dans les shells interactifs sans connexion et .profile ou .bash_profile dans les shells de connexion de Bash. Dans Zsh, les shells sans connexion sont .zshrc et les shells de connexion sont .zprofile.
  • Les tableaux Zsh sont indexés de 1 à la longueur tandis que Bash est indexé de -1 à la longueur.
  • Dans Zsh, si les modèles génériques ne correspondent à aucun fichier, il génère une erreur. À Bash, il reste inchangé.
  • Le côté droit d'un pipeline est exécuté comme un shell parent dans Zsh tandis que dans Bash, il est exécuté comme un sous-shell.
  • Dans Zsh, la fonction zmv est utilisée pour renommer en masse tandis que dans Bash, nous devons utiliser la fonction d'extension des paramètres.
  • Bash a de bonnes capacités de script sur une seule ligne alors que dans Zsh, nous ne pouvions pas trouver la même chose.
  • La sortie est stockée dans un fichier temporaire par défaut dans Zsh tandis que dans Bash ce n'est pas le cas.
  • De nombreuses fonctionnalités intégrées dans Bash facilitent les programmes complexes tandis que dans Zsh, les fonctionnalités intégrées pour les programmes complexes sont moins nombreuses.
  • Zsh gère ses fichiers efficacement tandis que Bash n'est pas bon pour faire fonctionner ses fichiers.

Tableau de comparaison de Zsh vs Bash

Le tableau ci-dessous résume les comparaisons entre Zsh et Bash:

Sr non.ZshFrapper

1

Les utilisateurs sont moins nombreux que BashLes utilisateurs sont plus nombreux et donc le support de la communauté aussi

2

L'achèvement automatique est plus rapideLa complétion automatique n'est pas plus rapide que Zsh

3

Zsh a une extension en ligne des caractères génériquesBash n'a pas d'extension générique en ligne

4

L'achèvement de l'onglet est comme un menu déroulant dans Zsh.L'achèvement de tabulation est comme une sortie de commande dans Bash.

5

Zsh a des alias de commande de préfixe et de suffixe.Bash n'a pas d'alias de commande de préfixe et de suffixe.

6

Zsh suit de plus près le standard POSIX.Bash ne suit pas autant le standard POSIX que Zsh.

sept

La fonctionnalité Zsh est plus configurable.La fonctionnalité Bash n'est pas très configurable.

8

L'onglet est utilisé pour naviguer entre les options.Aucune option de ce type n'est disponible dans Bash.

9

Zsh a de nombreux thèmes et pluginsL'option bash pour les thèmes et les plugins est moindre.

dix

Un changement de nom de répertoire peut être fait facilement dans Zsh.Le nom du répertoire ne peut pas être modifié automatiquement dans Bash.

11

Zsh corrigera l'orthographe et l'achèvement des mots.Bash ne réparera rien par lui-même.

12

Tout en prenant la valeur d'une variable, Zsh a plusieurs façons d'appliquer la transformation.Bash a très peu de façons d'appliquer la transformation à la variable.

13

Les qualificateurs de globes dans Zsh affichent des fichiers correspondants basés sur des métadonnées.Bash n'a aucun qualificatif Glob.

14

Les modèles de caractères génériques supplémentaires sont activés automatiquement dans Zsh.Dans Bash, les modèles génériques supplémentaires sont activés à l'aide de shopt -s extglob.

15

# n'est pas traité comme un commentaire par défaut dans Zsh.Dans Bash, # est considéré comme un commentaire par défaut.

16

Zsh a défini les paramètres.Bash a des paramètres shopt.

17

Zsh termine les noms de commandes et de fichiers en exécutant compinit.Bash termine les noms de commandes et de fichiers en exécutant bash_completion.

18

Zsh est plus précis et si quelque chose ne va pas, il montre une erreur.Bash fait des choses par lui-même qui ne sont peut-être pas correctes mais sensées.

19

L'invite Zsh contient des pourcentages d'échappement.L'invite de bash a des échappements de barre oblique inverse.

20

En utilisant Zsh, nous pouvons créer des invites fantaisistes.Dans Bash, nous ne sommes pas en mesure de créer des invites fantaisistes.

21

La liaison des clés dans Zsh est effectuée par la bindkey. intégré.Bash utilise .inputrc et la fonction intégrée de liaison pour lier les clés.

22

Les paramètres de configuration utilisateur sont stockés dans .zshrc.Les paramètres de configuration utilisateur sont stockés dans .bashrc.

23

Zsh a la communauté Oh-my-Zsh pour aider à l'écriture de scripts.Bash n'a pas de communauté définie en tant que telle, mais comme il est ancien, il existe de nombreuses communautés en ligne à prendre en charge dans les scripts.

24

Zsh peut afficher un écran partagé similaire à l'écran partagé de vim.Aucune option de ce type n'est disponible dans Bash.

25

Les calculs peuvent être effectués dans Zsh à l'aide de la commande zcalc.La calculatrice externe Expr et bc est utilisée dans Bash pour effectuer des calculs.

26

Dans Zsh, la commande zparseopts est utilisée pour analyser le script.La commande intégrée Getopts est utilisée dans Bash pour analyser les scripts.

27

Les alias étendus sont autorisés n'importe où sur une ligne si l'alias est utilisé dans la commande.Bash n'autorise pas cette fonctionnalité dans la ligne.

28

Les scripts d'environnement de Zsh sont zlogin, zlogout, zprofile, zshenv, zshrc.Bash n'a pas beaucoup de scripts d'environnement.

29

Lors du démarrage, shellopts n'est pas exécuté.Shellopts s'exécute automatiquement lors du démarrage de Bash.

30

Les scripts ne sont pas très bons par rapport à Bash.Bash a de bonnes capacités de script.

31

L'historique est partagé dans tous les cas dans ZshLe partage de l'historique n'est pas si simple dans Bash.

32

Zsh n'est pas du tout similaire à Emacs.Les raccourcis dans Bash sont très similaires à Emacs.

33

La personnalisation est effectuée pendant le processus d'installation dans Zsh.La personnalisation se fait en vérifiant les paramètres de configuration dans Bash.

34

Les fichiers de configuration ne sont pas faciles à explorer.Les fichiers de configuration sont simplifiés dans Bash.

35

Zsh possède de nombreuses fonctionnalités avancées.Les fonctionnalités ne sont pas avancées.

36

La complétion automatique est une fonctionnalité de Zsh.Les plugins tiers doivent être installés pour l'auto-complétion.

Conclusion

Les fonctionnalités de configuration interactive présentent de nombreuses différences lors de la comparaison de Zsh et Bash. Zsh est connu pour son extensibilité, sa bonne personnalisation et ses fonctionnalités avancées. Étant donné que Zsh est fabriqué à partir de Bash, près de 90% des scripts sont similaires et compatibles avec Bash. Zsh et Bash ont de nombreuses similitudes et sont facilement portables. De nombreux systèmes ont commencé à utiliser Zsh comme shell par défaut.

Articles recommandés

Ceci est un guide pour Zsh vs Bash. Ici, nous discutons également des principales différences entre Zsh et Bash avec une comparaison tête à tête (infographie) et un tableau de comparaison. Vous pouvez également consulter les articles suivants pour en savoir plus-

  1. Rust vs C ++
  2. Adresse physique vs adresse logique
  3. List vs Set - Comparaisons utiles
  4. Array vs ArrayList