
Bienvenidos a este capítulo del Curso de Linux para Hackers – Globbing y expresiones regulares. Comparte este articulo y síguenos para recibir más capítulos y cursos gratis.
Esta guía es parte de un curso mucho más grande en donde te enseñamos a convertirte en hacker de 0 a 100. Desde los conocimientos más básicos hasta conseguir empleo.
En esta guía veremos desde cero un tema tan amplio como es Linux y lo haremos desde el punto de vista del hacking y la ciberseguridad.
Para saber más comente a continuación, respondemos todos y cada uno de los comentarios.
¿Te gustaría enterarte de cuando lanzamos descuentos y nuevos cursos?

Conceptos que aprenderás en esta sección:
- Expresiones regulares en Linux: cómo definir patrones para buscar o manipular texto.
- Globbing y comodines: símbolos para seleccionar múltiples archivos o coincidencias en el shell.
- Uso de comillas y escape de caracteres: cómo interpretar caracteres especiales o literales.
- Instrucciones de control: ejecutar comandos condicionalmente o en secuencia en el shell.
¿Qué son las expresiones regulares de Linux?
Las expresiones regulares de Linux son caracteres especiales que ayudan a buscar datos y a encontrar patrones complejos. Las expresiones regulares se abrevian como «regexp» o «regex». Se utilizan en muchos programas de Linux como grep, bash, rename, sed, etc.
Expresiones regulares básicas
Algunos de los comandos más utilizados con expresiones regulares son tr, sed, vi y grep . A continuación, se enumeran algunas expresiones regulares básicas.
Símbolo | Descripciones |
. | reemplaza cualquier caracter |
^ | coincide con el inicio de la cadena |
$ | coincide con el final de la cadena |
* | coincide cero o más veces con el carácter anterior |
\ | Representar caracteres especiales |
() | Expresiones regulares de grupos |
? | Coincide exactamente con un personaje |
Expresiones regulares extendidas
Estas expresiones regulares contienen combinaciones de más de una expresión. Algunas de ellas son:
Expresión | Descripción |
\+ | Coincide con una o más ocurrencias del carácter anterior |
\? | Coincide con cero o una ocurrencia del carácter anterior |
Expresiones regulares de intervalo
Estas expresiones nos indican la cantidad de veces que aparece un carácter en una cadena. Son
Expresión | Descripción |
{m} | Coincide exactamente con el carácter anterior que aparece ‘n’ veces |
{n,m} | Coincide con el carácter anterior que aparece ‘n’ veces, pero no más de m |
{n, } | Coincide con el carácter anterior solo cuando aparece ‘n’ veces o más |
Globbing
Los caracteres de globbing se denominan a menudo como “comodines”. Estos son símbolos que tienen un significado especial para el shell. A diferencia de los comandos que ejecutará el shell, u opciones y argumentos que el shell pasará a los comandos, los comodines son interpretados por el mismo shell antes de que intente ejecutar cualquier comando. Esto significa que los comodines pueden utilizarse con cualquier comando.
Los comodines son poderosos porque permiten especificar patrones que coinciden con los nombres de archivo en un directorio, así que en lugar de manipular un solo archivo a la vez, puedes fácilmente ejecutar comandos que afectarán a muchos archivos. Utilizando comodines es posible manipular todos los archivos con una cierta extensión o con una longitud de nombre de archivo determinado. Ten en cuenta que estos comodines pueden utilizarse con cualquier comando, ya que es el shell, no el comando que se expande con los comodines a la coincidencia de nombres de archivo.
Asterisco (*)
El asterisco se utiliza para representar cero o más de cualquier carácter en un nombre de archivo. Si quieres visualizar todos los archivos en el directorio /etc que empiecen con la letra t:
echo /etc/t*

