Prompt de bash coloreado si me conecto por SSH

Cómo sabéis del post anterior: http://mirblu.com/content/spotify-por-ssh necesito cambiar bastante a menudo entre dos equipos que tengo en casa. Muchas veces entre tanto ssh y scp me pierdo por lo que he tenido que pensar una forma de diferenciar los equipos en consola (si, soy uno de esos fr$%@s que tira mucho de consola)...

La idea que se me ocurrió fue colorear el prompt si me conectaba por ssh, de este modo:

  • Tendría de color rojo el prompt si me conecto desde cualquier equipo al sobremesa.
  • De color azul de cualquier equipo al portátil.
  • De color blanco si la consola es local.

Lograr esto es muy sencillo, al final de nuestro ~/.bashrc añadimos:
if [ "`who -m|grep -v :0`" ]; then
export PS1="\[$(tput setaf 1)\]$PS1\[$(tput sgr0)\]"
fi

De este modo reutilizamos la variable PS1 ya definida, pero le añadimos códigos de colores.

Estos son los colores disponibles:

  • 0: negro
  • 1: rojo
  • 2: verde
  • 3: cafe
  • 4: azul
  • 5: morado
  • 6: cyan
  • 7: gris

En el caso del ejemplo estoy coloreando en rojo si te conectas desde un equipo externo al local.

Trackback URL for this post:

http://mirblu.com/trackback/30

Comentarios

Variable

Hola, está bien la solución, pero si se me permite un aporte sin importacia:

if $SSH_TTY; then
export PS1="\[$(tput setaf 1)\]$PS1\[$(tput sgr0)\]"
fi

Cuando nos conectamos por SSH se crean varias variables de entorno ($SSH_CONNECTION,$SSH_CLIENT y $SSH_TTY). Podemos aprovecharlas en vez de usar comandos. Ganamos en rapidez, eficiencia y limpieza del código.

Saludos

Perfecto

¡Me encanta!

No conocía esas variables, muchas gracias por el aporte :)

De todas formas, el script inicial que he posteado he tenido que modificarlo, porque cuando me conectaba desde tty (consola Ctrl+Alt+Fx) también me lo coloreaba, por lo que añadí un grep -v tty. Pero vamos, con tus variable no es necesario para nada.

¡Gracias de nuevo!

El contenido de este sitio tiene copyright y está licenciado bajo la Creative Commons Attribution 3.0.
La creación debe ser atribuida a mirblu S.L. - CIF B37484748 - (+34) 923 194 484 - rrpp@mirblu.com
Valid XHTML 1.0 Strict¡CSS Válido!