Terminales con estilo, personaliza tu prompt

Es posible que en alguna captura de pantalla se haya podido ver una terminal con un prompt (Linea que aparece cuando abrimos la terminal o cuando acaba de ejecutarse un comando) con colores. Esto puede parecer lioso, pero, ¡No lo es! Aprende como hacerlo.


La terminal es algo que que usamos porque la necesitamos para algo o porque sabemos que las tareas se hacen mas rápido ¿Por que no hacer la tarea de mas amena? Lo podemos lograr con un prompt personalizado.

Cuando abres una terminal te aparecerá algo como esto (Si eres usuario de Ubuntu) tunombre@tuhost.Si quieres cambiarlo tendrás que abrir e archivo .bashrc que se encuentra en tu home. Buscaremos una linea que diga algo asi: ‘PS1='[u@h W]$ ”. Esas es la variable que define el prompt. Pero, ¡¿Ahí pone mi nombre?! Si, tranquilo. Lo que pasa es que hay un sistema de códigos.

d Muestra la fecha con formato “día de la semana mes y número de día”
h Muestra el nombre del host
H Muestra el nombre del host y el dominio
n Salto de linea
r Retorna al inicio de la linea
s Muestra el nombre del interprete de comandos
t Muestra la hora en formato de 24 horas
T Muestra la hora en formato de 12 horas
@ Muestra la hora en formato de 12 horas con indicador am o pm
u Nombre del usuario actual
v Versión del interprete de comandos
V Distribución del interprete de comandos
w Nombre del directorio actual
W Nombre del directorio actual recortado
! Número en el historial del comando tecleado
# Número de comando tecleado
$ Si eres superusuario muestra una # si no, muestra una $

Nota: si no pones un barra / delante de cada letra no se mostrara tal y como se describe ahi

