OVH Cloud OVH Cloud

choix du shell

60 réponses
Avatar
Sebastien Kirche
Bonjour,

(je suis conscient que ça va frôler le troll, alors on va tâcher de rester
calmes pour ne pas le réveiller :)

Voilà un moment que je m'investis de façon grandissante dans Unix (Linux,
OSX ou QNX) et je m'interroge sur le choix du shell sur un système.

J'ai l'habitude principalement de bash sous Linux, et dans une moindre
mesure [t]csh sur Mac/qnx. Parce que ce sont les shells par défaut
certainement.

À la lecture (périodique) de ce groupe il me semble que souvent zsh est
cité comme meilleure alternative au bash.
En dehors de (simples) considération de goût, est-ce que zsh est
préférable ?

Je crois me rappeler avoir vu ici-même des remarques sur le fait que
développement de bash était plutôt gelé ? Est-ce qu'alors zsh c'est
l'avenir ?

Comme je le disais, je me considère encore en phase d'apprentissage, aussi
vaut-il mieux pour moi investir du temps sur zsh ?

Existe-t-il de la littérature à conseiller sur zsh à la manière du guide
Advanced Bash Scripting ?

Merci de vos avis, dans la limite du raisonnable :)

Sébastien Kirche

10 réponses

1 2 3 4 5
Avatar
Stephane Chazelas
Pour ecrire des scripts, pense en terme de langage, pas
de version d'interpreteur. Je te recommande d'utiliser la
syntaxe POSIX qui est suffisemment portable et a le merite
d'etre reconnue par bash/ksh/BSD sh/zsh (en emulation).
Connaitre la syntaxe Bourne peut-etre pas mal (si on veut porter
des scripts sous Solaris par exemple et mettre #!/bin/sh en haut
de ses scripts).

(ca evidemment pour les cas ou on ne peut pas utiliser
perl/python, qui se font assez rares).

Pour un choix de shell utilisateur, il n'y a en effet aucun
interet a utiliser autre chose que zsh, il n'y a pas de
polemique la-dessus, je n'ai jamais vu personne clamer le
contraire. Les utilisateurs de bash sont en gros ceux qui n'ont
pas essayé zsh ou qui n'utilisent pas de shells couremment et
sont contents avec le shell par defaut de leur systeme, vu
qu'ils n'ont de toutes facons pas l'intention de prendre du
temps pour apprendre a tirer parti de leur shell.

--
Stephane
Avatar
JKB
Le 07-07-2004, à propos de
Re: choix du shell,
Stephane Chazelas écrivait dans fr.comp.os.unix :
Pour un choix de shell utilisateur, il n'y a en effet aucun
interet a utiliser autre chose que zsh, il n'y a pas de
polemique la-dessus, je n'ai jamais vu personne clamer le
contraire. Les utilisateurs de bash sont en gros ceux qui n'ont
pas essayé zsh ou qui n'utilisent pas de shells couremment et
sont contents avec le shell par defaut de leur systeme, vu
qu'ils n'ont de toutes facons pas l'intention de prendre du
temps pour apprendre a tirer parti de leur shell.


Pourquoi ? J'utilise bash depuis que j'ai réussi à l'installer sur
SunOS (a long time ago...), je tartine des lignes de commandes
hénaurmes, et cela ne m'a jamais gêné. D'ailleurs, je n'utilise que
ça.

JKB

Avatar
Sebastien Kirche
On 7 Jul 2004, Stephane Chazelas wrote:

Ok, je te suis sur la partie «rédaction de script shell»

Les utilisateurs de bash sont en gros ceux qui n'ont
pas essayé zsh ou qui n'utilisent pas de shells couremment et
sont contents avec le shell par defaut de leur systeme


Et quelles sont les points qui me feraient adopter zsh si je le teste ?
Ou dit autrement : où/comment puis-je avoir un comparatif ou la liste des
innovations ?

Et quand à la pérennité du bash ? Est il sur la pente descendante / en voie
d'abandon ?

Merci pour cet éclairage que je suis attentivement.

Sébastien Kirche

Avatar
Laurent Wacrenier
Sebastien Kirche écrit:
À la lecture (périodique) de ce groupe il me semble que souvent zsh est
cité comme meilleure alternative au bash.
En dehors de (simples) considération de goût, est-ce que zsh est
préférable ?


Il fait plus de trucs :

% man zshall | wc
19300 130594 1088890
% man bash | wc
6270 33429 283321
% man tcsh | wc
4164 28398 228746

Existe-t-il de la littérature à conseiller sur zsh à la manière du guide
Advanced Bash Scripting ?


Mieux vaut programmer en shell POSIX qu'utiliser les spécificité d'un
shell ou d'un autre.

Avatar
Stephane Chazelas
2004-07-07, 15:50(+02), Sebastien Kirche:
[...]
Et quelles sont les points qui me feraient adopter zsh si je le teste ?


Plus de fonctionnalités, meilleur design, plus facil
d'utilisation, meilleure documentation, mailling liste
utilisateurs pour rester general. Sinon, il est en gros
compatible avec bash (sauf pour les bugs/erreurs de design qu'il
corrige) donc, tu ne perds rien a ne pas utiliser bash.

Voir www.zsh.org pour les details (en particulier la doc).

Ou dit autrement : où/comment puis-je avoir un comparatif ou la liste des
innovations ?


www.zsh.org
Sur le site de tcsh, on te dira aussi d'utiliser zsh.

Et quand à la pérennité du bash ? Est il sur la pente descendante / en voie
d'abandon ?


