Découverte de Zsh.

Salut les animaux !

Après toutes mes recherches sur le terminal, il était souvent question de ZSH (à écouter tout ce beau monde, ce serait un peu le saint graal de la console). Je suis donc allé voir ce qu’il en était.

Allons-y pour un festival d’éloges :

Déjà sur Wikipedia, ça envoi du très lourd :

Le Z shell ou zsh est un shell Unix qui peut être utilisé de façon interactive, à l’ouverture de la session ou en tant que puissant interpréteur de commande. Zsh peut être vu comme un « Bourne shell » étendu avec beaucoup d’améliorations. Il reprend en plus la plupart des fonctions les plus pratiques de bashksh et tcsh.

Ça met l’eau à la bouche, mais continuons avec ce billet de Debianworld « mon super shell zsh » :

zsh est mon shell favori pour différentes raisons et peu de personnes l’utilisent car elles ignorent comment il nous simplifie la vie de tous les jours.

À partir de là je me suis dit que j’avais raté un truc dans ma vie (déjà que j’ai pas de rollex …). Comment ai-je pu loupé cette merveille ?

J’ai aussi trouvé « Restez ZEN avec ZSH« , « zsh: The last shell you’ll ever need!« , un dépôt git oh-my-zsh et un site sympathique intitulé Zsh-lovers (je vous en parlerais plus tard).

Arrivé à ce stade, plus de marche arrière possible, je DEVAIS tester le bête ! Et c’est ce que je fis (ce qui eu dû être fait avant car je l’eu pu, comme l’aurais dit mon professeur de français auquel BonPatron dois la moitié de son trafic mensuel, mais je m’égare …).

Voici donc les point fort de ZSH :

Complétion

Complétion des commandes, des options et des arguments de la plupart des commandes. En particulier, taper la suite de caractères « cd » ne permettra la complétion que par des répertoires.

À l’usage c’est effectivement impressionnant, un nombre énorme de commandes sont prisent en charge par l’auto-complétion (et pas des moindres, ip, pacman, apt-get, mpc,  rc.d, nmap, …).

Par exemple pour la commande ip :

> 20:00 antitrust@_ { ~ } % ip
addr                   — manage protocol address
link                   — configure network device
[…]
tunnel                 — configure tunnel
> 20:00 antitrust@_ { ~ } % ip addr
add   — add new protocol address
change  — change existing protocol address
[…]
show     — show protocol address
> 22:40 antitrust@_ { ~ } % ip addr show 
deprecated  — list deprecated addresses (IPv6)
dev      — specify device
[…]
eth0   lo     wlan0

etc. C’est con mais pour les commandes usuelles ça évite les pertes de temps et les aller-retour avec le man.

Tout les arguments sont prit en compte. Il aussi possible de demander un menu sélectionnable par les touches directionnel.

L’affichage des suggestions ne créé pas une ligne dans votre terminal, ce qui à l’usage est terriblement agréable ! On est vraiment un Usain Bolt au dessus de Bash (même avec tout les paquets d’aide etc.) ou de tout autre Shell ! C’est juste magique et je n’ai encore que très peu d’expérience sur ce Shell.

Partage de l’historique des commandes entre tous les shells zsh actuellement actifs.

Pour les utilisateurs qui comme moi ouvrent des terminaux à tout va, c’est une option fichtrement utile. Je ne compte plus les fois où j’ai du allé chercher dans le terminal voisin un script que j’avais tapé. Après quelques utilisations ça devient tellement naturel qu’on l’oubli.

Correction « orthographique » des commandes tapées.

Ce n’est évidement une correction orthographique à proprement parlé mais plus un utilitaire de suggestion.

Ça donne ce genre de résultat :

$ nanl .zshrc
zsh: correct ‘nanl’ to ‘nano’ [nyae]?

Ça ne changera pas votre vie, mais c’est toujours bon à prendre.

Englobement étendu

J’ai malheureusement mes habitudes de ce coté là. L’englobement c’est un peu la version KISS de la commande find. Pour reprendre l’exemple de la gazette linux :

$ find . -perm -u+x -type -f

devient

$ ls -s **/*(.x)

C’est effectivement plus propre. (retrouver d’autres exemple sur la gazette)

Ceux qui me connaissent déjà savent que je ne vais pas en rester là. Semaine prochaine on passe à la personnalisation (en parallèle ou fusion avec le tuto identique sur Bash que je décale donc d’une semaine). Car vous verrez, outre la complétion et l’historique, ce Shell est aussi léger et personnalisable grâce à une gestion individuel des modules (la couleur par exemple n’est pas nécessairement lancées de base etc.).

Pour aller plus loin : Tuto sur la personnalisation de Zsh (à paraître le 19/08/2011).

@4nti7rust

Source : Image


1 Response

  1. Noireaude Moo 12 août 2012 / 9 h 45 min

    Ça à l’air vraiment sympa ce ZSH, je vais m’amuser à reprendre quelques petits « kiss/scripts » pour voir ça :)

Comments are closed.