¿Cómo puedo configurar Mac Terminal para que tenga salida de color ls?


Respuestas:


370

Editar:

~/.bash_profile

o

~/.profile

y agregue la siguiente línea para habilitar simplemente la salida de color a través de ls:

export CLICOLOR=1

Para personalizar el color mostrado por lsopcional, puede agregar esta variable, LSCOLORS.

Ejemplos

  • Defecto

    export LSCOLORS=ExFxCxDxBxegedabagacad
  • Puede usar esto si está usando un fondo negro

    export LSCOLORS=gxBxhxDxfxhxhxhxhxcxcx
  • Si desea imitar los colores de un terminal típico de Linux:

    export LSCOLORS=ExGxBxDxCxEgEdxbxgxcxd

Una vez que haya agregado lo anterior a cualquiera, ~/.bash_profileo bien ~/.profile, puede cerrar sesión / iniciar sesión o obtener el archivo en su shell, por ejemplo:

$ . ~/.bash_profile

NOTA: Si necesita ayuda para seleccionar colores para usar, puede usar esta herramienta en línea llamada LSCOLORS Generator .


¿Hay alguna manera de hacer que el texto en color no se vea en negrita?
MemphiZ el

1
@JamieCook Encuentro que los colores de Mikulas son más consistentes en Linux. Específicamente, un enlace simbólico roto debe ser rojo oscuro. Con sus colores es azul ... este no es un problema menor.
Ray Foss

1
No funciona en mac sierra y versiones posteriores
Stevie G

1
@RayFoss, de hecho, no es un problema pequeño, pero OS X no puede hacer una diferencia entre enlaces simbólicos válidos y rotos de forma predeterminada. La única alternativa viable es usar gnu ls
Ciprian Tomoiagă

2
@StevieG funciona para mí en High Sierra. Asegúrese de configurarlo correctamente: ¿ echo $CLICOLORdebería dar 1?
Franklin Yu

192

Puedes añadir

alias ls='ls -G'

a su ~/.bash_profilepara obtener lssalida de color .


41
El mío es alias ls = "ls -Gp" - el -p agrega una barra diagonal después de cada directorio. Para mí, proporciona mucha más diferenciación visual, lo cual es útil.
Quinn Taylor

39
Veo tu -py te planteo un -Fque además pone un *ejecutable |después , después de tuberías, @después de enlaces simbólicos, etc.

25
Solo por diversión, agregue una -h, que formateará los tamaños en unidades "legibles para humanos", es decir, 100b 10k, 23m,
4.2g

3
Si aún no tiene un .bash_profile en ~ / .bash_profile, asegúrese de encontrarlo, para que funcione. Haga esto con "source ~ / .bash_profile"
y3sh

2
No sé si esto ha cambiado desde 2011, pero puede reemplazar el alias export CLICOLOR=1por lograr lo mismo.
David Lord,

25

Me parece que todo lo que realmente necesito es agregar esto a mi ~/.bash_profile

export CLICOLOR=1

O ~/.bashrc.
Chris Page

no parece funcionar en capitan):
drevicko

1
Trabajé como un jefe en El Captian para mí, gracias por publicar @Filype
fusion27

Tiene que: 1. cerrar su terminal y volver a abrir, 2. proporcionar recursos al archivo de configuración . ~/.bash_profile, o 3. cerrar sesión / iniciar sesión
slm

13

Si desea un esquema de color legible de Mac OS X Terminal, puede considerar esto:

He estado usando esto durante más de un año, ¡y es posible que no pueda funcionar sin él!

Aquí hay un enlace actualizado:


66
A partir de Mac OS X Lion 10.7, Terminal permite personalizar los colores ANSI, por lo que ya no es necesario usar SIMBL u otras extensiones. También es compatible con 256 colores.
Chris Page

12

También puede personalizar el color del indicador (y su formato) agregando:

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

a ~/.bash_profileo ~/.profilearchivo. ¿Dónde 0;33está el amarillo regular que se ve bien en mi ventana de terminal negra / semitransparente?

Aquí hay una lista completa de colores y sus explicaciones: https://wiki.archlinux.org/index.php/Color_Bash_Prompt

Mi impresionante ventana de terminal


8

Otra opción es usar GNU, lsque es parte del programa 'coreutils'.

Puede obtenerlo a través de Rudix o Homebrew ( brew info coreutils) o Macports o Fink. Puede ser preferible usar una solución "solo para Mac OS X" si usa los mismos archivos de configuración de shell en diferentes sistemas o si ya está familiarizado con GNU ls.



7

Personalmente, estoy usando Oh My Zsh para agregar color y otros trucos a mi Terminal. Creo que esa es la forma más fácil.

oh-my-zsh es un marco de código abierto dirigido por la comunidad para administrar su configuración de Zsh.

Viene incluido con un montón de funciones útiles, ayudantes, complementos, temas y algunas cosas que te hacen gritar ...

ingrese la descripción de la imagen aquí


4

Simplemente agregue la siguiente línea al ~/.bash_profilearchivo:

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

Avance: ingrese la descripción de la imagen aquí

Este es mi color preferido. Puede personalizar cada parte del color de la solicitud cambiando los mcódigos (p 34m. Ej. ) Que son códigos de color ANSI.

Lista de códigos de colores ANSI:

  • Negro: 30m
  • Rojo: 31m
  • Verde: 32m
  • Amarillo: 33m
  • Azul: 34m
  • Púrpura: 35m
  • Cian: 36m
  • Blanco: 37m

4

La combinación de todas las respuestas aquí es lo que uso:

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"

ingrese la descripción de la imagen aquí


3

Olvídese de todos esos códigos crípticos de décadas por el amor de Dios, use el panel integrado Terminal -> Preferencias ... Configuración para configurar la máscara predeterminada y edite los colores ANSI a su gusto. También puedes configurar la fuente. Prefiero Menlo 12pt. Así es como cualquier Joe normal puede hacerlo, y evitar toda la línea loca de línea de comandos, una forma unix-esque de hacer las cosas como otros carteles han sugerido.


12
Creo que cualquiera que lstenga la experiencia suficiente para saber que puede tener una salida en color también puede ejecutar algunos comandos de Unix para configurarlo correctamente.
nohillside

77
Pero esto sólo hace ls muestran en un color que no tiene enlaces, directorios, archivos muestran en diferentes colores como ls pueden hacer
Marcos