Le shell par défaut de Mac OS X est bash
, que je suis généralement heureux d'utiliser. Je prends cela pour acquis. Ce serait vraiment bien s'il complétait automatiquement plus de choses , et j'ai entendu de bonnes choses zsh
à cet égard. Mais je n'ai pas vraiment envie de passer des heures à manipuler les paramètres pour améliorer mon utilisation de la ligne de commande par une petite quantité, car ma vie sur la ligne de commande n'est pas si mauvaise.
(Si je comprends bien, bash
peut également être configuré pour se compléter automatiquement de manière plus intelligente. C'est la configuration qui ne me passionne pas tellement.)
Le passage à zsh
, même dans un petit nombre de cas, me facilitera-t-il la vie? Ou est-ce seulement une meilleure coque si vous prenez le temps d'apprendre pourquoi c'est mieux? (Les exemples seraient bien aussi :)
)
@ Rodney Amato
& @ Vulcan Eager
donnent deux bonnes raisons de s'en tenir bash
et de passer respectivement àzsh
. On dirait que je vais devoir enquêter sur les deux! tant pis:)
Y a-t-il quelqu'un avec une opinion des deux côtés de l'argument?
Réponses:
Pour une utilisation occasionnelle, vous feriez probablement mieux de vous en tenir à bash et d'installer simplement la complétion bash.
L'installation est assez simple, récupérez le fichier bash-completion-20060301.tar.gz sur http://www.caliban.org/bash/index.shtml#completion et extrayez-le avec
puis copiez le fichier bash_completion / bash_completion dans / etc avec
qui vous demandera votre mot de passe. Vous voudrez probablement créer un répertoire /etc/bash_completion.d pour tous les scripts d'achèvement supplémentaires (par exemple, j'ai le script d'achèvement git).
Une fois que cela est fait, la dernière étape consiste à vous assurer que le fichier .bash_profile de votre répertoire personnel contient
dedans 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.
la source
brew install bash-completion
.brew tap homebrew/versions; brew install bash-completion2
Personnellement, j'adore zsh.
En général, vous ne remarquerez probablement pas la différence entre it et bash, jusqu'à ce que vous vouliez faire rapidement des choses comme le globbing récursif:
**/*.c
par exemple.Ou utilisez des alias de suffixe pour associer des progs 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
. (Sorte de l'équivalent d'un double-clic sur l'icône d'un fichier.)alias -s c=vim
Ou imprimez 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 chez zsh-amoureux . Je trouve également le livre « From Bash to Z-Shell » très utile.
Jouer avec un nombre ahurissant d'options est également très amusant!
la source
find
oulocate
pour rechercher récursivement. Mais une fois que vous laissez un autre programme faire la recherche, vous perdez les frontières entre les noms (sauf si vous faites attention) ainsi que l'accès aux capacités internes de globbing du shell, et vous devez essentiellement soit vous contenter de ce que l'autre programme fournit, ou le tuyau de sa sortie par un programme commegrep
,awk
oused
(tout assez complexe dans leur propre droit).globstar
option dans bash pour permettre la recherche récursive comme mentionné ci-dessus. À peu près sûr que ce n'était pas le cas lorsque cette réponse a été écrite.glob_star_short
inzsh
, vous pouvez maintenant faire**.c
, ce qui est interprété comme**/*.c
.zsh 5.3
et je reçoiscommand not found: age
avecprint *(e:age today now:)
Basculez vers zsh. Vous aurez accès à:
zmv
: Vous pouvez faire:zmv '(*).mp3' '$1.wma'
pour des milliers de fichiers.zcalc
: Calculatrice extrêmement confortable, mieux quebc
.zparseopts
: Une ligne pour analyser les options complexes arbitraires données à votre script.autopushd
: Vous pouvez toujours fairepopd
aprèscd
pour revenir à votre répertoire précédent.la source
autoload zcalc; zcalc
(même si je tape moi-mêmepython
quand j'ai besoin d'une calculatrice).zmv
etzcalc
ne sont pas disponibles immédiatement. Il n'est pas clair qu'ilzmv
s'agit simplement de renommer des fichiers; Je pensais que vous aviez peut-être converti le format. Je ne sais pas ce que signifie même le support "hashes". Ce message semble être "utile" uniquement aux personnes qui connaissent déjà zsh.bash
4 a été publié quelques mois avant cette réponse.Si tout ce que vous voulez utiliser ZSH est une meilleure finition, la configuration est assez simple. Placez ceci dans votre ~ / .zshrc:
Cependant, cela vaut la peine de vérifier toutes les autres fonctionnalités intéressantes 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, recherchez "zshrc" sur Google et vous obtiendrez des configurations prêtes à l'emploi pour commencer.
la source
zsh a une configuration de l'interface graphique de la console. Vous pouvez le configurer assez rapidement et facilement sans avoir à manipuler les 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.
la source
zsh
sans aucun fichier dot associé. Pour l'obtenir manuellement, essayezautoload -U +X zsh-newuser-install; zsh-newuser-install -f
Staale parle d'un assistant comme le programme (CUI) qui s'exécute automatiquement la première fois que vous exécutez zsh. Répondez simplement à quelques questions, affichez / modifiez les paramètres par défaut et sa configuration pour vous.
IBM developerWorks a d'excellentes ressources sur zsh.
Je n'ai pas utilisé de fonctionnalités très avancées et jusqu'à présent je n'ai pas rencontré de différences sérieuses qui devraient gêner quelqu'un venant de bash.
Quelques exemples:
!? pattern <Tab> se complétera automatiquement à la dernière commande du modèle de correspondance d'historique. Très utile.
Vous pouvez configurer une invite sur le RHS. Une utilisation est de garder une invite de largeur fixe sur le côté gauche afin que toutes les commandes s'alignent bien tout en affichant le pwd (ou tout autre élément de largeur variable) comme invite de droite.
Vous pouvez rediriger l'entrée de plusieurs fichiers (mais pour essayer ceci): cat <fichier1 <fichier2 <fichier3
la source