Derniers journaux de grom :
- [06/04@10:23] ZFS dans FreeBSD \0/
- [18/02@10:59] GCU featuring Linux Mag
- [12/02@12:35] FreeBSD manque de driver ? pas grave, on prend ceux de linux
- [23/01@13:43] FreeBSD mise à jour binaire.
- [01/12@11:17] Google Libre ? Impossible !!!
- [23/11@10:50] Adoption de l'ODF
- [17/11@10:24] FreeBSD à la traîne ?
- [20/10@09:16] Status du développement de FreeBSD
- [28/09@14:28] FreeBSD 6.2 beta1
- [28/09@08:01] Les choix étranges du libre
- [12/09@10:18] Web toolkit suite
- [06/09@11:49] Web toolkit
- [25/08@12:49] WindowMaker !!! houhou !!! t'es où ???
- [18/08@09:21] Légalité ? source dispo mais proprio
- [09/08@10:27] openspec c'est possible ???
- [08/08@18:49] Kubuntu déception
- [28/07@09:12] ODF en console \O/
- [15/03@09:35] ZSH 4.3.2
- [19/12@10:59] Après ReiserFS, FreeBSD sait maintenant lire le XFS \0/
- [23/09@19:42] Coup de gueule du soir ... espoir
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
> Lire le journal (32 commentaires, moyenne: 2,9).
Boucle infine...
Bash a pomper le système ZSH pour faire son bash-completion
ZSH va plus loin en permettant l'utilisation directe des fonctions de completions bash
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 (page perso, ) le 02/05/2007 à 13:29. (lien). Évalué à 3.non zsh a la completion depuis longtemps, bash depuis peu, mais comme c'est bash, gnu toussa... il y a forcément plus de mecs dessus donc rapidement il y a des fonctions de completions qui existent sous bash-completion qui ne sont pas encore dans zsh, donc zsh à décider de faire une fonction bashcomp qui permet d'utiliser les fonction de completions bash en plus de celle de zsh.
-
[^]Re: Boucle infine...
Posté par Matthieu C () le 02/05/2007 à 19:46. (lien). Évalué à 2.non zsh a la completion depuis longtemps, bash depuis peu,
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 (page perso, ) le 03/05/2007 à 09:06. (lien). Évalué à 2.le ne connais pas l'historique exacte de ZSH (ni ou le trouver), mais la slackware 3.3 de juillet 1997 fourni zsh-3.0.3 qui dispose déjà de la completion avancée avec menu interactif pour les options de completions, et plein d'autres fonctions :
- 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 () le 03/05/2007 à 13:03. (lien). Évalué à 2.hmmm a mon souvenir (mais je peux bien me tromper), bash-completion est la completion dite 'intelligente', bref un peu plus que juste la completion du path. Et toujours selon mes souvenirs, bash-completion est bien plus récent que zsh
-
[^]Re: Boucle infine...
Posté par Bapt (page perso, ) le 03/05/2007 à 14:27. (lien). Évalué à 2.bash-completion est la completion dite 'intelligente',
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 (page perso, ) le 03/05/2007 à 09:18. (lien). Évalué à 1.Plus longtemps, je m'en servais déjà en 96 parce que bash ne l'avait pas ... (installé par défaut sur toutes les machines linux de mon école)
-
-
Une dépêche !
Ça vaut une dépêche ! À quand zsh dans les distros ? Peux-tu expliquer un peu la licence ZSH par rapport à BSD et GPL ?
Étienne.
E Ultreïa !
-
[^]Re: Une dépêche !
Posté par Jérôme Pinot (page perso, ) le 02/05/2007 à 13:42. (lien). Évalué à 1.Heu, ce n'est qu'un exemple bien sûr, mais zsh était déjà dans Linux Slackware 3.3 (sortie en 1997). Je n'ai donc pas vraiment l'impression qu'avoir zsh dans une distribution linux soit très novateur...
ftp://ftp.slackware.com/pub/slackware/slackware-3.3/slakware(...)-
[^]Re: Une dépêche !
Posté par d-jo (page perso, ) le 02/05/2007 à 16:30. (lien). Évalué à 3.Zsh est le shell par defaut de gobolinux.
http://www.gobolinux.org/-
[^]Re: Une dépêche !
Posté par Ernest H (Jabber id, ) le 02/05/2007 à 18:04. (lien). Évalué à 3.Et de grml, LE live cd pour les (console) geeks.
http://grml.org/
-
-
-
[^]Re: Une dépêche !
Posté par Bapt (page perso, ) le 02/05/2007 à 13:44. (lien). Évalué à 3.La dépêche se sera plutôt pour la version stable officielle (4.4.0 :))
Concernant la licence, elle est courte, le mieux c'est de la lire :
The Z Shell is copyright (c) 1992-2007 Paul Falstad, Richard Coleman,
Zoltán Hidvégi, Andrew Main, Peter Stephenson, Sven Wischnowsky, and
others. All rights reserved. Individual authors, whether or not
specifically named, retain copyright in all changes; in what follows, they
are referred to as `the Zsh Development Group'. This is for convenience
only and this body has no legal status. The Z shell is distributed under
the following licence; any provisions made in individual files take
precedence.
Permission is hereby granted, without written agreement and without
licence or royalty fees, to use, copy, modify, and distribute this
software and to distribute modified versions of this software for any
purpose, provided that the above copyright notice and the following
two paragraphs appear in all copies of this software.
In no event shall the Zsh Development Group be liable to any party for
direct, indirect, special, incidental, or consequential damages arising out
of the use of this software and its documentation, even if the Zsh
Development Group have been advised of the possibility of such damage.
The Zsh Development Group specifically disclaim any warranties, including,
but not limited to, the implied warranties of merchantability and fitness
for a particular purpose. The software provided hereunder is on an "as is"
basis, and the Zsh Development Group have no obligation to provide
maintenance, support, updates, enhancements, or modifications.
-
[^]Re: Une dépêche !
Posté par Bapt (page perso, ) le 02/05/2007 à 13:45. (lien). Évalué à 3.au fait zsh est déjà dans quasiment toutes les distros et os libres.
-
[^]Re: Une dépêche !
Posté par Étienne Bersac (Jabber id, page perso, ) le 02/05/2007 à 14:26. (lien). Évalué à 2.Oui, mais c'est souvent bash qui est sélectionné par défaut.
--
E Ultreïa !-
[^]Re: Une dépêche !
Posté par Bapt (page perso, ) le 02/05/2007 à 14:56. (lien). Évalué à 4.Ce que j'ai toujours eu du mal à comprendre (d'un point de vue technique), mais qui peut certainement s'expliquer par trois lettre : GNU
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 (page perso, ) le 02/05/2007 à 15:00. (lien). Évalué à 5.>>> 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...)
Linus ?-
[^]Re: Une dépêche !
Posté par Bapt (page perso, ) le 02/05/2007 à 15:03. (lien). Évalué à 2.la question n'attendait pas réponse :)
-
-
[^]Re: Une dépêche !
Posté par z a (Jabber id, ) le 02/05/2007 à 19:57. (lien). Évalué à 2.il y a ça http://www.grml.org/faq/#zsh_binsh (http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=340058 ) (enfin je suis d'accord que ça pourrait être contourné facilement)
-
-
-
Fichier de conf pour zsh
sur http://www.sf.net/projects/grk vous trouverez des fichiers de conf pour zsh assez évolué. Mettant notamment en pratique le plus de completion possible, un jolie prompt, et quelques goodies.
screenshot des differentes completions de zsh: http://sourceforge.net/project/screenshots.php?group_id=1634(...)
-
[^]Re: Fichier de conf pour zsh
Posté par David () le 02/05/2007 à 22:28. (lien). Évalué à 7.j'arrive pas a passer le niveau 21 du wizard de configuration de zsh! c'est celui ou il faut definir les "modifiers" sur les "completers" ...
Et sinon, quelqu'un connait la warpzone pour configurer les couleurs pour "ls", sans passer par tous les donjons precedents??
=>[]
Franchais
Complétion ou complètement ?
E Ultreïa !
-
[^]Re: Franchais
Quand est-il du poids
J'avais essayé zsh il y a un an environ (debian conf par defaut), et j'avais trouvé ça relativement lourdingue (gros, lent).
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 (page perso, ) le 02/05/2007 à 16:51. (lien). Évalué à 2.A mon avis ca vient de ton utilisation, et peut être un peu de la conf (je ne me souviens pas la dernière fois que j'ai utiliser la conf par défaut des OS que j'utilise.)
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 Clément varaldi (page perso, ) le 02/05/2007 à 18:37. (lien). Évalué à 7.Quand est-il du poids
Ho, demain je crois... Mais rien n'est moins sûr.
posix
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.
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 (Jabber id, ) le 02/05/2007 à 19:59. (lien). Évalué à 3.clairement, d'ailleurs le C est plus portable et plus rapide, programmez en C !
-
[^]Re: posix
Posté par Xavier Maillard (Jabber id, page perso, ) le 02/05/2007 à 21:06. (lien). Évalué à 2.moi je préfère ubuntu. QUoi ? Comment ça ça n'a rien à voir ?
-
-
[^]Re: posix
Posté par Bapt (page perso, ) le 03/05/2007 à 08:33. (lien). Évalué à 2.Et puis vu que dash (shell minimaliste) est souvent plus rapide que bash, j'ai de gros doute sur les perfs de zsh.
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 Matthieu C () le 03/05/2007 à 11:53. (lien). Évalué à 2.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
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 (page perso, ) le 03/05/2007 à 14:23. (lien). Évalué à 2.Mon but depuis le début est justement de montré que l'utilisation de sed grep awk etc. ralenti les scripts et que zsh peut dans le cas de programmation complexe (loin de l'exemple que je montre) permettre de faire de la programmation shell avec des meilleurs performances que la plupart des autres car permet de se passer de ses outils.
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 !
Le meilleur shell, c'est celui-ci !
http://www.codingteam.net/tagada-aff.html
Malheureusement, cela ne fonctionne que sur Ubuntu/Debian...
Les journaux sont destinés à des informations qui ne sont pas suffisamment intéressantes
pour être validées en dépêche (sinon n'hésitez pas à proposer votre information en
dépêche), qui sont sans rapport avec Linux ou le libre, ou simplement pour donner votre
avis. Si vous désirez poser une question, merci d'utiliser 

Cette discussion est archivée, il n'est plus possible de laisser des commentaires.
Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.