Shells(3)

En muchos shells de unix (de hecho, aquellos de la familia Bourne principalmente), PS1 es la variable de entorno que define la «cadena de comandos principal» (según la literatura al respecto, pero yo prefiero referirme a ello como «el indicador de entradas del usuario, pasadas y siguiente»). El idicador del prompt es el texto que vemos adelante (o atrás, cuestión de perspectivas) a (o de) la introducción de un comando en la terminal. Usualmente es un «$» o «%» para usuarios regulares, y un «#» para el usuario root.

En unix y sistemas similares, varios shells permiten la personalización del prompt a través de variables como PS1, siendo los más relevantes:

  1. Bourne Again Shell (bash)
    • Usa PS1 para el prompt principal.
    • También soporta PS2 (para continuación de comandos), PS3 (para menús interactivos en select), y PS4 (para debugging con set -x).
    • Ejemplo: export PS1='\u@\h:\w\$ '
  2. Z Shell (zsh)
    • Similar a bash, usa PS1 para el prompt principal.
    • También tiene PS2, PS3, PS4, y variables adicionales como PROMPT, RPROMPT (para mostrar texto alineado a la derecha).
    • Ejemplo: PROMPT='%n@%m:%~%# '
  3. Korn Shell (ksh, mksh, pdksh)
    • Usa PS1, PS2 y PS3.
    • Algunas versiones modernas admiten secuencias de escape avanzadas similares a bash.
    • Ejemplo: export PS1='ksh: $PWD > '
  4. Almquist Shell (ash) y Debian Almquist Shell (dash)
    • Usa PS1, pero con soporte limitado (sin expansiones avanzadas).
    • Ejemplo: export PS1='\u@\h:\w\$ '

Pero, tambièn podemos encontrar otros shells que tienen su propia forma de configurar el prompt:

  1. C Shell (csh) y TENEX C Shell (tcsh)
    • Usan prompt en lugar de PS1.
    • Ejemplo en csh: set prompt = "%n@%m:%~% "
    • En tcsh, también existe prompt2 para líneas continuadas.
  2. Fish Shell (fish)
    • No usa PS1. En su lugar, se configura con la variable fish_prompt en un script de configuración.
    • Ejemplo: function fish_prompt echo -n (whoami)'@'(hostname)':'(pwd)'$ ' end
  3. Es Shell (es) y Rc Shell (rc)
    • Usan prompt en lugar de PS1, similar a csh.
    • Ejemplo: prompt='es> '

La personalización del prompt, hoy en día va más allá de meras secuencias de texto como nombre de usuario, el nombre de host, o el directorio actual. Además de colores, podemos incluir emojis, para proporcionar información del sistema y más.

Siguiente

Deja un comentario

Este sitio utiliza Akismet para reducir el spam. Conoce cómo se procesan los datos de tus comentarios.