Bienvenidos a este capítulo del Curso de Linux para Hackers – El Comando GREP. 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:

  1. Comando grep en Linux: cómo buscar patrones de texto dentro de archivos y con expresiones regulares.
  2. Opciones de grep: filtrar sin distinguir entre mayúsculas y minúsculas, mostrar líneas contiguas a los resultados y mostrar coincidencias de forma excluyente.
  3. Uso de grep con tuberías: combinar grep con otros comandos para filtrar datos en tiempo real.

El comando Grep

‘Grep’ significa «impresión de expresión regular global» . El comando grep filtra el contenido de un archivo, lo que facilita nuestra búsqueda.

Es una utilidad de línea de comandos para buscar grupos de datos de texto sin formato en busca de líneas que sean iguales a una expresión regular. El nombre «grep» proviene del comando, es decir, ed, que contiene el mismo efecto. Originalmente, grep fue diseñado para el sistema operativo Unix, pero luego estuvo disponible para todos los sistemas similares a Unix.

El filtro grep encuentra un archivo para un patrón de caracteres específico y muestra todas las líneas que incluyen ese patrón. Los caracteres deben estar entre comillas si aparecen en el parámetro de patrón con un significado especial para el shell. Por lo general, debemos encerrar todo el patrón entre comillas si el parámetro de patrón no es una cadena común.

En una expresión como [az], el signo menos (-) cml describe un rango basado en el orden de intercalación actual. Un orden de intercalación puede especificar clases equivalentes en rangos de caracteres para su uso. El comando grep asume la entrada estándar cuando no se mencionan archivos.

El patrón se denomina expresión regular que se encuentra dentro del archivo. El patrón está restringido a expresiones regulares en el formato del comando egrep o ed. El comando grep aplica un algoritmo sólido no determinista. Resulta útil cuando necesitamos filtrar archivos de registro de gran tamaño.

Implementaciones de grep

Existen varias implementaciones de grep en varios entornos de desarrollo de software y sistemas operativos. Las primeras versiones incluían fgrep y egrep, introducidas en la versión 7 de Unix. La versión egrep admite la sintaxis de una expresión regular extendida incluida por Alfred Aho después de la implementación original de la expresión regular de Ken Thompson. La versión fgrep encuentra cualquier lista de cadenas fijas con el algoritmo de coincidencia de cadenas Aho-Corasick . Estos binarios de versión están disponibles en sistemas modernos, conectándose a grep o llamando a grep como un script de shell utilizando el indicador correcto agregado mientras se implementa generalmente en los sistemas POSIX.

Otros comandos incluyen la palabra «grep» para indicar que están buscando herramientas, generalmente aquellas que dependen de coincidencias con expresiones regulares. Por ejemplo, la utilidad «pgrep» muestra los procesos cuyos títulos son los mismos que los de la expresión regular proporcionada.

  • Grep es el título de la función incorporada que busca los elementos dentro de una lista que cumplen una determinada propiedad en el lenguaje de programación Perl .
  • Normalmente, esta función de orden superior se llama «filtro» o «donde» en otro idioma.
  • El comando, pcregrep , es una implementación de grep que utiliza la sintaxis de expresiones regulares de Perl. La misma funcionalidad se puede agregar a la versión de grep GNU utilizando el indicador -P.
  • Además, los puertos grep (por ejemplo, en GnuWin32 y Cygwin ) se ejecutan en Microsoft Windows. Algunas versiones de Windows proporcionan el mismo comando findstr o qgrep.
  • Además, el comando grep es parte de las herramientas MSX-DOS2 de ASCII para la versión 2 de MSX-DOS.
  • Los comandos fgrep, egrep y grep se han incorporado al sistema operativo IBM i.
    El software Adobe InDesign tiene funciones GREP (a partir de la edición CS3) en el cuadro de diálogo de la pestaña «GREP» para cambiar o buscar y se especifican mediante CS4 en los estilos de párrafo «Estilos GREP» .

¿Cómo instalar grep en Linux?

Grep viene preinstalado en casi todas las distribuciones de Linux. Sin embargo, en caso de que no esté en nuestro sistema, podemos instalarlo con el siguiente comando en la ventana de terminal:

sudo apt-get install grep  

grep con tubería

El comando ‘grep’ generalmente se utiliza con barra vertical (|) .

Sintaxis:

comando | grep <palabra de búsqueda>  

Ejemplo:

cat carlos.txt | grep a

Mire la instantánea de arriba, el comando grep filtra todos los datos que contienen ‘a’.

grep sin tubería

También se puede utilizar sin tubería.

Sintaxis:

