Comment puis-je configurer le terminal Mac pour avoir une sortie couleur ls?

336

Comment puis-je configurer le terminal Mac pour avoir une sortie couleur ls? J'utilise MacOS 10.5

bmike
la source
5
C'est une excellente question ... Je m'attendais toujours à ce que ls --color (à la gnu ls) fonctionne partout. MacOS n'accepte pas l'option --color. J'ai donc supposé que la sortie couleur n'était pas une option.
Armentage

Réponses:

370

Modifier:

~/.bash_profile

ou

~/.profile

et ajoutez la ligne suivante pour activer simplement la sortie couleur via ls:

export CLICOLOR=1

Pour personnaliser la coloration affichée, lsvous pouvez éventuellement ajouter cette variable LSCOLORS.

Exemples

  • Défaut

    export LSCOLORS=ExFxCxDxBxegedabagacad
  • Vous pouvez utiliser ceci si vous utilisez un fond noir

    export LSCOLORS=gxBxhxDxfxhxhxhxhxcxcx
  • Si vous souhaitez imiter les couleurs d'un terminal Linux typique:

    export LSCOLORS=ExGxBxDxCxEgEdxbxgxcxd

Une fois que vous avez ajouter ci - dessus soit ~/.bash_profileou ~/.profilevous pouvez déconnecter / login ou localiser le fichier dans votre shell, par exemple:

$ . ~/.bash_profile

REMARQUE: Si vous avez besoin d'aide pour sélectionner les couleurs, utilisez cet outil en ligne appelé LSCOLORS Generator .

slm
la source
Existe-t-il un moyen de rendre le texte coloré non gras?
MemphiZ
1
@JamieCook Je trouve les couleurs de Mikulas plus compatibles avec Linux. Plus précisément, un lien symbolique brisé doit être rouge foncé. Avec vos couleurs, c'est bleu ... ce n'est pas un petit problème.
Ray Foss
1
Ne fonctionne pas sur mac sierra et plus tard
Stevie G
1
@RayFoss n'est certes pas un problème mineur, mais OS X ne peut pas faire la différence entre les liens symboliques valides et rompus par défaut. La seule alternative viable consiste à utiliser gnu ls
Ciprian Tomoiagă
2
@StevieG Travaille pour moi sur High Sierra. Assurez-vous que vous le définissez correctement: echo $CLICOLORdevrait donner 1?
Franklin Yu
192

Vous pouvez ajouter

alias ls='ls -G'

à votre ~/.bash_profilepour obtenir une lssortie colorée .

Barry Wark
la source
41
Le mien est alias ls = "ls -Gp" - le -p ajoute une barre oblique après chaque répertoire. Pour moi, cela offre une différenciation beaucoup plus visuelle, ce qui est utile.
Quinn Taylor
39
Je vois votre -pet vous soulève un -Fqui met en outre un *après exécutables, |après des tubes, @après des liens symboliques, et cetera.
25
Juste pour le plaisir, jetez un -h, qui formatera les tailles en unités "lisibles par l'homme", c'est-à-dire 100b 10k, 23m, 4.2g
Armentage
3
Si vous n'avez pas déjà un fichier .bash_profile dans ~ / .bash_profile, assurez-vous de le sourcener, pour que cela fonctionne. Faites ceci avec "source ~ / .bash_profile"
y3sh le
2
Je ne sais pas si cela a changé depuis 2011, mais vous pouvez remplacer l'alias par export CLICOLOR=1pour accomplir la même chose.
David Lord
25

Je trouve que tout ce dont j'ai besoin, c’est d’ajouter cela à ma ~/.bash_profile

export CLICOLOR=1
Type de fichier
la source
Ou ~/.bashrc.
Chris Page
ne semble pas fonctionner sur capitan):
drevicko
1
J'ai travaillé comme un patron à El Captian pour moi, merci d'avoir posté @Filype
fusion27
Vous devez soit: 1. Fermez terminal et vous rouvrir, 2. ressource le fichier de configuration: . ~/.bash_profileou 3. Déconnexion / connexion
slm
13

Si vous voulez un jeu de couleurs lisible pour le terminal Mac OS X, vous voudrez peut-être examiner ceci:

Je l'utilise depuis plus d'un an maintenant et je ne pourrais peut-être pas fonctionner sans!

Voici un lien mis à jour:

Jeff
la source
6
À partir de Mac OS X Lion 10.7, Terminal permet de personnaliser les couleurs ANSI. Ainsi, l’utilisation de SIMBL ou d’autres extensions n’est plus nécessaire. Il supporte également 256 couleurs.
Chris Page
12

Vous pouvez également personnaliser la couleur de l'invite (et son format) en ajoutant:

PS1='\[\e[0;33m\]\h:\W \u\$\[\e[m\] '

