Cómo mostrar información de proceso en un sistema Linux con el comando ps

En sistemas operativos de multiprocesamiento como Linux, los procesos forman una parte integral del flujo de trabajo del sistema. A veces, los usuarios necesitan enumerar los procesos en ejecución en un sistema con fines de supervisión. En tales situaciones, las utilidades de la línea de comandos de Linux pueden resultar útiles.

El comando ps es una de esas herramientas que muestra información relacionada con los procesos en un sistema Linux. Veamos el comando ps y algunos ejemplos importantes de uso.

¿Qué es el comando ps?

Un proceso es el componente básico de la informática en una máquina Linux. Cada programa que abre ejecuta uno o más procesos que son responsables del funcionamiento de la computadora. Desde una aplicación de edición de video avanzada hasta una utilidad simple como el comando mv , todo se compone de procesos.

El comando ps, que es un acrónimo de Process Status , es útil cuando desea obtener una lista de todos los procesos que se ejecutan en su sistema. Este comando también proporciona al usuario información adicional asociada con estos procesos.

Relacionado: ¿Qué es un proceso en Linux?

Cómo usar el comando ps en Linux

La sintaxis básica del comando ps es:

 ps [options]

Ejecutar el comando ps sin ningún argumento produce el siguiente resultado:

 ps

La siguiente información se proporciona en la salida mencionada anteriormente.

  • PID : el ID de proceso del proceso resaltado
  • TTY : muestra el nombre de la terminal que estás usando
  • TIEMPO : El tiempo asignado al proceso por la CPU.
  • CMD : el comando que se encarga de iniciar el proceso

Listar todos los procesos

Para obtener una lista de todos los procesos en un sistema Linux, use el indicador -A o -e con el comando ps predeterminado.

 ps -A
ps -e

Ver procesos asociados con la terminal

La bandera -T mostrará la lista de todos los procesos relacionados con el terminal.

 ps -T

Verá una salida que se parece a esto.

Procesos de visualización no asociados con la terminal

La bandera -a enumerará los procesos que no están asociados con la terminal actual.

 ps -a

La pantalla mostrará una salida.

Negar las opciones especificadas

También puede usar el indicador -N o –deselect con el comando ps para invertir el funcionamiento de un argumento específico.

Por ejemplo, la opción -T muestra los procesos asociados con el terminal. Agregar el indicador -N o –deselect con el comando mostrará los procesos que no están asociados con la terminal actual.

 ps -T -N
ps -T --deselect

Mostrar columnas personalizadas en la salida

El comando ps predeterminado muestra las siguientes columnas: PID, TTY, TIME y CMD. Sin embargo, puede modificar estas columnas y mostrar otros detalles en su lugar.

El indicador -eo le permite especificar las columnas que desea obtener en la salida.

 ps -eo pid, uname, pcpu, stime, pri, f

Cambiar el nombre de las columnas en la salida

También puede cambiar el nombre de las etiquetas de las columnas en la salida. La bandera -o le permitirá hacer esto.

 ps -e -o pid=Process_ID, uid=User_ID, com=COMMAND

Enumere los procesos actualmente en ejecución

Para obtener una lista de los procesos que se están ejecutando actualmente en su sistema, pase la marca -ax con el comando ps. La -a significa Todo .

 ps -ax

Procesos de visualización en formato BSD

El formato de Linux para pasar argumentos con el comando utiliza el carácter (guión). Por otro lado, el formato BSD no incluye ningún carácter especial con las banderas de argumento.

Por ejemplo, ps -A (formato Linux) mostrará una lista de todos los procesos. El equivalente BSD de este comando es:

 ps au

donde a significa Todos y u denota usuarios.

Listado de procesos en formato completo

Para obtener información detallada relacionada con los procesos, pase la opción -ef o -eF con el comando.

 ps -ef
ps -eF

La salida mencionada anteriormente contiene la siguiente información sobre los procesos.

  • UID : el ID de usuario del usuario responsable del proceso.
  • PID : el ID de proceso de la entrada
  • PPID : el ID de proceso del proceso principal
  • C : información de programación y uso de CPU relacionada con el proceso
  • STIME : Hora en que se inició el proceso
  • TTY : el nombre de la terminal que estás usando actualmente
  • TIEMPO : cantidad de tiempo de CPU utilizado por el proceso
  • CMD : el comando que ejecutó el proceso

La opción -u muestra una lista de todos los procesos iniciados por un usuario específico.

 ps -u username

Para mostrar todos los procesos que ejecuta el usuario root, pase root con los indicadores -U y -u .

 ps -U root -u root

Obtenga un PID de proceso

Para obtener el ID de proceso de un proceso en particular, use el indicador -C con el comando.

 ps -C process-name

Reemplace nombre-proceso con el nombre del proceso. La salida mostrará el ID del proceso.

 ps -C bash

Enumere los hilos de un proceso específico

Es posible que sepa que un proceso puede contener varios subprocesos, cada uno responsable de una tarea específica. Para mostrar una lista de los subprocesos de un proceso, use la bandera -L con el comando ps. Tenga en cuenta que deberá pasar el ID de proceso del proceso junto con el comando.

 ps -L pid

Por ejemplo

 ps -L 1250

Proceso de visualización asociado a un grupo particular

Obtener una lista de procesos relacionados con un determinado grupo también es fácil. Utilice el indicador -fG con el comando predeterminado.

 ps -fG groupname

Alternativamente, también puede pasar el ID del grupo en lugar del nombre del grupo.

 ps -fG groupid

Por ejemplo

 ps -fG sudoers
ps -fg 1000

Mostrar procesos en formato de árbol

Para obtener una representación de árbol jerárquica de los procesos en ejecución en Linux:

 ps -f --forest -C bash

El comando mencionado anteriormente mostrará todos los procesos relacionados con bash.

Supervisión de procesos en ejecución en Linux

Saber qué procesos se están ejecutando en su computadora puede resultar útil si tiene pocos recursos. Puede eliminar fácilmente los procesos de Linux que no responden y que no desea en su sistema utilizando la línea de comandos.

Para aquellos que tienen computadoras de gama baja y quieren un sistema operativo que ofrezca un rendimiento fluido, hay muchas distribuciones ligeras de Linux disponibles.