Une meilleure expérience Linux avec le shell Fish

Les jours des commandes cryptiques et de la syntaxe rigide sont révolus. Pourquoi passer plus de temps à déchiffrer les pages de manuel qu’à écrire des scripts ou à naviguer dans votre système ? Adoptez la puissance et la simplicité de l’interpréteur de commandes fish, votre billet pour une expérience Linux plus fluide et plus intuitive.

Apprenez à transformer votre parcours Linux avec l’interpréteur de commandes fish, de son interface conviviale à ses nombreuses options de personnalisation.

Dites bonjour à des flux de travail rationalisés et à une confiance retrouvée dans vos compétences Linux !

Prérequis

Avant de commencer, prenez un moment pour vous assurer que vous avez couvert les éléments essentiels suivants pour suivre ce tutoriel :

  • L’interpréteur de commandes fish est installé sur votre machine – Ce tutoriel utilise fish-3.7.0, la dernière version à ce jour.
  • A Linux system – This tutorial uses an Ubuntu 22.04 LTS for demonstrations, but other distributions will work.

Exploration des validations de commande, de l’auto-complétion et des suggestions

Avec l’interpréteur de commandes fish installé, plongez dans l’interpréteur de commandes fish pour des exécutions de commandes transparentes. L’interpréteur de commandes fish offre des retours en temps réel et des suggestions contextuelles pour les commandes, les noms de fichiers et les arguments.

Mais d’abord, vous devrez accéder à l’interpréteur de commandes fish avant d’examiner les validations de commande, l’auto-complétion et les suggestions.

Pour explorer cette fonctionnalité qui vous permet d’identifier et de corriger les erreurs avant même de les exécuter, effectuez les étapes suivantes :

1. Ouvrez un terminal et exécutez la commande fish ci-dessous pour accéder à l’interpréteur de commandes fish.

fish
Accessing the fish shell

2. Ensuite, tapez la première lettre de la commande ls pour tenter de lister tous les fichiers de votre répertoire actuel.

Comme indiqué ci-dessous, la lettre ‘l‘ devient rouge car l’interpréteur de commandes fish ne la reconnaît pas comme une commande valide. Cet indice visuel immédiat indique qu’il y a quelque chose qui ne va pas avec la commande.

Mais ne vous inquiétez pas ! Grâce à la suggestion automatique, la lettre ‘s‘ apparaît atténuée, suggérant la commande correcte.

Testing command validation

3. Maintenant, appuyez sur la flèche droite ou les touches Ctrl+F pour accepter la commande auto-suggérée ls.

Remarquez que la lettre ‘l’ est passée du rouge au bleu car l’interpréteur de commandes fish reconnaît désormais votre commande comme étant ls.

Accepting the auto-suggested command

Définition des Alias de Commande dans le Fichier de Configuration Fish

En plus des retours d’informations en temps réel et des suggestions contextuelles, fish offre un moyen puissant et flexible de personnaliser votre environnement en ligne de commande – le fichier de configuration fish. Contrairement à d’autres interpréteurs de commandes qui peuvent utiliser plusieurs fichiers de configuration, fish utilise principalement un seul fichier appelé config.fish situé dans le répertoire ~/.config/fish/.

Pour voir comment les configurations affectent l’interpréteur de commandes fish, commencez par définir des alias de commandes comme suit :

1. Ouvrez le fichier de configuration fish en utilisant votre éditeur de code ou de texte préféré, comme nano ou vim, mais ce tutoriel utilise le premier.

nano ~/.config/fish/config.fish

Une fois ouvert, vous verrez le contenu initial du fichier de configuration de l’interpréteur de commandes Fish, qui peut contenir des configurations par défaut ou être relativement vide. Cet état initial dépend de si vous ou le processus de configuration de votre système avez précédemment ajouté des configurations.

Le fichier peut uniquement inclure des commentaires ou des blocs conditionnels de base pour les nouvelles installations, comme celui ci-dessous.

Opening the fish configuration file

2. À l’intérieur du bloc if, ajoutez la fonction suivante, enregistrez les modifications et fermez l’éditeur.

À ce stade, vous créez des paramètres personnalisés dans le fichier de configuration de Fish, et cette fonction définit un alias (c) pour la commande clear.

# Cette fonction crée un alias pour la commande "clear"
function c
    clear
end

? Remarque : Chaque fonction définie a un fichier .fish correspondant dans le répertoire ~/.config/fish/functions/ (c’est-à-dire c.fish).

Creating an alias for the clear command

3. Exécutez la commande suivante pour sourcer le fichier de configuration (config.fish).

