Comment modifier les couleurs des répertoires et des fichiers dans la commande ls

Si vous avez exécuté le ls dans Bash, vous remarquerez que les répertoires et fichiers que vous voyez sont colorisés en fonction de leur type. Vous pouvez personnaliser votre propre jeu de couleurs pour choisir différentes couleurs de texte, couleurs d’arrière-plan et mise en forme telle que gras et souligné.

Comment ça marche

Le schéma de couleurs est stocké dans la variable LS_COLORS. Pour afficher votre jeu de couleurs actuel, vous pouvez dire au Bash d’imprimer le contenu de la variable:

echo $LS_COLORS

Vous verrez une longue liste de types de fichiers et de codes numériques. Nous vous expliquerons comment créer vous-même une liste comme celle-ci.

Avant de jouer avec cela, nous vous recommandons de sauvegarder le contenu actuel de la variable LS_COLORS dans une autre variable. Cela vous permettra de restaurer rapidement les paramètres par défaut sans vous déconnecter du shell et vous reconnecter, ou fermer et rouvrir la fenêtre du terminal. Pour enregistrer le contenu actuel de la variable LS_COLORS dans une nouvelle variable nommée ORIGINAL, exécutez:

ORIGINAL=$LS_COLORS

À tout moment, vous pouvez exécuter la commande suivante pour annuler vos modifications et restaurer les couleurs par défaut:

LS_COLORS=$ORIGINAL

Vos modifications sont toujours temporaires jusqu’à ce que vous modifiiez un fichier pour en faire vos nouvelles valeurs par défaut. Vous pouvez toujours vous déconnecter et vous reconnecter ou fermer et rouvrir une fenêtre de terminal pour restaurer les couleurs à leur paramètre par défaut. Cependant, cela permet de le faire facilement avec une seule commande rapide.

Comment définir des couleurs personnalisées

La variable LS_COLORS contient une liste de types de fichiers ainsi que les codes de couleur associés. La liste par défaut est longue car elle spécifie des couleurs différentes pour un certain nombre de types de fichiers différents.

Commençons par un exemple de base pour montrer comment cela fonctionne. Disons que nous voulons changer la couleur des répertoires du bleu gras par défaut au rouge gras. Nous pouvons exécuter la commande suivante pour ce faire:

LS_COLORS="di=1;31"

le di=1;31 peu dit ls que les répertoires (di) sont (=) audacieux (1;) rouge (31).

Cependant, il ne s’agit que d’une variable LS_COLORS très simple qui définit les répertoires comme une couleur et laisse tous les autres types de fichiers comme couleur par défaut. Disons que nous voulons également faire des fichiers avec l’extension de fichier .desktop une couleur cyan soulignée. Nous pouvons exécuter la commande suivante pour ce faire:

LS_COLORS="di=1:31:*.desktop=4;36"

Cela raconte ls que les répertoires (di) sont (=) audacieux (1;) rouge (31) et (:) tout fichier se terminant par .desktop (*.desktop) est (=) souligné (4;) cyan (36).

En relation :  Comment réactiver automatiquement votre Wi-Fi dans Windows 10

Il s’agit du processus d’assemblage de votre liste de types de fichiers et de couleurs. Spécifiez-en autant que vous le souhaitez sous la forme filetype = color, en les séparant par un caractère deux-points (:).

Bientôt: Comment personnaliser (et coloriser) votre invite Bash

Pour assembler votre propre liste, il vous suffit de connaître la liste des codes de couleur et des codes de type de fichier. Cela utilise les mêmes codes de couleur numériques que vous utilisez lors du changement de couleur dans votre invite Bash.

Voici la liste des codes de couleur pour le texte de premier plan:

  • Noir: 30
  • Bleu: 34
  • Cyan: 36
  • Vert: 32
  • Violet: 35
  • Rouge: 31
  • Blanc: 37
  • Jaune: 33

Par exemple, comme le texte jaune correspond au code couleur 33, vous utiliseriez di=33 pour rendre les répertoires jaunes.

Voici la liste des attributs de couleur du texte:

  • Texte normal: 0
  • Texte gras ou clair: 1 (Cela dépend de l’émulateur de terminal.)
  • Texte estompé: 2
  • Texte souligné: 4
  • Texte clignotant: 5 (Cela ne fonctionne pas dans la plupart des émulateurs de terminal.)
  • Texte inversé: 7 (Cela inverse les couleurs de premier plan et d’arrière-plan, vous verrez donc du texte noir sur fond blanc si le texte actuel est du texte blanc sur fond noir.)
  • Texte caché: 8

Lorsque vous spécifiez un attribut ou plusieurs codes de couleur, séparez la liste des codes par un caractère point-virgule (;). Vous n’avez pas besoin de spécifier 0 pour le texte normal, car le texte normal est utilisé lorsque vous ne spécifiez pas d’attribut ici.

