Linux ps: cómo ver y filtrar procesos desde la terminal
La respuesta rápida: qué combinación de ps conviene
Para la mayoría, ps aux ofrece la vista más completa; para buscar un PID, ps -p; para organizar padres e hijos, ps --forest; y para monitorización repetida, conviene top u htop.
Si estás Diagnosticando un servidor o una sesión local, empieza por ps aux: reúne los procesos de todos los usuarios y muestra identificadores, uso de CPU y memoria, terminal, tiempo acumulado y comando. Si ya conoces el PID, ps -p 1234 -f evita revisar toda la tabla. Para reconstruir quién lanzó qué, ps --forest -eo pid,ppid,user,cmd separa la jerarquía. Para observar cambios, top actualiza la pantalla de forma continua; htop añade navegación con teclado, pero requiere instalarlo.
Elige ps cuando necesitas una fotografía inmediata o filtrar una lista concreta. Elige top o htop cuando quieres seguir la evolución. En Ubuntu, Debian, Fedora, Linux Mint, Zorin OS, elementary OS y otros Linux, estas herramientas están disponibles en el sistema o en sus repositorios; la forma exacta de instalarlas depende de la distribución.
Antes de empezar: sintaxis, permisos y lectura básica
La sintaxis general es ps [opción ...]. Las opciones pueden ser de estilo BSD, como aux, o de estilo UNIX/GNU, como -p, -o y --sort. No todos los sistemasipers interpretan igual cada opción, así que comprueba man ps en la máquina donde trabajas.
PID: identificador numérico del proceso.PPID: identificador del proceso padre.TTY: terminal asociada;?indica que no hay terminal controlada.STAT: estado del proceso; puede combinar códigos comoR,SoZ.TIME: tiempo de CPU acumulado, no tiempo total desde el arranque.CMDoCOMMAND: comando que identifica el proceso.
No necesitas privileges de administrador para ver muchos procesos propios. Sin embargo, otro usuario puede ocultar detalles de su comando y ps puede mostrar información incompleta según la configuración del sistema y del contenedor. Ejecuta ps -eo pid,user,comm,args para una vista uniforme y ps -p $$ -o pid,ppid,tty,stat,cmd para comprobar el proceso de la propia shell.
Métodos para seleccionar y filtrar procesos
| Método | Ejemplo | Processes que incluye | Requisito | Limitación |
|---|---|---|---|---|
| Terminal | ps -t pts/0 |
Los asociados a esa terminal | El nombre de TTY debe existir | Puede incluir varios comandos de una misma sesión |
| Usuario | ps -u nombre |
Los pertenecientes al usuario | Conocer el nombre exacto | No incluye otros usuarios salvo permisos suficientes |
| PID | ps -p 1234 |
El proceso con ese PID | Conocer el PID | Termina vacío si el proceso ya no existe |
| Padre | ps --ppid 1234 |
Los hijos directos de ese PID | El proceso padre debe existir | No muestra nietos salvo que se solicite la jerarquía |
| Nombre | ps -C firefox |
Los procesos cuyo nombre ejecutable coincide | Nombre exacto o expresión válida | Puede omitir procesos con nombre de ejecutable distinto |
| Grupo | ps -g 1000 |
Los procesos del grupo indicado | Conocer el GID | El resultado depende de cómo agrupe el sistema |
| Sesión | ps -s 1234 |
Los procesos de la sesión indicada | Conocer el SID | No identifica necesariamente al proceso padre |
Pasos para una selección fiable
- Ejecuta
ps -eo pid,ppid,user,tty,stat,comm,argsy localiza el proceso sospechoso; no dependas del formato visual por defecto. - Aplica el filtro más específico, como
ps -uTU_USUARIO -o pid,ppid,tty,stat,cmd. - Añade columnas necesarias con
-o, por ejemplops -C sshd -o pid,ppid,%cpu,%mem,stat,etime,cmd. - Si quieres contexto familiar, combina
--ppidy--forest, porque el filtro de padres no muestra por sí solo toda la descendencia.
Controlar columnas, ancho y jerarquía
-f activa el formato completo de GNU procps: muestra PID, PPID, una cadena de indicadores y el comando. -o permite escoger columnas exactas, por ejemplo pid,ppid,%cpu,%mem,rss,stat,etime,cmd. --sort ordena por una columna; ps -eo pid,%cpu,%mem,comm --sort=-%cpu coloca arriba los procesos con mayor porcentaje de CPU.
--forest muestra la relación entre padres e hijos mediante una indentación. --no-headers elimina la cabecera cuando vas a guardar la salida para procesarla. w amplía el ancho y evita cortes; --width 200 fija el ancho en caracteres. Los valores concretos de ancho dependen de la terminal, así que prueba 160 o 200 columnas únicamente como referencia de consulta.
Ejemplo: para revisar qué proceso ocupa memoria y quién lo inició, usa ps -eo pid,ppid,%cpu,%mem,rss,stat,etime,cmd --sort=-rss --forest. Para una salida estable en un archivo, añade --no-headers y w, y quita las columnas que no Necesites. Evita acumular demasiadas columnas: una tabla más ancha puede truncar CMD y ocultar el dato que estabas buscando.
- Usa
-ocuando necesites campos concretos. - Usa
--sortpara ordenar una sola métrica, no todas. - Usa
--forestal investigar Diplomacyparent-child. - Usa
wo--widthantes de afirmar que el comando está truncado.
Leer estados, CPU y memoria sin confundir las cifras
| Campo | Qué mide | Qué no mide | Lectura correcta |
|---|---|---|---|
| STAT | Estado operativo observado | Consumo total de recursos | R indica ejecutable o en ejecución; S espera、sueño o interrumpible; Z está terminado pero sin ser limpiado |
| TIME | Tiempo de CPU acumulado | Tiempo desde que arrancó | Un proceso puede tener mucho tiempo acumulado y usar poca CPU en este momento |
| %CPU | Porcentaje de CPU reportado por ps |
Consumo permanente ni porcentaje de memoria | Es una medida puntual o acumulada según las opciones y la ejecución; compara procesos en la misma consulta |
| SIZE | Memoria virtual reservada o mapeada | Memoria física ocupada | Un valor alto no implica que el proceso use esa cantidad de RAM |
| RSS | Residente en memoria física | Memoria virtual total | Indica páginas residentes; no incluye necesariamente toda la memoria swap |
Los valores de %CPU, %MEM, SIZE y RSS dependen del intervalo y de cómo se invoque ps; para observar una tendencia usa top o htop, que presentan lecturas sucesivas. TIME tampoco es el tiempo de pared: un proceso que espera 10 minutos manteniendo una conexión puede tener poco TIME.
Ejemplos resueltos para diagnóstico diario
Encontrar un servidor web
- Ejecuta
ps -eo pid,ppid,user,%cpu,%mem,rss,stat,etime,comm --sort=-%cpu. - Busca el proceso del servidor por
comm, sin asumir que su nombre comercial coincide con el ejecutable. - Revisa
PPID,USER,STATyELAPSEDpara saber quién lo gestiona y cuánto tiempo lleva activo. - Usa
ps -p PID -fpara ampliar la línea y comprobar la ruta completa del comando.
Detectar un proceso huérfano
- Ejecuta
ps -eo pid,ppid,user,stat,etime,cmd --forest. - Identifica un proceso con
PPIDigual a1y revisa si realmente pertenece a un servicio del sistema. - No mates el proceso automáticamente:
PPID=1puede indicar daemonización, y eliminarlo puede detener un servicio.
Localizar tareas de VS Code
- Usa
ps -ef | grep -i '[v]scode'para evitar mostrar la propia orden de búsqueda. - Comprueba
PID,PPIDyTTYpara separar el proceso principal de sus hijos. - Si hay varios launcheders,
pgrep -af -i vscodepuede localizarlos, pero la salida puede incluir procesos que solo tengan “vscode” en otro argumento.
Procesos Determinado o Zombi
Ejecuta ps -eo pid,ppid,stat,cmd | awk '$3 ~ /^Z/'. Cada línea Z es un proceso terminado que aún no fue cosechado por su padre. La búsqueda localiza el proceso; no demuestra por sí sola que el sistema completo esté inutilizado.
Cuándo Replace ps por top, htop, atop o pgrep
| Herramienta | Purpose | Actualización | Historial | Salida |
|---|---|---|---|---|
ps |
Foto puntual y selección por PID, usuario, nombre o padre | Manual, al ejecutarla | No conserva histórico | Texto y columnas configurables |
top |
Seguir CPU, memoria y procesos en pantalla | Continua | No mantiene historial utilizable | Tabla interactiva y orden por tecla |
htop |
Navegación visual por teclado y vista de árbol | Continua | No mantiene historial | Interfaz gráfica de terminal; requiere instalación |
atop |
Revisar actividad del sistema y reconstruir episodes | Periódica, según configuración | Registro temporal de actividad | Histórico y informes de sesiones |
pgrep |
Obtener PIDs por nombre o atributos | Manual | No | Lista de PIDs; combina con ps -p para ver columnas |
Para una captura inmediata, quédate con ps. Para monitorización continua en Ubuntu, Debian, Fedora, Linux Mint o Zorin OS, top viene habitualmente en el entorno base; htop puede ser más cómodo, pero añade una dependencia de instalación. Para histórico de recursos y eventos, atop es la opción adecuada si está instalado y configurado. Para saber si existe un proceso concreto, pgrep -af PATRÓN evita recorrer una tabla completa.
Errores frecuentes y solutions de comprobación
- Listado vacío: comprueba el PID, el usuario o el nombre exacto; añade
-o pid,user,stat,cmdy revisa si el proceso ya terminó. - Proceso sin terminal: un
TTYcon?puede ser normal en daemons; no lo interpretes como error. - Comando truncado: usa
w,--width 200o-o cmd=; comprueba el ancho real de la terminal. - Permisos insuficientes: verifica con
ps -eo user,pid,cmdsi aparecen datos reducidos; no cambies a root sin confirmar qué proceso estás investigando. - CPU mal interpretada: compara
%CPUdentro de la misma ejecución y recuerda queTIMEes CPU acumulada. - Memoria mal interpretada: separa
SIZE, memoria virtual, deRSS, memoria residente; no sumes ambos como si fueran RAM ocupada. - Orden inesperado: añade
--sort=-%cpuo--sort=-rssy conserva--no-headerssi la salida se procesará como texto. - Zombi persistente: localiza el PID y su
PPID; el zombi no ejecuta trabajo y debe ser cosechado por su padre.
Comprueba siempre el comportamiento de tu distribución con
man ps: las opciones y columnas disponibles dependen de la versión instalada de procps.
Los datos están comprobados en octubre de 2026.
Preguntas frecuentes sobre ps en Linux
1. ¿Qué es el comando ps?
Es una herramienta de Unix y Linux que muestra información sobre los procesos activos. Con ps se consultan PID, usuario, uso de CPU, memoria y tiempo de ejecución; por ejemplo, ps -p 1234 muestra el proceso 1234. No es interactiva y, por defecto, solo devuelve una fotografía del sistema.
2. ¿Cómo funciona el comando `ps aux` en Linux?
ps aux combina tresocumentation? No, let's formulate: combina dos estilos de salida: -a muestra procesos de todos los usuarios y -u añade columnas como usuario, porcentaje de CPU y memoria. En Linux suele incluirse x para mostrar también los que no tienen terminal. La forma habitual es ps aux o ps -aux.
3. ¿Cómo encuentro procesos con `ps aux | grep`?
ps aux | grep nombre filtra la salida de ps buscando una cadena, por ejemplo ps aux | grep nginx. Usa grep -v grep para excluir la propia línea del filtro: ps aux | grep nginx | grep -v grep. Este método puede omitir coincidencias parciales o procesos cuyo nombre no contenga ese texto; pgrep es más directo.
4. ¿Qué diferencia hay entre `ps aux` y `top`?
ps aux ofrece una vista instantánea en formato de texto y resulta útil para capturar la salida en un archivo. top se actualiza continuamente y ordena o clasifica procesos según criterios como CPU o memoria. Para obtener una lista ordenada por CPU, conviene ejecutar ps aux --sort=-%cpu | head.
5. ¿Qué opciones tiene el comando `ps` en Linux?
Entre las más útiles están -p PID para seleccionar procesos, -u usuario para filtrar por usuario y -e para mostrar todos. --sort=-%cpu ordena por uso de CPU y --sort=-%mem, por memoria; ps -eo pid,user,%cpu,%mem,comm permite elegir columnas. Las opciones pueden variar entre sistemas Unix y Linux, así que conviene consultar man ps.
6. ¿Qué es el comando `ps` en Unix y Linux?
ps es una utilidad estándar de Unix y Linux para consultar el estado de los procesos desde la terminal. Permite ver qué programas se ejecutan, qué usuario los launched y cuánto consumen, sin instalar herramientas adicionales. La sintaxis y algunas opciones cambian entrebsd? No, neutralizar: Unix BSD traditionally muestra más campos y Linux usa varias variantes de opciones. man ps explica las disponibles en cada sistema.
Fuentes
- FlaviocopesLinux commands: ps – Flavio Copesconsultado el 23/10/2026
- DigitalfoundryPlayStation 5 Linux Tested: Steam PC vs Native PS5 Gamesconsultado el 23/10/2026
- Coloradolinux – ps (1)consultado el 23/10/2026
- ShpvGestion processus Linux 2026 : ps, top, htop, kill et systemctl détailléconsultado el 23/10/2026
- Geeksforgeeksps Command in Linux – GeeksforGeeksconsultado el 23/10/2026
