Cambiar color del prompt en openSUSE

Seguro que sabes que es el prompt, por si no lo sabes, aqui una explicación de la wikipedia:

Se llama prompt al carácter o conjunto de caracteres que se muestran en una línea de comandos para indicar que está a la espera de órdenes. Éste puede variar dependiendo del intérprete de comandos y suele ser configurable.

En mi caso mi prompt al ver la consola es este:

victorhck@openSUSE:~\>

Utilizando la consola en Linux en general y en openSUSE en particular, al loguearte como superusuario, el prompt cambia a color rojo, esto te indica que debes tener cuidado con las acciones que realices, ya que con estos privilegios puedes realizar operaciones que den al traste con el sistema , o con información de otros usuarios.

Parece que esta mejora fue reportada a Bugzilla desde 2006 y desde entonces se mantiene, ya que es muy útil. Pues igual de útil que esto, me pareció a mi hacer que cuando estes como usuario normal, el prompt esté coloreado de otro color distinto del texto normal, por ejemplo verde, ya que estamos con openSUSE 😉 .

Me parece igual de útil, ya que al hacer un listado de varios directorios, o en otras ocasiones, no puedes distinguir dónde empezaba una línea y terminaba, lo que mostraba el comando. Así que decidí “darle color”. Buscando un poco encontŕe que los datos del prompt se guardan en la variable de sistema PS1.

Así, puedes ver los valores del tuyo con el siguiente comando.

echo $PS1

Las características de la consola se guardan en el siguiente archivo de configuración: /etc/bash.bashrc. Por tanto editándolo podemos cambiar el valor de PS1 y adaptarlo a lo que queremos. Lo abrimos como root con nuestro editor favorito. a mi me muestra lo siguiente, no lo pongo entero, si no sólo la parte que modifiqué:

  case "$(declare -p PS1 2> /dev/null)" in
 *-x*PS1=*)
 ;;
 *)
 # With full path on prompt
 # >>>> Quito la linea inferior
 # PS1="${_t}${_u}:\w${_p} "
 # >>>> Añado esta para colorear el prompt de verde
 PS1="\[\e[32m\]\u@\h:\w\>\[\e[m\] "
# # With short path on prompt
# PS1="${_t}${_u}:\$(spwd)${_p} "
# # With physical path even if reached over sym link
# PS1="${_t}${_u}:\$(pwd -P)${_p} "
 ;;
 esac
 # Colored root prompt (see bugzilla #144620)
 if test "$UID" -eq 0 -a -n "$TERM" -a -t ; then
 _bred="$(path tput bold 2> /dev/null; path tput setaf 1 2> /dev/null)"
 _sgr0="$(path tput sgr0 2> /dev/null)"
 # >>> modifico la línea inferior 
 # PS1="\[$_bred\]$PS1\[$_sgr0\]"
 PS1="\[$_bred\]${_t}${_u}:\w${_p}\[$_sgr0\]"
 unset _bred _sgr0
 fi

Marco en rojo las modificaciones para que veas que he cambiado, quitado o añadido. Guardas los cambios y verás la vida de otro color, o por lo menos la consola!  😉

Aqui dejo una captura de Yakuake. Pincha sobre la imagen para ampliar.

Espero que te haya servido y te sea útil.

EDITO: Si lo quieres hacer para tu openSUSE 12.3 este método no te vale, ya que ha cambiado el código del archivo que hay que modificar. Para hacerlo mira este enlace: https://victorhckinthefreeworld.wordpress.com/cambiar-el-color-del-prompt-en-opensuse-12-3/

——————————————————————————————–

11 pensamientos en “Cambiar color del prompt en openSUSE

  1. No me resulta. Recurro al nunca bien ponderado, pero infalible, método del copy-paste y nada. Sé que debería dedicarle más tiempo, investigar y todo eso pero bue… es más fácil copiar xD

    De todos modos, gracias por el tip, en algún momento voy a intentarlo de nuevo.

  2. Sí cerré sesión y luego reinicié por si acaso pero nada. Hice una captura de pantalla pero ahora, luego de lo del vídeo, me da miedo poner el enlace xD

    Me arriesgo de todos modos, ahí va:

    Como se ve, todo sigue igual en Yakuake y Konsole.

  3. Hola victorhck. Aunque haya pasado tiempo, me parece que aporta poca credibilidad que sólo salga alguien a quien no le ha salido bien. Así que rompo una lanza por ti, para que se vea que va bien. ¡A mí me ha salido perfecto! A pesar de que ya salió la versión 12.3, yo he tenido que volver a esta versión anterior y agradezco, a pesar de que parezca tarde, tu estupendo “tip”, que me ha alegrado el prompt…
    A pesar de tu/vuestra ayuda no hubo manera de que se arreglaran mis “tipos” (http://www.espaciolinux.com/foros/sistema/opensuse-asus-1001-eeepc-desaparecen-los-textos-t51354.html), así que me volví a 12.2, que es espectacular igualmente.
    Y continúo siguiéndote para aprender de los que saben…Saludos majo!

    • Hola!!
      Que raro el problema que tenias…estuve mirando y no encontre algo parecido en foros o la red.No se si seria cosa de la grafica o si la ISO tenia algjn tipo de problema.
      Yo sigo con la 12.1 en el PC de sobremesa,me va tan bien que me da pereza cambiar… 😉
      Bueno, pues me alegro de que fe sirviera este pequeño truco… No se porque a Mefistum no le funciono, comparti correos con el para tratar de ver porque no le funcionaba, pero no conseguimos nada…
      Gracias por el feedback diciendo que a ti si te va bien, yo lo encuentro bastante util…
      Saludos!!

  4. buenas amigo queria aplicar este comando (PS1=’\[$(ppwd)\]\[\e[30m\]$(tput setb 2)\]\u@\h (\t)(\d):\w\>\[\e[m\] ). pero no se como aplicarlo, sera que podes ayudarme

      • opensuse 13.1 kde, si he probado el metodo que indicas, esto es lo que tengo actualmente, pero quiero agregarle los cambios que comento pero no se donde cambiarlo en bashrc.
        \> echo $PS1
        \[$(ppwd)\]\[\e[32m\]\u@\h(\t):\w\>\[\e[m\]

  5. @jerson: Pues añádelo en la línea donde se establece el prompt para el usuario.
    En el ejemplo es en la línea que he añadido yo, en vez de esa, tu pones la tuya:
    # >>>> Añado esta para colorear el prompt de verde
    PS1=”\[\e[32m\]\u@\h:\w\>\[\e[m\] ”

    tu tienes que poner la que tu quieras…

Me gustaría saber tu opinión. Deja un comentario (Puedes usar MarkDown)

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s