Editar aspecto del prompt en Bash

Bash, el intérprete de comandos o shell por defecto en la mayoría de distribuciones GNU/Linux, permite una gran personalización que muy poca gente conoce.

Una de las cosas más personalizables es el prompt, pudiéndose modificar tanto en contenido como en colores a mostrar.

Para ello, basta con editar nuestro fichero de configuración de Bash del usuario:

user@linuxenandalu:$ nano ~/.bashrc

Y añadir las siguientes líneas al final:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
    reset=$(tput sgr0)
    txtblk='\e[0;30m' # Black - Regular
    txtred='\e[0;31m' # Red
    txtgrn='\e[0;32m' # Green
    txtylw='\e[0;33m' # Yellow
    txtblu='\e[0;34m' # Blue
    txtpur='\e[0;35m' # Purple
    txtcyn='\e[0;36m' # Cyan
    txtwht='\e[0;37m' # White
    bldblk='\e[1;30m' # Black - Bold
    bldred='\e[1;31m' # Red
    bldgrn='\e[1;32m' # Green
    bldylw='\e[1;33m' # Yellow
    bldblu='\e[1;34m' # Blue
    bldpur='\e[1;35m' # Purple
    bldcyn='\e[1;36m' # Cyan
    bldwht='\e[1;37m' # White
    unkblk='\e[4;30m' # Black - Underline
    undred='\e[4;31m' # Red
    undgrn='\e[4;32m' # Green
    undylw='\e[4;33m' # Yellow
    undblu='\e[4;34m' # Blue
    undpur='\e[4;35m' # Purple
    undcyn='\e[4;36m' # Cyan
    undwht='\e[4;37m' # White
    bakblk='\e[40m'   # Black - Background
    bakred='\e[41m'   # Red
    bakgrn='\e[42m'   # Green
    bakylw='\e[43m'   # Yellow
    bakblu='\e[44m'   # Blue
    bakpur='\e[45m'   # Purple
    bakcyn='\e[46m'   # Cyan
    bakwht='\e[47m'   # White
    txtrst='\e[0m'    # Text Reset
 
    PS1="<\[$bldcyn\]\u\[$reset\]@\[$undblu\]\h\[$reset\]>\[$txtylw\]\w \$ \[$reset\]"

Lo que estas líneas hacen es definir varios colores para el texto (así como ponerlo en negrita o subrayado), y en la última, se redefine la variable PS1 (la cual se define más arriba en este mismo fichero, pero lo sobreescribimos), modificando el prompt a nuestro gusto.

En este caso, he puesto mi variable PS1, cuyo resultado puede observarse en la imagen de cabecera del post (además, tengo el terminal en negro-verde, por lo que el resultado puede variar dependiendo de la paleta de colores que uséis en vuestro terminal).

Leave a Reply

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *