GNU/Linux >> Tutoriales Linux >  >> Linux

¿Colorear su entorno de terminal y shell?

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:

  1. Tiendo a establecer TERM=xterm-color , que es compatible con la mayoría de los hosts (pero no con todos).
  2. 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.
  3. Hago un montón de trabajo usando GNU screen , que añade otra capa de diversión.
  4. 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.
  5. 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)

PS1
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 + [ .


Linux
  1. Cómo Navidadizar su Terminal Linux y Shell

  2. Velocidad terminal:moverse rápido en su caparazón

  3. Grabe su terminal con script y scriptreplay

  4. Cómo establecer/crear variables de entorno y shell en Linux

  5. ¿Guardar y restaurar las pestañas de su terminal?

Cambia el tema de color de tu terminal de Linux

Dale un poco de color a tu terminal Linux con lolcat

Obtenga calificaciones y reseñas de películas directamente en su terminal

Los 10 mejores temas y esquemas de color de la terminal de Ubuntu

Bash Beginner Series #1:Cree y ejecute su primer script de Bash Shell

¿Cuál es la diferencia entre una consola, una terminal y un shell?