Il remplit bien son office de shell POSIX conformant (cela dit
il y a des projets, comme dash pour fournir un shell POSIX plus
legers pour Linux). Dans les archives de bash-bug, Chet Ramey a
parlé a plusieurs reprises d'une future version, mais difficile
de savoir s'il bosse dessus, je ne crois pas qu'il y ait un
acces CVS a une quelconque version en cours. Les bugs ne sont
pas fixés, je n'ai jamais eu de reponse aux bugs que j'ai
reportés.

Il y a des projets divers et disparates d'extension de bash.
Cela dit, je ne suis pas trop l'actualité, de ce coté, n'etant
pas un utilisateur de bash.

--
Stephane

Avatar
Sebastien Kirche
On 7 Jul 2004, Stephane Chazelas wrote:

Plus de fonctionnalités, meilleur design, plus facil
d'utilisation, meilleure documentation, mailling liste
utilisateurs pour rester general. Sinon, il est en gros
compatible avec bash (sauf pour les bugs/erreurs de design qu'il
corrige) donc, tu ne perds rien a ne pas utiliser bash.


Donc (en gros) je peux basculer sur zsh tranquille, ce qui fonctionnait en
bash fonctionne toujours, et il n'y a que des avantages à faire le
changement ?

Pas d'inconvénient connu ?

Sébastien Kirche

Avatar
Sebastien Kirche
On 7 Jul 2004, Laurent Wacrenier wrote:

Mieux vaut programmer en shell POSIX qu'utiliser les spécificité d'un
shell ou d'un autre.


Là je dirais que «ça dépend» ©
- si c'est un script destiné à être distribué, oui
- si c'est juste un utilitaire vite-fait-sur-le-gaz à usage personnel, je
ne vois pas pourquoi je me gênerais à utiliser une fonctionnalité non
portable mais qui peut m'économiser de la refaire en version universelle
(non je n'ai pas d'exemple en tête)

Sébastien Kirche

Avatar
Stephane Chazelas
2004-07-07, 16:47(+02), Sebastien Kirche:
On 7 Jul 2004, Stephane Chazelas wrote:

Plus de fonctionnalités, meilleur design, plus facil
d'utilisation, meilleure documentation, mailling liste
utilisateurs pour rester general. Sinon, il est en gros
compatible avec bash (sauf pour les bugs/erreurs de design qu'il
corrige) donc, tu ne perds rien a ne pas utiliser bash.


Donc (en gros) je peux basculer sur zsh tranquille, ce qui fonctionnait en
bash fonctionne toujours, et il n'y a que des avantages à faire le
changement ?


Si on parle bien d'utilisation interactive (pas de script), la
reponse est oui. Bien sur, il faudra adapter tes .bash_profile
et .bashrc en .zprofile, .zshrc...

Attention au format de PS1 qui est different (plus ellaboré).

Pas d'inconvénient connu ?


Certaines fonctionnalités peuvent etre gourmandes en resources,
elles ne sont pas activees par defaut.

La plus grosse difference notable avec les autres shells est a
la question 3.1 de la FAQ de zsh (c'est une des corrections des
erreurs de design des bash/ksh).

--
Stephane


Avatar
Sebastien Kirche
On 7 Jul 2004, Stephane Chazelas wrote:

Donc (en gros) je peux basculer sur zsh tranquille, ce qui fonctionnait
en bash fonctionne toujours, et il n'y a que des avantages à faire le
changement ?


Si on parle bien d'utilisation interactive (pas de script), la
reponse est oui. Bien sur, il faudra adapter tes .bash_profile
et .bashrc en .zprofile, .zshrc...


Oui je suis adepte de la «console» et j'y passe pas mal de temps. Pas
forcément pour scripter, mais tout simplement parce que je trouve que X est
inutile suivant la tâche et ne fait que rajouter un cliquodrome.
Je suis souvent plus efficace en ligne de commande. Qui a dit «dino» ;) ?


Attention au format de PS1 qui est different (plus ellaboré).


Sans importance, je ne l'ai pas personnalisé.

Pas d'inconvénient connu ?


Certaines fonctionnalités peuvent etre gourmandes en resources,
elles ne sont pas activees par defaut.


Bien :)


La plus grosse difference notable avec les autres shells est a
la question 3.1 de la FAQ de zsh (c'est une des corrections des
erreurs de design des bash/ksh).


Je vais donc commencer par là pour voir. Et pour tout de suite activer la
complétion intelligente (à moins que ce ne soit actif par défaut ?).

Merci pour cette mini synthèse sur zsh.

Sébastien Kirche


Avatar
Stephane Chazelas
2004-07-7, 13:24(+00), JKB:
[...]
Pourquoi ? J'utilise bash depuis que j'ai réussi à l'installer sur
SunOS (a long time ago...), je tartine des lignes de commandes
hénaurmes, et cela ne m'a jamais gêné. D'ailleurs, je n'utilise que
ça.
[...]


Oui, il y a plein de gens qui sont tres contents avec le Bourne
shell aussi mais ils sont en general subjugué quand on leur
montre un shell avec un editeur de ligne (comme tcsh, bash, ksh,
zsh). Cela dit, les lignes de commandes de zsh sont en general
beaucoup plus courtes ;), meme si zsh se comporte mieux pour les
commandes sur plusieurs lignes.

Passer de bash a zsh ne represente pas un effort particulier, tu
peux toujours essayer (regarde du coté de la completion, de la
couleur, de zftp, du prompt, et du globbing, et la liste des
key-bindings pour voir ce qui est susceptible de t'interesser,
d'autres trucs pratiques comme path+=(/usr/local/bin), {1..20},
<C-X>m, <M-p>, zcalc, zmv, zargs, les formes raccourcies des
boucles...).

--
Stephane

1 2 3 4 5