$PS1 --> acá se guarda el primer prompt (en gral. usuario@host:$)
$PS2 --> acá se guarda la configuracion del segundo prompt (en gral > y se "activa" poniendo \)
Para ver su contenido podemos escribir en la consola:
echo "Bash PS1 variable:" $PS1
obteniendo algo similar a:
Bash PS1 variable: ${debian_chroot:+($debian_chroot)}\u@\h:\w\$
Para ver el segundo prompt igualmente hacemos:
echo "Bash PS2 variable:" $PS2
obteniendo algo similar a:
Bash PS2 variable: >
Ahora los significados que obtuvimos en la primer salida (PS1) son estos:
Bash special character | Bash special character explanation | Bash special character | Bash special character explanation |
---|---|---|---|
\a | an ASCII bell character (07) | \d | the date in "Weekday Month Date" format (e.g., "Tue May 26") |
\] | end a sequence of non-printing characters | \e | an ASCII escape character (033) |
\h | the hostname up to the first `.' | \H | the hostname |
\j | the number of jobs currently managed by the shell | \l | the basename of the shell's terminal device name |
\n | newline | \r | carriage return |
\s | the name of the shell, the basename of $0 (the portion following the final slash) | \t | the current time in 24-hour HH:MM:SS format |
\T | the current time in 12-hour HH:MM:SS format | \@ | the current time in 12-hour am/pm format |
\A | the current time in 24-hour HH:MM format | \u | the username of the current user |
\v | the version of bash (e.g., 2.00) | \V | the release of bash, version + patchelvel (e.g., 2.00.0) |
\w | the current working directory | \W | the basename of the current working directory |
\! | the history number of this command | \# | the command number of this command |
\$ | if the effective UID is 0, a #, otherwise a $ | \nnn | the character corresponding to the octal number nnn |
\\ | a backslash | \[ | begin a sequence of non-printing characters, which could be used to embed a terminal control sequence into the prompt |
\D{format} | the format is passed to strftime(3) and the result is inserted into the prompt string; an empty format results in a locale-specific time representation. The braces are required |
Luego de que el usuario ingresa en el sistema sus variables de entorno son inicializadas desde varios archivo:
global system files /etc/profile or /etc/bashrcEs importante saber que todas las variables de entorno del usuario tiene un tiempo de vida igual al de la sesion. Cuando la sesion es cerrada, las variables definidas durante la sesión, son eliminadas y deben ser redefinidas al iniciar sesion nuevamente.
user files ~/.bash_profile , ~/.bash_login , ~/.profile , ~/.bashrc or ~/.bash_logout.
Luego de esta breve introducción, veamos como colorear: la sintaxis para cambiar los colores en bash es la siguiente:
\033[ -> Indica el comienzo del color en el textoLos códigos de los colores pueden encontrarlos en el articulo: Colorear texto al hacer printf o cout
x;yzm - Indica el código del color
\033[00m - Indica el final del color en el texto
Para comenzar probando podemos tipear:
export PS1="\033[01;31mBASH IN RED\033[00m: "y ver el resultado, aqui otro ejemplo:
export PS1="\u@\h [\$(ls | wc -l)]:\$ "Una vez que experimentamos lo suficiente, y decidimos nuestro esquema, por ejemplo:
export PS1='${debian_chroot:+($debian_chroot)}\[\033[01;36m\]\u@\h\[\033[00m\]:\[\033[00;35m\]\w\[\033[00m\]\$ 'debemos hacer que los cambios sean permanentes: lo que hacemos es agregar la linea anterior al final del .bashrc
Pueden ver mas info aqui.
No hay comentarios.:
Publicar un comentario