GNU/Linux >> Tutoriales Linux >  >> Linux

Color diferente para comando y salida

Puede pasar la salida a un programa que hace el coloreado. Por ejemplo, hay programas como pycolor :

pycolor module.py

Para construir el tuyo propio:

red="$(tput setaf 1)"
reset="$(tput sgr0)"
echo $'foo\nbar' | sed -e "s/\(bar\)/$red\1$reset/"

Más información sobre la salida en color.


Realmente no; el color de la salida de un programa dado es controlado por el comando, no por la terminal.

Dicho esto, suponiendo que su terminal comprenda los códigos de escape ANSI para el color (la mayoría lo hace), podría usar los códigos de escape para establecer el color de solicitud deseado al comienzo de la solicitud y el color de salida deseado al final; esto daría como resultado que sus líneas de comando también estén en cualquier color que establezca para la salida, pero eso es probablemente lo más cerca que va a estar de lo que está buscando. Por ejemplo, lo siguiente:

$ export PS1='\[\033[00;35m\]\u\[\033[00m\]@\[\033[00;35m\]\H\[\033[00m\]:\[\033[00;33m\]\W\[\033[00m\] \$\[\033[00;34m '

le dará un aviso que se parece a:

[email protected]:wd $ _

con 'usuario' y 'host' en púrpura, 'wd' (su cwd) en marrón (amarillo oscuro), y todo lo que esté después de '$' en lo que sea que use su terminal para azul claro. (Un xterm predeterminado mostrará esto en cian; gnome-terminal parece tener un tono bastante agradable de azul aciano).

El código de color real, tal como se especifica en el formato necesario para bash, es, por ejemplo, \[\033[00;35m\] , donde 00;35 es la especificación de color real; el líder 00 rara vez cambia, pero puede producir efectos IIRC de negrita (01), subrayado (??) y video inverso (??), mientras que el '35' final es el color real, que en este caso es púrpura.

Es sorprendentemente difícil encontrar una lista decente de códigos de color ANSI, pero los colores de primer plano van del 30 al 37 y los de fondo del 40 al 47, de la siguiente manera:

color        fg  bg
black        30  40
red          31  41
green        32  42
yellow       33  43
blue         34  44
purple       35  45
cyan         36  46
gray/white   37  47

Tenga en cuenta que, dado que está configurando un color predeterminado para todo lo que sigue a su indicador, los programas que ejecuta que no configuran sus propios colores a través de códigos de escape tomarán ese color, por ejemplo, si ejecuta un buscapersonas, es probable que vea su salida en el mismo color que configuró para otros comandos. Mientras tanto, los comandos que hacen establecer sus propios colores a través de códigos de escape ignorará sus esfuerzos por completo.


Sí, tengo esto funcionando para bash, al menos en linux y mac OS.

Primero, configure algunas variables de atributo y el mensaje de PS1 para dejar el terminal configurado con los atributos de línea de comandos deseados, por ejemplo:

bold="\[$(tput bold)\]"
none="$(tput sgr0)"
export PS1="\$ $bold"

Luego, use la trampa DEBUG de bash, que se ejecuta justo antes de cada comando, para cambiar los atributos de texto para la salida del comando:

trap 'echo -ne "${none}"' DEBUG

Linux
  1. 10 tutoriales de comandos de Linux para principiantes y expertos

  2. Redirección de salida de comando a archivo y terminal

  3. Convertir una salida a cadena

  4. ¿Cómo puedo obtener la fecha y la hora actuales en la terminal y establecer un comando personalizado en la terminal para ello?

  5. ventana acoplable:PID diferente para `top` y `ps`

Cómo cambiar el color de salida de 'Echo' en Linux

Cómo leer la salida y los usos del comando superior de Linux

50 comandos grep productivos y prácticos para entusiastas de Linux

Tutoriales y ejemplos de comandos de Linux Head para principiantes

Explicado:entrada, salida y redirección de errores en Linux

Cómo colorear la salida Diff para una mejor vista