Bienvenidos a este capítulo del Curso de Linux para Hackers – Gestión de Procesos II. 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:
- Localización de procesos por nombre con
pidof
ypgrep
: cómo obtener el PID de un proceso a partir de su nombre. - Prioridad de procesos con
nice
: cómo ajustar la prioridad de un proceso al iniciarlo. - Cambio de prioridad con
renice
: modificar la prioridad de un proceso en ejecución. - Consulta de ayuda y manual (
man
): dónde encontrar información detallada sobrepidof
,pgrep
,nice
yrenice
.
Localización del proceso mediante el comando pidof y pgrep
El comando pidof también nos permite localizar el proceso. Si queremos rastrear un proceso por su nombre, el comando pidof nos será muy útil. Muestra los PID de los procesos cuando se utiliza con el nombre del proceso.
Para localizar el PID de un proceso, ejecute el comando pidof de la siguiente manera:
pidof nombre_proceso
Si tenemos el proceso en ejecución con el nombre exacto nano , ejecute el comando de la siguiente manera para obtener sus PID.
pidof nano
Considere el siguiente resultado:
El comando pidof
es otra herramienta en Unix/Linux que permite obtener el ID de proceso (PID) de programas que están actualmente en ejecución, a diferencia de pgrep
, que tiene opciones más avanzadas de filtrado. pidof
es especialmente útil cuando solo necesitas rápidamente el PID de un proceso específico para tareas como matar el proceso o monitorearlo.
La sintaxis básica de pidof
es:
pidof [opciones] <nombre_del_programa>
Aquí tienes algunos ejemplos prácticos de cómo usar pidof
en Linux.
Ejemplos de Uso de pidof
Obtener el PID de un proceso específico:Este comando devolverá el PID de un proceso que coincide con el nombre dado. Por ejemplo, si queremos encontrar el PID del proceso nginx
:
pidof nginx
Esto devolverá uno o varios PIDs si hay múltiples instancias de nginx
en ejecución.
Verificar si un proceso está activo:Si deseas verificar si un proceso está en ejecución, puedes combinar pidof
con un condicional. Esto es útil para scripts de shell que necesitan verificar el estado de un servicio.
if pidof nginx > /dev/null;
then echo "Nginx está en ejecución"
else echo
"Nginx no está en ejecución"
fi
Matar un proceso usando pidof
:Puedes usar pidof
junto con kill
para detener un proceso específico. Esto es útil cuando necesitas finalizar un programa sin conocer su PID de antemano.
kill $(pidof nginx)
O para forzar la finalización, podrías usar:
kill -9 $(pidof nginx)
Obtener PIDs de varios procesos a la vez:Si deseas obtener los PIDs de varios procesos en una sola línea, pidof
permite hacerlo. Por ejemplo, para obtener los PIDs de nginx
y apache2
al mismo tiempo:
pidof nginx apache2
Esto listará los PIDs de todos los procesos coincidentes.
Obtener el PID del proceso padre (PPID):Con la opción -s
, pidof
devuelve solo un PID, normalmente el de la instancia principal de un proceso, o su proceso padre. Esto puede ser útil si solo necesitas el primer PID:
pidof -s nginx
Ejecutar una acción solo si un proceso específico está corriendo:Puedes utilizar pidof
dentro de un script de shell para ejecutar comandos condicionalmente. Por ejemplo, supongamos que quieres reiniciar nginx
solo si el proceso no está en ejecución:
pidof nginx > /dev/null || systemctl restart nginx
Aquí, el comando systemctl restart nginx
solo se ejecutará si pidof
no encuentra ningún proceso nginx
en ejecución.
También te recomendamos consultar las páginas man para este comando:
man pidof
pgrep
– Comando para Buscar Procesos por Nombre
pgrep
es una herramienta en Unix/Linux que permite buscar procesos en ejecución basándose en criterios específicos, generalmente el nombre del proceso. Es extremadamente útil para identificar procesos que están ejecutándose sin tener que inspeccionar manualmente con ps aux
o top
.
La sintaxis básica de pgrep
es:
pgrep [opciones] <nombre_proceso>
Ejemplos de Uso de pgrep
Buscar el ID de un proceso específico:
Imagina que quieres saber el ID de proceso (PID) de todos los procesos llamados nginx
.
grep nginx
Esto devolverá una lista de todos los PIDs asociados con nginx
, si está ejecutándose.
Combinar con ps
para obtener detalles de procesos:
Si deseas ver detalles más completos de los procesos encontrados, puedes combinar pgrep
con ps
:
ps -fp $(pgrep nginx)
Esto usará pgrep
para encontrar los PIDs de nginx
y luego ps
para mostrar detalles detallados de esos procesos específicos.
Usar patrones de búsqueda:
pgrep
permite el uso de patrones para buscar procesos con coincidencias parciales. Por ejemplo, si tienes un proceso cuyo nombre incluye “java” (como java-server
o java-client
), puedes hacer lo siguiente:
grep java
Esto te devolverá los PIDs de todos los procesos que incluyan “java” en su nombre.
Buscar procesos de un usuario específico:
Con la opción -u
, puedes especificar el usuario que posee el proceso. Por ejemplo, para buscar procesos de nginx
que pertenecen al usuario root
:
pgrep -u root nginx
Buscar por el grupo de procesos:A veces, un proceso específico puede estar en un grupo de procesos. Para buscar estos, puedes usar -G
seguido del ID de grupo (GID):
pgrep -G 1000 nginx
Esto solo mostrará procesos nginx
que pertenezcan al grupo con GID 1000.
Ejecutar una acción si el proceso está activo:
Puedes combinar pgrep
con &&
o ||
para ejecutar comandos condicionales. Por ejemplo, reiniciar un servicio solo si el proceso nginx
no está activo:
pgrep nginx || systemctl restart nginx
Aquí, el comando systemctl restart nginx
solo se ejecutará si pgrep
no encuentra procesos nginx
activos.
Mostrar solo un número limitado de resultados:
Si solo quieres los primeros 3 PIDs encontrados para nginx
:
pgrep -n -l -c nginx
El -n
es para buscar el último proceso lanzado, -l
muestra el nombre, y -c
cuenta las coincidencias
El comando pgrep tiene más opciones que puedes explorar
pgrep --help
También te recomendamos consultar las páginas man para este comando:
man pgrep
Diferencias Principales entre pidof
y pgrep
pidof
es más simple y generalmente solo requiere el nombre exacto del proceso, mientras quepgrep
permite expresiones regulares y opciones avanzadas de filtrado.pgrep
permite especificar el usuario del proceso, grupos de procesos y patrones en los nombres, mientras quepidof
solo busca por el nombre exacto.
En resumen, pidof
es ideal cuando solo necesitas rápidamente el PID de un proceso específico, y pgrep
es útil para búsquedas de procesos más complejas o detalladas.
NICE
Linux puede ejecutar muchos procesos a la vez, lo que puede reducir la velocidad de algunos procesos de alta prioridad y generar un rendimiento deficiente. Para evitar esto, puedes indicarle a tu máquina que priorice los procesos según tus requisitos.
Esta prioridad se llama Niceness en Linux, y tiene un valor entre -20 a 19. Cuanto menor sea el índice de Niceness, mayor será la prioridad otorgada a esa tarea. El valor predeterminado de todos los procesos es 0.
Para iniciar un proceso con un valor de amabilidad distinto del valor predeterminado, utilice la siguiente sintaxis
nice -n 'Valor' nombre del proceso
Si ya hay algún proceso ejecutándose en el sistema, entonces puedes ‘Renice’ su valor usando la sintaxis.
renice 'valor' -p 'PID'
Para cambiar la Niceness, puede utilizar el comando ‘top’ para determinar el PID (identificación del proceso) y su valor Nice (NI). Luego utilice el comando renice para cambiar el valor.
Entendamos esto con un ejemplo.
También te recomendamos consultar las páginas man para este comando:
El comando renice tiene más opciones que puedes explorar
renice --help
También te recomendamos consultar las páginas man para este comando:
man renice
Resumen de los puntos clave:
- Localización de procesos con
pidof
El comandopidof
permite encontrar el PID de un proceso especificando su nombre. Por ejemplo,pidof nano
devuelve el PID de todos los procesos activos con el nombre “nano”. Esto resulta útil para identificar el PID de un proceso conocido. - Filtrado de procesos con
pgrep
Similar apidof
, el comandopgrep
permite localizar procesos por nombre y cuenta con más opciones para filtrar resultados. Conpgrep
, se puede buscar un proceso específico con opciones avanzadas (consultarpgrep --help
oman pgrep
para más detalles). - Prioridad de procesos con
nice
La “Niceness” determina la prioridad de los procesos, con valores entre -20 (máxima prioridad) y 19 (mínima prioridad). Para iniciar un proceso con una prioridad específica, utilizanice -n <valor> nombre_proceso
. El valor predeterminado es 0, y un valor menor indica mayor prioridad. - Modificar prioridad con
renice
Para cambiar la prioridad de un proceso en ejecución, usarenice
, especificando el nuevo valor de “Niceness” y el PID del proceso:renice <valor> -p <PID>
. Primero, puedes identificar el PID y la prioridad actual con el comandotop
ops
. - Consulta de ayuda (
man
) para cada comando
Los manuales (man pidof
,man pgrep
,man nice
,man renice
) y opciones de ayuda (--help
) son esenciales para entender a fondo las opciones avanzadas y configuraciones de cada comando en la administración de prioridades y localización de procesos en Linux.
Pon en práctica lo aprendido
Ahora pon a prueba lo aprendido con estas preguntas y ejercicios.
Preguntas
- ¿Para qué se utilizan los comandos
pidof
ypgrep
? - ¿Cómo se usa el comando
pidof
para localizar el PID de un proceso? - ¿Qué hace el comando
pgrep
y qué ventaja ofrece respecto apidof
? - ¿Qué es el valor de
Niceness
y cómo afecta a los procesos en Linux? - ¿Cuál es el rango de valores del
Nice
y qué representa un valor más bajo o más alto? - ¿Cómo se inicia un proceso con una prioridad diferente a la predeterminada utilizando
nice
? - ¿Para qué sirve el comando
renice
y cómo se utiliza? - ¿Qué comando permite ver el PID y el valor
Nice
de los procesos en ejecución? - ¿Cómo se cambia el valor de
Niceness
de un proceso ya en ejecución? - ¿Dónde se puede obtener más información detallada sobre
pidof
,pgrep
,nice
yrenice
?
Ejercicios
- Localice el PID de un proceso en ejecución, como
nano
, usandopidof
y describa el resultado. - Explique las diferencias entre
pidof
ypgrep
para localizar procesos en Linux. - Ejecute el comando
pgrep <nombre de proceso>
con un proceso en ejecución en su sistema y explique la salida. - Utilice el comando
nice
para iniciar un proceso con un valor de prioridad específico y verifique su valorNice
contop
. - Cambie la prioridad de un proceso en ejecución con
renice
y verifique el cambio contop
. - Ejecute
nice -n -10 <nombre de proceso>
y explique la prioridad otorgada al proceso. - Inicie un proceso en segundo plano con un valor
Nice
de 15 y verifique que el valor se mantenga usandops
. - Consulte
pgrep --help
y mencione dos opciones avanzadas que considere útiles. - Investigue y explique la función de
renice --help
para ajustar la prioridad de varios procesos simultáneamente. - Consulte el manual de
nice
y explique cómo ejecutar un proceso con la máxima prioridad posible.
Respuestas a las Preguntas
- Comandos
pidof
ypgrep
: Ambos localizan el PID de procesos en ejecución.pidof
busca por nombre exacto del proceso, mientras quepgrep
permite búsquedas más flexibles. - Uso de
pidof
:pidof <nombre_proceso>
muestra el PID del proceso si el nombre es exacto. - Comando
pgrep
: Localiza procesos por nombre de manera flexible, permitiendo expresiones regulares para filtrar la búsqueda. - Valor de
Niceness
: Prioridad de un proceso, donde valores más bajos (-20) aumentan la prioridad, y valores altos (19) disminuyen la prioridad. - Rango de
Nice
: De -20 a 19; un valor menor indica mayor prioridad. - Iniciar proceso con
nice
:nice -n <valor> <proceso>
ajusta la prioridad de inicio del proceso. - Comando
renice
: Cambia la prioridad de un proceso en ejecución, identificado por su PID. - Ver PID y
Nice
: El comandotop
muestra tanto el PID como el valor deNice
de los procesos. - Cambiar
Niceness
conrenice
:renice <valor> -p <PID>
ajusta la prioridad de un proceso existente. - Obtener ayuda: Usando
man
parapidof
,pgrep
,nice
, yrenice
, o con--help
en cada uno.
Respuestas a los Ejercicios
- Uso de
pidof
para obtener el PID:pidof nano
muestra el PID denano
si está en ejecución. Ejemplo:1234
. - Diferencias entre
pidof
ypgrep
:pidof
busca solo coincidencias exactas, mientras quepgrep
puede buscar por patrones y expresiones regulares. - Ejecutar
pgrep <nombre de proceso>
: Muestra los PIDs que coinciden con el nombre o patrón ingresado. Útil para procesos con nombres parciales. - Ejecutar
nice
y verificar contop
: Ejecutarnice -n 10 nano
y observar entop
muestraNI=10
paranano
, indicando prioridad ajustada. - Cambiar prioridad con
renice
:renice 5 -p 1234
cambia la prioridad del proceso con PID1234
aNI=5
. Verificar entop
. - Ejecutar
nice -n -10 <nombre de proceso>
: Otorga alta prioridad al proceso (NI=-10
). - Iniciar proceso en segundo plano con
Nice
15:nice -n 15 ls -l &
, se verifica enps aux
queNI=15
. - Opciones avanzadas de
pgrep --help
:-l
: Muestra el nombre del proceso junto al PID.-u <usuario>
: Muestra solo procesos de un usuario específico.
- Usar
renice --help
para prioridad de varios procesos:renice
puede ajustar todos los procesos de un usuario o grupo. - Ejecutar con máxima prioridad usando
nice
:nice -n -20 <proceso>
inicia el proceso con prioridad máxima (valor más bajo deNice
).
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!!!