1.1.- ¿Qué es Bash?
Bash es la shell, o interprete de comandos, para el sistema operativo GNU.
El nombre es unacrónimo para el 'Bourne-Again Shell', un juego de palabras de Stephen Bourne, el autor del prede-cesor directo del actual shell Unix sh, que apareció en la Séptima Edición de la versión de Unix delos Bell Labs Research (Laboratorios de Investigación de Bell).
Bash es ampliamente compatible con sh e incorpora características muy útiles de la Korn shellksh y la C shell csh.
Busca ser una implementación conforme al IEEE POSIX Shell y Herramientasparte de la especificación POSIX del IEEE (estándar IEEE 1003.1).
Ofrece mejoras funcionalesfrente a sh tanto para uso interactivo como de programación.
Aunque el sistema operativo GNU proporciona otras shells, incluida una versión de csh, lashell Bash es la shell por defecto.
Al igual que el resto del software GNU, Bash es bastante portable. Actualmente corre en casi todas las versiones de Unix y en algunos sistemas operativos más.
Bash fue escrito para el proyecto GNU y es el intérprete de comandos por defecto en la mayoría de las distribuciones de Linux. Su nombre es un acrónimo de Bourne-Again Shell (otro shell bourne) — haciendo un juego de palabras (born-again significa renacimiento) sobre el Bourne shell (sh), que fue uno de los primeros intérpretes importantes de Unix.
Hacia 1978 Bourne era el intérprete distribuido con la versión del sistema operativo Unix Versión 7. Stephen Bourne, por entonces investigador de los Laboratorios Bell, escribió la versión original de Bourne. Brian Fox escribió Bash en 1987.
En 1990, Chet Ramey se convirtió en su principal desarrollador. Bash es el intérprete predeterminado en la mayoría de sistemas GNU/Linux, además de Mac OS X Tiger, y puede ejecutarse en la mayoría de los sistemas operativos tipo Unix. También se ha llevado a Microsoft Windows por el proyecto Cygwin.
1.2.- ¿Qué es una shell?
En esencia una shell es simplemente un procesador de macros que ejecuta comandos.
El término procesador de macros indica una funcionalidad donde se expanden texto y símbolos para crearexpresiones más largas.
Una shell de Unix es a la vez un interprete de comandos y un lenguaje de programación. Comointerprete de comandos, la shell proporciona una interfaz de usuario para el amplio juego de utilidades GNU.
En modo interactivo aceptan entradas desde el teclado.
Cuando se ejecutan en modo no-interactivo, las shells ejecutan comandosleídos desde un fichero.Una shell permite la ejecución de comandos GNU tanto de forma síncrona como asíncrona.
La shell espera hasta que se completan los comandos síncronos antes de aceptar más entradas; los
comandos asíncronos continúan ejecutándose paralelamente a la shell mientras que esta lee yejecuta otros comandos. La redirección permite un control detallado de la entrada y la salida deestos comandos.
Más aún, la shell permite controlar el contenido de los entornos de los comandos.Las shells también proporcionan un pequeño juego de comandos internos (builtins ) implemen-tando funcionalidades que mediante utilidades separadas serían imposibles de obtener o lo harían deforma poco apropiada.
Por ejemplo, no se puede implementar a cd, break, continue y exec fuera de la shell porque estas manipulan directamente la propia shell.
Los comandos internos history, getopts, kill o pwd, a parte de otros, pueden ser implementados en utilidades separadas, pero sonmás convenientes usados como comandos internos. Todos los comandos internos de la shell serándescritos en las secciones siguientes.
Mientras que la ejecución de comandos es esencial, gran parte del poder (y complejidad) de la shell se debe a los lenguajes de programación embebidos en ella. Como cualquier lenguaje de altonivel, la shell proporciona variables, construcciones de control del flujo, entrecomillado yfunciones.Las shells ofrecen características orientadas específicamente para el uso interactivo más quepara aumentar el lenguaje de programación.
Estas características interactivas incluyen control detareas, edición de la linea de comandos, historia de comandos y alias.
0 comments:
No insertes enlaces clicables, de lo contrario se eliminará el comentario. Si quieres ser advertido via email de los nuevos comentarios marca la casilla "Notificarme". Si te ayudé con la publicación o con las respuestas a los comentarios, compártelo en Facebook, Twitter, Tumblr, Google +, Pinterest o Instagram. Gracias.