Logo de AulaDigital

Bash Prompt Como 1

Bash Prompt COMO: Introducción y �administrivia� Página siguiente Página anterior Índice general

1. Introducción y �administrivia�

1.1 Requerimientos

Será necesario el bash. La versión por defecto de la práctica totalidad de distribuciones LiNUX es la 1.14.7, que es una versión bien conocida y de confianza. Actualmente se encuentra disponible la versión 2.0 (incluso superiores): yo llevo usando la 2.0 algún tiempo, pero la mayoría del código aquí presentado debería funcionar bajo la 1.14.7. Si conozco alguna incompatibilidad, lo mencionaré. Se puede comprobar la versión del bash mediante el comando echo $BASH_VERSION. En mi máquina responde 2.02.1(1)-release.

La experiencia en programación shell puede venir bien, pero no es esencial: cuanto más se sepa, más complejos serán los prompts que se puedan crear. Presupongo un conocimiento básico de la programación shell y utilidades unix a lo largo de este tutorial. Sin embargo, mis propios niveles de programación shell son limitados, así que doy gran cantidad de ejemplos y explicaciones que pueden parecer innecesarias para el programador experimentado.

1.2 Cómo usar este documento

Se incluyen muchos ejemplos y textos aclaratorios. Su utilidad variará según la persona de la que se trate. Esto ha crecido lo suficiente como para que una lectura completa pueda resultar difícil; se recomienda leer únicamente las secciones que se necesite, volviendo hacia atrás las veces que sea necesario.

1.3 Traducciones

A fecha de 6 de Enero de 1999, existen traducciones al japonés (Akira Endo, akendo@t3.rim.or.jp) y alemán (Thomas Keil, thomas@h-preissler.de). �Gracias a ambos! Las URL serán incluidas cuando estén disponibles.

N. del T.
bueno, ahora también está disponible la versión en castellano ;)

1.4 Problemas

Esta es una lista de problemas que he encontrado programando prompts. No comience a leer por aquí, y no deje que esta lista le desanime, la mayoría son detalles de poca importancia. Échele un vistazo únicamente si llega a algún punto conflictivo.

  • Algunas características de bash (tales como funciones matemáticas dentro de $(()), entre otras) son opciones en tiempo de compilación. Si está usando una distribución binaria, como la que viene en las distribuciones estándar de LiNUX, tales características deberían estar incluidas. Pero si está trabajando en otro sistema, merece la pena recordar esto si no funciona algo que debería hacerlo. Algunas notas acerca de esto en Learning the Bash Shell, págs 260-262
  • El manejador de terminal screen no siempre funciona con colores ANSI. Desafortunadamente no soy un experto en screen. Mi versión de screen (una muy reciente) parece que funciona bien en estos casos, pero he visto ocasiones en que redujo todos los colores del prompt al color de primer plano estándar en terminales X. Esto no parece ser un problema en la consola.
  • Los ficheros Xdefaults pueden redefinir colores. Mire en ~/.Xdefaults las líneas referidas a XTerm*background y XTerm*foreground (o posiblemente XTerm*Background y XTerm*Foreground).
  • Uno de los prompts que se comentan en este documento utiliza la salida de jobs - como se comenta en su momento, las salida de jobs a una tubería no funciona con bash 2.02.
  • Las secuencias de escape ANSI de movimiento del cursor no están implementadas en todas las terminales X. Esto se comenta en su propia sección.
  • Se pueden crear �pseudo-gráficos� bastante agradables utilizando una fuente VGA en lugar de las estándar de LiNUX. Desafortunadamente, estos efectos son horrorosos si no se utiliza un tipo VGA, y no hay manera de detectar dentro de una terminal qué clase de fuentes de letra se están utilizando.
  • Ha aparecido bash 2.02+ que incorpora nuevas características, y cambia algunos comportamientos. Lo que funcionase bajo la versión 1.14.7 no tiene por qué funcionar bajo la 2.0+, y viceversa.

1.5 Comentarios y sugerencias

Esta es una experiencia de aprendizaje para mi. He llegado a saber bastante acerca de lo que se puede hacer para crear prompts interesantes y útiles, pero necesito indicaciones para corregir y mejorar este documento. He intentado comprobar las sugerencias que yo hago contra diferentes versiones de bash (sobre todo la 2.02 que uso, y la 1.14.7 que es la más popular), no obstante, comuníqueme cualquier incompatibilidad que encuentre.

La última versión de éste documento debería estar siempre disponible en
http://www.interlog.com/~giles/bashprompt.html. Compruébelo y siéntase libre de mandarme un mensaje a giles@interlog.com con sus sugerencias.

Utilizo los HOWTOs del Linux Documentation Project casi exclusivamente en formato HTML, así que cuando los convierto desde SGML, el HTML es el único formato que compruebo concienzudamente. Si hay problemas con otros formatos puede que yo no sepa nada, por lo que agradecería cualquier comentario sobre ello.

1.6 Créditos

En la creación de este documento he tomado prestado mucho del proyecto BashPrompt, disponible en http://bash.current.nu.

Otras fuentes han sido:

También han sido de inmensa ayuda numerosas conversaciones y e-mails de Dan, un compañero del Georgia College & State University, cuyo conocimiento sobre unix sobrepasa el mío con mucho. Me ha proporcionado excelentes sugerencias; ideas suyas han conducido hacia prompts interesantes.

Tres libros que me han has sido de mucha utilidad programando prompts son:

  • Linux in a Nutshell de Jessica Heckman Perry (O'Reilly, 1997)
  • Learning the Bash Shell de Cameron Newham y Bill Rosenblatt (O'Reilly, 2a. ed., 1998)
  • y Unix Shell Programming de Lowell Jay Arthur (Wiley, 1986; esta es la primera edición, la segunda apareció en 1997).

1.7 Copyright y demás

Este documento es copyright ©1998-1999 de Giles Orr. Se anima a su distribución, aunque no debería modificarse este documento (véase la sección Comentarios y Sugerencias para todo lo referente a ponerse en contacto conmigo: he venido añadiendo los cambios sugeridos por los lectores desde hace mucho). Póngase en contacto conmigo si está interesado en realizar una traducción, esa es una de las modificaciones con las que puedo vivir.


Página siguiente Página anterior Índice general