He visto en algunas capturas de pantalla (no recuerdo en qué parte de la web) que el terminal puede mostrar las [username@machine /]$
letras en negrita. Estoy ansioso por obtener esto también porque siempre me encuentro desplazándome por salidas largas para descubrir con dificultad la primera línea después de mi comando.
¿Cómo puedo poner el nombre de usuario, etc. en negrita o en color?
bash
prompt
escape-characters
Benjamín
fuente
fuente
Respuestas:
Debería poder hacer esto configurando la
PS1
variable de solicitud en su~/.bashrc
archivo de esta manera:Para que sea de color (y posiblemente en negrita, esto depende de si su emulador de terminal lo ha habilitado) necesita agregar códigos de color de escape:
Aquí, todo lo que no se escapa entre las partes
1;91m
y0m
se coloreará en el1;91
color (rojo negrita). Coloque estos códigos de escape alrededor de diferentes partes de la solicitud para usar diferentes colores, pero recuerde restablecer los colores con0m
o de lo contrario tendrá una salida de terminal de color también. Recuerde obtener el archivo luego para actualizar el shell actual:source ~/.bashrc
fuente
1;31
y1;91
. Con un peso de fuente normal, el rango 90-97 proporciona colores más brillantes que el otro.Encuentra dónde estás
PS1
está en.bashrc
e inserte'\[\e[1m\]'
al principio y\[\e[0m\]
al final.\[
y\]
son necesarios para que el shell sepa que el desorden en el interior ocupa 0 espacio en la pantalla, lo que evita un comportamiento mal al hacer la edición de línea. No necesita preocuparse demasiado por eso.\e[
se conoce como el CSI (introductor de secuencia de control). Verá que se usa en la mayoría de los códigos enumerados en la página de Wikipedia a la que se hace referencia.\e
significa el personaje de escape.CSI 1m
activa en negrita yCSI 0m
restablece la fuente para que el resto del texto sea normal.Wikipedia tiene un completo lista de códigos de escape ANSI que puede usar si su emulador de terminal lo admite.
Editar
Para portabilidad y legibilidad, debe usar
tput
códigos de escape en lugar de codificación rígida. El único inconveniente es que eltput
enfoque no funcionará con terminales que admitan códigos ANSI pero que tengan bases de datos terminfo rotas o faltantes, pero en ese caso el terminal roto es un problema mayor ya que muchas de las aplicaciones de consola que dependen de terminfo pueden no funcionar correctamente.Aquí hay un ejemplo de lo que hago en mi
.bashrc
:Así es como se vería una versión genérica mía. El
0
es el estado de salida del último comando.fuente
Este es el mensaje predeterminado que obtienes en cygwin bash shell:
Referencias
man bash
y verificar elPROMPTING
sección.fuente
Utilizo esta función de shell para obtener atributos de texto en el terminal:
Luego para usarlo:
Esto me da
[username@hostname]:cwd>
dóndeusername@hostname
están en negrita verde y encwd
negrita azulfuente
~/.bashrc
?~/.bashrc
archivo y lo uso para configurar mi solicitud. Incluso cambio los colores dependiendo del sistema en el que estoy.Para que parezca un indicador de Ubuntu predeterminado, agregue
export PS1='\[\e[1;32m\]\u@\h\e[0;39m\]:\e[1;34m\]\w\e[0;39m\]$\[\e[0m\] '
en tus
~/.bashrc
.Esto producirá el conocido verde
user@host
(negrita), seguido de dos puntos blancos sin negrita, seguido de su directorio de trabajo en negrita azul, seguido de un$
signo, un espacio y su comando en letras blancas sin negrita:fuente