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

2 3 4 5 6
Avatar
Laurent Wacrenier
Sebastien Kirche écrit:
Je viens de tester, mais je ne comprend pas ni ne vois quelque chose de
changé à la saisie... Est-ce dû au french-keyboard-accept-line et au fait
que je tapes présentement sur mon Mac avec un mapping différent ?


Quand tu tapes "*" puis Entrée après le prompt, l'"*" est mis entre
guillements ce qui évite l'execution de la première commande venue.

Avatar
Sebastien Kirche
On 21 Jul 2004, Thomas Nemeth wrote:

'lut Thomas [1] ;)

J'ai récupéré un clavier type 6 azerty pour ma Sun, mais je me demande
même si je ne vais pas remettre le type 5 qwerty d'origine juste pour
cela...


J'ai gardé les qwerty sur mes Sparcs : si ce n'est pas très pratique
pour le français, en revanchem c'est idéal pour coder. Et puis on
n'a pas à se faire chier pour le map du clavier ;-)


Et je pourrais alors peut-être mettre le type 6 sur le pécé ?

Faut que j'essaie de le brancher.
Comme ça je pourrais avoir une vraie touche compose :)

Footnotes:
[1] Au fait tu n'as plus de connexion rapide ? Depuis ton déménagement on
ne te vois plus...

Sébastien Kirche


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

Quand tu tapes "*" puis Entrée après le prompt, l'"*" est mis entre
guillements ce qui évite l'execution de la première commande venue.


Ah bon. Mais il me manquait de toutes façons le chargement de zle (?).

Maintenant j'ai ça :

goudurix% autoload -U zle
goudurix% *
french-keyboard-accept-line:3: zle: function definition file not found

Visiblement il en manque encore niveau config de zsh.

Sébastien Kirche

Avatar
Stephane Chazelas
2004-07-21, 11:23(+02), Sebastien Kirche:
On 21 Jul 2004, Laurent Wacrenier wrote:

Quand tu tapes "*" puis Entrée après le prompt, l'"*" est mis entre
guillements ce qui évite l'execution de la première commande venue.


Ah bon. Mais il me manquait de toutes façons le chargement de zle (?).

Maintenant j'ai ça :

goudurix% autoload -U zle
goudurix% *
french-keyboard-accept-line:3: zle: function definition file not found

Visiblement il en manque encore niveau config de zsh.
[...]


Tu dois avoir un assez vieux zsh. Note que la derniere version
est la 4.2.<quelquechose> (voire 4.3.<quelquechose> pour les
versions de developpement, encore que je ne sois pas sur qu'ils
aient commencé)

--
Stephane


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

Tu dois avoir un assez vieux zsh. Note que la derniere version
est la 4.2.<quelquechose> (voire 4.3.<quelquechose> pour les
versions de developpement, encore que je ne sois pas sur qu'ils
aient commencé)


goudurix% echo $ZSH_VERSION
4.1.1

