¿Que es el prompt?
Es el conjunto de caracteres que se muestran en una línea de comandos para indicar que está a la espera de órdenes. En linux específicamente se puede ver de la siguiente manera:
Usuario@hostname:ubicacion$
root@hostname:ubicacion#
La primera parte corresponde al usuario logueado en la terminal, la segunda al nombre que tiene asignado el equipo seguido por la ruta donde uno se encuentra ubicado (ej. /home/usuario/Documentos o ~), por ultimo los simbolos $ y # identifican si somos usuarios normales o root.
Es posible cambiar el aspecto de nuestro prompt, haciendo que muestre otros datos como la fecha. Esto lo hacemos modificando el archivo .bashrc que esta en el home de cada usuario (/home/usuario/.bashrc), específicamente cambiando las siguientes lineas (La que empieza con PS1).
# If this is an xterm set the title to user@host:dir
case "$TERM" in
xterm*|rxvt*)
PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
;;
*)
;;
esac
La parte marcada de amarillo es la que esta determinando como se va a ver nuestro prompt, podemos usar las siguientes opciones:
\a un caracter ASCII de ring
\d la fecha actual en formato "dia_sem mes día"
\e un caracter ASCII de escape
\h el nombre del equipo hasta el primer .
\H el nombre del equipo
\n nueva línea
\r retorno, enter
\s el nombre del shell
\t el tiempo actual en formato de 24 horas HH:MM:SS
\T el tiempo actual en formato de 12 horas HH:MM:SS
\@ el tiempo actual en formaro de 12 horas con am/pm
\u el usuario actual
\v la version de bash
\V el número de release de batch, versión + parche
\w el directorio de trabajo actual, path
\W el nombre del directorio actual
\! el número en el historial del comando
\# el número de comando de este comando
\$ si el usuario es root (UID=0) se indica un '#', un usuario normal '$'
\\ diagonal
\d la fecha actual en formato "dia_sem mes día"
\e un caracter ASCII de escape
\h el nombre del equipo hasta el primer .
\H el nombre del equipo
\n nueva línea
\r retorno, enter
\s el nombre del shell
\t el tiempo actual en formato de 24 horas HH:MM:SS
\T el tiempo actual en formato de 12 horas HH:MM:SS
\@ el tiempo actual en formaro de 12 horas con am/pm
\u el usuario actual
\v la version de bash
\V el número de release de batch, versión + parche
\w el directorio de trabajo actual, path
\W el nombre del directorio actual
\! el número en el historial del comando
\# el número de comando de este comando
\$ si el usuario es root (UID=0) se indica un '#', un usuario normal '$'
\\ diagonal
\[ inicio de una secuencia de caracteres no imprimibles
\] fin de la secuencia de caracteres no imprimibles
\] fin de la secuencia de caracteres no imprimibles
También es posible cambiar el color de nuestro prompt, para ello hay que descomentar una linea del .bashrc
# uncomment for a colored prompt, if the terminal has the ...
# off by default to not distract the user: the focus ...
# should be on the output of commands, not on the prompt
#force_color_prompt=yes
Solo hay que quitar el numeral (#) para descomentar, con ello se habilitan los colores predeterminados que posteriormente podemos modificar. Por el momento se va a ver así:
Podemos usar las siguientes variables de color para modificar a nuestro gusto, estas variables se delimitan como caracteres no imprimibles ej. \[\033 [color \]
Negro 00;30m Gris obscuro 01;30m
Rojo 00;31m Rojo claro 01;31m
Verde 00;32m Verde claro 01;32m
Café 00;33m Amarillo 01;33m
Azul 00;34m Azul claro 01;34m
Púrpura 00;35m Púrpura claro 01;35m
Cian 00;36m Cian claro 01;36m
Gris claro 00;37m Blanco 01;37m
Rojo 00;31m Rojo claro 01;31m
Verde 00;32m Verde claro 01;32m
Café 00;33m Amarillo 01;33m
Azul 00;34m Azul claro 01;34m
Púrpura 00;35m Púrpura claro 01;35m
Cian 00;36m Cian claro 01;36m
Gris claro 00;37m Blanco 01;37m
Estas variables de color las cambiamos en la siguiente parte del .bahsrc que esta unas pocas lineas debajo de donde descomentamos force_color_prompt=yes
if [ "$color_prompt" = yes ]; then
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
Como podemos ver ya vienen puestos algunos colores, los cuales cambiaremos a gusto. Ejemplo y resultado:
if [ "$color_prompt" = yes ]; then
PS1='${debian_chroot:+($debian_chroot)}\[\033[00;31m\]\u\[\033[00;32m\]@\[\033[01;33m\]\h\[\033[01;34m\]:\[\033[01;35m\]\w\[\033[00m\]\$ '
Otra cosa interesante que se puede hacer con la terminal, es que al iniciar nos muestre un texto, por ejemplo un banner de bienvenida o arte ASCII, ejemplo:
No es necesario matarse poniendo un símbolo tras símbolo, hay muchas páginas donde podemos encontrar imágenes al gusto de cada quien, por ejemplo http://ascii-art.de/, la forma de ponerlo es guardando el documento como texto plano y después hacer un cat en la parte superior de nuestro .bashrc
[[ $- == *i* ]] || return
cat ~/lobo
# ~/.bashrc: executed by bash(1) for non-login shells.
El documento lo podemos colocar en la parte que deseemos solo tenemos que poner la ruta completa, si lo pusimos en documentos sería /home/usuario/Documentos/lobo o como yo lo puse en mi home lo coloque usando ~ que es una forma de abreviar /home/usuario
La linea que puse antes del cat es necesaria para evitar errores al momento de hacer transferencias de archivos con scp, eso ya lo explicare con calma en otro post.
En fin, poco a poco iré poniendo mas chácharas para la terminal. Cualquier duda o comentario es bien recibido.
=P
No hay comentarios:
Publicar un comentario