44 votos

¿Cómo puedo obtener diferentes colores para los directorios, etc. en iTerm2?

Tengo un nuevo MacBookPro, y he instalado la última versión de iTerm2.

Incluso después de haber importado varios esquemas de color, noto que sólo cambian el color del texto y del fondo.

Lo que esperaba era ver diferentes colores para archivos VS directorios, VS archivos ocultos, etc etc. ¿Cómo puedo hacer eso en iTerm2?

Una pregunta relacionada es cómo puedo realmente especificar ¿Cómo quiero que sean los colores de los directorios, archivos, etc.?

Gracias

0 votos

0 votos

Gracias @JohnN, eso ayudó, pero por favor vea mi edición.

49voto

Douglas Puntos 10417

Tienes que hacer dos cosas:

  • establecer el LSCOLORS variable de entorno
  • crear un alias para ls para que muestre los colores por defecto

En su ~/.bash_profile añade lo siguiente:

export LSCOLORS="EHfxcxdxBxegecabagacad" 

alias ls='ls -lGH'        <-----This shows in list format, follow symlinks colorized

Los colores se establecen por cada bit de arriba; el primero es el primer plano y el segundo el fondo. Los dos primeros caracteres se refieren a los directorios que tienen un primer plano azul intenso y un fondo gris claro.

Sin embargo, hay una gran utilidad en línea para ver lo que significa cada uno de los colores y su aspecto en tiempo real. Incluso te generará el "código". (No estoy afiliado a esto en absoluto). Funciona tanto en MacOS/FreeBSD como en Linux. Asegúrese de seleccionar la opción BSD para MacOS.

Calculadora LSCOLORS


El orden de los atributos es el siguiente:

1\.   directory
2.   symbolic link
3.   socket
4.   pipe
5.   executable
6.   block special
7.   character special
8.   executable with setuid bit set
9.   executable with setgid bit set
10.   directory writable to others, with sticky bit
11.   directory writable to others, without sticky

Los designadores de color son los siguientes:

a    black
b    red
c    green
d    brown
e    blue
f    magenta
g    cyan
h    light grey
A    bold black, usually shows up as dark grey
B    bold red
C    bold green
D    bold brown, usually shows up as yellow
E    bold blue
F    bold magenta
G    bold cyan
H    bold light grey; looks like bright white
x    default foreground or background

0 votos

Hola Allan, ¡gracias! Un par de preguntas, ¿puedes explicarme un poco más sobre i) por qué tengo que ponerlo en el .bash_profile y no digamos en el .zshrc creo que era, y ii) un poco más sobre la parte de exportar LSCOLORS? ¿Debo ir a ese sitio que mencionaste y establecer mi esquema de colores desde allí? ¿Cómo encaja esto con los esquemas de color de iterm2? Gracias.

0 votos

Quizás esto es lo que me confunde: Estoy usando iterm2. ¿Qué significa esto para el archivo que cambiamos? (.bash_profile VS .zshrc)? Por si sirve de algo, en esta nueva máquina actualmente no tengo ninguno de los dos...

0 votos

Ah, vale, el eco se muestra bash . Así que debo hacer un nuevo ~/.bash_profile supongo ya que no existe ninguno.

20voto

KayV Puntos 146

Abrir bash_profile con el comando:

open ~/.bash_profile

y añadir las siguientes líneas:

export PS1="\[\033[36m\]\u\[\033[m\]@\[\033[32m\]\h:\[\033[33;1m\]\w\[\033[m\]\$ "
export CLICOLOR=1
export LSCOLORS=ExFxBxDxCxegedabagacad
alias ls='ls -GFh'

entonces fuente bash_profile usando:

source ~/.bash_profile

0 votos

KayV ¿qué hace esto exactamente? ¿Puede ampliarlo, por favor?

2 votos

Gracias. Esto era lo que buscaba para mi macbook. La mejor solución para colorear los directorios de manera diferente a los archivos.

1 votos

Encontré en zsh que la línea PS1 sólo cambió mi terminal a esa cadena.

10voto

Diederik Puntos 106

Para cualquier persona que utilice zsh Esto es lo que he podido hacer en mi máquina para que funcione:

1. Crear el archivo .zshrc

touch .zshrc

2. Añade esto al archivo

PS1="%{%F{033}%}%n%{%f%}@%{%F{green}%}%m:%{%F{yellow}%}%~%{$%f%}%  "
export CLICOLOR=1
export LSCOLORS=ExFxBxDxCxegedabagacad

3. Reinicie iTerm2

Producirá un terminal con el siguiente aspecto

Picture of my terminal with colors on for example

He podido conseguirlo gracias a las diferentes respuestas en este hilo:

https://stackoverflow.com/questions/689765/how-can-i-change-the-color-of-my-prompt-in-zsh-different-from-normal-text#2534676

Recomiendo encarecidamente el hilo para saber más sobre el funcionamiento de las personalizaciones

7voto

John N Puntos 400

Una alternativa a LSCOLORS es GRC (el coloreador GeneRic) que puede utilizarse con prácticamente cualquier aplicación de línea de comandos, no sólo con ls .

Si tienes instalado Homebrew, instala grc con brew install grc - esto configurará los alias automáticamente, incluso para ls . Viene con alias y archivos de configuración para muchos comandos diferentes, y es (relativamente) trivial hackear un archivo de configuración usando expresiones regulares de Python para cualquier comando que grc no cubre actualmente ( tmutil y launchctl por ejemplo).

(Iba a añadir esto a la pregunta que marqué como posible duplicación, pero con tu edición probablemente sea más útil aquí).

0 votos

Instalé grc y ls no se coloreó en absoluto. 'type ls' da '/bin/ls', nada de alias. Volver a la solución de perfil de bash supongo.

2 votos

@6005, ¿instalaste GRC con brew ? (¿Y se instaló con éxito, sin errores?) ¿Qué hace brew doctor informe - ¿algún problema? ¿Qué shell está utilizando, y ha modificado la configuración del shell en absoluto? .bash_profile (o config para cualquier shell que utilices) para obtener los alias de GRC. Mi .bash_profile tiene esto (aunque lo añadí yo mismo - mi configuración de bash es bastante esotérica...): [ -f /usr/local/etc/grc.bashrc ] && . /usr/local/etc/grc.bashrc

1 votos

Nota: por alguna razón ls se comenta por defecto en el grc.bashrc cuando se instala a través de homebrew.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X