Cette commande n’a pas de sortie dans le terminal mais applique les modifications de configuration à votre session actuelle.

? Ce fichier de configuration de fish est exécuté automatiquement chaque fois qu’une nouvelle session fish est démarrée et constitue l’endroit idéal pour définir des personnalisations de shell.

source ~/.config/fish/config.fish

4. Ensuite, tapez c dans l’invite pour vérifier vos modifications.

Remarquez que la lettre ‘c‘ devient bleue car le shell fish la reconnaît comme la commande clear. Ce comportement indique un changement réussi dans la configuration de fish.

Vous voyez comment la lettre ‘c’ devient bleue ? Ce changement est dû au fait que le shell fish reconnaît la lettre ‘c’ comme la commande clear. Ce comportement signale une mise à jour réussie de votre configuration de fish.

Maintenant, pourquoi ne pas configurer quelques alias supplémentaires pour ces commandes de confiance auxquelles vous revenez toujours quand l’envie vous prend ?

Verifying the newly created alias for the clear command works

Personnalisation de l’invite du Shell Fish

En plus de configurer des alias pour des opérations plus fluides, fish vous donne le pouvoir de personnaliser votre invite, comme ajouter une touche personnelle à votre shell. Au lieu de longs chemins de répertoire, profitez d’une invite plus propre et plus organisée.

Pour personnaliser l’invite du shell fish, exécutez les actions suivantes :

1. Ouvrez le fichier de configuration de fish (~/.config/fish/config.fish), et ajoutez la fonction suivante.

Cette fonction personnalise votre invite de shell fish pour afficher (echo) un signe dollar ($) suivi d’un espace.

# Personnalisation de l'invite de commande fish
function fish_prompt
    echo '$ '
end
Customizing the fish shell prompt

2. Enregistrez les modifications dans le fichier de configuration de fish et quittez l’éditeur.

3. Maintenant, source le fichier de configuration pour appliquer vos modifications.

source ~/.config/fish/config.fish

Une fois sourcé, vous verrez les changements d’invite comme dans la capture d’écran suivante.

Sourcing the fish configuration file to apply the shell prompt changes

Conservation des modifications entre les sessions

Vous avez vu comment créer des personnalisations dans l’invite de commande fish. Mais une chose à noter : ces paramètres ne sont disponibles que dans la session en cours.

Que se passe-t-il une fois que vous fermez la session en cours et en ouvrez une nouvelle ? Pouf ! Vos configurations méticuleusement élaborées ont disparu — dommage, n’est-ce pas ? Mais ne vous inquiétez pas, il y a encore de l’espoir. Laissez la commande funcsave sauver vos configurations de l’oubli !

Pour conserver vos configurations entre les sessions, procédez comme suit :

1. Ouvrez le fichier de configuration de fish, et ajoutez la commande funcsave à chaque function avec le nom de la fonction, comme ceci :

Appending the funcsave command to persist functions across sessions

2. Enregistrez vos modifications, et fermez l’éditeur et le terminal.

3. Ouvrez une nouvelle session de terminal, et exécutez la commande fish ci-dessous pour accéder à l’invite de commande fish.

fish

Si les commandes funcsave que vous avez ajoutées fonctionnent pour persister vos configurations, vous verrez des messages comme ceux ci-dessous.

Accessing the fish shell to verify the configurations persist across sessions

Définir et persister les variables d’environnement

Bien que les fonctions de persistance soient formidables, la gestion des valeurs accessibles globalement élève le scripting shell d’un cran – en définissant des variables d’environnement. Contrairement aux shells traditionnels qui reposent sur export, fish utilise set avec des options pour contrôler la portée de la variable et le comportement d’exportation.

Mais il y a un hic, vous savez? Ah, vous l’avez deviné! Une variable définie via la commande set dans le terminal n’est accessible que dans la session en cours.

Pour définir et persister les variables d’environnement, le drapeau -gx sera utile comme suit:

1. Ajoutez la commande suivante pour définir la variable MY_VARIABLE dans le fichier de configuration fish en tant que globale. Voici comment fonctionne le drapeau -gx:

  • -g – Rend la variable globale, accessible depuis n’importe quelle portée dans le même environnement utilisateur.
  • -x – Exporte la variable, la rendant disponible pour toutes les commandes externes ou les programmes lancés depuis fish.
# Définir MY_VARIABLE globalement et l'exporter
set -gx MY_VARIABLE HelloWorld
Setting an environment variable in the fish configuration file

2. Enregistrez les modifications de configuration, puis fermez l’éditeur et le terminal.

3. Ouvrez une nouvelle session terminal, accédez au shell fish, et exécutez la commande suivante pour confirmer les changements.

echo $MY_VARIABLE

La sortie ci-dessous confirme que les changements ont pris effet à travers les sessions.

Verifying variable persistence

4. Une fois confirmé, ajoutez la commande set suivante au fichier de configuration de fish, sauvegardez les modifications et fermez l’éditeur.

Cette commande rend la variable MY_UNIVERSAL_VARIABLE globale à travers toutes les sessions, même après les redémarrages.

# Définir MY_UNIVERSAL_VARIABLE comme universelle et l'exporter
set -Ux MY_UNIVERSAL_VARIABLE universal

Voyez comment le drapeau -Ux fonctionne ci-dessous :

  • -U – Rend la variable MY_UNIVERSAL_VARIABLE universelle, assurant qu’elle est partagée à travers toutes les sessions de terminal actuelles et futures, y compris celles de différents utilisateurs.
  • -x – La variable est exportée vers les processus enfants, la rendant accessible à toutes les commandes ou scripts invoqués depuis la session actuelle.
Setting a universal environment variable in the fish configuration file

5. Ouvrez une nouvelle session de terminal, accédez à l’interpréteur de commandes fish et exécutez la commande echo ci-dessous pour vérifier les modifications.

echo $MY_UNIVERSAL_VARIABLE

Si tout se passe bien, vous obtiendrez la sortie suivante, indiquant que les changements ont pris effet à travers les sessions.

Verifying universal variable persistence

? Outre le fichier de configuration de fish, exploitez fish_config dans le terminal pour des personnalisations rapides et automatiques. Cette commande lance une interface web dans votre navigateur, permettant des ajustements rapides de l’invite de commandes, des réglages et de la gestion des fonctions et des variables dans une configuration conviviale.

Gestion des plugins Fish avec le gestionnaire de paquets Fisher.

La coquille de poisson est impressionnante par elle-même, n’est-ce pas ? Mais devine quoi ? Lorsque vous commencez à intégrer des plugins, elle devient encore plus puissante. Ces plugins étendent les capacités de la coquille de poisson, apportant de nouvelles commandes, utilitaires et intégrations pour améliorer significativement votre expérience en ligne de commande.

Un bon exemple est Fisher, un gestionnaire de paquets conçu pour la coquille de poisson. Ce plugin est conçu avec la performance et la simplicité à l’esprit, et il est léger.

? Fisher est léger dans la gestion des plugins de la coquille de poisson et ne peut pas être directement comparé aux gestionnaires de paquets au niveau du système. Cette distinction est évidente en ce qui concerne la taille et la complexité des paquets qu’il gère.

Pour gérer les plugins de poisson, vous devez d’abord installer Fisher en suivant les étapes suivantes :

Ouvrez votre terminal, accédez à la coquille de poisson et exécutez la commande suivante pour télécharger et installer Fisher. Cette commande récupère le script d’installation de Fisher et le passe à source, qui exécute le script dans la session actuelle de la coquille de poisson via curl.

curl -sL https://raw.githubusercontent.com/jorgebucaran/fisher/main/functions/fisher.fish | source && fisher install jorgebucaran/fisher

Une fois installé, vous verrez la sortie suivante.

Installing the Fisher package manager

Maintenant, exécutez la commande fisher ci-dessous pour confirmer l’installation en affichant la --version actuellement installée de Fisher sur votre système.

fisher --version
Confirming the installed Fisher version

Installation du plugin GitNow

Maintenant que vous avez Fisher en cours d’exécution, que faites-vous ensuite ? Que diriez-vous de renforcer votre shell fish avec quelques plugins cool ? GitNow, par exemple, est une boîte à outils qui booste votre flux de travail Git dans le shell fish, tentant.

GitNow offre des commandes rationalisées pour les tâches Git courantes, améliorant la productivité et simplifiant votre routine de commandes Git.

Pour installer GitNow à l’aide du gestionnaire de paquets Fisher, suivez ces étapes :

1. Dans votre shell fish, exécutez la commande fisher suivante pour installer le plugin GitNow (joseluisq/gitnow).

Cette commande indique à Fisher de récupérer et d’intégrer GitNow dans votre configuration fish, rendant sa gamme de raccourcis Git immédiatement disponible.

fisher install joseluisq/gitnow
Installing the GitNow plugin

2. Une fois installé, exécutez la commande gitnow ci-dessous pour confirmer que GitNow est correctement installé.

Cette commande affiche la version actuellement installée de GitNow, mais uniquement si les commandes GitNow sont reconnues dans votre shell.

gitnow --version
Verifying the GitNow installation