Par exemple, puisque le texte en gras est le code de couleur 1 et le texte jaune est le code de couleur 33, vous utiliseriez di=1;33 pour rendre les répertoires jaunes gras. Vous pouvez également spécifier plusieurs attributs. Par exemple, vous pouvez utiliser di=1;4;33 pour rendre les répertoires gras, soulignés en jaune.

Voici la liste des codes de couleur d’arrière-plan:

  • Fond noir: 40
  • Fond bleu: 44
  • Fond cyan: 46
  • Fond vert: 42
  • Fond violet: 45
  • Fond rouge: 41
  • Fond blanc: 47
  • Fond jaune: 43

Par exemple, comme un arrière-plan bleu correspond au code de couleur 44, vous utiliseriez di=44 pour utiliser un fond bleu pour les répertoires. Vous pouvez également combiner un code de couleur d’arrière-plan, un code de couleur de premier plan et autant d’attributs que vous le souhaitez. Par exemple, di=1;4;33;44 vous donnerait un texte jaune gras et souligné sur un fond bleu.

Voici la liste des codes de type de fichier:

  • Annuaire: di
  • Fichier: fi
  • Lien symbolique: ln
  • Tuyau nommé (FIFO): pi
  • Prise: donc
  • Bloquer le périphérique: bd
  • Dispositif de caractère: cd
  • Lien symbolique orphelin (pointe vers un fichier qui n’existe plus): ou
  • Fichier manquant (un fichier manquant vers lequel pointe un lien symbolique orphelin): mi
  • Fichier exécutable (a l’autorisation «x»): ex
  • * .extension: tout fichier se terminant par une extension que vous spécifiez. Par exemple, utilisez * .txt pour les fichiers se terminant par .txt, * .mp3 pour les fichiers se terminant par .mp3, * .desktop pour les fichiers se terminant par .desktop, ou tout autre élément de votre choix. Vous pouvez spécifier autant d’extensions de fichiers que vous le souhaitez.
En relation :  Comment transformer votre iPhone ou iPad en raccourci à distance pour votre Mac avec Alfred

Spécifiez autant de types différents de codes de type de fichier avec autant de couleurs différentes que vous le souhaitez, séparés par le caractère:. Répétez ce processus pour assembler votre variable LS_COLORS.

Par exemple, disons que vous souhaitez utiliser du texte violet gras pour les répertoires, du texte rouge souligné pour les fichiers exécutables et du texte vert gras sur fond rouge pour les fichiers .mp3. En rassemblant les codes de type de fichier et les codes de couleur des listes ci-dessus, vous obtiendrez:

LS_COLORS="di=1;35:ex=4;31:*.mp3=1;32;41"

Comment définir vos nouvelles couleurs par défaut

Vous avez maintenant une variable LS_COLORS personnalisée qui fonctionne dans la session Bash en cours. Cependant, vous voulez probablement le rendre permanent afin qu’il soit automatiquement utilisé chaque fois que vous démarrez une nouvelle session Bash sans que vous ayez à vous en souvenir.

Vous pouvez définir votre variable LS_COLORS personnalisée – et toute autre variable Bash de votre choix – en l’ajoutant au fichier .bashrc de votre compte utilisateur. Ce fichier se trouve dans ~ / .bashrc. Donc, si votre nom d’utilisateur est bob, vous le trouverez dans /home/bob/.bashrc. Il existe également d’autres façons de définir des variables d’environnement, mais celle-ci est simple.

Tout d’abord, ouvrez ce fichier dans votre éditeur de texte préféré. Nous utiliserons nano ici comme exemple, mais vous pouvez utiliser vi, emacs ou tout ce que vous voulez.

nano ~/.bashrc

Ajoutez votre variable LS_COLORS personnalisée à une nouvelle ligne à la fin du fichier, comme ceci:

LS_COLORS="di=1;35:ex=4;31:*.mp3=1;32;41"

Enregistrez le fichier et quittez. Dans nano, appuyez sur Ctrl + O, puis appuyez sur Entrée pour enregistrer, puis appuyez sur Ctrl + X pour quitter.

Chaque fois que vous démarrez une nouvelle session Bash, Bash lira le fichier .bashrc et définira automatiquement votre variable LS_COLORS. Pour changer vos couleurs à l’avenir, retournez dans votre fichier .bashrc et éditez la ligne LS_COLORS.

Vous pouvez également simplement supprimer le LS_COLORS= ligne que vous avez ajoutée à votre fichier .bashrc pour utiliser à nouveau les couleurs par défaut. Si vous ne définissez pas la valeur LS_COLORS, Bash utilisera les couleurs par défaut.

Moyens Staff
Moyens I/O Staff vous a motivé, donner des conseils sur la technologie, le développement personnel, le style de vie et des stratégies qui vous aider.