Zsh est un shell, c’est à dire qu’à l’image de bash ou de sh, c’est un interpréteur de commande.
Ce shell reprend les fonctionnalités de bash donc si comme moi, bash était votre shell habituel, vous ne serez pas dépaysés !
La grande force de zsh à mon sens, c’est la possibilité de customisation avec des extensions qui nous facilitent la vie.
Je l’utilise au quotidien depuis plus d’un an et je n’ai aucune envie de revenir en arrière pour les raisons suivantes. Grâce à zsh (et les extensions que j’ai installé) j’ai les avantages suivants :
– Des infos git sont affichées directement dans mon shell: on voit la branche courante, si on a des fichiers modifiés etc.. c’est une économie de “git status”
Ici, le +11 signifie que j’ai 11 fichiers qui ont des modifications en staging, c’est à dire qui ont été ‘add’.
Le !10 veut dire que j’ai 10 fichiers suivis qui ont des modifications qui ne sont pas en staging (ça peut être le cas de fichiers qui ont subit des modifications sans jamais avoir été add ou qui ont été modifiés après un ‘git add’).
Le ?2 signifie que j’ai 2 fichiers qui ne sont pas suvis par git.
– Mes commandes sont validées syntaxiquement au fur et à mesure que je les écris. C’est-à-dire que lorsque je fais une faute de frappe en tapant ma commande, je le vois avant de l’exécuter, c’est super pratique !
– La suggestion basée sur l’historique: on tape souvent les mêmes commandes et la suggestion basée sur les commandes exécutées précédemment est un gain de temps (et une économie de ctrl + r :p), un tab et c’est gagné.
On voit sur le gif précédent que la commande tapée s’affichait en ‘grisé’ avant que je l’écrive. Comme ce n’était pas la première fois que je la tapais, elle m’était proposée.
Bonus: avec zsh d’installé vous pourrez jouer la commande‘zsh_stats’ pour voir si vous utilisez souvent les mêmes commandes.
– Et plein d’autres raisons comme l’expansion de path au ‘tab’ ou la navigation dans les directory facilitée lors des ‘cd’. cf. https://github.com/hmml/awesome-zsh/
– Puis c’est quand même vachement joli 🙂
Installer Zsh
sudo apt install zsh
zsh --version
C’est tout, vous avez Zsh à présent (vous pouvez taper la commande zsh pour vous en convaincre). Il est maintenant temps de le customiser !
Installer OhMyZsh!
OhMyZsh est un utilitaire qui va nous permettre de customiser très facilement notre Zsh. Pour l’installer, c’est très simple exécutez la commande :
curl -L https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh | sh
Customisation
Si vous avez suivi jusqu’ici, vous avez zsh et oh my zsh! On va pouvoir facilement customiser notre shell :
Le thème Powerlevel10k
Vous pouvez bien évidement choisir celui que vous voulez, moi j’ai choisi le populairepowerlevel10k :
Déjà convaincus ? Faites de Zsh votre shell par défaut :
Pour faire de Zsh votre shell par défaut, rien de plus simple il suffit d’excuter la commande:
chsh -s $(which zsh)
Résultat final
Conclusion
Dans cet article, on a vu comment installer zsh, un thème et les plugins que j’utilise. Évidemment il y avait d’autres façons de les installer mais c’est celle qui me paraît la plus simple 🙂
Maintenant que vous avez vu comment personnaliser zsh avec Oh My Zsh c’est à vous de jouer pour trouver votre thème préféré et les plugins qui amélioreront votre quotidien ! N’hésitez pas à nous faire découvrir vos plugins zsh préférés dans les commentaires, on les lira avec attention 😉
Merci Maxime, pour cette page en français claire et bien expliquée.
Pour les plugins sur la distribution Manjaro, ils activent zsh-history-substring-search
que je trouve vraiment sympa.
Pour les distributions utilisant zypper comme gestionnaire de paquets comme Opensuse
dans mon cas, on change la commande
sudo apt install zsh
par
zypper –non-interactive install –no-recommends –allow-vendor-change zsh
et c’est bon.
Qu’est-ce que Log4j et JNDI ?
Log4j est un utilitaire de gestion des logs pour les applications développées en Java. Ce framework open-source est développé par l’Apache Software Foundation depuis 2001. Il permet de configurer précisément les fichiers de sortie, les niveaux et le format des logs.
JNDI (Java Naming and Directory Interface) est une API Java qui permet d’e...
Voilà une astuce que je ne connaissais pas et qui peut s'avérer utile par les temps qui courent (télétravail, covid, toussa toussa). Saviez-vous que windows 10 propose nativement de transformer son ordinateur en écran secondaire, le tout sans utiliser le...
Je fais assez attention à la gestion de ma vie privée avec les technologies. À une période je songeais même à ne plus avoir de smartphone. Mais un point me gênait pour franchir le pas : ne plus avoir de GPS ! J'ai donc recherché quel smartphone était ...
Nous allons voir dans cet article comment passer d’une version PHP à une version supérieure sous nginx via l’implémentation php-FPM. Pour cela nous allons prendre l’exemple de ce site Wordpress que nous avons passé de la version de PHP 7.0 à la version P...
J’avais déjà le setup mais pas les plugins, merci pour le partage 😉
Avec plaisir, merci pour ton retour 🙂
Merci Maxime, pour cette page en français claire et bien expliquée.
Pour les plugins sur la distribution Manjaro, ils activent zsh-history-substring-search
que je trouve vraiment sympa.
Pour les distributions utilisant zypper comme gestionnaire de paquets comme Opensuse
dans mon cas, on change la commande
sudo apt install zsh
par
zypper –non-interactive install –no-recommends –allow-vendor-change zsh
et c’est bon.
Merci beaucoup pour ton commentaire et les informations qu’il apporte 🙂