3. Enfin, exécutez cette commande fisher pour lister tous les plugins gérés par Fisher, y compris GitNow.

fisher list

Vous pouvez voir ci-dessous le plugin GitNow et le plugin Fisher lui-même.

Viewing all plugins managed by Fisher

Suppression des Plugins du Shell Fish

Votre shell fish est-il submergé par les plugins ? Comme si vous deviez trier le fouillis pour trouver ce dont vous avez besoin ? Nettoyez votre environnement shell fish en supprimant les plugins inutiles.

Pour supprimer un plugin géré par Fisher dans votre shell fish, suivez ces étapes :

1. Exécutez la commande suivante pour list tous les plugins actuellement installés.

fisher list

Choisissez-en un dans la liste que vous souhaitez supprimer.

Viewing all installed plugins

2. Ensuite, exécutez la commande fisher remove ci-dessous, suivie du nom du plugin (joseluisq/gitnow) à supprimer.

fisher remove joseluisq/gitnow

Cette commande indique à Fisher de désinstaller le plugin GitNow de votre environnement shell fish.

Removing the GitNow plugin

3. Maintenant, exécutez à nouveau la commande fisher list pour confirmer que le plugin GitNow a été supprimé avec succès.

fisher list

Le plugin GitNow ne devrait plus apparaître dans la liste des plugins installés.

Verifying the GitNow plugin removal

Désinstallation du gestionnaire de paquets Fisher

Comme vous l’avez vu, le gestionnaire de paquets Fisher est vraiment pratique. Mais le désinstaller peut être votre meilleur choix si vous n’êtes pas satisfait ou rencontrez des problèmes avec Fisher.

Pour désinstaller complètement Fisher de votre shell fish, suivez les étapes suivantes :

Exécutez la commande ci-dessous pour list et remove fisher et tous les plugins installés via Fisher.

fisher list | fisher remove
Listing and removing all plugins

Alternativement, exécutez la commande suivante pour remove uniquement fisher lui-même.

fisher remove jorgebucaran/fisher
Removing Fisher only

Exploration du gestionnaire de paquets Oh My Fish

Lorsque vous naviguez déjà avec Fisher, pourquoi envisager Oh My Fish? Vous avez déjà expérimenté la puissance des plugins de shell fish avec Fisher. Mais voici le truc : ce framework ouvre un nouveau domaine de personnalisation pour le shell fish, offrant une vaste collection de thèmes et de plugins.

Pour découvrir ce que Oh My Fish a en réserve pour vous, installez d’abord ce gestionnaire de paquets avec la commande suivante :

