8 invites utiles et intéressants pour Bash

Un codeur à un ordinateur portable.

Beaucoup de gens ne considèrent pas l’invite de ligne de commande comme un élément utile, ni même ne lui prêtent beaucoup d’attention. Cependant, une invite utile peut changer la façon dont vous utilisez la ligne de commande, et par extension, votre système. Cet article vous présente plusieurs invites Bash utiles et intéressantes avec des exemples. Notez que nous commençons par les invites elles-mêmes, puis offrons quelques instructions supplémentaires sur la façon de travailler avec elles.

Ici, nous vous proposons quelques invites Bash, dont toutes ne seront pas sérieuses. Par exemple, notre première entrée sur la liste pourrait vous apporter un peu de joie lorsque vous utilisez la ligne de commande !

À lire aussi: Commandes Bash de base pour les débutants Linux

1. Afficher un “Kaomoji” lors de l’exécution réussie

Cette invite est amusante mais utile ! L’idée est que tant que vous exécutez des commandes réussies, votre invite affichera un kaomoji heureux.

Affichage de Kaomoji dans l'invite Bash.

En revanche, lorsqu’une commande échoue, vous verrez un kaomoji triste.

Pour appliquer cela, utilisez le code suivant :

PS1="\`if [ \$? = 0 ]; then echo \[\e[33m\]^_^\[\e[0m\]; else echo \[\e[31m\]O_O\[\e[0m\]; fi\`[\u@\h:\w]\\$ "

Cela peut sembler déroutant, mais nous utilisons des instructions if pour déterminer si la commande est bonne ou mauvaise. De là, nous utilisons quelques échappements autour du kaomoji pour nous assurer qu’ils s’affichent correctement.

À lire aussi: Comment utiliser Emacs comme lecteur USENET avec Gnus

2. Changer la couleur de l’invite Bash lorsque le terminal émet une mauvaise commande

Changement de couleurs d'invite.

On peut dire que cette invite est la plus utile de la liste. Comme ci-dessus, l’invite change de couleur si votre dernière commande a échoué, mais elle raccourcit également les chemins longs et contient le numéro d’historique Bash de chaque commande pour une récupération facile.

PROMPT_COMMAND='PS1="\[\033[0;33m\][\!]\`if [[ \$? = "0" ]]; then echo "\\[\\033[32m\\]"; else echo "\\[\\033[31m\\]"; fi\`[\u.\h: \`if [[ `pwd|wc -c|tr -d " "` > 18 ]]; then echo "\\W"; else echo "\\w"; fi\`]\$\[\033[0m\] "; echo -ne "\033]0;`hostname -s`:`pwd`\007"'

Encore une fois, cela peut sembler décourageant à mettre en œuvre, mais c’est assez simple. Nous utilisons encore des instructions if, ainsi que des codes de couleur pour mettre en évidence divers messages.

Vous pouvez rendre ces couleurs comme vous le souhaitez, bien que nous vous conseillons de réfléchir logiquement sur le fait que les couleurs changées devraient vous aider plutôt que d’être modifiées simplement pour le plaisir de faire un changement.

À lire aussi: Comment configurer Leafnode comme serveur USENET hors ligne

3. Étendre vos invites Bash sur plusieurs lignes

Utilisation d'une invite Bash multilignes.

Parfois, vous pouvez vouloir inclure beaucoup d’informations dans vos invites Bash. Si cela vous décrit, cette invite Bash pourrait vous intéresser. Elle affiche la date, l’heure, le chemin complet du répertoire, les noms d’utilisateur et d’hôte, le terminal actif, et même le nombre de fichiers et l’utilisation d’espace.

PS1="\n\[\033[35m\]\$(/bin/date)\n\[\033[32m\]\w\n\[\033[1;31m\]\u@\h: \[\033[1;34m\]\$(/usr/bin/tty | /bin/sed -e 's:/dev/::'): \[\033[1;36m\]\$(/bin/ls -1 | /usr/bin/wc -l | /bin/sed 's: ::g') fichiers \[\033[1;33m\]\$(/bin/ls -lah | /bin/grep -m 1 total | /bin/sed 's/total //')b\[\033[0m\] -> \[\033[0m\]"

