192 votes

Vaut-il la peine de passer à zsh pour une utilisation occasionnelle ?

Le shell par défaut dans Mac OS X est bash que je suis généralement heureux d'utiliser. Je le considère comme acquis. Ce serait vraiment bien s'il s'auto complétait plus de choses et j'ai entendu de bonnes choses à propos de zsh à cet égard. Mais je n'ai pas vraiment envie de passer des heures à bidouiller des paramètres pour améliorer d'un rien mon utilisation de la ligne de commande, puisque ma vie en ligne de commande n'est pas si mauvaise.

(Comme je le comprends, bash peut également être configuré pour s'auto-compléter de manière plus intelligente. C'est la configuration qui ne me plaît pas tant que ça).

Le passage à zsh même dans un petit nombre de cas, me facilite la vie ? Ou est-ce que ce n'est une meilleure coquille que si l'on prend le temps d'apprendre pourquoi c'est mieux ? (Des exemples seraient bienvenus, aussi :) )


@ Rodney Amato & @ Vulcan Eager donne deux bonnes raisons de s'en tenir respectivement à bash et passer à zsh . On dirait que je vais devoir enquêter sur les deux ! Et bien :)

Y a-t-il quelqu'un qui a une opinion des deux côtés de l'argument ?

85voto

Matt Points 2231

Personnellement, j'adore zsh.

En général, vous ne remarquerez probablement pas la différence entre lui et bash, jusqu'à ce que vous vouliez faire rapidement des choses comme le globbing récursif :

  • **/*.c par exemple.

Vous pouvez aussi utiliser des alias de suffixe pour associer des programmes spécifiques à différents suffixes, afin de pouvoir les "exécuter" directement. L'alias ci-dessous vous permet d'"exécuter" un fichier source C à l'invite en tapant simplement ./my_program.c - ce qui fonctionnera exactement comme si vous aviez tapé vim ./my_program.c . (En quelque sorte l'équivalent d'un double clic sur l'icône d'un fichier).

  • alias -s c=vim

Ou encore imprimer les noms des fichiers modifiés aujourd'hui :

  • print *(e:age today now:)

Vous pouvez probablement faire toutes ces choses dans bash, mais mon expérience avec zsh est que s'il y a quelque chose que je veux faire, je peux probablement le trouver dans zsh-lovers . Je trouve aussi que le livre ' De Bash à Z-Shell ' vraiment utile.

Jouer avec le nombre ahurissant d'options est également très amusant !

68voto

Rodney Amato Points 908

Pour une utilisation occasionnelle, il est probablement préférable de s'en tenir à bash et de n'installer que la complétion de bash.

L'installation est assez simple, il suffit de récupérer le fichier bash-completion-20060301.tar.gz à l'adresse suivante http://www.caliban.org/bash/index.shtml#completion et l'extraire avec

tar -xzvf bash-completion-20060301.tar.gz

puis copier le fichier bash_completion/bash_completion dans /etc avec

sudo cp bash_completion/bash_completion /etc

qui vous demandera votre mot de passe. Vous voudrez probablement créer un répertoire /etc/bash_completion.d pour tous les scripts de complétion supplémentaires (par exemple, j'ai la complétion git script dedans).

Une fois ceci fait, la dernière étape est de s'assurer que le fichier .bash_profile dans votre répertoire personnel a

if [ -f /etc/bash_completion ]; then
     . /etc/bash_completion 
fi

pour charger le fichier d'achèvement lorsque vous vous connectez.

Pour le tester, ouvrez simplement un nouveau terminal, et essayez de compléter sur cvs et il devrait vous montrer les options cvs dans la liste des complétions.

38voto

Passez à zsh. Vous aurez accès à :

  1. zmv : Vous pouvez le faire : zmv '(*).mp3' '$1.wma' pour des milliers de fichiers.
  2. zcalc : Calculatrice extrêmement confortable, mieux que bc .
  3. zparseopts : One-liner pour analyser des options complexes arbitraires données à votre script.
  4. autopushd : Vous pouvez toujours faire popd après cd pour revenir à votre répertoire précédent.
  5. Support des points flottants. Il est nécessaire de temps en temps.
  6. Support des hachages. Parfois, il s'agit simplement d'une fonctionnalité clé.

13voto

jkramer Points 7271

Si tout ce que vous voulez utiliser ZSH est de mieux compléter, la configuration est assez facile. Placez ceci dans votre ~/.zshrc :

autoload -U zutil      # [1]
autoload -U compinit   # [2]
autoload -U complist   # [3]
compinit

Cependant, cela vaut la peine de vérifier toutes les autres fonctionnalités du ZSH. L'exemple ci-dessus vous donnera une invite assez simple avec une bonne complétion. Si vous ne voulez pas jouer avec les configurations, mais voulez voir ce que ZSH peut faire pour vous, cherchez "zshrc" sur Google et vous obtiendrez quelques configurations prêtes à l'emploi pour commencer.

6voto

Staale Points 8795

Zsh dispose d'une console de configuration gui. Vous pouvez le configurer assez rapidement et facilement sans avoir à manipuler des fichiers de configuration. Je ne pense pas que vous aurez besoin de beaucoup de temps pour le configurer, probablement 10 secondes en utilisant simplement les valeurs par défaut, alors allez-y et essayez-le.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X