Exécutez la commande curl suivante pour télécharger et exécuter le script d’installation de Oh My Fish (https://get.oh-my.fish) dans le shell fish.

curl -L https://get.oh-my.fish | fish

Si réussi, vous obtiendrez une sortie similaire à ce qui suit.

Installing the Oh My Fish package manager

Une fois installé, exécutez la commande omf suivante pour vérifier la version installée de Oh My Fish.

omf --version

A successful response, as shown below, indicates that Oh My Fish is ready and waiting to transform your fish shell experience.

Verifying the Oh My Fish installation

Personnalisation de l’environnement avec les thèmes Oh My Fish

En avez-vous assez du même aspect classique du shell fish? Pourquoi ne pas ajouter une touche de personnalité? Donnez un coup de neuf à votre environnement shell fish avec des thèmes frais et personnalisés provenant de Oh My Fish.

Pour personnaliser votre environnement shell fish, vous devez installer des thèmes en suivant ces étapes :

1. Ouvrez le fichier de configuration fish et supprimez la fonction fish_prompt qui définit l’affichage de votre invite. Cela garantit que l’invite personnalisée que vous avez définie ne entre pas en conflit avec ou remplace les thèmes fournis par Oh My Fish.

? Les thèmes sont livrés avec des invites uniques cruciales pour leur apparence et leur fonctionnement. Désactiver votre invite personnalisée (fish_prompt) garantit que le thème Oh My Fish que vous avez choisi intègre pleinement son design et ses fonctionnalités dans votre shell fish.

2. Ensuite, supprimez (rm) le fichier ~/.config/fish/functions/fish_prompt.fish. Cette commande n’a pas de sortie, mais la suppression de ce fichier garantit que le shell fish revient à son invite par défaut.

rm ~/.config/fish/functions/fish_prompt.fish

3. Exécutez cette commande source pour que les modifications apportées au fichier de configuration de fish prennent effet.

source ~/.config/fish/config.fish
Sourcing the fish configuration file

4. Maintenant, exécutez la commande omf suivante pour découvrir le thème parfait pour votre shell fish.

omf theme

Choisissez un thème que vous souhaitez intégrer dans le shell fish (par exemple, cbjohnson).

? Visitez le dépôt GitHub officiel des thèmes Oh My Shell pour voir à quoi ressemble chaque thème avant de les installer.

Listing available Oh My Fish themes

? Améliorez votre shell fish avec des plugins en exécutant la commande suivante pour installer des plugins. Visitez le dépôt GitHub de OMF pour une liste de plugins à installer. omf install <nom_du_plugin>

5. Ensuite, exécutez la commande ci-dessous pour installer le thème que vous avez choisi à l’étape quatre (cbjohnson).

omf install cbjohnson

Une fois installé, votre invite change immédiatement, comme suit.

Installing an Oh My Fish theme (cbjohnson)

? Conseil : Passez rapidement d’un thème à un autre lorsque vous en avez deux ou plus en exécutant la commande suivante. omf theme <nom_du_thème>

Désinstallation d’Oh My Fish

Oh My Fish est un bijou pour rehausser l’ambiance de votre shell. Mais si vous souhaitez changer de décor ou essayer quelque chose de nouveau, désinstaller Oh My Fish donne à votre shell fish un nouveau départ.

Pour désinstaller Oh My Fish, suivez les étapes suivantes :

1. Exécutez les commandes rm suivantes pour supprimer tous les fichiers liés à Oh My Fish.

rm -rf ~/.local/share/omf
rm -rf ~/.config/omf

Une fois supprimé, vous verrez votre thème initialement installé disparaître.

Deleting Oh My Fish-related files

2. Ensuite, exécutez chaque commande ci-dessous pour supprimer d’autres fichiers liés à Oh My Fish.

Ces commandes n’ont pas de sortie, mais la suppression de ces fichiers garantit que tous les restes d’Oh My Fish sont supprimés de votre système.

rm -rf ~/.local/share/omf/pkg/omf/functions/omf.fish
rm ~/.config/fish/conf.d/omf.*

3. Maintenant, exécutez la commande omf ci-dessous pour vérifier la suppression.

omf --version

Vous verrez une erreur comme ci-dessous, indiquant que la commande omf n’est pas trouvée et qu’Oh My Fish a été complètement désinstallé.

Verifying the Oh My Fish deletion

Paramétrer Fish comme Shell par Défaut

Si vous avez apprécié l’expérience avec le shell fish améliorant votre expérience Linux, pourquoi ne pas le définir comme votre shell par défaut ? De cette façon, vous vous épargnez la peine de changer à chaque fois que vous lancez un nouveau terminal.

Pour définir fish comme votre shell par défaut, suivez les étapes suivantes :

1. Exécutez la commande ci-dessous pour trouver le chemin de la coquille fish.

which fish

Copiez le chemin dans le presse-papiers, car vous en aurez besoin dans les étapes suivantes.

Finding the path to the fish shell

2. Ensuite, exécutez la commande suivante pour ajouter fish à la liste des coquilles acceptables dans /etc/shells.

echo "/usr/bin/fish" | sudo tee -a /etc/shells
Adding fish to the list of acceptable shells

3. Enfin, exécutez la commande chsh ci-dessous pour changer votre coquille par défaut en fish (/usr/bin/fish).

chsh -s /usr/bin/fish

Lorsque vous redémarrez votre machine, vous aurez fish comme coquille par défaut.

Changing the default shell to fish

? Astuce : Revenez de fish à une autre coquille comme Bash comme coquille par défaut en répétant toutes les étapes de cette section. Assurez-vous de spécifier le chemin vers Bash dans les étapes deux et trois, puis redémarrez votre machine pour que les modifications s’appliquent.

Conclusion

Tout au long de ce tutoriel, vous avez plongé dans l’essence de la coquille fish, découvrant ses fonctionnalités puissantes et ses options personnalisables. De la définition d’alias à la personnalisation des invites et à la persistance des variables d’environnement en passant par la gestion des plugins, la coquille fish a été votre fidèle compagnon.

Vous avez acquis des connaissances sur la transformation de votre expérience Linux avec le gestionnaire de paquets Oh My Fish. De plus, vous avez appris comment découvrir et installer facilement de nouveaux plugins et thèmes, élargissant ainsi la fonctionnalité et l’esthétique de votre environnement fish shell.

Maintenant que vous avez exploré les bases de l’interpréteur de commandes fish, plongez plus profondément et débloquez tout son potentiel. Pourquoi ne pas expérimenter avec des invites personnalisées comme Powerline ou Starship pour donner à votre shell une touche personnalisée?

Source:
https://adamtheautomator.com/fish-shell/