El patrón t* significa “cualquier archivo que comienza con el carácter t y tiene cero o más de cualquier carácter después de la letra t“.
Puedes usar el asterisco en cualquier lugar dentro del patrón del nombre de archivo. El siguiente ejemplo coincidirá con cualquier nombre de archivo en el directorio /etc que termina con extencion .d:
echo /etc/*.d

El siguiente ejemplo coincidirá con cualquier nombre en el directorio /etc que termina con a:
echo /etc/*a

En el ejemplo siguiente se mostrarán todos los archivos en el directorio /etc que comienzan con la letra r y terminan con .conf:
echo /etc/r*.conf

Signo de Interrogación (?)
El signo de interrogación representa cualquier carácter único. Cada carácter de signo de interrogación coincide con exactamente un carácter. Si quieres visualizar todos los archivos en el directorio /etc que comienzan con la letra t y que tienen exactamente 7 caracteres después del carácter de t:
echo /etc/t???????

Los comodines pueden utilizarse juntos para encontrar patrones más complejos. El comando
echo /etc/*????????????????????
imprimirá sólo los archivos del directorio /etc con veinte o más caracteres en el nombre del archivo:

El asterisco y el signo de interrogación también podrían usarse juntos para buscar archivos con extensiones de tres letras ejecutando el comando
echo /etc/*.???:

Corchetes [ ] y Exclamación (!)
Los corchetes se utilizan para coincidir con un carácter único representando un intervalo de caracteres. Por ejemplo, echo /etc/[gu]* imprimirá cualquier archivo que comienza con el carácter g o u y contiene cero o más caracteres adicionales:
echo /etc/[gu]*

Los corchetes también pueden ser utilizados para representar un intervalo de caracteres. Por ejemplo, el comando echo /etc/[a-d]* mostrará todos los archivos que comiencen con cualquier letra entre e incluyendo a y d:
echo /etc/[a-d]*

El comando echo /etc/*[0-9]* mostrará todos los archivos que contienen al menos un número:
echo /etc/*[0-9]*

El intervalo se basa en el cuadro de texto de ASCII. Esta tabla define una lista de caracteres disponiéndolos en un orden estándar específico. Si proporcionas un orden inválido, no se registrará ninguna coincidencia:
echo /etc/*[9-0]*

El signo de exclamación se utiliza en conjunto con los corchetes para negar un intervalo. Por ejemplo, el comando echo [!DP]* mostrará cualquier archivo que no comienza con D o P.
Las Comillas (“)
Hay tres tipos de comillas que tienen significado especial para el shell Bash: comillas dobles «, comillas simples ‘ y comilla invertida `. Cada conjunto de comillas indica al shell que debe tratar el texto dentro de las comillas de una manera distinta a la normal.
Las comillas dobles
Detendrán al shell de la interpretación de algunos metacaracteres, incluyendo los comodines. Dentro de las comillas dobles, el asterisco es sólo un asterisco, un signo de interrogación es sólo un signo de interrogación y así sucesivamente. Esto significa que cuando se utiliza el segundo comando echo más abajo, el shell BASH no convierte el patrón de globbing en nombres de archivos que coinciden con el patrón:
echo /etc/ [DP]*

echo "/etc/[DP]*"

Esto es útil cuando quieres mostrar algo en la pantalla, lo que suele ser un carácter especial para el shell:

Las comillas dobles todavía permiten la sustitución de comando, sustitución de variable y permiten algunos metacaracteres de shell. Por ejemplo, en la siguiente demostración, notarás que el valor de la variable PATH es desplegada:

Las comillas simples
Evitan que el shell interprete algunos caracteres especiales. Esto incluye comodines, variables, sustitución de comando y otro metacarácter que aún no hemos visto. Si quieres que el carácter $ simplemente signifique un $, en lugar de actuar como un indicador del shell para buscar el valor de una variable, puedes ejecutar el segundo comando que se muestra a continuación:

Las comillas invertidas
Se utilizan para especificar un comando dentro de un comando, un proceso de sustitución del comando. Aunque puede sonar confuso, un ejemplo debe hacer las cosas más claras. Para empezar, fíjate en la salida del comando date:
date

Ahora fíjate en la salida de la línea de comandos echo Hoy es date:
echo Hoy es date

En el comando anterior la palabra date es tratada como texto normal y el shell simplemente pasa date al comando echo. Pero, probablemente quieras ejecutar el comando date y tener la salida de ese comando enviado al comando echo. Para lograr esto, deberás ejecutar la línea de comandos echo Today is `date`:
echo Hoy es `date`

Puedes utilizar una técnica alternativa para citar un carácter con comillas simples. Si que quieres imprimir lo siguiente: “Esto cuesta $100 y path es $PATH“. Si pones esto entre las comillas dobles, $1 y $PATH se consideran variables. Si pones esto entre las comillas simples, $1 y $PATH no son variables. Pero ¿qué pasa si quieres tener $PATH tratado como una variable y no a $1?
La diagonal Inversa (\)
Si colocas una barra diagonal invertida \ antes del otro carácter, tratará al otro carácter como un carácter de “comillas simples”. El tercer comando más abajo muestra cómo utilizar el carácter \, mientras que los otros dos muestran cómo las variables serían tratadas si las pones entre las comillas dobles y simples:
echo "Esto cuesta $100 y path es $PATH"

echo 'Esto cuesta $100 y path es $PATH'

echo Esto cuesta \$100 y path es $PATH

Instrucciones de Control
Las instrucciones de control te permiten utilizar varios comandos a la vez o ejecutar comandos adicionales, dependiendo del éxito de un comando anterior. Normalmente estas instrucciones de control se utilizan en scripts o secuencias de comandos, pero también pueden ser utilizadas en la Shell.
El punto y coma puede utilizarse para ejecutar varios comandos, uno tras otro. Cada comando se ejecuta de forma independiente y consecutiva; no importa el resultado del primer comando, el segundo comando se ejecutará una vez que el primero haya terminado, luego el tercero y así sucesivamente.
Si quieres imprimir los meses de enero, febrero y marzo de 2025, puedes ejecutar cal 1 2025; cal 2 2025; cal 3 2025 en la línea de comandos.

El símbolo de ampersand doble &&
Actúa como un operador “y” lógico. Si el primer comando tiene éxito, entonces el segundo comando también se ejecutará. Si el primer comando falla, entonces el segundo comando no se ejecutará. Los comandos tienen éxito cuando algo funciona bien y fallan cuando algo sale mal. Por ejemplo, considera la línea de comandos ls /etc/xml. El comando tendrá éxito si el directorio /etc/xml es accesible y fallará cuando no es accesible. El primer comando tendrá éxito porque el directorio /etc/xml existe y es accesible mientras que el segundo comando fallará porque no hay un directorio /junk:
ls /etc/xml
ls /etc/junk

La manera en que usarías el éxito o fracaso del comando ls junto con && sería ejecutando una línea de comandos como la siguiente:
ls /etc/xml && echo success
ls /etc/junk && echo success

En el primer ejemplo el comando echo fue ejecutado, porque tuvo éxito el comando ls. En el segundo ejemplo, el comando echo no fue ejecutado debido a que el comando ls falló.
La línea vertical doble ||
Es un operador lógico “o”. Funciona de manera similar a &&; dependiendo del resultado del primer comando, el segundo comando se ejecutará o será omitido. Si el primer comando se ejecuta con éxito, el segundo comando es omitido. Si el primer comando falla, entonces se ejecutará el segundo comando. Le estás diciendo al shell, “O bien ejecuta este primer comando o bien el segundo”. En el ejemplo el comando echo se ejecutará sólo si falla el comando ls:
ls /etc/xml || echo failed
ls /etc/junk || echo failed

Resumen de los puntos clave:
- Expresiones regulares básicas y extendidas
- Las expresiones regulares (
regex
) permiten buscar patrones complejos en texto y archivos en Linux. - Símbolos comunes:
.
: representa cualquier carácter.^
: coincide con el inicio de la cadena.$
: coincide con el final de la cadena.*
: coincide con cero o más ocurrencias del carácter anterior.
- Expresiones extendidas como
\+
,?
, y{n,m}
permiten mayor flexibilidad, como coincidencias opcionales o múltiples caracteres específicos.
- Las expresiones regulares (
- Comodines (Globbing)
- Los comodines permiten trabajar con varios archivos al mismo tiempo:
*
: representa cero o más caracteres. Ejemplo:t*
para archivos que empiezan con «t».?
: representa un solo carácter.[...]
: especifica un rango de caracteres (ej.,[a-d]*
para archivos que empiezan con letras de la «a» a la «d»).!
: se usa para negar el rango dentro de los corchetes, como en[!a-c]*
para excluir ciertos caracteres iniciales.
- Los comodines permiten trabajar con varios archivos al mismo tiempo:
- Tipos de comillas en Bash
- Comillas dobles (
"
): protegen la mayoría de los caracteres especiales excepto$
,\
, y`
. - Comillas simples (
'
): tratan todos los caracteres dentro de ellas como texto literal, sin interpretarlos. - Comillas invertidas (
`
): ejecutan el comando dentro de ellas y sustituyen el resultado en la línea de comandos. Ejemplo:echo `date`
.
- Comillas dobles (
- Escape de caracteres con barra invertida
- El backslash (
\
) permite usar caracteres especiales de forma literal (por ejemplo,$
para el símbolo de dólar o\n
para una nueva línea en ciertas expresiones).
- El backslash (
- Instrucciones de control para combinar comandos
- Punto y coma (
;
): ejecuta comandos en secuencia, independientemente del resultado de cada uno. &&
: ejecuta el segundo comando solo si el primero tiene éxito.||
: ejecuta el segundo comando solo si el primero falla.
- Punto y coma (
Las expresiones regulares, los comodines y las instrucciones de control permiten realizar búsquedas, filtrados y ejecuciones condicionales de manera eficiente en Linux.
Pon en práctica lo aprendido
Ahora pon a prueba lo aprendido con estas preguntas y ejercicios.
Preguntas
- ¿Qué son las expresiones regulares en Linux y para qué sirven?
- ¿Cuáles son algunos comandos comunes en Linux que utilizan expresiones regulares?
- ¿Qué significa el símbolo
^
en una expresión regular? - ¿Qué significa el símbolo
*
en una expresión regular? - ¿Cuál es la función del símbolo
$
en una expresión regular? - ¿Qué diferencia hay entre una expresión regular básica y una extendida?
- ¿Para qué se utiliza el comodín
*
en globbing? - ¿Cómo se utiliza el comodín
?
en globbing y qué representa? - ¿Cuál es la diferencia entre usar comillas simples y comillas dobles en la Shell?
- ¿Cómo se utiliza el operador
&&
y cuál es su función en la Shell?
Ejercicios
- Escribe una expresión regular que encuentre todas las líneas que comienzan con «usuario» en un archivo llamado
registro.log
. - Usa
grep
con una expresión regular para encontrar líneas que terminen en «.com» en el archivoemails.txt
. - Utiliza una expresión regular para encontrar todas las líneas que contengan un dígito entre los números 1 y 5 en el archivo
datos.txt
. - Usa globbing para listar todos los archivos en el directorio
/etc
que comiencen con «sys» y terminen en «.conf». - Encuentra líneas que contengan al menos una «a» seguida de cero o más «b» en el archivo
prueba.txt
. - Escribe un comando con una expresión regular que encuentre palabras de exactamente cuatro letras en el archivo
palabras.txt
. - Usa el operador
&&
para mostrar un mensaje «Archivo encontrado» solo si el archivoconfig.cfg
existe. - Usa comillas simples para imprimir literalmente
$PATH
en la Shell sin que se interprete como una variable. - Ejecuta dos comandos secuenciales: muestra el calendario de enero de 2023 y luego el de febrero de 2023 usando
;
. - Usa comillas dobles para mostrar el valor de la variable
$HOME
junto con el texto «Directorio de usuario».
Respuestas a las Preguntas
- Expresiones regulares en Linux: Son conjuntos de caracteres especiales que ayudan a buscar y definir patrones en texto para encontrar coincidencias complejas.
- Comandos comunes con regex:
grep
,sed
,awk
,vi
,tr
. - Símbolo
^
: Representa el inicio de una cadena en una expresión regular. - Símbolo
*
: Coincide con cero o más repeticiones del carácter anterior. - Símbolo
$
: Representa el final de una cadena en una expresión regular. - Expresión regular básica vs extendida: Las extendidas permiten más combinaciones, como
+
,?
,{n,m}
. - Comodín
*
en globbing: Representa cero o más caracteres. - Comodín
?
en globbing: Representa exactamente un carácter. - Comillas simples vs dobles: Las comillas simples muestran texto sin interpretarlo, mientras que las dobles permiten la sustitución de variables y otros caracteres especiales.
- Operador
&&
en la Shell: Ejecuta el segundo comando solo si el primero tiene éxito.
Respuestas a los Ejercicios
- Expresión para líneas que comienzan con «usuario»:
grep "^usuario" registro.log
- Buscar líneas que terminen en «.com»:
grep "\.com$" emails.txt
- Buscar líneas con dígitos entre 1 y 5:
grep "[1-5]" datos.txt
- Globbing para archivos que comienzan con «sys» y terminan en «.conf»:
echo /etc/sys*.conf
- Buscar «a» seguida de cero o más «b»:
grep "ab*" prueba.txt
- Buscar palabras de exactamente cuatro letras:
grep -E "\b\w{4}\b" palabras.txt
- Mostrar mensaje solo si
config.cfg
existe:[ -f config.cfg ] && echo "Archivo encontrado"
- Imprimir
$PATH
literalmente:echo '$PATH'
- Mostrar calendarios de enero y febrero de 2023:
cal 1 2023; cal 2 2023
- Mostrar el valor de
$HOME
:echo "Directorio de usuario: $HOME"
No te detengas, sigue avanzando
Aquí tienes un propósito que debes considerar seriamente: si has querido mejorar tus habilidades en hacking, Ciberseguridad y programación ahora es definitivamente el momento de dar el siguiente paso. ¡Desarrolla tus habilidades aprovechando nuestros cursos a un precio increíble y avanza en tu carrera! El mundo necesita más hackers…
- Cómo conseguir trabajo de hacker en 2024
- Trabaja remoto e internacionalmente como Hacker en 2024
- Se necesitan más Hackers – Hechos y estadísticas de 2024
- Se Necesitan más Hackers – La escasez de habilidades en ciberseguridad está empeorando
- El salario de un hacker – Cuanto se gana como Pentesters/ Infosec
- Las empresas te estan buscando para hacerle frente a los ciberataques
- Cómo convertirse en analista de ciberseguridad
- Inicia en hacking y ciberseguridad como analista SOC
- DevOps vs DevSecOps para Hackers
- DevOps vs DevSecOps para Empresas
¿Te gustaría enterarte de cuando lanzamos descuentos y nuevos cursos?

Sobre los autores
Álvaro Chirou
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 1.800.000 estudiantes en Udemy y 100 formaciones profesionales impartidas en la misma. Puedes seguirme en mis redes:
Laprovittera Carlos
Soy Laprovittera Carlos. Con más de 20 años de experiencia en IT brindo Educación y Consultoría en Seguridad de la Información para profesionales, bancos y empresas. Puedes saber más de mi y de mis servicios en mi sitio web: laprovittera.com y seguirme en mis redes:
Hacker de 0 a 100 desde las bases hasta conseguir empleo
¿Quieres iniciarte en hacking y ciberseguridad pero no sabes por dónde empezar? Inicia leyendo nuestra guia gratuita: https://achirou.com/hacker-de-0-a-100-desde-las-bases-hasta-conseguir-empleo/ que te lleva de 0 a 100. Desde los fundamentos más básicos, pasando por cursos, recursos y certificaciones hasta cómo obtener tu primer empleo.

Hemos creado una ruta de 0 a 100. Un plan de desarrollo que va desde las bases: cómo aprender hacking, qué aprender, en qué orden; pasando por las areas técnicas necesarias como Linux, Redes, Programación y los conocimientos necesarios en ciber seguridad, hacking, pentesting hasta la práctica y el inicio laboral: Crear tu propio laboratorio, certificaciones, adquirir experiencia e iniciarse laboralmente.
Este es un mega post. Una guía con más de 250 artículos que te llevaran por el camino del hacker. Esta guía es gratuita y esta creada gracias al esfuerzo y al trabajo combinado de Alvaro Chirou y mío (Laprovittera Carlos).
Creamos esta guía (futuro curso) para que puedas iniciarte en este mundo. Puedes arrancar ahora, GRATIS, solo necesitas un PC, conexión a internet y paciencia (Ser hacker NO ES un camino de la noche a la mañana).
El Hacking y la ciberseguridad es una carrera divertida, emocionante y gratificante que te recompensará y desafiará por igual. Sin embargo, para quienes buscan adentrarse en este campo en auge y en constante evolución, puede resultar difícil saber por dónde empezar. ¡Ahí es donde entra en juego nuestra guía en ciberseguridad!

Esta es la hoja de ruta hacia el trabajo de ciberseguridad de tus sueños. Te ayudará a entender qué conocimientos, habilidades y certificados son necesarios para alcanzar tus metas profesionales y tener una carrera próspera. Si quieres ser consultor de ciberseguridad, analista de malware, evaluador de penetración, analista de SOC o cualquier otro puesto de ciberseguridad, esta guía es lo que necesitas.
SIGUE APRENDIENDO GRATIS CON NUESTRAS GUIAS
- Cómo Iniciarse en Hacking y Ciberseguridad en 2024
- Hacker de 0 a 100 desde las bases hasta conseguir empleo
- Curso de Redes para Hackers
- Curso Gratis de Programación
- Curso Gratis Linux – Capitulo 1 – Introducción a Linux
- Curso Gratis de Redes – Capitulo 1 – Tipos de redes y servicios
- Guía de Hacking y Pentesting capitulo 1: Introducción al Pentesting
- Como iniciarse en TRY HACK ME – Complete Beginner #1
- OSINT #1 Más de 200 Search Tools
- Curso Gratis de Java para Hackers
- Hardware para Hackers – Los mejores 40 Dispositivos de Hacking
- Guía de Flipper Zero – Qué es y para qué sirve
- SIGUE APRENDIENDO GRATIS EN NUESTRO BLOG
Aprende con nuestros más de 100 cursos que tenemos disponibles para vos
Compartimos estos recursos para ayudar a la comunidad de hacking y ciberseguridad. COMPARTE y Siéntete libre de agregar más sugerencias en los comentarios a continuación, respondemos todos y cada uno de los comentarios.
Saludos amigos y happy hacking!!!