Esta guía rápida destila consejos y trucos esenciales para aprovechar al máximo BASH, desde atajos de teclado hasta automatización de tareas. Exploraremos cómo la maestría en la terminal no solo impulsa la eficiencia, sino también fortalece las defensas digitales en el fascinante mundo de la ciberseguridad.

Nuestra Guía Rápida de BASH lo ayudará a navegar y controlar su sistema de manera eficiente desde la línea de comando. Desde comprender los tipos de archivos y permisos hasta la depuración, desde controlar trabajos hasta comprender expresiones regulares, Esta Guía lo cubre todo.

La información contenida en Guía Rápida de BASH es valiosa para usuarios ocasionales de Linux, administradores de sistemas, profesionales de seguridad de la información y estudiantes que se preparan para una amplia gama de exámenes, desde LPIC hasta OSCP y más.

Independientemente de cómo elija usarlo, esperamos que lo haya encontrado como un recurso útil para tener a mano. 

¿Te gustaría enterarte de cuando lanzamos descuentos al Máximo o Nuevos Cursos?

¿Qué es Bash?

Bash (Bourne Again Shell) es un lenguaje shell construido sobre el Bourne Shell original, que se distribuyó con V7 Unix en 1979 y se convirtió en el estándar para escribir scripts de shell. 

Hoy en día es principal para la mayoría de las distribuciones de Linux (consulte nuestra hoja de referencia de la línea de comandos de Linux), MacOS e incluso recientemente se ha habilitado para ejecutarse en Windows a través de algo llamado WSL (Subsistema de Windows para Linux).

Operadores de prueba de archivos

Probar archivos en scripts es fácil y directo. ¡Aquí es donde los scripts de shell comienzan a mostrar su gloria! En Bash, puede realizar pruebas de permisos , tamaño, fecha, tipo de archivo o existencia de archivos.

BANDERA DESCRIPCIÓN
-eEl archivo existe
-aEl archivo existe (idéntico a -e pero está obsoleto y desactualizado)
-FEl archivo es un archivo normal (no un directorio o archivo de dispositivo)
-sel archivo no tiene tamaño cero
-del archivo es un directorio
-bEl archivo es un dispositivo de bloque.
-CEl archivo es un dispositivo de caracteres.
-pel archivo es una tubería
-hEl archivo es un enlace simbólico.
-lEl archivo es un enlace simbólico.
-Sel archivo es un socket
-tel archivo (descriptor) está asociado con un dispositivo terminal; esta opción de prueba se puede usar para verificar si stdin [ -t 0 ] o stdout [ -t 1 ] en un script determinado es una terminal
-rEl archivo tiene permiso de lectura (para el usuario que ejecuta la prueba).
-wel archivo tiene permiso de escritura (para el usuario que ejecuta la prueba)
-Xel archivo tiene permiso de ejecución (para el usuario que ejecuta la prueba)
-gIndicador set-group-id (sgid) establecido en un archivo o directorio
-uindicador set-user-id (suid) establecido en el archivo.
-kjuego de puntas adhesivas.
-Oeres dueño del archivo
-GID de grupo del archivo igual que el tuyo
-Narchivo modificado desde la última vez que se leyó
f1 -nt f2el archivo f1 es más nuevo que f2
f1 -ot f2el archivo f1 es anterior a f2
f1-ef f2Los archivos f1 y f2 son enlaces físicos al mismo archivo.
!  Not - invierte el sentido de las pruebas anteriores (devuelve verdadero si la condición está ausente).

Operadores de comparación de enteros

Cómo comparar números enteros o expresiones aritméticas en scripts de shell.

BANDERADESCRIPCIÓN
-eqes igual a
-neno es igual a
-gtes mayor que
-gees mayor o igual a
-ltes menor que
-lees 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)

Operadores de comparación de cadenas

Comparación de cadenas en Bash.

BANDERADESCRIPCIÓ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
-zla cadena es nula (es decir, de longitud cero)
-nortela cadena no es nula (es decir, de longitud cero)

Operadores compuestos

Útil para expresiones booleanas y es similar a && y ||. Los operadores compuestos funcionan con el comando de prueba o pueden aparecer entre corchetes simples [<expr>].

