Bash (Bourne Again Shell) es un lenguaje de shell basado en el Bourne Shell original, que fue distribuido con el V7 Unix en 1979 y se convirtió en el estándar para escribir scripts de shell.
En la actualidad, es el shell principal en la mayoría de las distribuciones de Linux, en macOS y, recientemente, ha sido habilitado para ejecutarse en Windows a través del WSL (Subsistema de Windows para Linux).
Operadores cadenas
CARÁCTER | DESCRIPCIÓN |
---|---|
= | es igual a |
== | es igual a |
!= | no es igual a |
< | es mayor que el orden alfabético ASCII |
> | es mayor que el orden alfabético ASCII |
-z | la cadena es nula (es decir, de longitud cero) |
-norte | la cadena no es nula (es decir, de longitud cero) |
Operadores numéricos
CARÁCTER | DESCRIPCIÓN |
---|---|
-eq | es igual a |
-ne | no es igual a |
-gt | es mayor que |
-ge | es mayor o igual a |
-lt | es menor que |
-le | es menor o igual a |
< | es menor que – colocar entre paréntesis dobles |
<= | es menor o igual que (misma regla que la fila anterior) |
> | es mayor que (misma regla que la fila anterior) |
>= | es mayor o igual que (misma regla que la fila anterior) |
Códigos de salida/error
CÓDIGO DE SALIDA NO. | DESCRIPCIÓN |
---|---|
1 | Catchall para errores generales |
2 | Mal uso de las funciones integradas del shell |
126 | El comando invocado no puede ejecutarse |
127 | Comando no encontrado |
128 | Argumento no válido para salir |
128+n | Señal de error fatal «n» |
130 | Script terminado por Control-C |
Señales de control
COMBINACIÓN DE TECLAS | DESCRIPCIÓN |
---|---|
Ctrl+C | La señal de interrupción envía SIGINT al trabajo que se ejecuta en primer plano. |
Ctrl+Y | El carácter de suspensión retrasada. Provoca la detención de un proceso en ejecución cuando intenta leer la entrada del terminal. El control se devuelve al shell, el usuario puede poner en primer plano, en segundo plano o finalizar el proceso. La suspensión retrasada solo está disponible en sistemas operativos que admiten esta función. |
Ctrl+Z | La señal de suspensión envía un SIGTSTP a un programa en ejecución, deteniéndolo y devolviendo el control al shell. |
Otras señales
NOMBRE | NÚMERO | ACCIÓN | DESCRIPCIÓN |
---|---|---|---|
SIGHUP | 1 | salida | Cuelga |
SIGINT | 2 | salida | Interrumpe. |
SIGQUIT | 3 | volcado de memoria | En paz. |
SIGILL | 4 | volcado de memoria | Instrucción ilegal. |
SIGTRAP | 5 | volcado de memoria | Trampa de rastro. |
SIGIOT | 6 | volcado de memoria | Instrucción IOT. |
SIGEMT | 7 | volcado de memoria | Instrucción MT. |
SIGFPE | 8 | volcado de memoria | Excepción de punto flotante. |
SIGKILL | 9 | exit | Muertes (no se pueden atrapar ni ignorar). |
SIGBUS | 10 | core dump | Error de autobús. |
SIGSEGV | 11 | core dump | Violación de segmentación. |
SIGSYS | 12 | core dump | Mal argumento para la llamada al sistema. |
SIGPIPE | 13 | salida | Escribe en una pipa sin que nadie pueda leerlo. |
SIGALRM | 14 | salida | Despertador. |
SIGTERM | 15 | salida | Señal de terminación del software. |
Permisos
CÓDIGO | DESCRIPCIÓN |
---|---|
s | setuid cuando está en la columna de usuario |
s | setgid cuando está en la columna del grupo |
t | sticky bit |
0—— | El derecho de acceso que debería tener este lugar no está concedido. |
4—–r | Se concede acceso de lectura a la categoría de usuario definida en este lugar. |
2—–w | Se concede permiso de escritura a la categoría de usuario definida en este lugar. |
1—–x | El permiso de ejecución se otorga a la categoría de usuario definida en este lugar. |
u | Permisos de usuario |
g | permisos de grupo |
oh | otros permisos |
Archivos especiales
ARCHIVO | INFORMACIÓN |
---|---|
/etc/profile | Ejecutado automáticamente al iniciar sesión |
~.bash_profile ——————— ~/.bash_login ——————— ~.profile |
Lo que se encuentre primero se ejecuta al iniciar sesión. |
~/.bashrc | Es leído por todos los shells sin inicio de sesión. |
Expresiones regulares
OPERADOR | EFECTO |
---|---|
. | Coincide con cualquier carácter individual. |
? | El ítem anterior es opcional y se igualará, como máximo, una vez. |
* | El elemento anterior coincidirá cero o más veces. |
+ | El elemento anterior coincidirá una o más veces |
{N} | El elemento anterior coincide exactamente N veces. |
{N,} | El elemento anterior coincide N o más veces. |
{N,M} | El elemento anterior coincide al menos N veces, pero no más de M veces. |
– | Representa el rango si no es el primero o el último en una lista o el punto final de un rango en una lista. |
^ | Coincide con la cadena vacía al principio de una línea; también representa los caracteres que no están en el rango de una lista. |
$ | Coincide con la cadena vacía al final de una línea. |
[aoeiAOEI] | Coincide con 1 carácter cualquiera de la lista. |
[^AOEIaoei] | ¡Coincide con 1 carácter cualquiera, que no está en la lista! |
[af] | Coincide con 1 carácter cualquiera en el rango af |
Comandos
BUILTIN | DESCRIPCIÓN |
: | Equivalente a verdadero. |
. | Lee y ejecuta comandos desde un archivo designado en el shell actual. |
[ | Es sinónimo de prueba pero requiere un argumento final de ]. |
alias | Define un alias para el comando especificado. |
bg | Reanuda un trabajo en modo de fondo. |
bind | Vincula una secuencia de teclado a una función o macro de línea de lectura. |
break | Sale de un bucle for, while, select o Until. |
builtin | Ejecuta el comando integrado del shell especificado. |
caller | Devuelve el contexto de cualquier llamada de subrutina activa. |
case | |
cd | Cambia el directorio actual al directorio especificado. |
command | Ejecuta el comando especificado sin la búsqueda normal del shell. |
compgen | Genera posibles coincidencias de finalización para la palabra especificada. |
complete | Muestra cómo se completarían las palabras especificadas. |
comopt | |
continue | Reanuda la siguiente iteración de un bucle for, while, select o Until. |
declare | Declara una variable o tipo de variable. |
dirs | Muestra una lista de los directorios recordados actualmente. |
disown | Elimina los trabajos especificados de la tabla de trabajos para el proceso. |
echo | Muestra la cadena especificada en STDOUT. |
enable | Habilita o deshabilita el comando de shell integrado especificado. |
eval | Concatena los argumentos especificados en un solo comando y ejecuta el comando. |
exec | Reemplaza el proceso de shell con el comando especificado. |
exit | Obliga al shell a salir con el estado de salida especificado. |
export | Establece las variables especificadas para que estén disponibles para los procesos de shell secundarios. |
fc | Selecciona una lista de comandos de la lista del historial. |
fg | Reanuda un trabajo en modo de primer plano. |
getopts | Analiza los parámetros posicionales especificados. |
hash | Encuentra y recuerda la ruta completa del comando especificado. |
help | Muestra un archivo de ayuda. |
history | Muestra el historial de comandos. |
if | Utilizado para ramificación. |
jobs | Enumera los trabajos activos. |
kill | Envía una señal del sistema al ID de proceso especificado (PID). |
let | Evalúa cada argumento en una expresión matemática. |
local | Crea una variable de alcance limitado en una función. |
logout | Sale de un shell de inicio de sesión. |
mapfile | |
popd | Elimina entradas de la pila de directorios. |
printf | Muestra texto usando cadenas formateadas. |
pushd | Agrega un directorio a la pila de directorios. |
pwd | Muestra el nombre de ruta del directorio de trabajo actual. |
read | Lee una línea de datos de STDIN y la asigna a una variable. |
readonly | Lee una línea de datos de STDIN y la asigna a una variable que no se puede cambiar. |
return | Obliga a una función a salir con un valor que puede ser recuperado por el script que la llama. |
set | Establece y muestra valores de variables de entorno y atributos de shell. |
shift | Gira los parámetros posicionales una posición hacia abajo. |
shopt | Alterna los valores de las variables que controlan el comportamiento opcional del shell. |
source | Lee y ejecuta comandos desde un archivo designado en el shell actual. |
suspend | Suspende la ejecución del shell hasta que se reciba una señal SIGCONT. |
test | Devuelve un estado de salida de 0 o 1 según la condición especificada. |
times | Muestra el tiempo acumulado de shell del sistema y del usuario. |
trap | Ejecuta el comando especificado si se recibe la señal del sistema especificada. |
type | Muestra cómo se interpretarían las palabras especificadas si se usaran como un comando. |
typeset | Declara una variable o tipo de variable. |
ulimit | Establece un límite en el recurso específico para los usuarios del sistema. |
umask | Establece permisos predeterminados para archivos y directorios recién creados. |
unalias | Elimina el alias especificado. |
unset | Elimina la variable de entorno o el atributo de shell especificado. |
until | Bucle que es muy similar al bucle while excepto que se ejecuta hasta que el comando de prueba se ejecuta con éxito. Mientras el comando de prueba falle, el ciclo hasta continúa. |
wait | Haga que el shell espere a que termine un trabajo. |
while | Espera a que se complete el proceso especificado y devuelve el estado de salida. |