Copyright © 2011 Anderson Silva, Matt Woodson
Copyright © 2011 Eric Gérard
Copyright © 2011 Gaël Montreuil
Article paru dans le n°183 de la Gazette Linux de février 2011.
Cet article est publié selon les termes de la Open Publication License. La Linux Gazette n'est ni produite, ni sponsorisée, ni avalisée par notre hébergeur principal, SSC, Inc.
Table des matières
La réponse courte: C'est la faute de Matt!
La réponse correcte pour le présent article: Au cours des quinze dernières années, j'ai
utilisé exclusivement un seul interpréteur de commandes,
bash sur Linux (ainsi que plus récemment sur Mac OS X
). Pendant des années, j'ai
bassiné tellement d'utilisateurs Windows avec la puissance de cet interpréteur de commandes que
je ne peux m'empêcher d'en rire aujourd'hui lorsque j'y repense. Je ne m'étais jamais
véritablement intéressé aux autres interpréteurs existants. Pour être franc, je n'ai pas utilisé
bash seulement parce qu'il était l'interpréteur par
défaut dans ma distribution Linux. En 1995, mon oncle m'a présenté Linux et csh, qui était son interpréteur favori à l'époque. J'ai, aussi,
joué un peu avec tcsh mais il ne me convenait pas du
tout. Je pense qu'avoir eu bash comme interpréteur de
commandes par défaut m'a aidé mais ce n'était pas le facteur déterminant. Peut être que les
nombreux exemples, articles et livres écrits sur bash
ont contribué à mon affection pour bash au fil des
années.
Puis un jour, un nouveau venu est arrivé dans mon équipe et a commencé à nous montrer tout ce qu'il pouvait faire avec zsh pour rendre sa vie un peu moins ennuyeuse et rendre son travail de programmeur, administrateur système et ingénieur de solutions informatiques un peu plus efficace.
Alors que la nouvelle année approchait, j'ai décidé d'apprendre quelque chose de nouveau, amusant et pertinent pour mon travail; quelque chose que je pourrais apprendre seul et sur laquelle je pourrais éventuellement écrire un papier. (Note: le point clé pour moi ici est « amusant »; il y a tellement de choses à apprendre sur le monde Linux mais aussi beaucoup de choses que je trouve ennuyeuses. Les interpréteurs n'en font pas partie :-))
Début janvier, j'ai contacté Matt, le nouveau venu, et lui ai demandé de m'expliquer
zsh. Non seulement, il m'a donné un aperçu de ce que
pouvait réaliser zsh, sur la compatibilité avec
zsh mais il a converti mon fichier
.bashrc
en fichier .zshrc
avec quelques bonus en
prime.
Ce sont ces bonus qui m'ont converti à zsh et qui ont fait que Matt et moi avons écrit cette série d'articles que nous vous soumettons.
Avant de vous montrer quelques trucs sur zsh, assurons-nous que nous pouvons l'utiliser:
Pour installer zsh sur
Fedora
:
$
yum install zsh
Pour installer zsh sur
Ubuntu
:
$
apt-get install zsh
Maintenant que zsh a été installé et en supposant que vous n'avez
jamais lancé zsh avant, laissez-moi vous donner le premier tuyau que
m'a donné Matt à propos de zsh: "N'exécute pas le menu de l'assistant
.zshrc
, mais recherche un fichier .zshrc
existant". L'assistant pour créer le fichier .zshrc
peut être un peu
complexe, mais vous êtes libre de l'essayer malgré tout. Matt a été assez gentil en publiant
son fichier .zshrc
, vous pouvez donc le télécharger et commencer votre
expérience zsh
trés rapidement. Tout au long des prochains mois, nous
allons détailler quelques paramètres de son fichier .zshrc
.
Téléchargez le
fichier .zshrc
de Matt.
Vous pouvez manuellement passer à zsh n'importe quand, si vous voulez l'essayer:
$
zsh
Ou vous pouvez faire de zsh votre interpréteur par défaut:
$
chsh
Changing shell for afsilva.
Password:
New shell [/bin/bash]: /bin/zsh
Et voila, zsh sera votre interpréteur par défaut lors de votre prochaine connexion!
Maintenant que vous êtes prêt et que zsh est lancé, je vais
pouvoir partager avec vous les premières choses que Matt m'a montrées quand il m'a présenté
zsh
.
La plupart des fonctions zsh
sont accessibles à travers des
modules de fonctions zsh. Un des modules visible
immédiatement est le module promptinit . En utilisant le module promptinit, vous pouvez
rapidement changer l'invite de commande zsh
:
Pour charger la fonction invite de commande:
$
autoload -U promptinit$
promptinit
Vous pouvez voir les différentes invites de commande en lançant la commande:
$
prompt -l
Currently available prompt themes:
adam1 adam2 bart bigfade clint elite2 elite fade fire off oliver pws
redhat suse walters zefram
Pour utiliser ou essayer une invite de commande:
$ prompt redhat
Je suis un utilisateur de Fedora
, qui s'appuie sur une distribution
Red Hat
, et si vous êtes familier avec un de ces environnements, vous
savez que la bonne méthode pour relancer un service est d'écrire:
$
service some_service restart
Mais, paresseux, j'utilise tout le temps:
$
/etc/init.d/some_service restart
Ceci parce que je veux que bash me complète automatiquement « some-service » quand je tape « som » puis appuie sur tab. Si j'utilise la méthode correcte, je dois épeler le nom du service, nom que j'oublie ou orthographie incorrectement.
Avec zsh, l'appui sur tab ne se contente pas de compléter le nom mais il vous fourni aussi les options pour paramétrer la plupart des commandes principales que vous utilisez quotidiennement.
Ainsi une saisie comme:
$
servi<tab> some<tab> res<tab>
sera auto-complétée en:
$
service some_service restart
Je me moque de savoir qui vous êtes, mais c'est bien comme ça! :-)
Si vous êtes habitué à utiliser tab pour l'auto-complétion avec bash, vous savez que bash n'est pas capable de trouver la commande unique qui correspond à votre saisie, il vous donnera les autres commandes qu'il a trouvées dans le chemin comme par exemple:
$
serv<tab>
servertool service
Avec zsh, lorsque plusieurs commandes ou paramètres correspondent, un menu avec les options disponibles est présenté lorsque vous appuyez deux fois sur tab, vous pouvez alors utiliser les flèches pour naviguer entre les différentes options et sélectionner celle qui vous convient.
Pour utiliser cette fonction, ajoutez les lignes suivantes à votre fichier
~/.zshrc
:
autoload -Uz compinit compinit
Le mois prochain, Matt et moi, vous en diront un peu plus sur d'autres possibilités offertes par zsh comme: la correction orthographique, l'utilisation des jokers, les alias, les mathématiques en virgule flottante et le paramétrage de la version en cours dans votre invite de commande. Entre temps, allez consulter le site zsh ainsi que les pages man (man zshall).
L'adaptation française de ce document a été réalisée dans le cadre du Projet de traduction de la Gazette Linux.
Vous pourrez lire d'autres articles traduits et en apprendre plus sur ce projet en visitant notre site : http://www.traduc.org/Gazette_Linux.
Si vous souhaitez apporter votre contribution, n'hésitez pas à nous rejoindre, nous serons heureux de vous accueillir.