à ~/.bash_profileou ~/.profiledéposer. Où 0;33est le jaune régulier qui a l'air bien dans ma fenêtre de terminal noir / semi-transparent.

Voici une liste complète des couleurs et de leurs explications: https://wiki.archlinux.org/index.php/Color_Bash_Prompt

Ma fenêtre de terminal génial

nacho4d
la source
8

Une autre option consiste à utiliser GNU, lsqui fait partie du programme «coreutils».

Vous pouvez l'obtenir via Rudix ou Homebrew ( brew info coreutils), Macports ou Fink. Cela peut être préférable à l’utilisation d’une solution «Mac OS X uniquement» si vous utilisez les mêmes fichiers de configuration d’environnement shell sur différents systèmes ou si vous êtes déjà familiarisé avec GNU ls.

TJ Luoma
la source
7

Personnellement, j'utilise Oh My Zsh pour ajouter de la couleur et d'autres astuces à mon terminal. Je pense que c'est le moyen le plus simple.

oh-my-zsh est un framework open source, géré par la communauté, permettant de gérer votre configuration Zsh.

Il est livré avec une tonne de fonctions utiles, d’aides, de plug-ins, de thèmes et de quelques éléments qui vous font crier…

entrez la description de l'image ici

StrawHara
la source
4

Ajoutez simplement la ligne suivante au ~/.bash_profilefichier:

export PS1=" \[\033[34m\]\u@\h \[\033[33m\]\w\[\033[31m\]\[\033[00m\] $ "

Aperçu: entrez la description de l'image ici

Ce sont mes couleurs préférées. Vous pouvez personnaliser chaque partie de la couleur de l'invite en modifiant les mcodes (par exemple 34m), qui sont des codes de couleur ANSI.

Liste des codes de couleur ANSI:

  • Noir: 30m
  • Rouge: 31m
  • Vert: 32m
  • Jaune: 33m
  • Bleu: 34m
  • Violet: 35m
  • Cyan: 36m
  • Blanc: 37m
Shayan Amani
la source
4

En combinant toutes les réponses, voici ce que j'utilise:

COLOR_RED="\033[0;31m"
COLOR_YELLOW="\033[0;33m"
COLOR_GREEN="\033[0;32m"
COLOR_OCHRE="\033[38;5;95m"
COLOR_BLUE="\033[0;34m"
COLOR_WHITE="\033[0;37m"
COLOR_RESET="\033[0m"

#git_color
function git_color {
  local git_status="$(git status 2> /dev/null)"

  if [[ ! $git_status =~ "working directory clean" ]]; then
    echo -e $COLOR_RED
  elif [[ $git_status =~ "Your branch is ahead of" ]]; then
    echo -e $COLOR_YELLOW
  elif [[ $git_status =~ "nothing to commit" ]]; then
    echo -e $COLOR_GREEN
  else
    echo -e $COLOR_OCHRE
  fi
}

#git_branch
function git_branch {
  local git_status="$(git status 2> /dev/null)"
  local on_branch="On branch ([^${IFS}]*)"
  local on_commit="HEAD detached at ([^${IFS}]*)"

  if [[ $git_status =~ $on_branch ]]; then
    local branch=${BASH_REMATCH[1]}
    echo "($branch)"
  elif [[ $git_status =~ $on_commit ]]; then
    local commit=${BASH_REMATCH[1]}
    echo "($commit)"
  fi
}

PS1='\[\033[01;32m\]\u\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]'
PS1+="\[\$(git_color)\]"        # colors git status
PS1+="\$(git_branch)"           # prints current branch
PS1+="\[$COLOR_BLUE\]\[$COLOR_RESET\]\$ "
export PS1

export LC_ALL=en_US.UTF-8
export CLICOLOR=1
export LSCOLORS=gxBxhxDxfxhxhxhxhxcxcx
alias ls="ls -Gp"

entrez la description de l'image ici

Sand1512
la source
3

Oubliez tous ces codes cryptiques vieux de plusieurs décennies, utilisez le volet intégré Terminal -> Préférences ... Paramètres pour définir le skin par défaut et modifiez les couleurs ANSI à votre guise. Vous pouvez également définir la police. Je préfère Menlo 12pt. C’est ainsi que tout habitué de Joe peut le faire et éviter toute la folle façon de faire les choses en ligne de commande, comme le font d’autres affiches, comme le suggèrent d’autres affiches.

Geoff Hoffman
la source
12
Je pense que toute personne assez expérimentée pour savoir même qu’une lssortie en couleur peut aussi exécuter quelques commandes Unix pour le configurer correctement.
nohillside
7
Mais cela fait que ls s'affiche dans une couleur et non dans les liens, les répertoires, les fichiers sont affichés dans des couleurs différentes, comme le peut le faire
Mark