Linux prompt

poner título a las pestañas

A veces cuando tenemos muchas pestañas abiertas en el iTerm, especialmente en la misma shell (ya sea local o remota) nos interesa poder distinguirlas. Bien el propio iTerm permite hacerlo, pulsando manzana+i (⌘+i) nos aparece una ventana en la cual podemos cambiar el nombre en el campo "name".

ventana información iTerm

También podemos añadir un texto a este nombre desde la shell usando un simple echo con una secuencia de escapes:

echo "^[]1;texto^G"

NOTA: NO vale copiar y pegar ya que no funcionará, ^] es control+v y luego esc, ^G es control+v y luego control+g, es muy importante. Con esto añadimos a la pestaña "texto" a lo que ya estuviera:

Pestaña iTerm con texto añadido

También podemos usar otro tipo de escape que es básicamente lo mismo:

echo -ne "\033]0;texto\007"

Lo interesante de esto es que el texto puede ser una variable o una función de Bash o lo que queramos con lo cual podemos añadir que nos indique el path o directorio actual:

 echo  "^[]1;${PWD/#$HOME/~}^G"

El problema de esto es que no es dinámico y si nos cambiamos de directorio no se cambia a menos que coloquemos esa cadena de escape en la variable PS1 que se encarga de cambiar el prompt:

PS1="\[\033]0;\u@\h: \w\007\]\u@\h:\W>"

Con lo que tanto el prompt como la pestaña se irán actualizando (usuario@host:path>) según vayamos cambiando de directorio. Yo personalmente como prompt uso el siguiente que es a color y doble línea:

PS1="\[\033[33m\]\\u\[\033[37m\]@\[\033[32m\]\\H\[\033[37m\]:\[\033[36m\]\\w\[\033[37m\]\n\\$ "

Si además queremos que nos actualice la pestaña (solo el path para que se vea mejor y más útil):

PS1="\[\033]0;\w\007\]\[\033[33m\]\\u\[\033[37m\]@\[\033[32m\]\\H\[\033[37m\]:\[\033[36m\]\\w\[\033[37m\]\n\\$ "

Esto lo podemos meter en el fichero .bash_profile de nuestra home:

# Actualiza prompt y pestaña
export PS1="\[\033]0;\w\007\]\[\033[33m\]\\u\[\033[37m\]@\[\033[32m\]\\H\[\033[37m\]:\[\033[36m\]\\w\[\033[37m\]\n\\$ "
# Actualiza solo prompt
export PS1="\[\033[33m\]\\u\[\033[37m\]@\[\033[32m\]\\H\[\033[37m\]:\[\033[36m\]\\w\[\033[37m\]\n\\$ "
NOTA
Solo puede estar activo uno de los dos así comenta o borra el que no quieras.

Retro

Lugares

Redes

Sistemas

Varios