Ici, nous n’avons pas besoin d’instructions if, puisque l’invite elle-même aura une mise en page statique, mais un contenu dynamique. Vous pourriez aussi trouver cela difficile à analyser, alors notre conseil est de l’appliquer, puis de passer à travers l’invite morceau par morceau. Avec un peu de référence croisée, vous commencerez à comprendre comment l’invite se combine.

4. Utilisez des couleurs pour rendre votre invite Bash plus lisible

Cette invite n’est rien d’autre qu’une bonne utilisation des couleurs pour séparer les différentes informations. Comme vous pouvez le voir, elle fournit l’heure, les noms d’utilisateur et d’hôte, et le répertoire actuel.

PS1="\[\033[35m\]\t\[\033[m\]-\[\033[36m\]\u\[\033[m\]@\[\033[32m\]\h:\[\033[33;1m\]\w\[\033[m\]\$ "

C’est l’une des invites Bash les plus utiles et c’est un domaine que vous examinerez en premier pour personnaliser votre invite. Elle peut vous donner une bonne base pour apprendre comment fonctionne une invite personnalisée.

5. Afficher le chemin complet du répertoire

Tout comme l’utilisation des couleurs, cette invite est une invite propre et minimale sur deux lignes (bien qu’il y ait une ligne vide en haut).

Affichage du chemin complet du répertoire dans l'invite.

Nous affichons le chemin complet du répertoire de travail sur la première ligne, suivi de l’utilisateur en bas.

PS1="[\[\033[32m\]\w]\[\033[0m\]\n\[\033[1;36m\]\u\[\033[1;33m\]-> \[\033[0m\]"

Si vous ne souhaitez pas utiliser une ligne vide dans l’invite, vous pouvez supprimer le premier \n. Cependant, jouez avec la mise en page et le formatage, car chaque expérience Terminal sera différente en fonction de votre ordinateur et des paramètres de ligne de commande.

6. Afficher un compte de tâches en arrière-plan

Cette invite sur deux lignes affiche des informations que nous n’avons pas encore utilisées dans nos invites Bash. Nous fournissons un compte des tâches en arrière-plan en cours. Cela sera utile si vous multitâchez mais devez garder un œil sur toute activité.

Affichage d'un compte de tâches en arrière-plan.

La première ligne est le nom d’utilisateur et d’hôte, avec le chemin du répertoire de travail. Sur la deuxième ligne, nous avons le numéro d’historique et un compte des tâches en cours d’exécution en arrière-plan.

PS1='\[\e[1;32m\]\u@\H:\[\e[m\] \[\e[1;37m\]\w\[\e[m\]\n\[\e[1;33m\]hist:\! \[\e[0;33m\] \[\e[1;31m\]jobs:\j \$\[\e[m\] '

Il n’y a pas grand-chose à cela, bien que cela puisse vous donner des informations précieuses sur l’activité du système. Vous pourriez même transformer cela en une invite plus complexe et ajouter des instructions if et des codes de couleur pour vous notifier lorsque une tâche atteint certains niveaux.

7. Afficher des informations sur le répertoire de travail

Affichage des informations sur le répertoire de travail.

Avec celui-ci, nous affichons le nom d’utilisateur et d’hôte, le compte de tâches, et la date et l’heure sur la première ligne. En dessous se trouve le répertoire actuel, avec le nombre de fichiers dans le répertoire et quelques informations sur l’utilisation du disque.

PS1="\n\[\e[30;1m\]\[\016\]l\[\017\](\[\e[34;1m\]\u@\h\[\e[30;1m\])-(\[\e[34;1m\]\j\[\e[30;1m\])-(\[\e[34;1m\]\@ \d\[\e[30;1m\])->\[\e[30;1m\]\n\[\016\]m\[\017\]-(\[\[\e[32;1m\]\w\[\e[30;1m\])-(\[\e[32;1m\]\$(/bin/ls -1 | /usr/bin/wc -l | /bin/sed 's: ::g') fichiers, \$(/bin/ls -lah | /bin/grep -m 1 total | /bin/sed 's/total //')b\[\e[30;1m\])--> \[\e[0m\]"

