Con el Terminal: Mejorando la apariencia de la consola

Soy de los que adora usar el terminal. Creo que todos los usuarios de GNU/Linux en un momento dado no pueden vivir sin ella, porque ese pedazo de ventana llena de letras nos facilita bastante la vida ¿Cierto?

Pero podemos hacer que se vea un poco más bonita que como viene por defecto. Un ejemplo de ello lo podemos ver (y descargar) desde gnome-look. El tips que le mostraré a continuación, es para dejar nuestro terminal con la siguiente apariencia:

Como pueden ver, se resalta el comando a ejecutar y se pone entre cada orden una línea de tiempo con la hora del sistema.

¿Cómo lo hago?

Abrimos un editor de texto (ejemplo Gedit) y le ponemos adentro:

# Fill with minuses
# (this is recalculated every time the prompt is shown in function prompt_command):

fill="--- "
reset_style='\[\033[00m\]'
status_style=$reset_style'\[\033[0;90m\]' # gray color; use 0;37m for lighter color
prompt_style=$reset_style
command_style=$reset_style'\[\033[1;29m\]' # bold black
# Prompt variable:
PS1="$status_style"'$fill \t\n'"$prompt_style"'${debian_chroot:+($debian_chroot)}\u@\h:\w\$'"$command_style "
# Reset color for command output
# (this one is invoked every time before a command is executed):
trap 'echo -ne "\e[0m"' DEBUG
function prompt_command {
# create a $fill of all screen width minus the time string and a space:
let fillsize=${COLUMNS}-9
fill=""
while [ "$fillsize" -gt "0" ] do
fill="-${fill}" # fill with underscores to work on
let fillsize=${fillsize}-1
done
# If this is an xterm set the title to user@host:dir
case "$TERM" in
xterm*|rxvt*)
bname=`basename "${PWD/$HOME/~}"`
echo -ne "\033]0;${bname}: ${USER}@${HOSTNAME}: ${PWD/$HOME/~}\007"
;;
*)
;;
esac
}
PROMPT_COMMAND=prompt_command

Lo guardamos dentro de nuestro /home con el nombre .bash_ps2 por ejemplo. Luego abrimos nuestro .bashrc y le añadimos:

if [ -f "$HOME/.bash_ps2" ]; then
. "$HOME/.bash_ps2"
fi

Abrimos un terminal y podremos ver los cambios 😀

 

Visto en: HumanOS.

Comparte para difundir

Si te ha gustado nuestro contenido ahora puedes ayudar a difundirlo en las redes sociales de manera sencilla usando los siguientes botones:

Envía
Pinea
Print

17 comentarios

  1.   Luweeds dijo

    Gracias por el blog ante todo y una preguntilla, ¿hay alguna posibilidad de personalizar xterm o lxterminal mas allá del color del texto y del fondo?(son los terminales que mas uso).
    Gracias¡¡

  2.   Eduardo dijo

    GENIALLLLLLLLLLLLLLL 🙂

    Lo intenté hace una semana cuando leí este tema en otro blog, pero por un problema con las comillas en lo que había que agregar al .bashrc no lo pude utilizar. Ahora sí de primera me funcionó correctamente.

    Gracias.

    1.    KZKG^Gaara dijo

      Un placer saber que hizo justo lo que deseabas 😉
      Saludos

  3.   Taregon dijo

    :] excelente si hace lo que creo que imagino… weeee, me lo instalo este fin de semana 😀

    1.    KZKG^Gaara dijo

      De hecho lo mejoré jeje… le puse más coloretes y se vé mucho mejor, haré un post publicando mis mejoras y modificaciones 😉

      Edited: En vez de poner eso en .bash_ps2 pon esto otro: http://paste.desdelinux.net/paste/6

      1.    Eduardo dijo

        Me da error en las líneas 13 y 34.

        1.    elav <° Linux dijo

          Ya somos 2 😀

      2.    Courage dijo

        Joder, otro programador del lado oscuro…

        1.    KZKG^Gaara dijo

          Dejo aquí el code, no sé por qué les dá error… a mí me funciona bien o_0U:
          # Fill with minuses
          # (this is recalculated every time the prompt is shown in function prompt_command):

          fill="--- "
          reset_style='\[\033[00m\]'
          status_style=$reset_style'\[\033[0;90m\]' # gray color; use 0;37m for lighter color
          prompt_style=$reset_style
          command_style=$reset_style'\[\033[1;29m\]' # bold black
          # Prompt variable:
          PS1="$status_style"'$fill \t\n'"$prompt_style"'${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m$
          # Reset color for command output
          # (this one is invoked every time before a command is executed):
          trap 'echo -ne "\e[0m"' DEBUG
          function prompt_command {
          # create a $fill of all screen width minus the time string and a space:
          let fillsize=${COLUMNS}-9
          fill=""
          while [ "$fillsize" -gt "0" ]
          do
          fill="-${fill}" # fill with underscores to work on
          let fillsize=${fillsize}-1
          done
          # If this is an xterm set the title to user@host:dir
          case "$TERM" in
          xterm*|rxvt*)
          bname=`basename "${PWD/$HOME/~}"`
          echo -ne "\033]0;${bname}: ${USER}@${HOSTNAME}: ${PWD/$HOME/~}\007"
          ;;
          *)
          ;;
          esac
          }
          PROMPT_COMMAND=prompt_command

  4.   newbie dijo

    Muy guapo esto, lo acabo de probar y funciona 100% ubuntu 11.10

    Saludo!!

  5.   rob dijo

    Pues a mi también me da error en linea 13 y 34

    línea 13: EOF inesperado mientras se buscaba un `” coincidente
    línea 34: error sintáctico: no se esperaba el final del fichero

    uso linux mint 11 lxde por si sirve de algo.

    Saludos!

  6.   Jimselfking dijo

    Funciona 100% con el usuario normal, pero en el momento en el que te haces superusuario deja de funcionar, no hace nada. Supongo que es facil, pero no se hacer mucho, ¿¿alguna solución??

    1.    KZKG^Gaara dijo

      Lo que pones en tu .bashrc, debes ponerlo también en /root/.bashrc
      Has la prueba y nos dices qué tal 🙂

      Saludos 😀

      1.    Jimselfking dijo

        Funciona perfectamente, no se como no lo intente antes de preguntar. Gracias

        1.    KZKG^Gaara <° Linux dijo

          Nah no te preocupes 🙂

  7.   angel dijo

    ooye amigo si me ayudaras por favor lo probe pero no me aparece el circulo y sigue en negro, uso fedora19, la linea d tiempo si aparece… igual muchas gracias por tu aporte 🙂

  8.   Miguel dijo

    esto funciona igual en Debian???

Deja un comentario

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

*

*

  1. Responsable de los datos: Miguel Ángel Gatón
  2. Finalidad de los datos: Controlar el SPAM, gestión de comentarios.
  3. Legitimación: Tu consentimiento
  4. Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal.
  5. Almacenamiento de los datos: Base de datos alojada en Occentus Networks (UE)
  6. Derechos: En cualquier momento puedes limitar, recuperar y borrar tu información.