También podemos usar colores. Para ello existen códigos. Ya sé, hay muchos códigos… Para hacero necesitamos poner esto [e[0;34m]. Claro, donde el valor del color a usar. A partir de ese fragmento, el texto se verá del color seleccionado.

Negro 0;30 Gris oscuro 1;30
Azul 0;34 Azul claro 1;34
Verde 0;32 Verde claro 1;32
Cyan 0;36 Cyan claro 1;36
Rojo 0;31 Rojo claro 1;31
Púrpura 0;35 Púrpura claro 1;35
Marrón 0;33 Amarillo 1;33
Gris claro 0;37 blanco 1;37


10 comentarios

  1.   Alvaro Ortiz dijo

    Muchas gracias!

  2.   FoxCarlos dijo

    Saludos, Interesante post, para mi caso que uso Ubuntu 10.4 en mi archivo de configuracion tuve que habilitar la opcion force_color_prompt=yes ya que estaba en NO, y ubicar la linea que dice
    if [ “$color_prompt” = yes ]; then
    #esta es la linea a Modificar
    PS1=’${debian_chroot:+($debian_chroot)}[33[01;33m]u@[33[1;34m]h[33[01;31m]:[33[01;31m]w[33[01;31m]$ ‘

  3.   Alvaro Ortiz dijo

    Interesante, en mi caso ya estaba seleccionado. Ahora lo señalo en el post.

  4.   chupy35 dijo

    te falta mucho XD, na es broma mira te recomiendo ver esta configuraciones: https://bbs.archlinux.org/viewtopic.php?id=50885&p=12

    y presumo la mia 😛

    http://img130.imageshack.us/img130/672/cacam.png

  5.   nika2.0 dijo

    Hola!! pues yo no se que he borrado que ehe perdido la linea donde ponia nombre de maquina y host y ahora solo sale bash.4.1 y no tengo history como antes que puedo hacer chicos ayuda!!!

    1.    byron snow dijo

      #Aqui te deja la confguracion por deafult para que la restaaures:

      ~/.bashrc: executed by bash(1) for non-login shells.

      see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)

      for examples

      If not running interactively, don’t do anything

      [ -z “$PS1” ] && return

      don’t put duplicate lines or lines starting with space in the history.

      See bash(1) for more options

      HISTCONTROL=ignoreboth

      append to the history file, don’t overwrite it

      shopt -s histappend

      for setting history length see HISTSIZE and HISTFILESIZE in bash(1)

      HISTSIZE=1000
      HISTFILESIZE=2000

      check the window size after each command and, if necessary,

      update the values of LINES and COLUMNS.

      shopt -s checkwinsize

      If set, the pattern “**” used in a pathname expansion context will

      match all files and zero or more directories and subdirectories.

      #shopt -s globstar

      make less more friendly for non-text input files, see lesspipe(1)

      [ -x /usr/bin/lesspipe ] && eval “$(SHELL=/bin/sh lesspipe)”

      set variable identifying the chroot you work in (used in the prompt below)

      if [ -z “$debian_chroot” ] && [ -r /etc/debian_chroot ]; then
      debian_chroot=$(cat /etc/debian_chroot)
      fi

      set a fancy prompt (non-color, unless we know we “want” color)

      case “$TERM” in
      xterm-color) color_prompt=yes;;
      esac

      uncomment for a colored prompt, if the terminal has the capability; turned

      off by default to not distract the user: the focus in a terminal window

      should be on the output of commands, not on the prompt

      #force_color_prompt=yes

      if [ -n “$force_color_prompt” ]; then
      if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
      # We have color support; assume it’s compliant with Ecma-48
      # (ISO/IEC-6429). (Lack of such support is extremely rare, and such
      # a case would tend to support setf rather than setaf.)
      color_prompt=yes
      else
      color_prompt=
      fi
      fi

      if [ “$color_prompt” = yes ]; then
      PS1=’${debian_chroot:+($debian_chroot)}[\033[01;32m]\u@\h[\033[00m]:[\033[01;34m]\w[\033[00m]\$ ‘
      else
      PS1=’${debian_chroot:+($debian_chroot)}\u@\h:\w\$ ‘
      fi
      unset color_prompt force_color_prompt

      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

      enable color support of ls and also add handy aliases

      if [ -x /usr/bin/dircolors ]; then
      test -r ~/.dircolors && eval “$(dircolors -b ~/.dircolors)” || eval “$(dircolors -b)”
      alias ls=’ls –color=auto’
      #alias dir=’dir –color=auto’
      #alias vdir=’vdir –color=auto’

      alias grep='grep --color=auto'
      alias fgrep='fgrep --color=auto'
      alias egrep='egrep --color=auto'

      fi

      some more ls aliases

      alias ll=’ls -alF’
      alias la=’ls -A’
      alias l=’ls -CF’

      Add an “alert” alias for long running commands. Use like so:

      sleep 10; alert

      alias alert=’notify-send –urgency=low -i “$([ $? = 0 ] && echo terminal || echo error)” “$(history|tail -n1|sed -e ‘\”s/^\s[0-9]+\s//;s/[;&|]\s*alert$//’\”)”‘

      Alias definitions.

      You may want to put all your additions into a separate file like

      ~/.bash_aliases, instead of adding them here directly.

      See /usr/share/doc/bash-doc/examples in the bash-doc package.

      if [ -f ~/.bash_aliases ]; then
      . ~/.bash_aliases
      fi

      enable programmable completion features (you don’t need to enable

      this, if it’s already enabled in /etc/bash.bashrc and /etc/profile

      sources /etc/bash.bashrc).

      if [ -f /etc/bash_completion ] && ! shopt -oq posix; then
      . /etc/bash_completion
      fi

  6.   Pavloco dijo

    Lo voy a probar, siempre he querido arreglar mi terminal.

  7.   raalso7 dijo

    Mi archivo .bashrc no tiene ninguna linea :/

  8.   juan guerra dijo

    xdsolidoblue ,hola mira tengo problemas para poner mi password en la terminal me sale esto yy2

  9.   Sidemont dijo

    No entendí bien como hacerlo, tengo un mensaje de bienvenida pero no se donde agregar los códigos. El código de bienvendia es:

    echo -e “\e[32m\nBienvenido \n”

    Quisiera que diga el nombre del usuario delante del bienvenido por ejemplo, y también que muestre en otra línea la fecha y hora, y si se puede la versión de ubuntu. Gracias.

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.