Mas, probablemente, existan entre los lectores, gente que no sabe lo que es "Bash". Hagamos un pequeño 'tour" informativo (que por supuesto, aclaro, es traducción del sitio oficial)
Bash es el proyecto GNU de la Bourne Again Shell, una aplicación completa de la IEEE POSIX and Open Group shell specification interactivo con la línea de comandos de edición, control del trabajo en las arquitecturas que lo soporten, características similares a csh, tales como la sustitución del historico y la expansión de claves, y un montón de otras funciones.Aca tienen una breve lista de algunas de las características disponibles en bash, sin perjuicio, y para quienes lo deseen, agrego una traducción al final del articulo [1], luego de la firma. Hago la salvedad que es una traducción que me pertenece, y como no soy un traductor profesional, sin duda debe haber algunos errores.
Lo que hay en esta nueva version 4.0 :
Traduzco el archivo de noticias Tersely que nos brinda una concisa descripción de las nuevas características añadidas a bash-4.0 desde la liberación de bash-3.2. Como siempre, la página de manual (doc/bash.1) es el lugar para buscar una descripción completa.1. Nuevas funciones en Bash
a. Cuando se utiliza en la expansión subcadena parámetros, a partir
índice de 0 ahora causa de $ 0 a ser el prefijo a la lista.
b. El `help 'incorporado ahora imprime las entradas con sus columnas
ordenados verticalmente en lugar de horizontalmente.
c. Hay una nueva variable, $ BASHPID, que siempre devuelve el
identificador de proceso de el actual depósito.
d. Hay una nueva »autocd opción que, cuando está activado, las causas
para tratar de bash a `cd 'al directorio de un nombre que se presenta
como la primera palabra de un simple comando.
e. Hay una nueva »checkjobs opción que hace que el depósito para
comprobar y informar de cualquier marcha o parado en la salida de
empleos.
f. El código de terminación programable exportaciones COMP_TYPE una
nueva variable, que se un carácter que describe el tipo de
realización que se está intentando.
g. El código de terminación programable exportaciones COMP_KEY una
nueva variable, que se el personaje que ha causado la conclusión que
se invoca (por ejemplo, TAB).
h. Si la creación de un niño proceso falla debido a la insuficiencia
de recursos, bash se vuelve a intentarlo varias veces antes de
informar sobre el fracaso.
i. El código de terminación programable ahora utiliza el mismo
conjunto de caracteres como readline al romper la línea de comandos
en una lista de palabras.
j. El bloque multiplicador para el ulimit-c y-f opciones es ahora
512, cuando en Posix modo, tal como especifica Posix.
k. Cambiado el comportamiento de la lectura incorporado para guardar
los datos recibidos parcial en la variable especificada cuando el
tiempo de leer incorporado. Esto también resultados en las variables
especificadas como argumentos para que diga que se establece en el
vacío cadena cuando no hay insumos disponibles. Al leer el tiempo de
espera incorporado, devuelve un estado de salida superior a 128.
l. El depósito tiene ahora la noción de un "nivel de compatibilidad",
controlado por nuevas variables ajustables por "shopt".
Estableciendo esta variable actualmente restaura el comportamiento de
bash-3.1, cuando el procesamiento de cadenas entre comillas en el
dcha. de la `= ~« operador »de la [[ 'comando.
m. El `ulimit 'ahora ha incorporado nuevas-b (toma de tamaño de
búfer) y-T (número de hilos) opciones.
n. La opción-p »para declarar 'ahora muestra todos los valores de las
variables y atributos (o función de los valores y atributos si se usa
con-f).
o. Hay una nueva »compopt" incorporado que permite la realización de
modificar las funciones opciones existentes para la terminación o la
conclusión completaciones actualmente siendo ejecutado.
p. El "leer" ha incorporado una nueva opción-i, que introduce el
texto en la respuesta búfer al utilizar readline.
q. Un nuevo `-E 'a la opción incorporada permite el control completo
de la omisión comportamiento para la realización de una línea vacía.
r. En la actualidad existe un apoyo limitado para completar las
palabras que contengan el nombre de comando caracteres.
s. Cambiado el formato interno de la documentación de ayuda para
todos a unos builtins hombre siga formato de la página.
t. El `help 'ahora se ha incorporado una nueva opción-d, para mostrar
una breve descripción, y una opción-m, para imprimir información de
ayuda en un hombre como el formato de página.
u. Hay una nueva »mapfile" incorporado para poblar una matriz con las
líneas de un archivo dado. El nombre «readarray 'es un sinónimo.
c. Si un comando no se encuentra, el shell intenta ejecutar una
función de shell command_not_found_handle llamado ` ', el suministro
de las palabras como el comando de argumentos de función.
w. Hay una nueva opción de depósito: «globstar». Cuando está
activada, el código globbing trata »** especialmente - que coincide
con todos los directorios (y archivos dentro ellos, cuando proceda)
recursivamente.
x. Hay una nueva opción de depósito: «dirspell». Cuando está
activada, el nombre del archivo código lleva a cabo la finalización
de corrección ortográfica en los nombres de directorio durante
la terminación.
y. El `-t 'a la opción" leer "incorporado ahora soporta tiempo
fraccionado valores.
z. Brace expansión permite ahora cero relleno de la ampliación de los
valores numéricos y que agregar el número de ceros para asegurarse de
que todos los valores que contengan las mismo número de dígitos.
aa. Hay un nuevo bash específicos bindable función readline:
"-dabbrev ampliar". Utiliza el menú de la terminación de un conjunto
de palabras tomadas de la lista de historial.
bb. El comando asignado a una secuencia de teclas con `bind-x 'ahora
dos nuevas series variables en el entorno del comando ejecutado:
READLINE_LINE_BUFFER y READLINE_POINT. El comando puede cambiar
la actual línea de readline y modificando la posición del cursor
READLINE_LINE_BUFFER y READLINE_POINT, respectivamente.
cc. Hay una nueva y operador de redirección, lo que añade la salida
estándar y error estándar para el nombre de archivo.
dd. El parser entiende ahora `| & 'como sinónimo de« 2 & 1 |', que
redirecciona el error estándar de un comando a través de una tubería.
ee. El nuevo »; y en caso de declaración de terminación de causas
lista de acciones para la ejecución continuar con la acción asociada
con el siguiente patrón en la declaración en lugar de por concluido
el mandato.
ss. La nueva declaración `;;&' caso causas de terminación lista de
acciones para el depósito prueba de la siguiente serie de pautas
después de completar la ejecución de la actual acción, en lugar de
por concluido el mandato.
gg. El depósito comprende una nueva variable: PROMPT_DIRTRIM. Cuando
se establece en un valor mayor que cero, la expansión inmediata de \
w y \ W se sólo mantener ese número de rastreo de ruta y sustituir
componentes la intervención de personajes con `...'.
hh. Hay nuevos casos y la modificación de las expansiones palabra:
mayúsculas y (^[^]) minúsculas (,[,]). Pueden trabajar tanto en el
primer carácter o Los elementos de matriz, o el mundo. Aceptan un
facultativo el patrón que determina que para modificar los
caracteres. Hay un opcionalmente - característica configurada para
incluir a los operadores de capitalización.
ii. El depósito ofrece variables de matriz asociativa, con las
oportunas apoyo para crear, borrar, asignar valores, y ampliarlas.
jj. El «declarar» ha incorporado ahora nuevos-l (valor a convertir a
minúsculas cesión) y-u (valor a convertir a mayúsculas cesión)
opciones. Hay un opcionalmente configurables por opción-c para sacar
un valor en cesión.
kk. Hay una nueva »coproc 'palabra reservada que especifica una
coprocess: un asíncrona comando se ejecuta con dos tubos conectados a
la creación de depósito. Coprocs puede ser nombrado. La entrada y
salida de descriptores de fichero y la PID del coprocess están
disponibles para la convocatoria en las variables de shell coproc con
nombres específicos.
ll. Un valor de 0 para la opción-t para "leer" ahora vuelve el éxito
si hay entrada disponible para ser leído desde el descriptor de
archivo especificado.
mm. CDPATH GLOBIGNORE y se pasan por alto cuando el depósito se
ejecuta en el privilegio modo.
nn. Nueva bindable readline depósito de traspaso de funciones de la
palabra y de-shell-atrás-palabra, que se mueven hacia adelante y
hacia atrás palabras delimitado por depósito metacaracteres depósito
y el honor de citar.
oo. Nueva bindable readline funciones shell-atrás-palabra-matar-matar
y depósito-palabra que matan palabras hacia atrás y hacia adelante,
pero utilizar la misma palabra límites como depósito de avance-la
palabra y la cáscara hacia atrás-palabra.
2. Nuevas funciones en Readline
a. Una nueva variable, rl_sort_completion_matches; permite a las
aplicaciones para inhibir Clasificación de la lista de partido (pero
tenga cuidado: algunas cosas no funcionan bien si aplicaciones de
ello).
b. Una nueva variable, rl_completion_invoking_key; permite a las
aplicaciones descubrir la clave que invoca rl_complete o
rl_menu_complete.
c. Las funciones rl_block_sigint y rl_release_sigint son ahora
públicas y disponibles llamando a aplicaciones que quieren proteger
secciones críticas (como que vuelva).
d. Las funciones rl_save_state y rl_restore_state son ahora públicas
y disponibles llamando a las solicitudes; documentado readline del
resto del estado bandera de los valores.
e. Un nuevo usuario-configurable variables, `la historia de tamaño»,
permite establecer la máxima número de entradas en la lista de
historial.
f. Hay un nuevo menú de la aplicación de la terminación, con algunas
mejoras sobre la antigua, la más notable mejora es el mejor
"modo complementos navegación".
g. El menú finalización ahora utiliza el código
rl_menu_completion_entry_function variable, lo que permite
proporcionar aplicaciones a su propio menú de finalización
generadores.
h. Hay apoyo para la sustitución de un prefijo de una ruta con un
`...' cuándo mostrar posibles complementos. Esto es controlable
mediante el establecimiento de la »-la finalización de pantalla
prefijo de longitud variables. Los partidos con un prefijo común ya
que este valor tiene el prefijo común sustituye con `...'.
i. Hay un nuevo "volver-a-todos-nueva línea 'variable. Si está
activado, se readline deshacer todas las modificaciones de las líneas
cuando toda la historia »aceptar línea» es ejecutado.
j. Si el kernel lo soporta, readline muestra caracteres especiales
correspondientes a un teclado-señal generada cuando la señal es
recibida.
Y, para terminar, es importante destacar que la nueva version de Bash, coincide con la reciente publicacion de readline, la biblioteca GNU de lectura en linea.
Links
- Bash (The GNU Bourne-Again SHell), sitio oficial y Wikipedia
- El anuncio de la publicacion de la version 4.0
- Readline, sitio oficial y Wikipedia
[1] - BASH - The Bourne Again Shell -
Bash es el shell o intérprete de lenguaje de comando, que se publicará en el sistema operativo GNU. Bash es un sh-compatible shell que incorpora características útiles de la Korn shell (ksh) y el shell C (csh). Se tiene la intención de ajustarse a los estándares IEEE POSIX P1003.2/ISO 9.945,2 Shell y Herramientas de calidad. Ofrece mejoras funcionales en sh de programación y para un uso interactivo. Además, la mayoría de sh scripts pueden ser ejecutados sin modificaciones Bash.
Bash es muy portátil. Utiliza un sistema de configuración que descubre las características de la plataforma de compilación en tiempo, por lo que puede ser construido en casi todas las versiones de UNIX. Puertos a los sistemas tipo UNIX como QNX y Minix y no a los sistemas UNIX como OS / 2, Windows 95/98, Windows NT y están disponibles. Bash incluye las siguientes características:
Edición y Terminación
Bash ofrece una línea de comandos de edición de instalación que permite a los usuarios editar líneas de comandos usando vi o emacs familiar al estilo de comandos de edición. Editando permite correcciones que deben hacerse sin tener que volver a borrar el error o el punto de inicio de la línea de comandos de nuevo. La edición de las instalaciones incluyen una característica que permite a los usuarios para completar comandos y los nombres de archivos.
La línea de edición de la biblioteca Bash es totalmente personalizable. Los usuarios pueden definir sus propias teclas - las medidas adoptadas cuando se presiona una tecla. Una serie de variables para afinar el comportamiento de edición están también disponibles.
Historia y Comando de reentrada
La característica del historico de Bash recuerda todo comandos que entra y al recordarlos puede volver a ejecutar. La lista de historial puede ser de tamaño ilimitado. Bash permite a los usuarios la búsqueda de comandos anterior y reutilizar parte de los comandos al redactar nuevos. La lista de historial se puede guardar en el depósito de sesiones.
Bash permite a los usuarios el control de los comandos que se guardan en la lista de historial.
Control de trabajos
En los sistemas que lo soporten, Bash proporciona una interfaz para el sistema operativo del trabajo de control, que permiten a los procesos que se suspenden reiniciarlos y trasladarse entre el primer plano y el fondo. Bash permite a los usuarios selectivamente "olvidarse" del fondo sobre el empleo.
Funciones Shell y Alias
Estos mecanismos están disponibles para obligar a un usuario, seleccione el identificador de una lista de comandos que se ejecutará cuando el identificador se utiliza como el nombre de un comando. Funciones de variables locales y permitir la recursión, y tener acceso a el medio ambiente de la llamada shell. Alias puede ser utilizado para crear un mnemotécnico para el nombre de un comando, ampliar una sola palabra a un complejo, o asegurarse de que un comando se llama con un conjunto básico de opciones.
Arrays
Las versiones de Bash más reciente que bash-2.0 soportan el indexado de arrays de tamaño ilimitado.El subscript de una matriz es una expresión aritmética. Las matrices pueden ser asignadas a un nuevo compuesto con la sintaxis de la cesión, y varios builtins tienen opciones para operar en variables de matriz. Bash incluye una serie de procedimientos para variables de matriz.
Aritmética
Bash permite a los usuarios realizar operaciones aritméticas con enteros en cualquier base de dos a sesenta y cuatro. Casi todos los operadores aritméticos lenguaje C están disponibles con la misma sintaxis y como prioridad en C. La expansion Aritmética permiten ser evaluados y el resultado puede sustituirse en la línea de comandos. Las variables Shell pueden ser utilizadas como operandos, y el valor de una expresión puede ser asignado a una variable.
Una expresión aritmética puede ser utilizado como un comando, el estado de salida del comando es el valor de la expresión.
ANSI-C Quoting
Existe una nueva sintaxis que permite, citando la barra de caracteres de escape, en cadenas de caracteres que fuera ampliada de acuerdo con la norma ANSI C.
Tilde Expansion
Los directorios de inicio de los Usuarios pueden ampliarse mediante el uso de esta función. Palabras que empiezan con una tilde también pueden ser ampliados a la actual o al anterior directorio de trabajo.
Brace Expansion
Brace expansion es una forma conveniente para generar una lista de cadenas que comparten un mismo prefijo o sufijo.
Substring Capabilities
Bash permite nuevas cadenas que se crearán mediante la eliminación de principio o subcadenas de los valores de las variables existentes, o por especificar una posición inicial y la duración. Porciones de los valores de las variables pueden ser comparadas contra patrones de depósito y la parte correspondiente de retirar o sustituir un nuevo valor.
La expansión de variables indirectas
Bash es fácil encontrar el valor de un intérprete de comandos cuyo nombre es el valor de otra variable.
Ampliacion de las capacidades de E / S
Bash proporciona varias características de entrada y salida no están disponibles en sh, incluyendo la capacidad de:
- especificar un archivo o descriptor de archivo para los dos de entrada y salida
- de leer o escribir a los procesos asíncronos utilizando canalizaciones con nombre
- leer las líneas que terminan en la barra
- mostrar un símbolo del sistema en el terminal antes de una lectura
- dar formato a los menús e interpretar las respuestas a ellos
- lineas echo exactamente como líneas de entrada, sin escapar de la transformación
Control de BUILTIN COMMANDS
Bash implementa la incorporacion de varios comandos para dar a los usuarios más control sobre los comandos que se ejecutan. Al permitir builtin permite a otros comandos ser incorporados selectivamente activados o desactivados. El comando incorporado builtins cambia el orden en que el shell busca los comandos.
En los sistemas que proporcionan carga dinámica, las nuevos builtins pueden ser cargadas en un depósito en ejecución de un objeto compartido de archivos. Estas nuevas builtins tener acceso a todas las instalaciones del depósito.
Ayuda
Bash incluye un mecanismo de ayuda.
Comportamiento de Shell Facultativo
Existen una gran cantidad de shells que permiten personalizar su comportamiento. La incorporacion del comando shopt proporciona una interfaz unificada que permite a los usuarios modificar el shell que viene por defecto.
Personalización rápida
Bash permite que las indicaciones de los prompts primarios y secundarios puedan ser personalizados con la interpretación de un número de la barra de caracteres de escape los caracteres especiales. El Parámetro y la expansión de variables también se realiza en los valores de los prompts primario y secundario antes de que sean mostradas.
Seguridad
Bash proporciona un entorno de shell restringido. También es posible controlar la ejecución de los guiones setuid / setgid.
Directory Stack
Bash proporciona una "pila de directorios" ("directory stack"), los directorios a los que pueden añadirse y quitarse. El directorio actual se puede cambiar a cualquier directorio en la pila. Es fácil alternar entre dos directorios en la pila. La pila de directorios puede ser guardada y restaurada a través de diferentes invocaciones de depósito.
Modo de POSIX
Bash es casi totalmente conforme a POSIX.2.
POSIX mode changes those few areas where the Bash default behavior differs from the standard to match the standard.
El modo POSIX cambia alguna de esas areas en los que el comportamiento por defecto de Bash difiere de la norma haciendo que coincida con dicha norma. En modo POSIX, Bash es compatible con POSIX.2.
Internacionalización
Bash proporciona una nueva sintaxis que permite citar a las cadenas a traducir de acuerdo con el local actual. La localización en la que el depósito se extiende también puede ser cambiado, de modo que el depósito sí mismos mensajes pueden ser específicos del idioma.
La línea de comandos de edición permiten la entrada de ocho caracteres, de modo que la mayor parte de la norma ISO-8859 la familia de conjuntos de caracteres son compatibles.
Comando Calendario
Bash permite comandos externos, shell builtin shell de comandos y funciones que se temporizan. El formato usado para mostrar el momento la información puede ser cambiada por el usuario.
Chet RameyTraduccion al castellano : Gustavo Pimentel