Il y a deux répertoires affichés par « ls ». Normalement, les répertoires nimporte où sont bleus sur fond noir. Mais le premier est bleu sur vert et impossible à lire. Pourquoi est-ce? Comment le rendre bleu sur noir, ou au moins quelque chose de clair sur quelque chose de sombre?
Cest sur Ubuntu 12.04, en utilisant bash dans Gnome Terminal. Dans Konsole, le bleu est légèrement plus foncé et peut être lu, mais pourrait être bien meilleur.
Réponse
En dehors de la coloration les fichiers en fonction de leur type (turquoise pour les fichiers audio, rouge vif pour les archives et les fichiers compressés, et violet pour les images et les vidéos), ls
colore également les fichiers et répertoires en fonction de leurs attributs:
- Un texte noir avec un arrière-plan vert indique quun répertoire est accessible en écriture par dautres personnes en dehors de lutilisateur et du groupe propriétaires, et a le bit sticky défini (
o+w, +t
) . - Le texte bleu sur fond vert indique qu’un répertoire est accessible en écriture par d’autres personnes en dehors de l’utilisateur et du groupe propriétaire, et n’a pas le bit sticky défini (
o+w, -t
).
Stephano Palazzo à Ask Ubuntu a fait cette image très instructive sur les différentes couleurs dattributs:
Comme la souligné terdon , les paramètres de couleur peuvent être modifiés via dircolors
. Une liste des différents paramètres de coloration est accessible avec dircolors --print-database
.
Chaque ligne de sortie, telle que BLK 40;33;01
, est de la forme:
[TARGET] [TEXT_STYLE];[FOREGROUND_COLOR];[BACKGROUND_COLOR]
-
TARGET
indique la cible de la règle de coloration -
TEXT_STYLE
indique le style de texte:-
00
= aucun -
01
= bold -
04
= underscore -
05
= blink -
07
= reverse, -
08
= masqué
-
-
FOREGROUND_COLOR
indique la couleur de premier plan:-
30
= noir -
31
= rouge -
32
= vert -
33
= jaune -
34
= bleu, -
35
= magenta -
36
= cyan -
37
= blanc
-
-
BACKGROUND_COLOR
indique les couleurs darrière-plan:-
40
= noir -
41
= rouge -
42
= vert -
43
= jaune -
44
= bleu, -
45
= magenta -
46
= cyan -
47
= blanc
-
Les champs peuvent être omis en commençant par la droite, donc par exemple .tar 01;31
signifie gras et rouge.
XTerm et la plupart des autres émulateurs de terminaux modernes prennent en charge 256 couleurs.
Un code couleur de premier plan XTerm 256 couleurs est de la forme:
38;5;[FOREGROUND_COLOR]
Un code couleur darrière-plan XTerm 256 couleurs est de la formulaire:
48;5;[BACKGROUND_COLOR]
où FOREGROUND_COLOR
et BACKGROUND_COLOR
est un numérotez la plage de 0 à 255. Une liste complète des codes de couleur pour les modes de couleur 16 et 256 est indiquée dans la capture décran ci-dessous:
Commentaires
Réponse
Les couleurs de ls
peuvent représenter les permissions , la valeur par défaut pour certains systèmes est dafficher les répertoires sur lesquels tout le monde a les droits décriture sur fond vert:
Vous pouvez changer les couleurs en modifiant votre variable $LS_COLORS
à laide de dircolors
(à partir de man ls
):
Using color to distinguish file types is disabled both by default and with --color=never. With --color=auto, ls emits color codes only when standard output is connected to a terminal. The LS_COLORS environment variable can change the settings. Use the dircolors command to set it.
La syntaxe est certes un peu ennuyeuse ici mais vous pouvez changer cette couleur en créant un fichier avec les couleurs que vous voulez et en lenregistrant sous ~/.dircolors
:
dircolors -p > ~/.dircolors
Cette commande affichera les valeurs par défaut dans ~/.dircolors
. Vous devrez ensuite éditer ce fichier et changer cette ligne:
OTHER_WRITABLE 34;42 # dir that is other-writable (o+w) and not sticky
Par exemple, pour en faire du texte noir sur fond rouge (voir ici pour une liste des codes de couleur):
OTHER_WRITABLE 30;41 # dir that is other-writable (o+w) and not sticky
Vous navez pas besoin davoir toutes les valeurs par défaut , vous pouvez également créer simplement un fichier avec une seule ligne, en redéfinissant uniquement celui que vous souhaitez modifier. Quoi quil en soit, une fois que vous avez créé le fichier, chargez-le avec:
eval "$(dircolors ~/.dircolors)";
Et le voici en action:
Pour que cela se produise automatiquement, ajoutez le eval
ci-dessus dans votre fichier ~/.bashrc
.
Commentaires
- Les couleurs par défaut semblent souvent indiquer que lauteur original nous déteste et nos yeux cependant …
- Merci. Pourquoi écrivez-vous parfois ~ / .dirname, et parfois ~ / dircolors, et parfois ~ / .dircolors? sont-ils censés être les mêmes?
- Th anks. Pourquoi
eval "$(dircolors ~/dircolors)";
au lieu dune manière plus directe commedircolors ~/dircolors
? - @Tim car dircolors nimprime que les paramètres, vous besoin de lévaluer pour quils soient lus.
- pour quils soient lus par qui?
Réponse
Bien que toutes les réponses techniques soient vraies, je considérerais cela un peu comme un avertissement informel, que vous ayez accordé un peu le droit de copier généreusement ou de copier criss + cross … (le plus souvent, nous le faisons tous , pour faire fonctionner les choses au départ, hein?)
Comment le rendre bleu sur noir, …?
Voici cette déclaration:
chmod -R a-x,o-w,+X thatGreenFolderWithSubfolders/
pour revenir aux droits que vous souhaitez probablement. Mieux comprendre ce quil fait, si vous comprenez le but des majuscules + X «exécution spéciale», cest-à-dire voir Wikipédia
Il nest vraiment utile que lorsquil est utilisé avec « + » et généralement en combinaison avec loption -R pour donner à un groupe ou à un autre accès à une grande arborescence de répertoires sans définir lautorisation dexécution sur les fichiers normaux (tels que les fichiers texte), ce qui se produirait normalement si vous utilisiez simplement « chmod -R a + rx …
Réponse
Voici les 3 étapes que jai utilisées pour changer les couleurs:
Copiez dabord les couleurs par défaut dans un fichier
dircolors -p > ~/.dircolors
Puis modifiez ce fichier. Vous pouvez trouver quelques valeurs pour les couleurs à lintérieur, et en voici dautres:
Code Color 0 Default Colour 1 Bold 4 Underlined 5 Flashing Text 7 Reverse Field 31 Red 32 Green 33 Orange 34 Blue 35 Purple 36 Cyan 37 Grey 40 Black Background 41 Red Background 42 Green Background 43 Orange Background 44 Blue Background 45 Purple Background 46 Cyan Background 47 Grey Background 90 Dark Grey 91 Light Red 92 Light Green 93 Yellow 94 Light Blue 95 Light Purple 96 Turquoise 100 Dark Grey Background 101 Light Red Background 102 Light Green Background 103 Yellow Background 104 Light Blue Background 105 Light Purple Background 106 Turquoise Background
( source )
Et enfin, ajoutez la ligne suivante à votre fichier ~/.bashrc
pour que les couleurs soient automatiquement chargées lorsque vous ouvrez un terminal:
eval "dircolors ~/.dircolors" > /dev/null
Pour ~/.zshrc
:
if [[ -f ~/.dircolors ]] ; then eval $(dircolors -b ~/.dircolors) elif [[ -f /etc/DIR_COLORS ]] ; then eval $(dircolors -b /etc/DIR_COLORS) fi
Réponse
Pour résoudre rapidement le problème, (rendre les autres fichiers inscriptibles jaunes sur nobg):
LS_COLORS+=":ow=01;33"
Remplacez 33
par 34
pour le bleu sur nobg. Encore plus simple, pour le rendre nofg sur nobg:
LS_COLORS+=:ow=
Pour rendre votre modification permanente, ajoutez-la à votre .profile:
echo "export LS_COLORS+=":ow=01;33"" >> ~/.profile
Pour afficher les règles non liées aux extensions de LS_COLORS:
echo "$LS_COLORS" | sed "s/:/\n/g" | grep -v "\*."
sed
place chaque règle sur une ligne et grep
supprime les règles commençant par *.".
À explorez les couleurs ls
sur votre terminal, pensez à utiliser
C="$LS_COLORS" function sc () { echo "$LS_COLORS" | sed "s/:/\n/g" | grep -v "\*." } function t () { ls /mnt # Or the path to your example directory. }
Puis
LS_COLORS="$C:ow=38;5;250;48;5;025";t
Comme indiqué dans une autre réponse (celle de Thomas Nyman), 38;5;
est le préfixe du terme x de premier plan 256 couleurs, et 48;5;
pour 256 couleurs darrière-plan x-term. Cependant, 256 couleurs ne sont pas prises en charge par tous les terminaux.
Voir également -Que signifient les différentes couleurs dans ls? – sur AskUbuntu .
Commentaires
- Jai trouvé en train de déposer
LS_COLORS+=':ow=01;33'
dans mon~/.zshrc
a aidé à désactiver la couleur de fond pour les répertoires dans un git-repo.Ceci est sur une machine Windows 10 avec une distribution Pengwin-WSL. Désormais, tous les répertoires de git-repo sont lisibles.
Réponse
Eh bien, cela signifie que ce dossier a des autorisations si vous exécutez ceci:
сhmod og-w AU_LI
il supprimera bgcolor 🙂
Réponse
Pour résoudre ce problème, essayez le ow au paramètre LS_COLORS
Par exemple:
~LS_COLORS="fi=0:ln=5:pi=0:so=7:bd=5:cd=5:or=31:mi=0:ex=93:*.py=36:di=40:*.zip=33:*.tgz=33" ~ls -l
Maintenant, vous ajoutez le ow (OTHER_WRITABLE
) option
~export LS_COLORS="fi=0:ln=5:pi=0:so=7:bd=5:cd=5:or=31:mi=0:ex=93:*.py=36:di=40:*.zip=33:*.tgz=33:ow=0" ~ls -l
Commentaires
- Si vous souhaitez changer la couleur via .dir_colors, vous pouvez ajouter
OTHER_WRITABLE 34;43
. Merci à: gist.github.com/jmoz/280005/…
Réponse
Vous pouvez changer le ton du vert dans Putty pour rendre le texte lisible.
Ouvrez Putty et allez dans Window \ Colors, sélectionnez « ANSI Green », réglez-le sur un vert plus foncé (R: 0 G: 70 B: 0).
38;5;
commence un code de couleur de premier plan xterm 256 couleurs .48;5;
démarre un code de couleur darrière-plan xterm 256 couleurs. Le cyan dans ma sortie dircolors est38;5;51
pas36
bien que le résultat soit le même.