Zsh : comprendre et utiliser cette shell

Auteur : Publié le

En bref : Zsh, ou Z shell, est un interpréteur de commandes — un programme qui interprète les commandes saisies et exécute les tâches demandées. Il facilite le travail dans le terminal grâce à une complétion avancée des commandes, à l’historique et à ses possibilités de configuration. Il est surtout utile pour interagir avec le système ; il n’est toutefois pas nécessaire de le connaître pour commencer à utiliser le terminal.

Zsh et terminal : quelle différence ?

Le terminal est une application dans laquelle on saisit des commandes et consulte leurs résultats. L’interpréteur de commandes fonctionne à l’intérieur de cette application : il lit les commandes, reconnaît leur syntaxe et demande l’exécution des opérations. Un même terminal peut accueillir différents interpréteurs, par exemple zsh ou Bash.

Lorsque vous saisissez cd Documents, zsh exécute sa propre commande de changement de répertoire. Lorsque vous saisissez git status, il lance le programme externe Git, à condition que celui-ci soit installé et accessible dans le chemin de recherche des programmes. Cette distinction est importante : installer zsh n’installe pas automatiquement les outils dont vous utilisez les noms dans vos commandes.

Zsh est notamment disponible sur Linux et macOS. Depuis la version Catalina de macOS, il est l’interpréteur de commandes par défaut des nouveaux comptes utilisateurs, même si un compte donné peut utiliser un autre réglage. Sous Windows, on peut par exemple l’utiliser dans WSL, un environnement qui permet d’exécuter des outils Linux.

Qu’apporte zsh au quotidien ?

Le principal avantage de zsh est de réduire la saisie manuelle des parties répétitives des commandes. Le confort d’utilisation dépend toutefois de la configuration : une installation neuve n’a pas nécessairement l’apparence ni le comportement du terminal présenté dans un tutoriel.

Parmi les fonctions utiles :

Par exemple, si vous travaillez dans un répertoire contenant le dossier projet-boutique, vous pouvez saisir cd proj puis appuyer sur Tab. L’interpréteur tentera de compléter le nom ; si plusieurs répertoires correspondent, il peut afficher les possibilités. D’autres interpréteurs proposent des fonctions similaires : pour certains utilisateurs, l’avantage de zsh tient à l’étendue de sa configuration et aux extensions disponibles, et non à la seule présence de la complétion.

Zsh ou Bash : lequel choisir ?

Bash est un autre interpréteur de commandes populaire, souvent utilisé sous Linux et dans les scripts d’administration. Zsh et Bash prennent en charge de nombreuses commandes similaires, mais leurs syntaxes ne sont pas entièrement compatibles. Les différences concernent notamment les tableaux, l’expansion des variables et la correspondance des noms de fichiers avec des motifs.

Exemple pratique : avec les réglages par défaut de zsh, la commande ls *.txt signale une erreur de correspondance si le répertoire ne contient aucun fichier portant l’extension .txt. Dans ce cas, Bash transmet par défaut l’argument littéral *.txt au programme ls, qui signale l’absence d’un fichier de ce nom. Une commande apparemment identique peut donc échouer à une étape différente.

Pour le travail quotidien, choisissez l’interpréteur qui vous permet d’accomplir vos tâches le plus facilement. Pour les scripts, choisissez l’interpréteur en connaissance de cause. Un script qui commence par #!/bin/bash désigne Bash comme interpréteur lorsqu’il est lancé directement. Utiliser zsh dans le terminal ne signifie pas qu’il faut réécrire ce script ; en revanche, le lancer avec la commande zsh script.sh peut provoquer des erreurs de compatibilité.

Comment vérifier la présence de zsh et le lancer ?

Vérifiez d’abord si le programme est disponible :

zsh --version

Si un numéro de version s’affiche, vous pouvez essayer zsh en saisissant zsh. La commande exit met fin à cette session et vous ramène à l’interpréteur précédent. Cela ne modifie pas les réglages par défaut du compte.

Si le système ne trouve pas le programme, sous Linux, installez-le avec le gestionnaire de paquets de votre distribution. Par exemple, sous Debian et Ubuntu, la commande à utiliser est sudo apt install zsh. Elle nécessite des droits d’administration ; pour une autre distribution, consultez la procédure appropriée dans sa documentation officielle.

La commande echo $SHELL, souvent recommandée, indique généralement l’interpréteur configuré pour l’ouverture de session, et pas nécessairement celui qui fonctionne dans la session en cours. Après avoir lancé zsh, vous pouvez utiliser echo $ZSH_VERSION : dans zsh, cette variable contient son numéro de version.

Il est généralement possible de changer l’interpréteur par défaut du compte avec l’outil chsh. Avant de le faire, vérifiez le chemin du programme et les règles de votre système : l’interpréteur peut devoir figurer dans la liste /etc/shells, et les comptes professionnels peuvent être soumis à des restrictions administratives.

Configuration de zsh et rôle de Oh My Zsh

Le fichier principal de configuration des sessions interactives est généralement ~/.zshrc, où ~ désigne le répertoire personnel de l’utilisateur. Vous pouvez y ajouter des alias, c’est-à-dire des raccourcis de commandes, ainsi que des réglages de complétion. Voici un exemple simple pour commencer :

alias ll='ls -lh'
autoload -Uz compinit
compinit

L’alias permet de saisir ll à la place de ls -lh, et les lignes suivantes initialisent le système de complétion. Avant de modifier un fichier existant, faites-en une copie et vérifiez s’il contient déjà des réglages similaires. Le plus simple est de tester les modifications dans une nouvelle session zsh.

Oh My Zsh est un ensemble facultatif de configurations, de thèmes et de extensions, et non l’interpréteur lui-même. Les suggestions colorées pendant la saisie ou la coloration syntaxique proviennent souvent d’extensions supplémentaires. Elles ne sont pas automatiquement disponibles après l’installation de zsh.

Pour commencer, lancez zsh sans changer l’interpréteur par défaut et effectuez quelques-unes de vos tâches habituelles. N’ajoutez des extensions que lorsque vous savez précisément quelle opération elles doivent faciliter ; avant de lancer un programme d’installation, vérifiez sa provenance et les modifications qu’il apporte.

À lire aussi : Qu’est-ce que l’AGI ?

À lire aussi

Découvrez comment PHP-FPM traite les requêtes PHP, son rôle face au serveur web et comment adapter ses processus au trafic.
Découvrez BIND, logiciel libre de serveur DNS : ses rôles, la gestion des domaines et les cas où le déployer vous-même.
Découvrez le registre polonais REGON, son numéro, ses différences avec NIP et KRS et comment vérifier les données d’une entreprise.