Cet article est publié sous licence CC BY-NC-SA
En tant que développeur je passe un nombre incalculable d’heures dans mon terminal à taper des commandes et analyser les retours de celles ci pour manipuler des fichiers, installer / lancer / stopper des services, utiliser le DSCM, …
J’aime à croire que tous les développeurs sont comme moi et ont toujours un terminal ouvert pour traiter leurs tâches récurrentes. Vous n’utilisez pas un IDE pour tout faire à la souris n’est-ce pas ?
Si vous êtes comme moi et que vous n’utilisez pas encore Oh My Zsh ou encore pire Zsh je vous invite à continuer la lecture de cet article qui vous permettra d’augmenter de façon significative votre productivité en console.
Vous êtes utilisateur de Bash ? Peut-être simplement parce que c’est souvent le shell installé par défaut sur les différents *nix. Avez-vous déjà pensé à tester autre-chose ?
J’ai pendant longtemps moi-même utilisé Bash parce que c’était ce qui était configuré par défaut et que je pensais être à la pointe de ce que je pouvais faire dans un shell. Puis un jour j’ai testé d’autres shells par curiosité et Zsh a particulièrement retenu mon attention.
Depuis Bash a rattrapé son retard sur plusieurs points mais reste toujours très en retrait par rapport à Zsh.
Alors concrètement qu’est-ce que ça apporte ? Voici quelques exemples tirés d’une liste qui pourrait être bien plus longue :
ls -l *.log
=> classiquels -l **/*.log
=> récursif$ vared PATH
va afficher le contenu de la variable et de l’éditer directement )$PATH
et tabulation remplace la variable par son contenu)$ alias -g gp='| grep -i'
permet de faire $ ps aux gp ruby
qui donne ps aux | grep -i ruby
$ alias -s rb=vim
$ alias -s log="less -MN"
$ alias -s html="open"
% user.rb
# => vim user.rb
% development.log
# => less -MN development.log
% index.html
# => open index.html
Voici quelques exemples d’utilisation en image :
Complétion de la commande cd
avec Bash :
Et maintenant avec Zsh :
Essayons maintenant avec Git depuis Bash :
Et avec Zsh :
Vous l’aurez compris Bash est à la ramasse et ce serait du même acabit pour la suite je vais donc me contenter de mettre des captures d’écran concernant Zsh pour la suite :
complétion des répertoires (avant l’appuie sur tab) :
et après :
En ce qui me concerne, je trouve que … ça claque !
On peut aussi faire du remplacement de chemin :
Utilisation d’un prompt à gauche (PS1) et à droite (RPS1) qui disparaît quand la commande est trop longue :
Un peu de renommage programmable :
Il y a encore plein d’autres choses, tellement qu’il m’est impossible de tout lister en un seul article. Je pense que cette liste d’exemple est bien suffisante pour vous montrer à quel point Zsh est puissant.
Impressionné ? Convaincu ?
Si vous êtes convaincu, il est temps de changer votre shell par défaut grâce à la commande suivante :
$ chsh -s /bin/zsh
Commencez par vous amuser un peu avec les fonctionnalités de base de Zsh, notamment celles que je vous ai présenté dans la section précédente. Vous ne devriez pas être perdu puisque toute la base du fonctionnement est très similaire à Bash.
Pour tout ce qui est différent, c’est très intuitif et ça fonctionne mieux ;-)
Vous n’êtes pas encore satisfait, impressionné ? Vous voulez en mettre encore plus vous la raconter devant vos collègues ?
Ok, passons à l’installation de Oh My Zsh qui permettra d’enterrer définitivement votre ancien shell et comblera les derniers manques que vous pourriez avoir en tant que poweruser.
Une commande à lancer et le framework sera installé pour votre utilisateur :
$ curl -L https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh | sh
Vous avez maintenant un fichier ~/.zshrc
tout frais dans lequel vous allez pouvoir personnaliser votre installation, choisir un thème ou encore activer des plugins.
Le thème se configure via la variable d’environnement ZSH_THEME
, vous pouvez trouver la liste des thèmes dans ~/.oh-my-zsh/themes
.
Les plugins disponibles sont quant à eux visibles dans ~/.oh-my-zsh/plugins/
, pour en activer il suffit de les ajouter à la liste contenue dans la variable plugins
.
Nous n’irons pas plus loin dans cet article, il vous faut déjà faire connaissance avec Zsh et ses fonctionnalités natives. Vous verrez qu’on peut déjà faire beaucoup de choses sans plugin et que ce shell vous fera vous demander comment vous faisiez avant.
Dans un prochain article je parlerais plus en détail de Oh My Zsh, de sa configuration et de ses différents plugins.
L’équipe Synbioz.
Libres d’être ensemble.
Nos conseils et ressources pour vos développements produit.