BANDERADESCRIPCIÓN
-alógico y
-ológico o

Identificadores de trabajo

El control de trabajos le permite detener (suspender) selectivamente la ejecución de procesos y continuar su ejecución en un momento posterior.

NOTACIÓNDESCRIPCIÓN
%NNúmero de trabajo [N]
%SLa invocación (línea de comando) del trabajo comienza con la cadena S
%?SInvocation (command-line) of job contains within it string S
%%Trabajo “actual” (el último trabajo se detuvo en primer plano o se inició en segundo plano)
%+Trabajo “actual” (el último trabajo se detuvo en primer plano o se inició en segundo plano)
%-Último trabajo
%!Último proceso en segundo plano

Lista de construcciones

Proporciona un medio para procesar comandos de forma consecutiva y, de hecho, es capaz de reemplazar estructuras complejas si/entonces/según

CONSTRUIR DESCRIPCIÓN
&&y
||o

Códigos de salida reservados

Útil para depurar un script. La salida toma argumentos enteros en el rango 0-255.

CÓDIGO DE SALIDA NO.DESCRIPCIÓN
1Catchall para errores generales
2Mal uso de las funciones integradas del shell
126El comando invocado no puede ejecutarse
127Comando no encontrado
128Argumento no válido para salir
128+nSeñal de error fatal “n”
130Script terminado por Control-C

Señales

Señales del sistema UNIX V.

NOMBRENÚMEROACCIÓN DESCRIPCIÓN
SIGHUP1salidaCuelga
SIGINT2salidaInterrumpe.
SIGQUIT3volcado de memoriaEn paz.
SIGILL4volcado de memoriaInstrucción ilegal.
SIGTRAP5volcado de memoriaTrampa de rastro.
SIGIOT6volcado de memoriaInstrucción IOT.
SIGEMT7volcado de memoriaInstrucción MT.
SIGFPE8volcado de memoriaExcepción de punto flotante.
SIGKILL9exitMuertes (no se pueden atrapar ni ignorar).
SIGBUS10core dumpError de autobús.
SIGSEGV11core dumpViolación de segmentación.
SIGSYS12core dumpMal argumento para la llamada al sistema.
SIGPIPE13salidaEscribe en una pipa sin que nadie pueda leerlo.
SIGALRM14salidaDespertador.
SIGTERM15salidaSeñal de terminación del software.

Envío de señales de control

Puede utilizar estas combinaciones de teclas para enviar señales.

COMBINACIÓN DE TECLASDESCRIPCIÓN
Ctrl+CLa señal de interrupción envía SIGINT al trabajo que se ejecuta en primer plano.
Ctrl+YEl 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+ZLa señal de suspensión envía un SIGTSTP a un programa en ejecución, deteniéndolo y devolviendo el control al shell.

Verifique la configuración de su styt. La suspensión y reanudación de la salida generalmente están deshabilitadas si utiliza emulaciones de terminal “modernas”. El xterm estándar admite Ctrl+S y Ctrl+Q de forma predeterminada.

Tipos de archivo

Esto es muy diferente a Windows, pero es sencillo una vez que lo entiendes. Ampliaré esta sección pronto con más contexto.

SÍMBOLO SIGNIFICADO
archivo normal
dDirectorio
yoEnlace (simbólico)
CDispositivo de personaje
sEnchufe
pTubería con nombre
bbloqueo de dispositivo

Permisos

Ahora puedes saber cuál es esa cadena de aspecto arcano rwxrwxrwx cuando invocas ls -l

CÓDIGODESCRIPCIÓN
ssetuid cuando está en la columna de usuario
ssetgid cuando está en la columna del grupo
tsticky bit
0——El derecho de acceso que debería tener este lugar no está concedido.
4—–rSe concede acceso de lectura a la categoría de usuario definida en este lugar.
2—–wSe concede permiso de escritura a la categoría de usuario definida en este lugar.
1—–xEl permiso de ejecución se otorga a la categoría de usuario definida en este lugar.
uPermisos de usuario
gpermisos de grupo
ohotros permisos

Archivos especiales

Archivos que son leídos por el shell. Listados por orden de ejecución.

