15 Comando ps de Linux con ejemplos
los PD es un comando integrado que se utiliza en los sistemas operativos Unix / Linux para enumerar los procesos que se están ejecutando actualmente. Muestra una instantánea estática con información sobre los procesos, mientras que top, htop y glances muestran actualizaciones repetitivas.
El comando Ps viene con muchas opciones para manipular las salidas. Extrae toda la información de los procesos del sistema de archivos virtual / proc.
Este tutorial se centrará en explicar la forma de utilizar el comando ps junto con algunos ejemplos prácticos.
La sintaxis del comando ps
La sintaxis básica para el uso del comando ps es la siguiente:
$ ps [options]
Las ‘opciones’ del comando ps pueden ser:
- Opciones de UNIX – precedidas por un guión
- Opciones BSD: deben usarse sin un guión
- Opciones largas de GNU – precedidas por dos guiones
Este es un uso muy básico del comando ps. Simplemente escriba ‘ps’ en su consola para ver su resultado:
$ ps
De forma predeterminada, nos muestra cuatro columnas de información.
- PID es un ID de proceso del comando en ejecución (CMD)
- TTY es un lugar donde se ejecuta el comando en ejecución
- TIEMPO indica cuánto tiempo usa la CPU mientras se ejecuta el comando
- CMD es un comando que se ejecuta como un proceso actual
Ejecutar el comando ps sin ninguna opción es solo un formato más simple del comando, no devuelve mucha información. Para aprovechar al máximo la potencia del comando ps, ejecutémoslo con opciones adicionales que se explicarán con más detalle en las siguientes secciones.
01) Mostrar todos los procesos (formato UNIX)
Para ver todos los procesos en su sistema Linux, puede ejecutar cualquiera de los siguientes comandos:
$ ps -A
o:
$ ps -e
Además, para enumerar todos los procesos en ejecución, ejecute:
$ ps -r
02) Mostrar todos los procesos (formato BSD)
Para ver todos los procesos en su sistema Linux usando el comando ps en formato BSD, puede ejecutar los siguientes comandos:
$ ps ax
o
$ ps aux
Dónde:
- USUARIO: el usuario ejecuta el proceso
- PID: la identificación del proceso
- % CPU /% MEM: el porcentaje de CPU / RAM que están ocupados por los procesos
- VSZ: el tamaño de la memoria virtual que ocupan los procesos
- RSS: el tamaño de la memoria física que ocupan los procesos
- INICIO – hora de inicio
- STAT – el estado del proceso en el que: S (durmiendo), R (corriendo), I (sueño interrumpible).
- Tiempo: muestra cuánto tiempo de CPU dio el kernel para ese proceso en ejecución.
- COMANDO: el comando que se ejecuta como un proceso actual
03) Mostrar todos los procesos que se ejecutan mediante un comando
Para enumerar todos los procesos que se ejecutan mediante un comando, usemos la siguiente sintaxis:
$ ps -C <command_name>
Por ejemplo, enumere todos los procesos del comando ‘/ usr / sbin / kerneloops’ ejecutando:
$ ps -C kerneloops
También puede utilizar un argumento en forma de una lista separada por espacios en blanco o por comas, por ejemplo:
$ ps -C sshd,systemd
04) Mostrar todos los procesos que ejecuta un usuario
Si desea enumerar el proceso por usuario cuyo ID de usuario 1000, ejecutemos el siguiente comando:
$ ps -u 1000
También puede buscar el proceso por nombre de usuario:
$ ps -U root -u root u
los -U parameter
seleccionará por real user ID (RUID)
. Selecciona los procesos cuyo nombre de usuario real o ID está en la lista de usuarios. El ID de usuario real identifica al usuario que creó el proceso.
Mientras que la -u paramater
seleccionará por ID de usuario efectivo (EUID)
05) Mostrar procesos propiedad del grupo
Para enumerar todos los procesos que pertenecen a un nombre de grupo específico, ejecutemos el comando con -fG
opción. Por ejemplo:
$ ps -fG cas
Para mostrar todos los procesos por ID de grupo, puede ejecutar el comando con la opción ‘-g’. Por ejemplo:
$ ps -g 1
Producción:
PID TTY TIME CMD 1 ? 00:00:03 systemd
06) Mostrar procesos por PID
Puede enumerar todos los procesos por PID ejecutando el comando ps con la opción ‘-fp’. Por ejemplo:
$ ps -fp 34531
Producción:
UID PID PPID C STIME TTY TIME CMD cas 34531 1 0 06:16 ? 00:00:00 /lib/systemd/systemd --user
Además, para listar todos los procesos por PPID, ejecutemos el comando con la opción ‘–ppid’:
$ ps -f --ppid 34529
Producción:
UID PID PPID C STIME TTY TIME CMD cas 34609 34529 0 06:16 ? 00:00:00 sshd: cas@pts/0
07) Mostrar procesos por TTY
Para mostrar todos los procesos por TTY, puede ejecutar el comando con la opción ‘-t’. Por ejemplo:
$ ps -t tty1
08) Mostrar procesos propiedad del usuario actual
Para enumerar todos los procesos que está ejecutando el usuario actual, ejecutemos el comando con la opción ‘-x’:
$ ps -x
09) Mostrar todos los procesos con una lista de formato completo
Por ejemplo, ejecutemos el comando ps con -f
opción, para mostrar todo el proceso con el formato completo:
$ ps -af
10) Mostrar todos los procesos con formato adicional
Además, para ver la lista de formato completo adicional del resultado, ejecute el comando ps con -F
opción. Por ejemplo:
$ ps -F
11) Mostrar todos los procesos en formato de jerarquía ASCII
Para ilustrar, asumiendo que desea mostrar todo el proceso en su sistema Linux en formato de jerarquía de procesos artísticos ASCII, ejecutemos:
$ ps af
La salida estará en formato «bosque»:
12) Proceso de visualización en salida ampliada
Si desea ampliar la salida al ejecutar el comando ps, use w
opción:
$ ps w
Hagamos una comparación entre las salidas de ejecutar ‘ps w’ y ‘ps’:
13) Proceso de visualización de acuerdo con el formato definido por el usuario
Puede utilizar la siguiente sintaxis para ver en formato definido por el usuario:
Syntax: $ ps --format column_name $ ps -o column_name $ ps o column_name For example: $ ps -e -o user,pid,cmd
14) Mostrar hilos con ID de hilo
Por ejemplo, para mostrar los hilos con la columna SPID (SPID es el ID del hilo), ejecute:
$ ps -aT
15) Muestra la información sobre los hilos.
Además, puede usar la opción ‘-L’ para obtener información sobre los subprocesos en su sistema Linux:
$ ps -aL
La salida con la columna ‘LWP’ le muestra la identificación del hilo:
Algunos ejemplos mas
01) Compruebe qué procesos consumen más RAM
El siguiente comando mostrará la mayoría de los procesos que utilizan memoria, %MEM
en la 1ra columna, PID
en la segunda columna y el comando en la tercera columna para todos los procesos en ejecución en el sistema:
$ ps -eo pmem,pid,cmd | sort -k 1 -nr
02) Muestra todos los subprocesos de una identificación de proceso específica
Esto mostrará todos los hilos de un pid de proceso en particular.
$ ps -Lf -p 3482
03) Muestra el proceso hijo de un padre
Esto mostrará todos los procesos secundarios de un proceso y es útil para descubrir qué procesos se han bifurcado fuera de este proceso principal.
$ ps -o pid,pcpu,pmem,uname,comm -C apache2
04) Muestra cuánto tiempo se ha estado ejecutando el proceso.
El siguiente comando mostrará cuánto tiempo ha estado ejecutándose el proceso ‘mysql’ en el sistema:
$ ps -e -o pid,comm,etime | grep mysql 3107 mysqld_safe 18-07:01:53 3469 mysqld 18-07:01:52
etime
: tiempo transcurrido desde que se inició el proceso, en la forma [[DD-]hh:]mm: ss.etimes
: tiempo transcurrido desde que se inició el proceso, en segundos.
05) Obtenga información de seguridad
Si queremos ver quién está conectado actualmente a su servidor, podemos verlo usando el comando ps:
$ ps -eo pid,user,args
Ahora puede asignar pids a sus respectivas unidades systemd mediante el siguiente comando:
$ ps -e -o pid,unit,cmd
Conclusión
El pstree (o use ps -axjf) y pgrep son comandos adicionales que pueden ayudar a obtener información sobre el proceso en ejecución.
Puede usar ps como monitor en tiempo real usando el comando watch, digamos, queremos filtrar los procesos por CPU y el informe de uso de memoria se actualiza cada 1 segundo.
$ watch -n 1 ‘ps -aux --sort -pmem, -pcpu’
En este tutorial, aprendimos muchas formas de usar el comando ps en Linux. Para explorar todas las opciones, consulte ps man page. Gracias por leer y deje su sugerencia en la sección de comentarios a continuación.