Le plus gros problème avec toutes ces invites est de déterminer ce qui se passe autour du formatage et des échappements. Cependant, comme avec les invites multilignes, vous devriez aborder celle-ci pièce par pièce jusqu’à ce que vous compreniez la structure générale.

Vous pourriez même saisir une partie à la fois et noter si cela s’affiche ou s’il y a des erreurs, et travailler jusqu’au fragment complet.

8. Créez vos propres invites Bash

Une invite Bash personnalisée.

Vous pouvez combiner toutes les précédentes pour créer vos propres invites Bash personnalisées. Par exemple, ceci est une modification du numéro sept dans cette liste, mais changée pour prendre moins d’espace et inclure des informations spécifiques et pertinentes.

Un style sur deux lignes est toujours plus compact, comme vous pouvez le voir le chemin complet sans réduire l’espace pour les commandes que vous utilisez.

PS1="\n\[\e[32;1m\](\[\e[37;1m\]\u\[\e[32;1m\])-(\[\e[37;1m\]jobs:\j\[\e[32;1m\])-(\[\e[37;1m\]\w\[\e[32;1m\])\n(\[\[\e[37;1m\]! \!\[\e[32;1m\])-> \[\e[0m\]"

À ce stade, vous comprendrez probablement ce que fait cette invite, mais notre conseil est d’essayer de créer la vôtre plutôt que de coller celle-ci. De cette façon, vous pouvez commencer à apprendre comment les différents éléments fonctionnent ensemble et vous pourriez même créer vos propres invites Bash personnalisées.

Questions Fréquemment Posées

1. Pourquoi voudrais-je utiliser différentes invites Bash ?

Il y a plusieurs raisons à cela, mais la productivité est une considération clé. Si vous utilisez souvent la ligne de commande, vous verrez votre invite toutes les quelques secondes. Ainsi, si vous mettez les informations les plus importantes dedans, vous pouvez toujours les avoir à portée de main.

Dans de nombreux cas, utiliser une invite Bash personnalisée est plus efficace que d’avoir un grand nombre de fenêtres ouvertes.

2. Comment ajouter ces invites Bash à ma sortie de terminal ?

Pour utiliser l’une de ces invites, vous pouvez copier et coller le code dans votre application Terminal. Cependant, cela ne s’appliquera qu’à la session actuelle, donc en théorie, vous devrez faire cela chaque fois que vous ouvrez le Terminal.

Si vous souhaitez rendre le changement permanent, vous pouvez coller les extraits à la fin de votre fichier ~/.bashrc et redémarrer votre Terminal.

3. Ces invites Bash fonctionneraient-elles également avec d’autres shells ?

Dans de nombreux cas, vous constaterez qu’il existe une compatibilité croisée avec d’autres types de shells. Cependant, il n’y a aucune garantie que les modifications offriront une parité à 100 %.

Si vous jetez un coup d’œil à notre article sur la personnalisation du Terminal Mac, cela utilise zsh. Vous remarquerez qu’il y a des différences mineures mais de nombreuses similitudes.

4. Comment puis-je découvrir quelles informations et éléments je peux ajouter à mes invites Bash ?

Pratiquement n’importe quel élément de votre système peut apparaître dans une invite Bash. Vous voudrez vous renseigner sur les variables Bash, car c’est ainsi que vous “débloquez” ces différents éléments.

Une excellente ressource pour comprendre ce que vous pouvez changer se trouve sur le site Linux.com, et nous vous recommandons de garder cette documentation à portée de main tout au long de vos sessions de personnalisation.

5. Que faire si je ne souhaite plus utiliser d’invites Bash personnalisées dans mon terminal ?

La réponse simple ici est d’ouvrir le fichier de configuration et de supprimer les lignes pertinentes. Vous n’avez pas besoin d’exécuter d’autres commandes, bien que cela vaille la peine de redémarrer votre Terminal si vous ne voyez pas les changements que vous attendez.

Si vous utilisez régulièrement la ligne de commande, ou si vous avez des besoins spécifiques lorsque vous ouvrez une application Terminal, personnaliser l’invite pourrait être une excellente idée. Cela ne nécessite pas beaucoup de connaissances, et dans de nombreux cas, vous pouvez trouver l’invite dont vous avez besoin chez un autre développeur.