La variable predeterminada de PS1 en mi máquina (Kubuntu 13.10) es esta:
\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\u@\h:\w\$
Estoy buscando una referencia de cómo funciona la variable $ PS1 que, como mínimo, me permite comprender la variable PS1 anterior.

PS1en un terminal, por ejemploPS1="How r u, \u?". El cambio solo durará hasta que cierre la terminal.Respuestas:
Referencias
Hasta ahora, no ha habido una sola referencia para todo lo que puede ir en un aviso de Bash, pero como es una característica que ha evolucionado durante décadas y probablemente varía de una distribución a otra, tal vez sea demasiado pedir. He tratado de resumir lo que encontré más útil aquí.
Este tutorial es el más completo, pero es muy largo y divagante. Algunas de las secciones más útiles:
\[y\]son necesarios.Esta guía explica cómo
${}funciona en Bash en general, y esta pregunta Ask Ubuntu explica un poco más sobre cómo funciona esodebian_chroot.Entre ellos, creo que se explican todos los caracteres en la variable predeterminada de Ubuntu PS1.
Explicación de la solicitud de Ubuntu
Hay tres partes en la solicitud:
\[\e]0;\u@\h: \w\a\]establece la barra de título de una ventana xterm:\[comienza una sección de caracteres no imprimibles\e]0;es la secuencia de escape para 'establecer título de xterm' (creo que los números que no sean 0 establecerán otras propiedades de xterm, aunque no he probado esto)\u@\h: \wel título a usar (ver abajo para\u,\hy\w)\amarca el final del título\]marca el final de los caracteres no imprimibles${debian_chroot:+($debian_chroot)}se expande al valor de $ debian_chroot entre paréntesis si se establece $ debian_chroot. Consulte esta pregunta para obtener más información sobre $ debian_chroot.\u@\h:\w\$es el aviso en sí:\use expande al nombre de usuario actual\hse expande al nombre de host actual\wse expande al directorio de trabajo actual\$se expande#para root y$para todos los demás usuariosfuente
De acuerdo con el Manual de referencia de Bash ,
PS1es:Algunas otras buenas referencias pueden ser:
Mensaje de PS1 explicado para Linux / Unix
¿Qué hace "$ {debian_chroot: + ($ debian_chroot)}" en mi indicador de terminal?
Bash Shell PS1: 10 ejemplos para hacer que su sistema operativo de Linux sea como Angelina Jolie
fuente
\[y\], sin embargo, ¿tiene alguna referencia para eso?\[- comience una secuencia de caracteres que no se imprimen, que podrían usarse para incrustar una secuencia de control de terminal en el aviso;\]- Finalizar una secuencia de caracteres que no se imprimen. Solo tómate tu tiempo y lee atentamente;)ss64.com parece tener la mejor referencia que he encontrado.
Explica las siguientes variables:
El
\[ ... \]define una serie de caracteres que no se imprimen. Deben realizar un seguimiento correcto de la posición del cursor.El
\een su mensaje inicia una secuencia de escape. Más sobre ésos aquí (nota "Esc" en esa página es la\esecuencia).tputpara obtener el código de escape para usted.${debian_chroot:+($debian_chroot)}es la expansión de parámetros. Ver aquí($debian_chroot)si$debian_chrootse establece de otra manera nada.fuente