Paso la mayor parte de mi tiempo trabajando en entornos Unix y usando emuladores de terminal. Trato de usar color en la línea de comando, porque el color hace que la salida sea más útil e intuitiva.
¿Qué opciones existen para añadir color al entorno de mi terminal? ¿Qué trucos usas? ¿Qué trampas has encontrado?
Desafortunadamente, la compatibilidad con el color varía según el tipo de terminal, el sistema operativo, la configuración de TERM, la utilidad, las implementaciones con errores, etc.
Aquí hay algunos consejos de mi configuración, después de mucha experimentación:
- Tiendo a establecer
TERM=xterm-color
, que es compatible con la mayoría de los hosts (pero no con todos). - Trabajo en varios hosts diferentes, diferentes versiones de SO, etc. Utilizo todo, desde macOS X, Ubuntu Linux, RHEL/CentOS/Scientific Linux y FreeBSD. Estoy tratando de mantener las cosas simples y genéricas, si es posible.
- Hago un montón de trabajo usando GNU
screen
, que añade otra capa de diversión. - Muchos sistemas operativos configuran cosas como
dircolors
y por defecto, y no quiero modificar esto en cien hosts diferentes. Así que trato de seguir con los valores predeterminados. En cambio, modifico la configuración de color de mi terminal. -
Use color para algunos comandos de Unix (
ls
,grep
,less
,vim
) y el aviso de Bash. Estos comandos parecen usar las "secuencias de escape ANSI" estándar. Por ejemplo:alias less='less --RAW-CONTROL-CHARS' export LS_OPTS='--color=auto' alias ls='ls ${LS_OPTS}'
Publicaré mi .bashrc
y responde mi propia pregunta Jeopardy Style.
Respuesta aceptada:
Aquí hay un par de cosas que puede hacer:
Editores + Código
Muchos editores admiten el resaltado de sintaxis. vim
y emacs
tenerlo activado por defecto. También puede habilitarlo en nano
.
También puede sintaxis del código resaltado en el terminal utilizando Pygments como una herramienta de línea de comandos.
grep grep --color=auto
destaca todos los partidos. También puede usar export GREP_OPTIONS='--color=auto'
para hacerlo persistente sin un alias. Si usa --color=always
, usará color incluso al canalizar, lo que confunde las cosas.
ls
ls --color=always
Colores especificados por:
export LS_COLORS='rs=0:di=01;34:ln=01;36:mh=00:pi=40;33'
(pista:dircolors
puede ser útil)
Puede configurar su PS1 (instrucción de shell) para usar colores. Por ejemplo:
PS1='e[33;[email protected]: e[31mWe[0m$ '
Producirá una PS1 como:
[amarillo][correo electrónico protegido]:[rojo]~[normal]$
Puedes ser muy creativo con esto. Como idea:
PS1='e[se[0;0He[1;33mh tne[1;32mThis is my computere[u[[email protected]: w]$ '
Pone una barra en la parte superior de su terminal con información aleatoria. (Para obtener los mejores resultados, utilice también alias clear="echo -e 'e[2Jnn'"
.)
Deshacerse de las secuencias de escape
Relacionado:¿Resolución de pantalla no listada?
Si algo está atascado dando color a la salida cuando no quieres, uso este sed
línea para eliminar las secuencias de escape:
sed "s/[^[[0-9;]*[a-zA-Z]//gi"
Si desea una experiencia más auténtica, también puede deshacerse de las líneas que comienzan con e[8m
, que le indica al terminal que oculte el texto. (No es ampliamente compatible).
sed "s/^[^[8m.*$//gi"
También tenga en cuenta que esos ^[s deben ser ^[s reales y literales. Puede escribirlos presionando ^V^[ en bash, es decir, Ctrl + V , Ctrl + [ .