Ejemplos esenciales del comando ps en Linux

¿Qué es el comando ps en Linux?

El comando ps en Linux se usa para mostrar los procesos en ejecución en el sistema. Puede obtener información como ID de proceso (PID) para los procesos que usted o cualquier otro usuario está ejecutando en el mismo sistema Linux.

El comando ps es una herramienta extensa en sí misma y tiene más de 80 opciones de comando. Puedes entender su fuerza y ​​complejidad. Es por eso que les mostraré algunos de los ejemplos más comunes y útiles del comando ps en Linux.

Uso esencial del comando ps en Linux

Si usa el comando ps sin ninguna opción en Linux, mostrará los procesos en ejecución en el shell actual:

ps

Esta es la salida. He enviado el comando Gedit en segundo plano, es por eso que muestra tres procesos; de lo contrario, normalmente verá solo ps y bash.

  PID TTY          TIME CMD
  503 pts/0    00:00:00 gedit
 2053 pts/0    00:00:00 ps
31585 pts/0    00:00:00 bash

Aquí:

  • PID es el ID de proceso único del proceso
  • TTY es el tipo de terminal en el que el usuario está conectado. pts significa pseudo terminal
  • TIME le indica cuánto tiempo se ha estado ejecutando el proceso
  • CMD es el comando que ejecuta para iniciar el proceso

Ahora bien, esto realmente no proporciona ninguna información real y útil. Veamos algunos mejores ejemplos del comando ps:

1. Vea todo su proceso en ejecución

Si desea ver todos los procesos ejecutados por usted, puede usar el comando ps con la opción x como esta:

ps -x

La opción x mostrará todos los procesos incluso si no están asociados con el tty actual (tipo de terminal) o si no tienen un terminal de control (como demonios).

La opción anterior x es opcional, pero la convención general de Linux es usar las opciones anteriores, por lo que le aconsejo que siga siguiéndola. No te hará daño.

Así es como se ve la salida. He truncado la salida porque tenía cientos de líneas:

  PID TTY      STAT   TIME COMMAND
  503 pts/0    Sl     0:00 gedit
 2245 ?        S      0:00 /usr/bin/ssh-agent -D -a /run/user/1000/keyring/.ssh
 3039 ?        Ss     0:00 /lib/systemd/systemd --user
 3040 ?        S      0:00 (sd-pam)
 3054 ?        SLl    0:01 /usr/bin/gnome-keyring-daemon --daemonize --login
 3059 tty2     Ssl+   0:00 /usr/lib/gdm3/gdm-x-session --run-script env 

El STAT en la salida anterior significa Códigos de estado del proceso. Puede encontrar una tabla detallada en la página del manual del comando ps.

Pero rara vez verá el comando ps usado solo con la opción x. Suele ir acompañado de la opción u de esta manera:

ps -ux

Con la opción u, tendrás información detallada de cada proceso:

USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
abhishek   503  0.0  0.4 681580 37516 pts/0    Sl   18:09   0:00 gedit
abhishek  2245  0.0  0.0  11300  1496 ?        S    18:37   0:00 /usr/bin/ssh-agent -D -a /run/user/1000/keyring/.ssh
abhishek  3039  0.0  0.0  77344  3508 ?        Ss   10:37   0:00 /lib/systemd/systemd --user
abhishek  3040  0.0  0.0 114632   360 ?        S    10:37   0:00 (sd-pam)
abhishek  3054  0.0  0.1 517104 11512 ?        SLl  10:37   0:01 /usr/bin/gnome-keyring-daemon --daemonize --login

Como puede ver, ahora obtiene el nombre de usuario y el consumo de CPU y memoria de cada proceso. RSS muestra cuánta memoria tiene actualmente el proceso en RAM, mientras que VSZ es cuánta memoria virtual tiene el proceso en total.

2. Ver todos los procesos en ejecución con el comando ps aux

probablemente verás ps -aux o ps aux todo el tiempo en tutoriales y documentaciones de Linux.

Con la opción -a agregada, puede ver los procesos en ejecución de todos los usuarios en el sistema Linux.

ps -aux

El resultado del comando es el mismo que ps -ux pero ahora también tiene procesos de otros usuarios. Gracias a la opción -u, puedes identificar qué proceso pertenece a qué usuario.

3. Ver todos los procesos en ejecución con el comando ps -ef en Linux

Además de ps -aux, también puede enumerar todos los procesos en ejecución con el comando -e. La práctica común es combinarlo con la opción f para obtener una lista completa de los comandos utilizados para ejecutar los procesos.

ps -ef

Tenga en cuenta que, antes de que e sea importante, de lo contrario, mostrará un resultado diferente. Te lo dije, ps es un comando desordenado y complicado.

También puede combinar la opción H para ver todos los procesos en una vista de subprocesos con procesos secundarios debajo de sus padres:

ps -efH

4. Ver todos los procesos en ejecución por un determinado usuario

Para obtener la información sobre todos los procesos ejecutados por un determinado usuario, puede utilizar la opción -U con el nombre de usuario:

ps -U user_name

Para examplepuedo ver todos los procesos que ejecuta el usuario raíz de esta manera:

ps -U root
  PID TTY          TIME CMD
    1 ?        00:00:41 systemd
    2 ?        00:00:00 kthreadd
    3 ?        00:00:00 rcu_gp
    4 ?        00:00:00 rcu_par_gp
    8 ?        00:00:00 mm_percpu_wq
    9 ?        00:00:03 ksoftirqd/0
   10 ?        00:01:22 rcu_sched

5. Ver todos los procesos ejecutados por un grupo

También puede categorizar los procesos en ejecución por grupo en lugar de por usuario proporcionando el nombre del grupo o la identificación del grupo:

ps -G group_name_or_id

Puede combinar con la opción f para obtener el listado completo.

6. Obtenga todas las ocurrencias y PID de un programa

Uno de los usos esenciales del comando ps es obtener el ID de proceso (PID) de un programa en ejecución. Normalmente, cuando busca matar un programa que se comporta mal, busca todas las ocurrencias del programa, obtiene sus PID y usa el comando matar para finalizar el proceso.

ps -C program__name

Para examplesi tengo que encontrar todas las instancias en ejecución del administrador de paquetes apt:

ps -C apt
  PID TTY          TIME CMD
11425 pts/1    00:00:00 apt

También puede usar el comando grep para obtener un resultado similar.

ps aux | grep program_name

7. Obtenga información de proceso sobre un PID

¡Bien! Tiene un PID pero no sabe a qué proceso pertenece. Puede usar el comando ps para encontrar la información del proceso desde su PID de esta manera:

ps -pN

Puede usar más de un PID separándolos con comas:

ps -pN1,N2,N3

¿Qué otra cosa?

Como dije antes, ps es un comando complicado y extenso. Estos fueron algunos de los ejemplos de comandos ps más comunes que necesitará la mayor parte del tiempo. Si quieres más, siempre puedes consultar su página man.

Si tienes alguna otra útil example del comando ps que usa regularmente, ¿por qué no lo comparte con el resto de nosotros en la sección de comentarios?

Related Posts