Bienvenidos a este capítulo del Curso de Linux para Hackers – Gestión de Procesos desde la Shell. 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. Localización y filtrado de procesos con ps y grep: cómo usar estos comandos para listar y filtrar procesos.
  2. Visualización de procesos en árbol con pstree: visualización de procesos en formato de árbol para identificar dependencias.
  3. Administración de procesos en segundo plano: cómo iniciar, ver y manipular procesos en segundo plano.
  4. Comando watch para monitoreo en intervalos: cómo usar watch para ejecutar comandos en intervalos de tiempo específicos.
  5. Comandos bg, fg y jobs para administración de procesos en segundo plano: manejo de procesos entre primer y segundo plano.

Localización de procesos mediante el comando ps y grep

El comando ps es otra forma de mostrar la información del proceso. Hay muchas opciones que se utilizan con el comando ps, como aux, que significa:

  • a : Para mostrar los procesos para todos los usuarios
  • u : Para mostrar los procesos utilizados por un usuario en particular
  • x: Para mostrar todos los procesos. Si no especificamos la opción x, no se mostrará el proceso GUI.

Ejecute el siguiente comando para enumerar todos los procesos en ejecución:

ps -aux

Considere el siguiente resultado:

La salida del comando ps es similar a la del comando top . El nombre del proceso y el PID se indican en las dos primeras columnas, y el nombre del proceso se indica en la columna de la derecha. El comando ps es más útil que el comando top. Nos permite filtrar la salida con el comando grep. Supongamos que queremos filtrar todos los procesos con el nombre de usuario carlos, ejecutamos el comando de la siguiente manera:

ps aux | grep carlos

El comando anterior filtrará todos los procesos especificados mediante el comando grep. Considere el siguiente resultado:

La salida anterior proporciona la funcionalidad del comando ps y del comando grep juntas.

El comando ps tiene más opciones que puedes explorar

ps --help
 ps --help all

También te recomendamos consultar las páginas man para este comando:

 man ps

Otro comando muy útil es el ―pstree que nos muestra un árbol de dependencias de los procesos para facilitarnos la vida a la hora de encontrar el padre de una serie de procesos.

 pstree --help

También  te recomendamos consultar las páginas man para este comando:

 man pstree

Administrar Procesos en Segundo Plano

Para comenzar un proceso en segundo plano, se debe adjuntar el símbolo & luego del comando que vayamos a ejecutar, el proceso que hayamos enviado a segundo plano no leerá ninguna entrada del usuario hasta que lo enviemos nuevamente a primer plano. Como era de esperarse, simplemente se trata de un ls –l que se ejecuta cada 5 segundos. Al mandarlo a segundo plano veremos lo siguiente:

En el ejemplo de arriba pueden ver que utilizamos el programa watch  que nos permite ejecutar un programa en un intervalo de tiempo determinado con el flag -n en este caso le hemos especificado cada 5 segundos. Como le adjuntamos el signo & al finalizar la sentencia del comando que queremos monitorear, en nuestro caso es  ls –l lo enviaremos a segundo plano. Si no lo hiciéramos veríamos el siguiente resultado:

El [1] significa que hay un solo proceso en segundo plano iniciado por este usuario, y el número que le sigue es el PID del proceso Al ejecutar un ps –ef y filtrar por el número de proceso lo podemos encontrar:

Luego utilizaremos los comandos bg y fg para ver los procesos que hay en segundo plano y enviarlos a primer plano de la siguiente manera. 

Por último para ver que procesos están siendo ejecutados en segundo plano utilizaremos el comando jobs.

 watch --help

También  te recomendamos consultar las páginas man para este comando:

 man watch

Resumen de los puntos clave:

  1. Localización de procesos con ps y grep
    El comando ps aux muestra una lista completa de todos los procesos en ejecución. Con grep, puedes filtrar procesos específicos. Por ejemplo, ps aux | grep carlos muestra solo los procesos iniciados por el usuario «carlos». Las opciones significan:
    • a: muestra procesos de todos los usuarios.
    • u: muestra detalles de los procesos para cada usuario.
    • x: incluye procesos sin una terminal asociada (como los de la GUI).
  2. Visualización en árbol con pstree
    pstree permite ver los procesos en un formato de árbol, mostrando claramente los procesos padres y sus dependencias. Es útil para visualizar la relación entre procesos y ubicar el origen de un grupo de procesos.
  3. Iniciar procesos en segundo plano
    Añadir & al final de un comando (por ejemplo, ls -l &) envía el proceso a segundo plano. Esto significa que el proceso se ejecutará sin interacción con el usuario hasta que sea traído a primer plano. El número entre corchetes ([1]) indica el número de trabajos en segundo plano iniciados por el usuario, y el siguiente número es el PID del proceso.
  4. Monitoreo periódico con watch
    El comando watch permite ejecutar un comando en intervalos especificados (por ejemplo, watch -n 5 ls -l ejecutará ls -l cada 5 segundos). Al enviar este comando a segundo plano con &, el proceso se ejecuta automáticamente en cada intervalo definido.
  5. Manipulación de procesos en segundo plano con bg, fg y jobs
    • bg: muestra los procesos que están en segundo plano.
    • fg: trae un proceso en segundo plano al primer plano.
    • jobs: lista todos los procesos en segundo plano iniciados en la sesión actual, mostrando el estado y el número de cada trabajo.
  6. Consulta de ayuda para cada comando
    Utiliza man ps, man pstree, y man watch para obtener una guía completa sobre las opciones avanzadas de cada comando, ayudándote a dominar sus funciones para la administración de procesos en Linux.

