El comando ps produce una lista de los procesos que se están ejecutando actualmente en su equipo. Esta guía le mostrará los usos más comunes del comando ps para que pueda sacar el máximo provecho del mismo.
El comando ps se utiliza comúnmente junto con el comando grep y el comando more or less .
Estos comandos adicionales ayudan a filtrar y paginar la salida de ps que a menudo puede ser bastante larga.
Índice de contenidos
Cómo usar el comando ps
Por sí solo, el comando ps muestra los procesos en ejecución del usuario que lo ejecuta dentro de una ventana de terminal. Para invocar ps simplemente escriba lo siguiente:
ps
La salida mostrará filas de datos que contienen la siguiente información:
- PID
- TTY
- Hora
- Comando
El PID es el ID de proceso que identifica el proceso en ejecución. El TTY es el tipo de terminal.
Por sí solo, el comando ps es bastante limitado. Probablemente querrá ver todos los procesos en ejecución. Para ver todos los procesos en ejecución, utilice cualquiera de los siguientes comandos:
ps -A
ps -e
Para mostrar todos los procesos excepto los líderes de sesión, ejecute el siguiente comando:
ps -d
Entonces, ¿qué es un líder de sesión? Cuando un proceso inicia otros procesos, es el líder de sesión de todos los demás procesos. Así que imagina el proceso A inicia el proceso B y procesa C. Proceso B inicia el proceso D y proceso C inicia el proceso E. Cuando liste todos los procesos excepto los líderes de sesión, verá B,C,D y E pero no A.
Puede anular cualquiera de las selecciones que haya seleccionado utilizando el parámetro -N . Por ejemplo, si desea ver que sólo los líderes de sesión ejecuten el siguiente comando:
ps -d -N
Obviamente el -N no es muy sensible cuando se usa con los interruptores -e o -A ya que no mostrará nada en absoluto.
Si desea ver sólo los procesos asociados a este terminal, ejecute el siguiente comando:
ps T
Si desea ver todos los procesos en ejecución utilizando el siguiente comando:
ps r
Selección de procesos específicos usando el comando ps
Puede devolver procesos específicos utilizando el comando ps y hay varias maneras de cambiar los criterios de selección.
Por ejemplo, si conoce el identificador de proceso, puede utilizar el siguiente comando:
ps -pPuede seleccionar varios procesos especificando varios IDs de proceso como se indica a continuación:
ps -p "1234 9778"También puede especificarlos utilizando una lista separada por comas:
ps -p 1234,9778Lo más probable es que no conozca el ID del proceso y que sea más fácil buscar por comando. Para ello, utilice el siguiente comando:
ps -CPor ejemplo, para ver si Chrome se está ejecutando, puedes usar el siguiente comando:
ps -C chrome>
Se sorprenderá al ver que esto devuelve un proceso por cada pestaña abierta.
Otras formas de filtrar los resultados son por grupo. Puede buscar por nombre de grupo utilizando la siguiente sintaxis:
ps -G ps --GroupPor ejemplo, para averiguar todos los procesos que está ejecutando el grupo de cuentas, escriba lo siguiente:
ps -G "accounts" ps --Grupo "accounts"También puede buscar por identificador de grupo en lugar de por nombre de grupo utilizando una "g" minúscula como se indica a continuación:
ps -g ps --groupSi desea buscar por una lista de ID de sesión, utilice el siguiente comando:
ps -sAlternativamente, utilice lo siguiente para buscar por tipo de terminal.
ps -tSi desea encontrar todos los procesos ejecutados por un usuario específico, pruebe el siguiente comando:
ps UPor ejemplo, para encontrar todos los procesos ejecutados por gary ejecutar lo siguiente:
ps U "gary">
Tenga en cuenta que esto muestra la persona cuyas credenciales se utilizan para ejecutar el comando. Por ejemplo, si está ogged in como gary y ejecuta el comando anterior, mostrará todos los comandos ejecutados por usted.
Si inicia sesión como Tom y usa sudo para ejecutar un comando, el comando anterior mostrará Tom's command as being run by gary and not Tom.
Para limitar la lista a los procesos realmente ejecutados por gary utilice el siguiente comando:
ps -U "gary"Formateo de la salida de comando ps
De forma predeterminada, obtendrá las mismas cuatro columnas cuando utilice el comando ps :
- PID
- TTY
- Hora
- Comando
Puede obtener un listado completo ejecutando el siguiente comando:
ps -ef
La -e , como sabes, muestra todos los procesos y la f o -f muestra todos los detalles.
Las columnas devueltas son las siguientes:
- ID de usuario
- PID
- PPID
- C
- STime
- TTY
- Hora
- Comando
El ID de usuario es la persona que ejecutó el comando. El PID es el ID de proceso del comando del comando. El PPID es el proceso padre que inició el comando.
La columna C muestra el número de hijos que tiene un proceso. El STime es la hora de inicio del proceso. El TTY es el terminal, el tiempo es la cantidad de tiempo que tardó en ejecutarse y el comando es el comando que se ejecutó.
Puede obtener aún más columnas usando el siguiente comando:
ps -eF
Esto devuelve las siguientes columnas:
- UID
- PID
- PPID
- C
- SZ
- RSS
- PSR
- STime
- TTY
- Hora
- Comando
Las columnas adicionales son SZ, RSS y PSR. SZ es el tamaño del proceso, RSS es el tamaño real de la memoria y PSR es el procesador al que se asigna el comando.
Puede especificar un formato definido por el usuario utilizando el siguiente indicador:
ps -e --formatLos formatos disponibles son los siguientes:
- %cpu : Utilización de la CPU
- %mem : Porcentaje de utilización de la memoria
- args : El comando con todos sus argumentos
- c : Utilización del procesador
- cmd : El comando
- comm : Sólo el nombre del comando
- cp : Uso de la CPU
- cputime : CPU Time
- egid : Id. de grupo efectivo
- egroup : Grupo efectivo
- etime : Tiempo transcurrido
- euid : Identificación de usuario efectivo
- euser : Usuario efectivo
- gid : Identificador de grupo
- grupo : Nombre del grupo
- pgid : Identificador de grupo de procesos
- pgrp : Grupo de procesos
- ppid : ID del proceso padre
- start : Tiempo de inicio del proceso
- sz : Tamaño en páginas físicas
- thcount : Hilos propiedad del proceso
- hora : Tiempo acumulado
- uid : ID de usuario
- uname : Nombre de usuario
Hay muchas más opciones, pero éstas son las que se utilizan con más frecuencia.
Para utilizar los formatos escriba lo siguiente:
ps -e --format="uid uname cmd time"
Puede mezclar y combinar los artículos como desee que sean.
Clasificación de la salida
Para clasificar la salida, utilice la siguiente anotación:
ps -ef --sortLas opciones de clasificación son las siguientes:
- cmd : Nombre ejecutable
- pcpu : utilización de la CPU
- flags : Flags
- pgrp : Identificador de grupo de procesos
- cutime : Tiempo de usuario acumulado
- cstime : Tiempo acumulado del sistema
- utime : Hora del usuario
- pid : ID de proceso
- ppid : ID del proceso padre
- tamaño : Tamaño
- uid : ID de usuario
- usuario : Nombre de usuario
Una vez más hay más opciones disponibles, pero estas son las más comunes.
Un ejemplo ordenar es el siguiente:
ps -ef --sort user,pid
Usando ps Con grep, menos y más comandos
Como se mencionó al principio, es común usar ps con los comandos grep , menos y más .
Los comandos less y more le ayudarán a examinar los resultados página por página. Para utilizar estos comandos, simplemente canalice la salida desde grep hacia ellos como se indica a continuación:
ps -ef | more ps -ef | less
El comando grep le ayuda a filtrar los resultados del comando ps .
Por ejemplo:
ps -ef | grep chrome
Resumen
El comando ps se usa comúnmente para listar procesos dentro de Linux. También puede utilizar la función