ARCHIVOINFORMACIÓN
/etc/profileEjecutado automáticamente al iniciar sesión
~.bash_profile
———————
~/.bash_login
———————
~.profile
Lo que se encuentre primero se ejecuta al iniciar sesión.
~/.bashrcEs leído por todos los shells sin inicio de sesión.

Manipulación de String

¡Bash admite una cantidad sorprendentemente grande de operaciones de cadenas! Desafortunadamente, estas herramientas carecen de un enfoque unificado. Algunos son un subconjunto de la sustitución de parámetros y otros entran dentro de la funcionalidad del comando expr de UNIX. Esto da como resultado una sintaxis de comandos inconsistente y una superposición de funciones. El bash integrado de MacOS es de 2007 y no admite muchos de estos.

Tabla de Manipulación de String

PATRÓNDESCRIPCIÓN
${#var}Encuentra la longitud de la cuerda.
${var%pattern}Quitar del patrón final (extremo) más corto
${var%%pattern}Quitar del patrón final (extremo) más largo
${var:position}Extraer subcadena de $var en $position
${var:num1:num2}Subcadena
${var#pattern}Quitar del patrón frontal más corto
${var##pattern}Quitar del patrón frontal más largo
${var/pattern/string}Buscar y reemplazar (reemplazar solo la primera aparición)
${var//pattern/string}Buscar y reemplazar todas las ocurrencias
${!prefix*}Se expande a los nombres de variables cuyos nombres comienzan con prefijo.
${var,}${var,pattern}Convierte el primer carácter a minúscula.
${var,,}${var,,pattern}Convierte todos los caracteres a minúsculas.
${var^}${var^pattern}Convierte el primer carácter a mayúscula.
${var^^}${var^^pattern}Convierte todos los caracteres a mayúsculas.
${string/substring/replacement}Reemplace la primera coincidencia de $substring con $replacement
${string//substring/replacement}Reemplace todas las coincidencias de $substring con $replacement
${string/#substring/replacement}Si $substring coincide con el extremo frontal de $string, sustituya $replacement por $substring
${string/%substring/replacement}Si $substring coincide con el final de $string, sustituya $replacement por $substring
expr match “$string” ‘$substring’Longitud de $substring* coincidente al comienzo de $string
expr “$string” : ‘$substring’Longitud de $substring* coincidente al comienzo de $string
expr index “$string” $substringPosición numérica en $cadena del primer carácter en $subcadena* que coincide [0 si no coincide, el primer carácter cuenta como posición 1]
expr substr $string $position $lengthExtraiga los caracteres $length de $string comenzando en $position [0 si no coincide, el primer carácter cuenta como posición 1]
expr match “$string” ‘($substring)’Extraiga $substring*, buscando desde el principio de $string
expr “$string” : ‘($substring)’Extraiga $substring*, buscando desde el principio de $string
expr match “$string” ‘.*($substring)’Extraiga $substring*, buscando desde el final de $string
expr “$string” : ‘.*($substring)’Extraiga $substring*, buscando desde el final de $string

Citando

El siguiente texto muestra caracteres que deben citarse si desea utilizar sus símbolos literales y no su significado especial.

SÍMBOLO SIGNIFICADO LITERAL
;Separador de comando
&Ejecución en segundo plano
()Agrupación de comandos
|Tubo
< > &Símbolos de redirección
? [ ] ~ + – @ !Metacaracteres de nombre de archivo
“‘Se utiliza para citar caracteres.
$Sustitución de variable, comando o aritmética
#Iniciar un comando que termine en un salto de línea
space tab newlineSeparadores de palabras

Todo lo que está entre “…” se toma literalmente, excepto $ (dólar) ` (comilla invertida) y ” (comilla doble).

Todo lo que esté entre ‘…’ se toma literalmente, excepto ‘ (comilla simple).

Los siguientes se toman literalmente. Úselo para escapar de cualquier cosa en “…” o ‘…”

El uso de $ antes de “…” o ‘…’ provoca un comportamiento especial. $”…” es lo mismo que “…” excepto que se realiza la traducción local. Del mismo modo, $’…’ es similar a $’…’ excepto que la cadena entre comillas se procesa para secuencias de escape.

Parámetros de comando

Los parámetros de comando, también conocidos como argumentos, se utilizan al invocar un script Bash.

DOMINIODESCRIPCIÓN
$0Nombre del guión en sí.
$1… $9Parámetro 1 … 9
${10}Parámetro posicional 10
$*Se expande a los parámetros posicionales, comenzando desde uno. Cuando la expansión ocurre entre comillas dobles, se expande a una sola palabra con el valor de cada parámetro separado por la primera de la variable de entorno IFS.
$-Opciones actuales
$_La variable de guión bajo se establece al iniciar el shell y contiene el nombre de archivo absoluto del shell o script que se ejecuta tal como se pasa en la lista de argumentos. Posteriormente, se expande hasta el último argumento del comando anterior, después de la expansión. También se establece en la ruta completa de cada comando ejecutado y colocado en el entorno exportado a ese comando. Al comprobar el correo, este parámetro contiene el nombre del archivo de correo.
$$ID de proceso del shell
$?Estado de salida del comando ejecutado más recientemente
$@Todos los argumentos como palabras separadas.
$#Número de argumentos
$!PID del proceso en segundo plano más reciente

Expansión de la historia

Permite el uso y manipulación de comandos anteriores.

DOMINIO DESCRIPCIÓN
!Inicia una sustitución histórica.
!!Se refiere al último comando.
!nSe refiere a la <n>-ésima línea de comando.
!-nSe refiere a la línea de comando actual menos <n>.
!stringSe refiere al comando más reciente que comienza con <cadena>
!?string?Se refiere al comando más reciente que contiene <cadena> (la terminación ? es opcional)
^string1^string2^Sustitución rápida. Repite el último comando, reemplazando <cadena1> por <cadena2>.
!#Se refiere a toda la línea de comando escrita hasta ahora.

Operaciones variables

Realizar operaciones sobre variables.

EXPRESIÓN
${parameter:-defaultValue}
Obtener el valor predeterminado de las variables del shell
${parameter:=defaultValue}
Establecer el valor predeterminado de las variables del shell
${parameter:?”Error Message”}
Muestra un mensaje de error si el parámetro no está configurado

Bash Globing

Bash no puede reconocer RegEx pero entiende el globbing. El shell realiza la globalización de los nombres de archivos, mientras que RegEx se utiliza para buscar texto.

SimboloDESCRIPCIÓN
*Coincide con cero o más apariciones de un patrón determinado
?Coincide con cero o una ocurrencia de un patrón determinado
+Coincide con una o más apariciones de un patrón determinado
!Negates any pattern matches — reverses the pattern so to speak

Expresiones regulares

Utilice siempre comillas en su RegEx para evitar el globbing

OPERADOREFECTO
.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

En expresiones regulares básicas, los metacaracteres “?”, “+”, “{“, “|”, “(” y “)” pierden su significado especial; en su lugar, utilice las versiones de barra invertida “?” … “)”. Consulte la documentación de su sistema si los comandos que utilizan expresiones regulares admiten expresiones extendidas.

Clases de carácteres en BRE

Una clase de carácter [:CharClass:] es un conjunto de patrones predefinidos y consta de lo siguiente:

CLASE DE PERSONAJEEQUIVALENTEEXPLICACIÓN
[:lower:][a-z]Letras minusculas.
[:upper:][A-Z]Letras mayúsculas
[:alpha:][A-Za-z]Letras alfabéticas, tanto mayúsculas como minúsculas.
[:digit:][0-9]Números 0-9.
[:alnum:][a-zA-Z0-9]Alfanumérico: tanto letras (mayúsculas + minúsculas) como dígitos.
[:xdigit:][0-9A-Fa-f]Dígitos hexadecimales.
[:space:][ \t\n\r\f\v]Espacio en blanco. Espacios, tabulaciones, nueva línea y similares.
[:punct:]Símbolos (menos dígitos y letras).
[:print:][[:graph] ]Caracteres imprimibles (espacios incluidos).
[:blank:][\t]Únicamente caracteres de espacio y tabulación.
[:graph:][^ [:cntrl:]]Caracteres gráficamente imprimibles sin incluir espacios.
[:cntrl:]Controlar personajes. Caracteres no imprimibles

Incorporaciones de Shell

Las compilaciones de Shell integradas en Bash suelen ser muy (si no extremadamente) rápidas en comparación con los programas externos. Algunas de las funciones integradas se heredan de Bourne Shell (sh); estos comandos heredados también funcionarán en el Bourne Shell original.

BUILTINDESCRIPCIÓ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 ].
aliasDefine un alias para el comando especificado.
bgReanuda un trabajo en modo de fondo.
bindVincula una secuencia de teclado a una función o macro de línea de lectura.
breakSale de un bucle for, while, select o Until.
builtinEjecuta el comando integrado del shell especificado.
callerDevuelve el contexto de cualquier llamada de subrutina activa.
case
cdCambia el directorio actual al directorio especificado.
commandEjecuta el comando especificado sin la búsqueda normal del shell.
compgenGenera posibles coincidencias de finalización para la palabra especificada.
completeMuestra cómo se completarían las palabras especificadas.
comopt
continueReanuda la siguiente iteración de un bucle for, while, select o Until.
declareDeclara una variable o tipo de variable.
dirsMuestra una lista de los directorios recordados actualmente.
disownElimina los trabajos especificados de la tabla de trabajos para el proceso.
echoMuestra la cadena especificada en STDOUT.
enableHabilita o deshabilita el comando de shell integrado especificado.
evalConcatena los argumentos especificados en un solo comando y ejecuta el comando.
execReemplaza el proceso de shell con el comando especificado.
exitObliga al shell a salir con el estado de salida especificado.
exportEstablece las variables especificadas para que estén disponibles para los procesos de shell secundarios.
fcSelecciona una lista de comandos de la lista del historial.
fgReanuda un trabajo en modo de primer plano.
getoptsAnaliza los parámetros posicionales especificados.
hashEncuentra y recuerda la ruta completa del comando especificado.
helpMuestra un archivo de ayuda.
historyMuestra el historial de comandos.
ifUtilizado para ramificación.
jobsEnumera los trabajos activos.
killEnvía una señal del sistema al ID de proceso especificado (PID).
letEvalúa cada argumento en una expresión matemática.
localCrea una variable de alcance limitado en una función.
logoutSale de un shell de inicio de sesión.
mapfile
popdElimina entradas de la pila de directorios.
printfMuestra texto usando cadenas formateadas.
pushdAgrega un directorio a la pila de directorios.
pwdMuestra el nombre de ruta del directorio de trabajo actual.
readLee una línea de datos de STDIN y la asigna a una variable.
readonlyLee una línea de datos de STDIN y la asigna a una variable que no se puede cambiar.
returnObliga a una función a salir con un valor que puede ser recuperado por el script que la llama.
setEstablece y muestra valores de variables de entorno y atributos de shell.
shiftGira los parámetros posicionales una posición hacia abajo.
shoptAlterna los valores de las variables que controlan el comportamiento opcional del shell.
sourceLee y ejecuta comandos desde un archivo designado en el shell actual.
suspendSuspende la ejecución del shell hasta que se reciba una señal SIGCONT.
testDevuelve un estado de salida de 0 o 1 según la condición especificada.
timesMuestra el tiempo acumulado de shell del sistema y del usuario.
trapEjecuta el comando especificado si se recibe la señal del sistema especificada.
typeMuestra cómo se interpretarían las palabras especificadas si se usaran como un comando.
typesetDeclara una variable o tipo de variable.
ulimitEstablece un límite en el recurso específico para los usuarios del sistema.
umaskEstablece permisos predeterminados para archivos y directorios recién creados.
unaliasElimina el alias especificado.
unsetElimina la variable de entorno o el atributo de shell especificado.
untilBucle 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.
waitHaga que el shell espere a que termine un trabajo.
whileEspera a que se complete el proceso especificado y devuelve el estado de salida.

Descripción general de los símbolos Bash

Aquí hemos reunido una colección de toda la sintaxis arcana junto con una breve descripción. Muchos de estos símbolos se repiten desde antes, pero muchos son nuevos; este es un buen punto de partida si eres nuevo en el idioma.

SÍMBOLOREFERENCIA RÁPIDA
#usado para comentarios
$Se utiliza para parámetros y variables. Tiene un montón de casos extremos.
()se utiliza para ejecutar comandos en un subshell.
psse utiliza para guardar la salida de los comandos que se envían para ejecutarse en un subshell.
(( ))se utiliza para aritmética.
$()se utiliza para recuperar la salida de expresiones aritméticas, ya sea para usar con un comando o para guardar la salida en una variable.
$[ ]construcción de expansión de enteros obsoleta que se reemplaza por $(( )). Evalúa números enteros entre corchetes
[ ]se utiliza para pruebas y está integrado. Es útil en algunos casos para la expansión de nombres de archivos y manipulación de cadenas.
[[ ]]se utiliza para realizar pruebas. Este es el que debes usar a menos que se te ocurra una razón para no hacerlo.
<( )Se utiliza para la sustitución de procesos y es similar a una tubería. Se puede usar siempre que un comando espere un archivo y puede usar varios a la vez.
{ }Se utiliza para la expansión de secuencias.
${ }se utiliza para la interpolación de variables y la manipulación de cadenas.
|es una tubería que se utiliza para encadenar comandos.
<utilizado para alimentar entradas a comandos desde un archivo
>se utiliza para enviar resultados a un archivo y borrar cualquier contenido anterior en ese archivo.
|lógico o
&&lógico y
utilizado para prefijos de opciones
utilizado para los prefijos de opciones largas
&utilizado para enviar un trabajo al fondo
<<PALABRA<<-PALABRAse usa para heredocs
<<‘PALABRA'<<-‘PALABRA’se usa para  aquí cadenas
<<<se utiliza para agregar salida a un archivo.
>>Se utilizan comillas simples para preservar el valor literal.
‘ ‘Se utilizan comillas dobles para preservar el valor literal de todos los caracteres excepto $, ` ` y
” “La barra invertida se utiliza para escapar de símbolos/caracteres interpretados de otro modo y que tienen un significado especial.
\utilizado para separar los componentes de un nombre de archivo
/similar a un NOP: una operación de no hacer nada. Es un shell incorporado con un estado de salida verdadero.
:Se utiliza para separar comandos destinados a ejecutarse secuencialmente.
;Se utiliza para vincular operaciones aritméticas. Todos son evaluados pero solo se devuelve el último.
,representa el directorio actual.
.representa el directorio principal.
..se expande al directorio de inicio.
~está en desuso y no debe utilizarse. Leer más en su respectiva sección.
` `está en desuso y no debe utilizarse. Leer más en su respectiva sección.

Control de flujo

Las estructuras de control de flujo en Bash son sencillas, aunque Bash no perdona si se equivoca con la sintaxis.

ESTRUCTURA SINTÁXICAPALABRAS O SÍMBOLOS CLAVES DESCRIPCIÓN
Ifsi entonces fiProbar una condición.
If-elsesi entonces si no fiPruebe una condición y utilice un recurso alternativo si la prueba falla.
If-elif-elsesi entonces elif si no fiProporciona pruebas adicionales y un respaldo si todas las pruebas fallan. Puede omitir las condiciones elif o agregar tantas condiciones intermedias como desee. De manera similar, puede omitir el recurso else.
Forpara hacerIterar sobre una secuencia, una lista o cualquier cosa hasta donde llegue la imaginación.
Whilemientras hacerMientras una condición sea verdadera, repita hasta que esa condición ya no sea verdadera.
Untilhasta que termineLo inverso del ciclo while: mientras el comando de prueba falle, el ciclo hasta continúa.
Selectseleccione que hacerSe utiliza para generar menús fácilmente. Cualquier declaración dentro puede ser otra construcción de selección, permitiendo así la creación de submenús.
Casecase ) ;; esacRamificación if alternativa. Cada caso es una expresión que coincide con un patrón dado (es decir, un caso).

Preguntas frecuentes

¿Qué significan $1 y $2 en Bash?

Estos serían “parámetros posicionales” en un script bash. En este contexto, se referirían al primer y segundo argumento pasados ​​al guión. Por ejemplo, si escribió un script llamado “myTestScript.sh” con dos argumentos, como por ejemplo:

./myTestScript.sh arg1 arg2

$1 se referiría al primer argumento y $2 se referiría al segundo.

¿Qué es $ en Bash?

$ representa una variable, que se puede usar para almacenar valores como números, cadenas o matrices. Usas $ para llamar a esa variable en un script. 

Por ejemplo, si configura una variable de la siguiente manera: fav_color=blue

Puede invocarla en un script con la línea: echo “Mi color favorito es $fav_color” para la respuesta “Mi color favorito es el azul”

¿Bash es más fácil que Python?

Si bien los dos lenguajes son similares en muchos aspectos, diríamos que Bash probablemente sería más sencillo de aprender. 

Decimos esto no porque exista una curva de aprendizaje pronunciada para Python, ya que puedes aprender los conceptos básicos de cualquiera de ellos en aproximadamente la misma cantidad de tiempo. Python simplemente es capaz de realizar operaciones más complejas, por lo que a medida que avanza en su aprendizaje, hay más que cubrir en Python.

¿Cómo ejecutar el comando Bash en Windows Powershell?

Para ejecutar Bash en un sistema Windows, necesita instalar el Subsistema de Windows para Linux . Como se describe en el sitio web de Microsoft,

“El Subsistema de Windows para Linux permite a los desarrolladores ejecutar un entorno GNU/Linux (incluyendo la mayoría de las herramientas, utilidades y aplicaciones de línea de comandos) directamente en Windows, sin modificaciones, sin la sobrecarga de una máquina virtual tradicional o configuración de arranque dual. 

Conclusión

Al cerrar esta Guía Rápida de BASH, hemos desglosado las claves para optimizar la experiencia en la terminal. Desde la personalización de la interfaz hasta la ejecución eficiente de comandos, estos consejos y trucos no solo ahorran tiempo, sino que también potencian las habilidades en ciberseguridad. La terminal BASH, cuando se domina, se convierte en una herramienta poderosa para los profesionales que buscan perfeccionar su arte en la defensa digital.

Esperamos que esta hoja de trucos le haya resultado útil. La terminal bash es una herramienta poderosa para automatizar tareas y administrar configuraciones. Es útil para todos, desde administradores de sistemas, desarrolladores y personal de seguridad cibernética hasta el usuario promedio que elige Linux como su controlador diario.

Le recomendamos que eche un vistazo a nuestra Hoja de referencia de la línea de comandos de Linux para desarrollar completamente su base de conocimientos y aprovechar al máximo la línea de comandos.

Aprende Linux desde 0 y prepara la Certificación LPIC-1.

Este curso empieza desde los inicios, enseñándote lo mas básico, acompañándote en cada paso y duda que tengas hasta llegar a los conocimientos necesarios para si gustas, puedas trabajar con Linux y rendir la certificación LPIC-1.

Me caracterizo por tener Mucha Practica en mis cursos, y este no es la excepción. Es más, te brindo Modelos de Exámenes de la certificación para que puedas practicar y ver lo que te espera al momento de rendir.

Yo soy Álvaro Chirou, tengo más de 20 Años de experiencia trabajando en Tecnología, eh dado disertaciones en eventos internacionales como OWASP, tengo más de 500.000 estudiantes en Udemy y 100 formaciones profesionales impartidas en la misma.

Empieza a aprender ya mismo y acompáñame en este increíble curso.

Lo que aprenderás:

  • Automatizar Procesos en Linux con Bash
  • Comandos de Linux desde lo básico hasta avanzado.
  • Realizar Conexiones seguras con SSH desde Linux y Windows
  • Certificarse en LPIC 1 Para tener mayor salida laboral
  • Practicaras con modelos de exámenes REALES de la certificación LPIC 1
  • Seguridad informática en Linux
  • Redes en Linux
  • Cómo realizar Tareas Administrativas

Inicia desde 0 en Linux. Prepara la Certificación LPIC-1 con todo el contenido Teórico, practica y modelos de Examen: https://achirou.com/certificacion-lpic-linux

¿Te gustaría enterarte de cuando lanzamos descuentos al Máximo o Nuevos Cursos?