Valeur de commutation de zsh pour un usage occasionnel?
Le shell par défaut dans Mac OS X est bash
, que je suis heureux d'être de l'aide. Je viens de le prendre pour acquis. Il serait vraiment bien si il s'est auto-complété plus de choses, si, et j'ai entendu de bonnes choses au sujet de zsh
à cet égard. Mais je n'ai pas vraiment l'envie de passer des heures à configurer les réglages pour améliorer mon utilisation de lignes de commande par une petite quantité, car ma vie sur la ligne de commande n'est pas mauvais.
(Comme je le comprends, bash
peut également être configuré pour auto-compléter de manière plus intelligente. C'est la configuration que je ne suis pas du tout envie sur.)
Changer pour un zsh
, même dans un petit nombre de cas, pour rendre ma vie plus facile? Ou est-ce seulement une meilleure coque si vous mettez du temps à apprendre pourquoi c'est mieux? (Exemples serait gentil, trop :)
)
@Rodney Amato
&
@Vulcan Désireux
donner deux bonnes raisons de respectivement en tenir à bash
et de passer à zsh
. On dirait que je vais avoir à étudier à la fois! Oh bien :)
Est-ce que quelqu'un avec une opinion à partir des deux côtés de l'argument?
- Depuis zsh est (presque) un sur-ensemble de bash, vous pouvez commencer par le déplacement à zsh et de l'utiliser comme bash. Ensuite, vous pouvez apprendre l'zsh gemmes un peu à la fois.
- Si vous avez un peu de bash de personnalisation et que vous utilisez souvent la coquille à l'intérieur d'emacs, cela ne semble pas trivial. J'ai posté une question relative à la: stackoverflow.com/questions/13326879/...
- La seule chose que je n'aime pas à propos de zsh, c'est que (au moins sur Ubuntu), vous devrez configurer vous-même, la première fois que vous lancez (au lieu de fournir quelques options par défaut que vous pouvez plus tard de bricoler avec des). Si vous pouvez obtenir plus de cela, zsh est le meilleur!
Vous devez vous connecter pour publier un commentaire.
Pour un usage occasionnel, vous êtes probablement mieux coller avec bash et simplement l'installation de bash completion.
De l'installation, il est assez facile, prenez la bash-completion-20060301.tar.gz de http://www.caliban.org/bash/index.shtml#completion et l'extraire avec
puis copiez le bash_completion/bash_completion fichier /etc avec
qui vous invite à entrer votre mot de passe. Vous n'aurez probablement envie de faire un /etc/bash_completion.d annuaire pour tout complément d'achèvement des scripts (par exemple, j'ai le git achèvement script là).
Une fois que c'est fait, la dernière étape est de s'assurer que l' .bash_profile fichier dans votre répertoire home a
en elle à la charge de l'achèvement de fichier lorsque vous vous connectez.
Pour tester, il suffit d'ouvrir un nouveau terminal, et d'essayer de remplir sur cvs et il devrait vous montrer les cv des options dans la liste des complétions.
brew install bash-completion
.brew tap homebrew/versions; brew install bash-completion2
Personnellement, j'aime zsh.
Généralement, vous ne remarquerez probablement pas la différence entre elle et bash, jusqu'à ce que vous voulez rapidement faire des choses comme récursive d'expansion:
**/*.c
par exemple.Ou utiliser le suffixe des alias pour associer certains progs avec différents suffixes, de sorte que vous pouvez exécuter directement. Ci-dessous d'alias permet de "lancer" un fichier source C à l'invite de commandes en tapant simplement
./my_program.c
– qui fonctionnera exactement comme si vous aviez tapévim ./my_program.c
. (Un peu l'équivalent du double-cliquant sur l'icône d'un fichier.)alias -s c=vim
Ou imprimer les noms de fichiers modifiés aujourd'hui:
print *(e:age today now:)
Vous pouvez probablement le faire toutes ces choses en bash, mais mon expérience avec zsh, c'est que si il y a quelque chose que je veux faire, je peux probablement trouver dans zsh-les amoureux.
Je trouve aussi le livre " De Bash à Z-Shell est vraiment utile.
Jouer avec l'esprit bogglingly grand nombre d'options est bien sympa aussi!
find
oulocate
de recherche de manière récursive. Mais une fois que vous êtes en laissant un autre programme de faire la recherche, vous perdez les frontières entre les noms (sauf si vous êtes prudent) ainsi que l'accès à la coquille interne de l'expansion des capacités, et ont essentiellement soit à faire avec ce que l'autre programme fournit, ou de rediriger sa sortie par l'intermédiaire d'un programme commegrep
,awk
, oused
(tous assez complexe dans leur propre droit).globstar
option en bash pour permettre une recherche récursive comme mentionné ci-dessus. Assez sûr que ce n'était pas le cas lors de cette réponse a été écrit, si.glob_star_short
danszsh
, vous pouvez maintenant faire**.c
, ce qui est interprété comme**/*.c
.zsh 5.3
et obtenircommand not found: age
avecprint *(e:age today now:)
Passer à zsh. Vous aurez accès à:
zmv
: Vous pouvez faire:zmv '(*).mp3' '$1.wma'
pour des milliers de fichiers.zcalc
: Extrêmement confortable calculatrice, mieux quebc
.zparseopts
: One-liner pour l'analyse complexe arbitraire les options de votre script.autopushd
: Vous pouvez toujours fairepopd
aprèscd
pour revenir à votre répertoire précédent.python
chaque fois que j'ai besoin d'une calculatrice).zmv
etzcalc
ne sont pas disponibles hors de la boîte. Il n'est pas clair quezmv
est juste le renommage des fichiers; j'ai pensé que vous auriez pu convertir le format. Je ne sais pas ce que "hashs" prise en charge de moyens. Ce post semble que c'est seulement "utile" pour les gens qui connaissent déjà zsh.bash
4 a été publié quelques mois avant cette réponse.Si vous souhaitez utiliser ZSH est mieux à la fin, la configuration est assez facile. Placez ceci dans votre ~/.zshrc:
Cependant, il vaut la peine de regarder toutes les autres grandes caractéristiques de la ZSH. L'exemple ci-dessus vous donnera une jolie plaine invite avec une bonne réalisation. Si vous ne voulez pas jouer avec les configurations, mais que vous voulez voir ce que ZSH peut faire pour vous, Google pour "zshrc" et vous obtiendrez des prêts à l'utilisation de configurations pour commencer.
zsh a une console de configuration de l'interface chose. Vous pouvez le régler assez rapidement et facilement, sans avoir à jouer avec des fichiers de configuration. Je ne pense pas que vous aurez besoin de beaucoup de temps pour le configurer, probablement 10 secondes avec juste l'aide de valeurs par défaut, donc aller de l'avant et de l'essayer.
zsh
sans liées fichiers de configuration utilisateur. Pour l'obtenir manuellement, essayez deautoload -U +X zsh-newuser-install; zsh-newuser-install -f
Staale parle d'une forme d'assistant de programme (CUI) qui autoruns la première fois que vous exécutez zsh. Il suffit de répondre à quelques questions, afficher/modifier les paramètres par défaut et configuré pour vous.
IBM developerWorks a de grandes ressources sur zsh.
Je n'ai pas utilisé de fonctionnalités avancées et jusqu'à présent je n'ai pas rencontré de sérieuses différences qui devrait gêner quelqu'un venant de bash.
Quelques exemples:
!?modèle<Tab> saisie semi-automatique pour
la dernière commande dans l'histoire de contrepartie
de modèle. Très utile.
Vous pouvez configurer une invite de commandes sur le
RHS. Une utilisation est de garder un fixe
largeur invite sur le côté gauche
donc, toutes les commandes de la ligne jusqu'à bien alors que
l'affichage de la ddt (ou quoi que ce soit de
largeur variable) comme la main droite
côté d'invite.
Vous pouvez rediriger les entrées à partir de plusieurs fichiers (pas encore essayer ce): cat < fichier1 < fichier2 < fichier3