25 votes

Bash ou Zsh, quelle est la différence, pourquoi utiliser l'un ou l'autre ?

Donc, la question dit à peu près tout. Je suis sur Snow Leopard, et je fais beaucoup de développement web, en particulier avec Rails 3 qui utilise beaucoup la console.

J'ai vu certains blogueurs notables, etc. mentionner Zsh comme leur préférence par rapport à Bash, mais je ne sais pas quelle différence cela ferait.

Quelqu'un pourrait-il me donner une bonne comparaison de la différence et de ce qui pourrait faire préférer une option ou l'autre ?

1 votes

2 votes

Si cela peut vous aider, un article de 2016 : stackabuse.com/zsh-vs-bash

0 votes

Cette question est redevenue d'actualité en raison du passage des pommes à zsh.

17voto

81bronco Points 7071

Cela vient du FAQ Zsh :

2.5: Similarities with bash

The Bourne-Again Shell, bash, is another enhanced Bourne-like shell; the most obvious 
difference from zsh is that it does not attempt to emulate the Korn shell. Since both 
shells are under active development it is probably not sensible to be too specific 
here. Broadly, bash has paid more attention to standards compliancy (i.e. POSIX) for 
longer, and has so far avoided the more abstruse interactive features (programmable 
completion, etc.) that zsh has.

J'ai utilisé les deux, mais je préfère Bash aujourd'hui parce que les machines sur lesquelles je travaille utilisent systématiquement Bash par défaut. Le commentaire sur la conformité aux normes est important pour moi car cela signifie une cohérence entre les systèmes d'exploitation.

Zsh possède de belles capacités d'autocomplétion, mais je trouvais toujours des cas où il ne savait pas ce que je voulais. C'était il y a plusieurs années, donc il se peut qu'il se soit amélioré depuis.

J'ai découvert que l'activation du "vi-mode" ( set -o vi ) dans Bash en fait un environnement de ligne de commande beaucoup plus agréable qu'il ne l'est normalement, donc je le fais immédiatement dans mon fichier .bashrc fichier.

Lorsque j'écris des scripts, je ne programme jamais en bash ou en zsh - je programme en utilisant sh ( /bin/sh ), parce que c'est le plus petit dénominateur commun et le moins susceptible d'avoir des problèmes de compatibilité. C'est juste une vieille habitude qui m'a bien servi.

2 votes

L'une des différences réside dans le fait que les caractères génériques se comportent différemment. Par exemple, pour trouver toutes les instances des fichiers nommés "vi", on peut utiliser bash avec la commande locate */vi . En utilisant zsh, le résultat de la même commande est le suivant zsh: no matches found: */vi . Pour que la recherche fonctionne en zsh, la requête de recherche doit être entourée de guillemets comme locate "*/vi" .

0 votes

Mais vos deux exemples fonctionnent en bash.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X