Pourquoi je suis passé à zsh - 1ère partie

Gazette Linux n°183 — février 2011

Anderson Silva

Matt Woodson

Eric Gérard

Adaptation française 

Gaël Montreuil

Relecture de la version française 

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

Tout d'abord
Créer un fichier .zshrc avant de démarrer zsh
Démarrer zsh
Les bonus
Changer l'invite de commandes
Complétion intelligente (mieux que bash)
Liste des options utilisées avec l'auto complétion
Autoriser l'auto-complétion et le menu de sélection
À propos des auteurs

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.

Tout d'abord

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

Créer un fichier .zshrc avant de démarrer 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.

Démarrer zsh

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!

Les bonus

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.

Changer l'invite de commandes

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

Complétion intelligente (mieux que bash)

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! :-)

Liste des options utilisées avec l'auto complétion

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.

Autoriser l'auto-complétion et le menu de sélection

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).

À propos des auteurs

Anderson Silva travaille comme ingénieur de solutions IT chez Red Hat, Inc. Il détient un BS d'informatique obtenu à l'Université de Liberty , un MS en Systèmes d'information à l'Université du Maine. Il est Architecte Certifié Red Hat et a publié de nombreux articles sur les systèmes Linux dans des revues comme: Linux Gazette, Revista do Linux et Red Hat Magazine. Anderson est marié, depuis 11 ans,avec son amour d'université, Joanna (qui l'a aidé en relisant ses articles avant leurs parutions). Ils ont 3 enfants. Quand il ne travaille pas ou n'écrit pas, il pratique la photographie, passe du temps avec sa famille, fait du cyclisme, regarde les courses de Formule 1 et d'Indy Cars et emmène ses enfants faire du karting.

Matt Woodson travaille comme ingénieur de solutions IT chez Red Hat, Inc. Matt a été employé dans différents postes, de l'administration système à ingénieur qualité en passant par les réseaux , dans de nombreuses compagnies Linux parmi lesquelles Red Hat, Novell et Caldera. Il est Ingénieur Certifié Red Hat et a passé du temps comme professeur en classes RHCE (Red Hat Certified Engineer) dans tout le pays. Matt et sa femme Mariah sont mariés depuis 3 ans et attendent leur première fille pour février 2011.

Adaptation française de la Gazette Linux

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.