Fish (Friendly Interactive Shell) est un shell Unix de ligne de commande entièrement équipé (comme Bash ou Zsh) qui est intelligent et convivial. Fish prend en charge des fonctionnalités comme la coloration syntaxique, les suggestions automatiques et les compléments d'onglets qui fonctionnent tout simplement, sans qu'il soit nécessaire d'apprendre ou de configurer quoi que ce soit. Plusieurs différences notables rendraient Fish bien plus ergonomique que Bash. Cependant, même si Fish Shell a une syntaxe simple, elle serait incompatible avec les autres langages shell.« Si vous voulez rendre votre ligne de commande plus productive, plus utile et plus amusante, sans avoir à apprendre un tas de syntaxe obscure et d'options de configuration, alors Fish pourrait être exactement ce que vous recherchez », a écrit l'équipe de Fish Shell dans la documentation de l'outil. Il est principalement caractérisé par les éléments suivants :
- autosuggestions en ligne basées sur l'historique ;
- complément de tabulation utilisant les données des pages de manuel ;
- mise en évidence de la syntaxe ;
- support intuitif des caractères génériques ;
- configuration basée sur le Web ;
- une saine écriture de scripts.
Autosuggestions et mise en évidence de la syntaxe
L'une des principales caractéristiques de Fish est l'autosuggestion implémentée dans le shell. Cette fonctionnalité vous donne la possibilité d'accéder rapidement aux commandes au fur et à mesure que vous les tapez. En d'autres termes, Fish suggère des commandes au fur et à mesure que vous tapez, en se basant sur l'historique et les complétions, tout comme un navigateur Web. Vous pouvez trouver cela dans Zsh également, mais elle serait à l'origine dans Fish.
De plus, Fish possède d'autres fonctionnalités. Par exemple, si vous faites une erreur de frappe, il affichera les commandes incorrectes et invalides en rouge. C'est beaucoup plus rapide que Ctrl+R et cela afficherait généralement la commande que vous voulez 80 % du temps. En outre, Fish est entièrement scriptable, et sa syntaxe serait simple, propre et cohérente.
Complétion d'onglets basée sur les pages de manuel
Fish analyse les pages de manuel des outils CLI, ce qui lui permet de fournir facilement des complétions automatiques pour la plupart des commandes. Vous pouvez utiliser la tabulation pour obtenir toutes les options.
Configuration basée sur le Web
Une autre caractéristique remarquable de Fish est que vous pouvez le configurer comme une interface Web fonctionnant sur votre serveur local. De plus, l'interface Web vous permet de modifier la couleur du schéma que vous souhaitez. Elle vous permet également de parcourir vos variables d'environnement. Il existe d'autres fonctionnalités :
- recherche des raccourcis clavier du terminal ;
- invites de commande attrayantes et colorées ;
- historique de la ligne de commande.
Saine écriture des scripts et personnalisation
Commet souligné plus haut, Fish est entièrement scriptable, et sa syntaxe est simple, propre et cohérente. Vous n'utiliserez plus do et done dans une boucle. Il s'agirait d'un avantage clé par rapport à Bash. En outre, vous pouvez également installer des thèmes pour Fish et le personnaliser selon vos goûts. Si vous avez utilisé Zsh, vous avez peut-être utilisé le grand gestionnaire de paquets oh-my-zsh. Ici, oh-my-fish est le gestionnaire de paquets de Fish.
Utilisation des variables avec Fish Shell
Comme les autres shells, le signe dollar ($) effectue une substitution de variable. La substitution de variable se produit également dans les guillemets doubles, mais pas dans les guillemets simples. Contrairement aux autres interpréteurs de commandes, Fish n'a pas de syntaxe VARIABLE=VALUE dédiée pour définir les variables. À la place, il a une commande ordinaire : set, qui prend un nom de variable, puis sa valeur.
Comparaison entre Fish Shell et Zsh
La plupart des scripts shell sont fondamentalement les mêmes. Ils donnent le même résultat et partagent le même environnement de script. Mais certaines différences subtiles sont uniques pour chacun des scripts shell. Fish et Zsh sont classés comme les meilleurs scripts shell grâce à leur façon d'écrire des scripts et des fonctions. En outre, les deux sont des outils open source que tout le monde peut utiliser librement. Zsh est une extension du langage Bash, et la façon dont les scripts sont rédigés avec Fish est totalement différente de Bash ou, pour être plus précis, du langage Zsh.
Principales différences entre Fish et Zsh
- Fish est...
La fin de cet article est réservée aux abonnés. Soutenez le Club Developpez.com en prenant un abonnement pour que nous puissions continuer à vous proposer des publications.

Quel est votre avis sur le sujet ?