grep <palabra de búsqueda> <archivo nombre>  

Ejemplo:

grep a carlos.txt  

Mire la instantánea de arriba, el comando grep hace el mismo trabajo que el ejemplo anterior pero sin tubería.

opciones de grep

grep -vM : el comando ‘grep -v’ muestra líneas que no coinciden con la palabra especificada.

Sintaxis:

grep -v <palabra de búsqueda> <Nombre del archivo>  

Ejemplo:

grep -v a carlos.txt  

Mire la instantánea de arriba, el comando «grep -v a marks.txt» muestra líneas que no contienen nuestra palabra de búsqueda ‘a’.

grep -i : el comando ‘grep -i’ filtra la salida sin distinguir entre mayúsculas y minúsculas.

Sintaxis:

grep-i <palabra de búsqueda> <Nombre del archivo>  

Ejemplo:

grep -i carlos.txt hack

Mire la instantánea de arriba, el comando «grep -i red exm.txt» muestra todas las líneas que contienen «rojo», ya sea en mayúsculas o minúsculas.

grep -A/ grep -B/ grep -C

  • El comando grep -A se utiliza para mostrar la línea después del resultado .
  • El comando grep -B se utiliza para mostrar la línea antes del resultado .
  • El comando grep -C se utiliza para mostrar la línea después y la línea antes del resultado.
  • Puede utilizar (A1, A2, A3…..)(B1, B2, B3….)(C1, C2, C3….) para mostrar cualquier número de líneas.

Sintaxis:

  • grep-A<Número de línea> <palabra de búsqueda> <Nombre del archivo>  
  • grep-B<Número de línea> <palabra de búsqueda> <Nombre del archivo>  
  • grep-C<Número de línea> <palabra de búsqueda> <Nombre del archivo>  

Ejemplo:

  • grep -A1 exm.txt amarillo  
  • grep -B1 exm.txt amarillo  
  • grep -C1 amarillo exm.txt  

Mire la instantánea de arriba, el comando «grep -A1 yellow exm.txt» muestra la línea buscada con la siguiente línea sucesiva, el comando «grep -B1 yellow exm.txt» muestra la línea buscada con una línea precedente y el comando «grep -C1 yellow exm.txt» muestra la línea buscada con una línea precedente y una sucesiva.

Resumen de los puntos clave:

  1. Comando grep para búsqueda de texto
    grep es una herramienta para buscar patrones específicos de texto dentro de archivos o de la entrada de datos. Realiza búsquedas utilizando expresiones regulares y es útil para filtrar grandes volúmenes de datos. Ejemplo básico:
    • grep "patrón" archivo.txt Este comando buscará el término «patrón» en cada línea del archivo, mostrando solo las líneas que contengan coincidencias.
  2. Usar grep en combinación con tuberías
    grep puede trabajar con la salida de otros comandos a través de tuberías (|):
    • cat archivo.txt | grep "palabra" # Filtra líneas que contienen "palabra" en el archivo
  3. Opciones avanzadas de grep
    • -v: muestra solo las líneas que no contienen el término de búsqueda.
      • grep -v "excluir" archivo.txt # Muestra las líneas que no contienen "excluir"
    • -i: ignora mayúsculas y minúsculas en la búsqueda.
      • grep -i "palabra" archivo.txt # Muestra "palabra", ya sea en minúsculas o mayúsculas
    • -A -B y -C: muestran líneas contiguas al resultado.
      • -A (after): muestra un número específico de líneas después de una coincidencia.-B (before): muestra un número específico de líneas antes de una coincidencia.-C (context): muestra un número específico de líneas antes y después de una coincidencia.
    • grep -A2 "término" archivo.txt # Muestra "término" y las dos líneas siguientes grep -B2 "término" archivo.txt # Muestra "término" y las dos líneas anteriores grep -C2 "término" archivo.txt # Muestra "término" y dos líneas antes y después
  4. Buscar patrones en múltiples archivos
    grep permite buscar en varios archivos simultáneamente:
    • grep "patrón" archivo1.txt archivo2.txt
  5. Casos de uso y variantes de grep
    • fgrep: busca patrones de texto literal (sin interpretarlos como expresiones regulares).
    • egrep: permite usar expresiones regulares extendidas.
  6. Instalación de grep (opcional)
    grep viene preinstalado en la mayoría de distribuciones Linux. Si se requiere instalación, puede hacerse con:
    • sudo apt-get install grep
  7. Consultar ayuda y manuales
    Usa grep --help o man grep para ver todas las opciones y ejemplos avanzados.

