Caractéristiques uniques de bash par rapport à zsh

J'ai été un user zsh depuis un certain time (avant ça, tcsh et avant csh). Je suis très contente, mais je me demandais s'il y avait des caractéristiques convaincantes de bash qui n'existent pas dans zsh. Et inversement, y a-t-il des fonctions zsh qui n'existent pas dans bash. Mon sentiment actuel est que bash est meilleur:

  • Si vous le connaissez déjà et que vous ne souhaitez pas apprendre une nouvelle syntaxe.
  • Il va exister sur la plupart des machines * nix par défaut, tandis que zsh peut être une installation supplémentaire.

N'essayant pas de commencer une bataille religieuse ici, c'est pourquoi je cherche juste des fonctionnalités qui n'existent dans une seule des coquilles.

10 Solutions collect form web for “Caractéristiques uniques de bash par rapport à zsh”

zsh est pour les vulcans. 😉

En série: bash 4.0 a quelques fonctionnalités précédemment trouvées dans zsh, comme ** globbing:

% ls /usr/src/**/Makefile 

est équivalent à:

 % find /usr/src -name "Makefile" 

mais évidemment plus puissant.

Selon mon expérience, l'achèvement programmable de bash s'effectue un peu mieux que celui de zsh, du less pour certains cas (en remplissant des packages debian pour aptitude par exemple).

bash a Alt + . insert !$

zsh a développé toutes les variables, donc vous pouvez utiliser par exemple

 % rm !$<Tab> 

pour ça. zsh peut également étendre une command dans les backstructures, donc

 % cat `echo blubb | sed 's/u/a/'`<Tab> 

produit des rendements

 % cat blabb 

Je trouve qu'il est très utile d'étendre rm * , car vous pouvez voir ce qui serait supprimé et peut éventuellement enlever un ou deux files du commmand pour éviter qu'ils ne soient supprimés.

Aussi gentil: utiliser la sortie des commands pour d'autres commands qui ne lisent pas de stdin, mais attendez-vous à un nom de file:

 % diff <(sort foo) <(sort bar) 

De ce que j'ai lu bash-completion supporte également l'exécution de noms de files distants sur ssh si vous utilisez ssh-agent, ce qui était une bonne raison de passer à zsh.

Les alias dans zsh peuvent être définis pour fonctionner sur l'set de la ligne plutôt que juste au début:

  % alias -g ... = "../ .."
 % cd ...

Je voudrais souligner que bash n'est pas installé par défaut sur FreeBSD, OpenBSD ou NetBSD, et il n'est pas installé par défaut sur Solaris 10 (OpenSolaris l'a par défaut), la dernière fois que j'ai utilisé un AIX et / ou Les servers HP-UX n'ont pas été installés par défaut.

De plus, sur OpenSolaris / bin / sh n'est PAS bash. C'est ksh. Les plus gros problèmes que j'ai en tant que porteur de logiciel sont ceux qui supposent / bin / sh est bash et qu'il acceptera la syntaxe étendue de bash. Bien que cela semble être le cas sur la plupart des dissortingbutions Linux, ce n'est pas le cas ailleurs et c'est vraiment ennuyant.

Même si je suis un user bash, je trouve une des fonctionnalités de zsh très cool: RPS1.

Rappelles toi:

  • PS1: l'invite alignée à gauche
  • RPS1: l'invite alignée à droite

Échantillon:

En utilisant quelque chose comme

 PS1='%B(%h) %m%#%b ' RPS1='(%20<…<%~)' 

Vous obtenez votre invite sur la gauche et le directory actuel est poussé sur la droite. Il disparaît même lorsque la ligne actuelle devient trop longue! C'est parce que zsh est assez intelligent pour donner peu de priorité à RPS1.

Vous pouvez voir une capture d'écran de cet exemple à http://imgur.com/OAZhC .

Zsh a une correction orthographique. Si vous êtes une lettre (ou plus) désactivée, elle finda ce que vous vouliez dire.

Il a également une finition de tabulation plus robuste, ce que j'aime.

Zsh dispose d'un utilitaire de configuration interactif pour configurer comme vous le souhaitez.

Certains tests de vitesse indiquent que zsh est plus rapide, mais je n'ai pas remarqué de différence.

Je ne connais aucune fonctionnalité bash que zsh ne supporte pas. L'objective de design de zsh semble inclure le support de toutes les fonctionnalités que bash ajoute.

J'utilise encore bash au lieu de zsh. Je rencontre rarement des fonctionnalités convaincantes que zsh supporte que bash ne fonctionne pas. Des problèmes occasionnels avec zsh au cours des années, ou il n'existe pas sur certains sysetms, ont fait valoir la peine de faire la transition.

Je peux finalement utiliser le même shell sur chaque système Unix, il ne vaut pas la peine de rompre cela pour les fonctionnalités que je n'utiliserai jamais.

Les caractéristiques présentées dans zsh qui ne sont pas présentes dans bash semblent surtout être mignonnes mais pas celles qui importent au jour le jour.

bash a de nombreuses fonctionnalités qui n'étaient que dans zsh. Vous pouvez avoir une «fin de l'onglet intelligent» avec bash aswell maintenant, comme l'a découvert l'user ubuntu récent.

La substitution des process et les globules étendus sont les deux caractéristiques dont je m'en souviendrais le plus. Les parameters d'invite sont très cool aussi – en voyant le niveau de nidification lorsque vous tapez des instructions complexes sur les lignes de command. Autoloading rend possible plusieurs fonctions dans chaque shell.

Je suis un fan de zsh en raison du support vi mode, mais je découvre qu'il n'est pas très utilisé. Je pense que j'ai lu que zsh aime à prendre des fonctionnalités populaires des autres shells et les combiner (donc les choses spécifiques à bash et les choses spécifiques à csh sont toutes deux disponibles dans zsh).

Quelqu'un a également dit que je fais fléchir mon facteur geek en utilisant zsh, mais je ne peux pas confirmer ou nier cette rumeur.

Popularité, #bash 430 users. #zsh 123 users. Je crois que le site Web de zsh a une bonne comparaison de zsh avec d'autres shells. zsh a un meilleur support de mode vi.

Bash utilise la même syntaxe pour si et pendant que cela peut être utilisé dans / bin / sh scripts sur la command line.
Dans zsh, la syntaxe est différente. En utilisant efficacement zsh, vous devez vous souvenir des deux, si vous utilisez une instruction if ou while sur votre command line

  • Incapable de comprendre le bénéfice de l'autopushd de Zsh
  • Suppression de l'historique ou des numéros de ligne du file d'historique ZSH
  • Null a file in zsh
  • Commande 'getent'
  • Comment puis-je rendre l'exécution de zsh plus comme l'achèvement de bash?
  • Problème d'installation de ZSH
  • Changer le shell pour le travail de cron
  • ZSH `--color = auto` ne fonctionne pas
  • Problème avec la résolution de nom lors de l'utilisation de programmes comme `gem` en shell
  • zsh étendu globbing pour créer des sous-directorys
  • Comment définir le shell par défaut lorsque chsh n'est pas présent
  • Les astuces du serveur de linux et windows, tels que ubuntu, centos, apache, nginx, debian et des sujets de réseau.