Nouvelle version de développement de ZSH. Comme d'habitude elle est très très stable.
Pour info ZSH est un shell sous licence ZSH (BSD modifiée).
Il reprend la majeure partie des fonctionnalités de Bash, Tcsh, ksh, etc. il permet même de les émuler.
Il peut corriger intelligemment la frapper au fur et à mesure (tab) ou à la fin (vouliez vous dire blablabla (y/n/e))
Il dispose d'une completion programmable très très évoluée permettant par le biais de fonction de completion d'offrir la possibilité de vous proposer toutes les options disponibles pour la majeure partie de vos programmes préférés, mais aussi tous types d'arguments de manières plus ou moins intelligente (tout dépend de la fonction :)). Bash a pomper le système ZSH (\begin{troll}en moins bien\end{troll}) pour faire son bash-completion, ZSH va plus loin en permettant l'utilisation directe des fonctions de completions bash si vous le désirez.
Vous voulez faire de la programmation shell, ZSH propose tout ce que vous voulez pour ne pas avoir à utiliser tout le pack (sed, awk, grep, bc, expr, ...) permettant ainsi de faire des scripts plus légers et plus portable (juste besoin d'avoir zsh sur la plateforme, et pas une versions (GNU, AIX, SUN ou BSD) des outils sed, awk, grep, ... qui n'ont pas toujours la même syntaxe ni les même options.
Besoin de faire de la programmation shell encore plus avancée : zsh dispose de fonctions permettant de manipuler les date (zsh./datetime), de manipulation réseau (zsh/net, zsh/net/tcp, zsh/net/socket), de faire du FTP (zftp), de manipuler les teminaux (zsh/zpty) et beaucoup plus.
Je m'arrête là car on pourrait en dire des tonnes.
Pour revenir à nos moutons zsh La branche de développement 4.3 à pour but principal d'apporter le support de l'unicode à ZSH.
la précédente version 4.3.2 apportait le support de l'unicode uniquement our la partie cli (utilisateur)
Cette nouvelle version (4.3.4) apporte un support de l'unicode quasiment complet.
Comme toutes les versions de ZSH elle apporte aussi les améliorations habituelles au niveau completion (ajout, correction)
http://www.zsh.org
# Boucle infine...
Posté par Harry Da . Évalué à 5.
Je résume : ZSH permet d'utiliser bash-completion, qui à pompé ZSH, qui permet d'utiliser bash-completion, qui à pompé ZSH...
[^] # Re: Boucle infine...
Posté par Bapt (site web personnel) . Évalué à 3.
[^] # Re: Boucle infine...
Posté par M . Évalué à 2.
Hum :
http://www.caliban.org/files/bash/Changelog : la completion sous bash existe depuis au moins 2000/08/09.
Ca fait deja quelque temps.
Je sais pas depuis combien de temps elle est sous zsh...
[^] # Re: Boucle infine...
Posté par Bapt (site web personnel) . Évalué à 2.
- command name completion
- filename and path completion
- hostname completion
- key binding completion
- option completion
- variable name completion
- user-specified keyword completion
- anything else you can think of
selon le release note la 2.5 comportait déjà des améliorations concernant la completion. je ne sais pas de quand date la version 2.5, mais elle est certainement bien plus vieille que ça et elle améliorait la completion.
Je commence peut être à me faire vieux, mais l'apparition de bash-completion me semblait plus jeune que ça. En même temps, en 2000 c'était pas très utilisable. Ce que je sais c'est que mon zsh de 1998 (date ou je l'ai découvert) faisait déjà la completion à merveille :).
[^] # Re: Boucle infine...
Posté par Alex . Évalué à 2.
[^] # Re: Boucle infine...
Posté par Bapt (site web personnel) . Évalué à 2.
on est bien d'accord, le zsh 3.0.X dont je parle a bien la completion "intelligente", par exemple dans le liste ci dessus :
- hostname completion (faut aller les cherchés),
- option completion (pas besoin de dessin),
- anything else you can think of (donc intelligente et programmable)
[^] # Re: Boucle infine...
Posté par Obi MO (site web personnel) . Évalué à 1.
# Commentaire supprimé
Posté par Anonyme . Évalué à 3.
Ce commentaire a été supprimé par l’équipe de modération.
[^] # Re: Une dépêche !
Posté par Jérôme Pinot (site web personnel) . Évalué à 1.
ftp://ftp.slackware.com/pub/slackware/slackware-3.3/slakware(...)
[^] # Re: Une dépêche !
Posté par Joris Dedieu (site web personnel) . Évalué à 3.
http://www.gobolinux.org/
[^] # Re: Une dépêche !
Posté par 태 (site web personnel) . Évalué à 3.
http://grml.org/
[^] # Re: Une dépêche !
Posté par Bapt (site web personnel) . Évalué à 3.
Concernant la licence, elle est courte, le mieux c'est de la lire :
[^] # Re: Une dépêche !
Posté par Bapt (site web personnel) . Évalué à 3.
[^] # Commentaire supprimé
Posté par Anonyme . Évalué à 2.
Ce commentaire a été supprimé par l’équipe de modération.
[^] # Re: Une dépêche !
Posté par Bapt (site web personnel) . Évalué à 4.
La majeure partie des distrib se disent GNU/Linux donc Linux + utilitaires GNU donc bash.
Moi je n'installer bash sur mes machines sauf à cause de git (quel est l'idiot qui a décider de faire du bash en lieu et place du bon vieux bourne shell pour les scripts git...)
[^] # Re: Une dépêche !
Posté par patrick_g (site web personnel) . Évalué à 5.
Linus ?
[^] # Re: Une dépêche !
Posté par Bapt (site web personnel) . Évalué à 2.
[^] # Re: Une dépêche !
Posté par z a . Évalué à 2.
# Fichier de conf pour zsh
Posté par CTAF . Évalué à 2.
screenshot des differentes completions de zsh: http://sourceforge.net/project/screenshots.php?group_id=1634(...)
[^] # Re: Fichier de conf pour zsh
Posté par David . Évalué à 7.
Et sinon, quelqu'un connait la warpzone pour configurer les couleurs pour "ls", sans passer par tous les donjons precedents??
=>[]
# Commentaire supprimé
Posté par Anonyme . Évalué à 4.
Ce commentaire a été supprimé par l’équipe de modération.
[^] # Re: Franchais
Posté par Aldoo . Évalué à 10.
# Quand est-il du poids
Posté par Joris Dedieu (site web personnel) . Évalué à 1.
Est-ce un defaut du shell ? de debian ? de mon utilisation ?
Gagne-t-on quelque chose par rapport aux autres shell au niveau performances. Les fonctions "natives" sont-elles plus rapides que les appels binaires de bash (grep, seb awk ?)
[^] # Re: Quand est-il du poids
Posté par Bapt (site web personnel) . Évalué à 2.
Maintenant qu'est ce que tu entends pas gros et lent.
un appel a une commande externe est la plus part du temps beaucoup plus couteux en temps que la même chose faite nativement. Surtout quand c'est répété.
Par exemple :
extern.sh
n=0
while [ $n -ne 100 ] ;do
TOTO=truc
echo $TOTO | sed 's/ruc/oto/'
(( n = n + 1 ))
done
ou
natif.sh
n=0
while [ $n -ne 100 ] ;do
TOTO=truc
echo ${TOTO/ruc/oto}
(( n = n + 1 ))
done
donne chez moi :
zsh extern.zsh > /dev/null 0,28s user 0,69s system 99% cpu 0,977 total
zsh natif.zsh > /dev/null 0,01s user 0,03s system 96% cpu 0,038 total
La différence est quand même flagrante, pourtant quand je la 10 occurrence de la boucle au lieu de 100 la différence ne se voit pratiquement pas.
(Note que mon exemple doit aussi fonctionner sous bash.)
[^] # Re: Quand est-il du poids
Posté par iznogoud . Évalué à 7.
Ho, demain je crois... Mais rien n'est moins sûr.
# posix
Posté par M . Évalué à 1.
En se contentant des options POSIX, on a plus de chance de faire un truc portable qu'un truc dependant de zsh.
Et puis vu que dash (shell minimaliste) est souvent plus rapide que bash, j'ai de gros doute sur les perfs de zsh.
Faudrait faire un bench sur les temps de boot (oui les script de boot utilise /bin/sh).
[^] # Re: posix
Posté par z a . Évalué à 3.
[^] # Re: posix
Posté par Xavier Maillard . Évalué à 2.
[^] # Re: posix
Posté par Bapt (site web personnel) . Évalué à 2.
Ce que tu dis est vrai pour des scripts posix uniquement donc faisant appel à des commandes externes pour tout ce qui n'est pas gérer par le bourne shell (grep, awk, sed, etc.)
dash est l'implémentation de ash. sur mon poste freebsd /bin/sh correspond à ash donc la même chose que dash.
si je fait le même test que j'ai fait au dessus.
version bourne shell de extern.zsh ca donne :
let $(( n = 0 ))
while [ $n -ne 100 ] ;do
TOTO=truc
echo $TOTO | sed 's/ruc/oto/'
let $(( n = n + 1 ))
done
sh extern.sh > /dev/null 0,21s user 0,53s system 99% cpu 0,746 total
alors que natif.zsh donne :
zsh natif.zsh > /dev/null 0,01s user 0,03s system 96% cpu 0,038 total
Bien sûr ce n'est pas un benchmark, mais ça donne une idée, l'intérêt de dash et ash c'est de respecter les strictosensus le bourne shell, et donc de fournir une implémentation légère et très peu gourmande en mémoire. ce qui dans des contraintes de petite configuration peu s'avérer intéressant.
biensûr zsh est compatible bourne shell, et sur du bourne shell pur il est plus lent et gourmant que dash ou ash :
zsh estern.sh > /dev/null 0,26s user 0,71s system 99% cpu 0,976 total
voila comme souvent tout dépend du besoin et des contraintes de destinations.
Beaucoup de script shell gagnerait à utiliser du zsh avancé, mais ce n'est pas la solution unique
PS:
test sur FreeBSD 6.2-RELEASE sur pentium III IGhz avec 512 Mo de RAM. La même chose sur une machine genre p133 16Mo de RAM devrait normalement plus tourner en faveur de dash/ash (ce serait intéressant de faire le test)
[^] # Re: posix
Posté par M . Évalué à 2.
alors que natif.zsh donne :
zsh natif.zsh > /dev/null 0,01s user 0,03s system 96% cpu 0,038 total
Et, si tu ecrit une version bourne shell de ton test sans utiliser sed, ca sera encore plus rapide (bon ton exemple est moisi parce que tu fait rien de concret)...
Voici une version sh encore plus rapide (j'ai un peu triché, mais bon j'ai le meme resultat que toi) :
n=0
while [ $n -ne 100 ] ;do
TOTO=truc
echo ${TOTO%%ruc}oto
n=$(( $n + 1 ))
done
Beaucoup de script shell gagnerait à utiliser du zsh avancé, mais ce n'est pas la solution unique
Beaucoup de script shell gagnerait à être écrit proprement en utilisant un max les fonctionnalité du shell pour lequel il est prevu.
PS : on peut faire encore plus optimisé (oui c'est débile...) :
n=0
while [ $n -ne 100 ] ;do
echo truc
n=$(( $n + 1 ))
done
[^] # Re: posix
Posté par Bapt (site web personnel) . Évalué à 2.
Pour le montrer j'ai pris un truc echo avec un rechercher remplacer simple (qui existe aussi bien en bash que en zsh pour le coup mais pas en bourne shell). D'ailleur dans mon post précédent je dis bien que dash/ash sont plus rapide que zsh en leur faisant executer le même script (avec sed). Ils sont même certainement mieux adaptés dans beaucoup de cas.
Mais dash/ash ont des limitation d'un point de vue programmation comparés à zsh, idem pour bash. Mais ils sont plus rapide (dash/ash) ils n'ont pas le même but. Alors que bash et zsh oui.
Mon exemple démontre ce qu'il veut démontrer, à savoir utiliser des applis externes est coûteux.
# tout faux !
Posté par denisb . Évalué à -1.
http://www.codingteam.net/tagada-aff.html
Malheureusement, cela ne fonctionne que sur Ubuntu/Debian...
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.