Con grep, puedes buscar y filtrar texto eficientemente en archivos y entradas de comandos, lo cual es útil en tareas de análisis y extracción de datos en Linux.

Pon en práctica lo aprendido

Ahora pon a prueba lo aprendido con estas preguntas y ejercicios.

Preguntas

  1. ¿Qué significa el comando grep en Linux?
  2. ¿Cuál es la función principal de grep?
  3. ¿Cuál es la diferencia entre grep y grep -v?
  4. ¿Cómo se utiliza grep para hacer una búsqueda sin distinguir entre mayúsculas y minúsculas?
  5. ¿Qué opción de grep permite mostrar la línea posterior a la coincidencia?
  6. ¿Qué opción de grep permite mostrar la línea anterior a la coincidencia?
  7. ¿Cómo se muestran las líneas anterior y posterior a la coincidencia en grep?
  8. ¿Qué utilidad tiene combinar grep con una tubería (|)?
  9. ¿Cuál es la diferencia entre fgrep, egrep y grep?
  10. ¿Cómo puedes instalar grep en una distribución de Linux?

Ejercicios

  1. Usa grep para buscar la palabra «error» en el archivo registro.txt.
  2. Utiliza grep -v para mostrar todas las líneas que no contienen la palabra «advertencia» en registro.txt.
  3. Aplica grep -i para buscar la palabra «fallo» en el archivo registro.txt sin importar mayúsculas o minúsculas.
  4. Usa grep -A2 para mostrar la palabra «fallo» en registro.txt junto con las dos líneas siguientes.
  5. Usa grep -B1 para mostrar la palabra «error» en registro.txt junto con la línea anterior.
  6. Encuentra «advertencia» en el archivo registro.txt mostrando dos líneas antes y después de cada coincidencia con grep -C2.
  7. Usa grep con tuberías (|) para encontrar la palabra «éxito» en el archivo log.txt, y luego filtrar las líneas que contengan «completado».
  8. Encuentra todas las líneas que contengan «reinicio» en el archivo sistema.log sin distinguir entre mayúsculas y minúsculas.
  9. Utiliza grep para buscar la palabra «acceso» en varios archivos a la vez: log1.txt, log2.txt, y log3.txt.
  10. Usa grep -i para buscar «usuario» en el archivo registro.log, mostrando también las dos líneas antes y después de cada coincidencia.

Respuestas a las Preguntas

  1. Significado de grep: Significa «global regular expression print» (impresión de expresión regular global).
  2. Función principal de grep: Busca un patrón de caracteres en un archivo y muestra las líneas que contienen dicho patrón.
  3. Diferencia entre grep y grep -v: grep muestra las líneas que contienen el patrón, mientras que grep -v muestra las líneas que no contienen el patrón.
  4. Búsqueda sin distinguir mayúsculas o minúsculas: Usar grep -i.
  5. Mostrar línea posterior a la coincidencia: Usar grep -A <N>, donde N es el número de líneas.
  6. Mostrar línea anterior a la coincidencia: Usar grep -B <N>.
  7. Mostrar línea anterior y posterior: Usar grep -C <N>.
  8. Uso de tuberías con grep: Permite combinar grep con otros comandos para filtrar la salida de uno o más procesos.
  9. Diferencia entre fgrep, egrep y grep: fgrep busca texto literal (sin expresiones regulares), egrep usa expresiones regulares extendidas, y grep usa expresiones regulares básicas.
  10. Instalación de grep en Linux:
    • sudo apt-get install grep

Respuestas a los Ejercicios

  1. Buscar «error» en registro.txt:
    • grep "error" registro.txt
  2. Mostrar líneas sin «advertencia»:
    • grep -v "advertencia" registro.txt
  3. Buscar «fallo» sin distinguir mayúsculas/minúsculas:
    • grep -i "fallo" registro.txt
  4. Mostrar «fallo» con dos líneas siguientes:
    • grep -A2 "fallo" registro.txt
  5. Mostrar «error» con la línea anterior:
    • grep -B1 "error" registro.txt
  6. Mostrar «advertencia» con dos líneas antes y después:
    • grep -C2 "advertencia" registro.txt
  7. Encontrar «éxito» seguido de «completado»:
    • cat log.txt | grep "éxito" | grep "completado"
  8. Buscar «reinicio» sin distinguir mayúsculas/minúsculas:
    • grep -i "reinicio" sistema.log
  9. Buscar «acceso» en varios archivos:
    • grep "acceso" log1.txt log2.txt log3.txt
  10. Buscar «usuario» con dos líneas antes y después:
    • grep -i -C2 "usuario" registro.log

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…

¿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

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!!!