Pon en práctica lo aprendido

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

Preguntas

  1. ¿Cómo se usa ps aux y qué información muestra?
  2. ¿Para qué sirve grep junto con ps y cómo se usa?
  3. ¿Qué muestra la salida de ps aux | grep <nombre de usuario>?
  4. ¿Qué información presenta el comando pstree y en qué situaciones es útil?
  5. ¿Cómo se envía un proceso al segundo plano en Linux y cuál es el símbolo necesario?
  6. ¿Qué función cumple el comando watch y cómo se utiliza su flag -n?
  7. ¿Qué representa el número entre corchetes ([1]) al enviar un proceso a segundo plano?
  8. ¿Cómo se envía un proceso en segundo plano de vuelta al primer plano?
  9. ¿Qué comando permite listar los procesos que se están ejecutando en segundo plano?
  10. ¿Cómo se accede a la ayuda detallada de los comandos ps, pstree y watch?

Ejercicios

  1. Ejecute ps aux | grep <nombre de usuario> usando su nombre de usuario y describa la información que muestra la salida.
  2. Explique el uso de ps aux y el propósito de cada opción (a, u, x) en el contexto de los procesos.
  3. Ejecute pstree y analice la jerarquía de procesos. Describa la relación de un proceso padre con sus hijos.
  4. Ejecute un comando en segundo plano usando &, como ls -l &, y observe el resultado. Identifique el PID del proceso usando ps.
  5. Use el comando watch -n 5 ls -l & y explique el propósito del flag -n y el significado del &.
  6. Liste los procesos en segundo plano utilizando jobs y explique el número entre corchetes.
  7. Ejecute un comando en segundo plano, utilice jobs para localizarlo y luego envíelo al primer plano con fg.
  8. Investigue la función de watch --help y mencione dos opciones avanzadas del comando watch.
  9. Utilice ps -ef | grep <PID> para localizar el proceso de un comando en segundo plano. Explique el uso de grep en este caso.
  10. Consulte el manual de watch (usando man watch) y describa cómo ejecutar un comando cada 2 segundos solo un número específico de veces.

Respuestas a las Preguntas

  1. Comando ps aux: Muestra todos los procesos en ejecución con detalles como PID, usuario, %CPU, %MEM y el comando. a muestra procesos de todos los usuarios, u muestra el usuario, y x incluye procesos en segundo plano.
  2. Uso de grep con ps: Permite filtrar la salida de ps para localizar procesos específicos según el usuario o nombre del proceso.
  3. Salida de ps aux | grep <nombre de usuario>: Muestra los procesos pertenecientes al usuario especificado.
  4. Información de pstree: Presenta los procesos en formato de árbol, mostrando las relaciones padre-hijo, útil para ver dependencias de procesos.
  5. Enviar proceso a segundo plano: Añadiendo & al final de un comando. Este proceso no espera interacción del usuario.
  6. Comando watch y -n: watch ejecuta comandos repetidamente; -n especifica el intervalo en segundos.
  7. Número entre corchetes en procesos en segundo plano: Indica el número del proceso en segundo plano (como [1] para el primer proceso).
  8. Enviar proceso en segundo plano a primer plano: Usando fg seguido del número del proceso en segundo plano.
  9. Listar procesos en segundo plano: jobs muestra los procesos en segundo plano y su estado.
  10. Acceder a la ayuda de comandos: Usar ps --help, pstree --help, y watch --help para opciones de ayuda o man para el manual completo.

Respuestas a los Ejercicios

  1. Salida de ps aux | grep <nombre de usuario>: Muestra información de los procesos del usuario, incluyendo PID, CPU, MEM, y el comando en ejecución.
  2. Propósito de ps aux y sus opciones:
    • a: Muestra procesos de todos los usuarios.
    • u: Incluye el usuario en la salida.
    • x: Muestra procesos sin terminal asociada, como GUI o servicios en segundo plano.
  3. Jerarquía de pstree: Muestra cómo los procesos padres generan subprocesos. Ejemplo: systemd como raíz de muchos otros procesos esenciales.
  4. Ejecutar comando en segundo plano: Ejecutar ls -l & envía el proceso a segundo plano y muestra su PID.
  5. Comando watch -n 5 ls -l &: Ejecuta ls -l cada 5 segundos en segundo plano. -n especifica el intervalo y & lo ejecuta sin esperar interacción.
  6. Comando jobs y el número entre corchetes: jobs muestra los procesos en segundo plano y el número en corchetes representa su orden de inicio.
  7. Uso de jobs y fg: Ejecutar un comando en segundo plano, listarlo con jobs, y traerlo al primer plano con fg.
  8. Opciones avanzadas de watch --help:
    • -t: Oculta el encabezado de salida.
    • -d: Resalta las diferencias entre ejecuciones sucesivas.
  9. Localizar proceso con ps -ef | grep <PID>: grep busca el proceso por su PID en la salida de ps -ef.
  10. Ejecutar comando con watch cada 2 segundos: Usar watch -n 2 -c 5 <comando> para ejecutarlo cada 2 segundos cinco veces.

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