(sur OSX 10.3.4 mais j'ai le même résultat sur ma Sun qui a le 4.2.0)

Par contre je remarque aussi que j'ai un souci de touche backspace qui ne
fonctionne pas via ssh, alors que sans changer de conf bash fonctionne très
bien ? Il faut toucher à la keymap de zle ?

Sébastien Kirche

Avatar
Stephane Chazelas
2004-07-21, 15:10(+02), Sebastien Kirche:
On 21 Jul 2004, Stephane Chazelas wrote:

Tu dois avoir un assez vieux zsh. Note que la derniere version
est la 4.2.<quelquechose> (voire 4.3.<quelquechose> pour les
versions de developpement, encore que je ne sois pas sur qu'ils
aient commencé)


goudurix% echo $ZSH_VERSION
4.1.1

(sur OSX 10.3.4 mais j'ai le même résultat sur ma Sun qui a le 4.2.0)


Voila qui est etonnant,

zle est une builtin du module zle qui est censé etre chargé par
defaut depuis les versions 3.1.

Par contre je remarque aussi que j'ai un souci de touche backspace qui ne
fonctionne pas via ssh, alors que sans changer de conf bash fonctionne très
bien ? Il faut toucher à la keymap de zle ?
[...]


Ca peut arriver si tu as des problemes de terminfo/termcap.
Verifie que ton $TERM est bien reconnu par ton systeme.
bash doit faire un minimum de suppositions sur ton terminal
quand il ne le trouve pas dans les bases du system. zsh le
considere comme "dumb".

--
Stephane


Avatar
Laurent Wacrenier
Sebastien Kirche écrit:
Tu dois avoir un assez vieux zsh. Note que la derniere version
est la 4.2.<quelquechose> (voire 4.3.<quelquechose> pour les
versions de developpement, encore que je ne sois pas sur qu'ils
aient commencé)


goudurix% echo $ZSH_VERSION
4.1.1

(sur OSX 10.3.4 mais j'ai le même résultat sur ma Sun qui a le 4.2.0)


Ça fonctionne sur zsh 4.1.1 sous FreeBSD, sans fichier
d'initialisation (zsh -f)

Il faut juste un "setopt EXTENDED_GLOB" pour que le motif avec les #
et les ## vérifie ce qu'il faut. Mais il n'y a pas d'erreur affichée.

C'est juste au cas où on a appuyé plus ou moins longuement sur la
touche espace ou *. On peut remplacer la ligne par
*) zle .quote-line ;;

Par contre je remarque aussi que j'ai un souci de touche backspace qui ne
fonctionne pas via ssh, alors que sans changer de conf bash fonctionne très
bien ? Il faut toucher à la keymap de zle ?


Qui ne fonctionne pas, c'est à dire ?

Que dit ESC-k ou Ctrl-V suivi de la touche ?
La définition du terminal est t'elle cohérente ?


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

Par contre je remarque aussi que j'ai un souci de touche backspace qui
ne fonctionne pas via ssh, alors que sans changer de conf bash
fonctionne très bien ? Il faut toucher à la keymap de zle ?
[...]


Ca peut arriver si tu as des problemes de terminfo/termcap.
Verifie que ton $TERM est bien reconnu par ton systeme.
bash doit faire un minimum de suppositions sur ton terminal
quand il ne le trouve pas dans les bases du system. zsh le
considere comme "dumb".


Marrant ça : sur la Sun à distance echo $TERM m'a renvoyé "xterm-color" ??
Sur le Mac en local j'ai eu le même résultat.

En fait dans les préférences du terminal, il u a un popup «Déclarer le type
de terminal ($TERM) comme» qui contient :
- ansi
- rxvt
- vt52
- vt100
- vt102
- xterm
- xterm-color

Je ne sais pas comment il s'est positionné là dessus. Peut-être que Apple
considère le terminal comme un xterm ? C'est vrai qu'en fenêtre il en
remplit les fonctions, alors même qu'il n'y a pas de X en cours...

Je l'ai positionné sur rxvt (judicieux ?) et depuis backspace marche ®©.
Le gras dans le zsh/ssh aussi.

Bien vu :)

Sébastien Kirche


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

Qui ne fonctionne pas, c'est à dire ?


Pardon je me suis mal exprimé, je voulais dire n'a pas d'effet. Peut-être
un bip, mais à 13 km de distance je n'entend pas :)

Et j'ai oublié de dire que les ctrl-h ou ctrl-w standards fonctionnaient.

Que dit ESC-k ou Ctrl-V suivi de la touche ?


esc-k backspace -> rien
ctrl-v backspace -> insère ^?

Ah oui, je crois me rappeler avoir vu des fils qui parlaient de backspace
qui renvoie ^h ou ^? suivant le terminal ? Là ça doit être la mauvaise valeur.


La définition du terminal est t'elle cohérente ?


Je crois que non, comme je l'ai indiqué dans mon autre réponse.
Ça colle avec rxvt, mais je ne sais pas si c'est la meilleure valeur.

Sébastien Kirche

Avatar
Laurent Wacrenier
Sebastien Kirche écrit:
Et j'ai oublié de dire que les ctrl-h ou ctrl-w standards fonctionnaient.


Que dit Ctrl-V Ctrl-H ?

Que dit ESC-k ou Ctrl-V suivi de la touche ?


esc-k backspace -> rien


lance
bindkey '^[k' describe-key-briefly
avant

ctrl-v backspace -> insère ^?

Ah oui, je crois me rappeler avoir vu des fils qui parlaient de backspace
qui renvoie ^h ou ^? suivant le terminal ? Là ça doit être la mauvaise valeur.


Les terminaux, sinon les installateurs qui redéfinissent le clavier
avec leurs préférences.

bindkey "^?" backward-delete-char

deux caractères pour ^?


2 3 4 5 6