Parmi les principaux shells Unix (bash, ksh, tcsh, zsh, autres?), Existe-t-il des raisons impérieuses de les utiliser les uns par rapport aux autres?
- Quel est le plus interactif / convivial en ligne de commande?
- Quel est le plus propice / intuitif pour l'écriture de scripts?
- Existe-t-il des fonctionnalités intégrées majeures qu'un shell offre que d'autres ne proposent pas?
- Certains de ces shells sont-ils vraiment bons pour un type de fonction, mais pas pour un autre? Ou sont-ils tous assez bien équilibrés / flexibles?
- Est-ce simplement une question de préférence personnelle?
Je peux créer ce wiki communautaire si quelqu'un le souhaite.
fish est une nouvelle coque qui est peut-être plus intéressante que les autres, non pas parce qu'elle a nécessairement plus de fonctionnalités, mais parce qu'elles fonctionnent juste par défaut et parce que fish s'efforce d'être utilisable.
Quelques captures d'écran ( 1 , 2 , 3 , 4 ) suffisent à donner une idée générale.
fish est maintenant le shell par défaut sur mon Mac au travail. Allez comprendre.
la source
Si vous allez apprendre un shell autre que
sh
/bash
, vous pourriez aussi bien y allerzsh
. Je ne pense pas que quiconque conteste sérieusement que ce soit le plus puissant et le plus riche en fonctionnalités des coques alternatives; que ce soit juste un gonflement est, bien sûr, encore à débattre.J'ai entendu de bonnes choses
fish
, mais je n'ai jamais fait l'effort de les déranger.Les admins que je connais considèrent
csh
ettcsh
sont des abominations qui devraient être évitées à tout prix, et je suis d'accord avec eux bien qu'ils n'aient jamais été contraints de me mettre à travers l'un ou l'autre des obus.la source
Je recommanderais de bien connaître bash car c'est l'un des plus courants (généralement le Linux par défaut). Personnellement, j'adore zsh comme mon shell interactif. Il a de grandes fonctionnalités de finition. Par exemple, vous pouvez définir une liste d'hôtes et lorsque vous faites quelque chose comme ssh Ser [tab], il saura essayer de tabuler la saisie automatique de l'un de ces hôtes. Il a également un globage récursif, donc si vous voulez trouver tous les fichiers jpeg dans le sous-répertoire courant et que vous pouvez utiliser
ls -ld **/*.jpg
. Il y a beaucoup de fonctionnalités amusantes avec zsh (recherche les fichiers .zshrc des gens), et vous pouvez le régler sur 'compatible bash', il est donc facile de basculer entre les deux. Si vous combinez cela avec l'écran GNU, vous pourriez trouver que la ligne de commande devient un vrai plaisir de travailler avec.la source
N'oubliez pas votre autre question Shell Unix / Linux le plus courant - le shell le plus populaire est probablement le plus populaire pour une raison ;-)
Pour ce que ça vaut, la plupart des gens ne s'éteignent pas fréquemment entre les coques, il sera donc difficile d'obtenir une comparaison complète des différentes options; vous serez plus susceptible de voir différentes personnes épouser les vertus de leurs coquilles préférées. D'après le peu que j'ai entendu parler des différents shells, ils offrent tous certaines des mêmes fonctionnalités de base (comme la redirection d'E / S, l'historique des commandes, etc.), donc les préférences personnelles sont probablement un grand composant.
la source
Une raison convaincante d'utiliser ZSH qui n'a pas été mentionnée est le mode vi et le mode emacs .
Pour ceux qui aiment utiliser leur mémoire musculaire vi dans la coquille, c'est une fonctionnalité de tueur.
Et pour ceux qui préfèrent emacs, vous pouvez également utiliser ces raccourcis clavier, mais les vrais croyants emacs diraient probablement qu'emacs est leur shell préféré.
;-)
la source
La préférence pour une utilisation quotidienne est vraiment une question de goût personnel, cependant, lorsque j'écris des scripts, j'essaie d'être conforme à Posix pour des raisons de portabilité.
la source
Tout comme Heads Up: Ubuntu utilise par défaut "sh" à "dash", ce qui a entraîné des problèmes dans le passé avec la compatibilité POSIX. Apparemment, les commandes d'écho diffèrent légèrement.
la source