¿Cómo puedo configurar Mac Terminal para tener una salida de color ls?

¿Cómo puedo configurar Mac Terminal para tener una salida de color ls? Estoy usando macOS 10.5

Esta es una gran pregunta... Siempre esperé que ls --color (a la gnu ls) funcionara en todas partes. MacOS no acepta --color, así que asumí que no tenía salida en color como opción.

Respuestas (12)

Editar:

~/.bash_profile

o

~/.profile

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

export CLICOLOR=1

Para personalizar el color que se muestra ls, puede agregar opcionalmente 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 una terminal típica de Linux:

    export LSCOLORS=ExGxBxDxCxEgEdxbxgxcxd
    

Una vez que haya agregado lo anterior a cualquiera de los dos ~/.bash_profile, ~/.profilepuede cerrar sesión/iniciar sesión u obtener el archivo en su shell, por ejemplo:

$ . ~/.bash_profile

NOTA: Si necesita ayuda para seleccionar los colores que utilizará, 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?
Encontré esto (y voté a favor) en julio de 2015, cuando ejecutaba Mavericks. Ahora en El Capitan (usando el mismo .profilearchivo, ya no funciona. Puedo verificar los valores usando echo $LSCOLORS $CLICOLORy están definidos pero ya no funciona. ¿Por qué este sería el caso?
@JamieCook Encuentro que los colores de Mikulas son más consistentes con Linux. Específicamente, un enlace simbólico roto debe ser de color rojo oscuro. Con su lscolors es azul... este no es un problema menor.
No funciona en mac sierra y posteriores.
@RayFoss de hecho, ese no es un problema menor, 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
@StevieG Trabaja para mí en High Sierra. Asegúrese de configurarlo correctamente: echo $CLICOLOR¿debería dar 1?
El valor predeterminado en Mac es en realidad LSCOLORS=exfxcxdxbxegedabagacad Fuente: freebsd.org/cgi/man.cgi?ls
Tenga en cuenta que .zprofilese puede usar para las mismas dos líneas, si está usando zsh.

Puedes añadir

alias ls='ls -G'

a su para obtener una salida ~/.bash_profilede color .ls

El mío es alias ls="ls -Gp" — el -p agrega una barra después de cada directorio. Para mí, proporciona mucha más diferenciación visual, lo cual es útil.
Veo tu -py te levanto un -Fque además pone un *after ejecutables, |after pipes, @after symlinks, etcétera.
Solo por diversión, agregue una -h, que formateará los tamaños en unidades "legibles por humanos", es decir, 100b 10k, 23m, 4.2g
Si aún no tiene un .bash_profile en ~/.bash_profile, asegúrese de obtenerlo para que funcione. Haz esto con "fuente ~/.bash_profile"
No sé si esto ha cambiado desde 2011, pero puede reemplazar el alias con export CLICOLOR=1para lograr lo mismo.
Para que conste, generalmente prefiero no hacerlo alias ls, porque 1) Si realmente memoriza los parámetros de la línea de comandos (que no son tan difíciles de recordar y escribir), podrá lograr el mismo comportamiento y salida en múltiples sistemas. donde no mantiene un personal actualizado .bash_profile, y 2) porque muchas veces me gusta canalizar mi lssalida a otros comandos para ejecutar operaciones en archivos/directorios en la salida, que siempre falla si hay un *o un @incluido en el nombres de archivo (sin primero canalizar tro sedeliminar los caracteres no deseados).
está bien. entonces aconsejo poner -ta ordenar por fecha

Encuentro que todo lo que realmente necesito es agregar esto a mi ~/.bash_profileo ~/.bashrc(para Bash) o ~/.zshrc(para Zsh, el nuevo shell predeterminado en Catalina)

export CLICOLOR=1
o ~/.bashrc.
no parece funcionar en capitan):
Trabajó como un jefe en El Capitán para mí, gracias por publicar @Filype
Tiene que: 1. cerrar su terminal y volver a abrir, 2. recuperar el archivo de configuración: . ~/.bash_profileo 3. cerrar sesión/iniciar sesión

Si desea un esquema de color de Mac OS X Terminal legible, puede consultar 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:

A partir de Mac OS X Lion 10.7, Terminal permite personalizar los colores ANSI, por lo que ya no es necesario utilizar SIMBL u otras extensiones. También admite 256 colores.

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 normal 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

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 impulsado por la comunidad para administrar su configuración de Zsh.

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

ingrese la descripción de la imagen aquí

Este es un hermoso tema de color. ¿Puedo usar este tema de color en mi bash?
Hmm, probablemente deberías miraroh-my-bash
Súper tarde para la fiesta... pero ¿recuerdas qué tema se está usando en tu captura de pantalla?
@EricHarlan tienes todo el tema allí github.com/ohmyzsh/ohmyzsh/wiki/Themes

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

Puede obtenerlo a través de Rudix o Homebrew ( brew info coreutils) o Macports o Fink. Eso podría ser preferible a 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.

ACTUALIZACIÓN: Me cambié a Oh my zsh hace un año y es increíble. Mi tema favorito es lambda-mod y mi versión del mismo.


Combinando 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í

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 del indicador cambiando los mcódigos (p. ej 34m.), 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

export CLICOLOR=1Para la versión de Catalina, debe agregar ~/.zshrc.

Si desea ajustar la paleta de colores, cambie el tema de colores en la configuración del terminal.

esta es la respuesta más actualizada para Catalina con zsh.

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

Creo que cualquiera que tenga la experiencia suficiente para saber que lspuede tener una salida en color también puede ejecutar algunos comandos de Unix para configurarlo correctamente.
Pero esto solo hace que ls se muestre en un color, no hace que los enlaces, directorios, archivos se muestren en diferentes colores como ls puede hacer

Absolutamente nada me funcionó. Eventualmente encontré una solución muy extraña que arregló todo.

Abrí ~/Library/Preferences/com.apple.Terminal.plisty busqué 'terminal' con Ctrl+F. Eliminé una sección que decía 'DisableColor' o algo así.