a =mostrar procesos para todos los usuarios
u =mostrar el usuario/propietario del proceso
x =también muestra procesos no conectados a una terminal
Por cierto, man ps
es un buen recurso.
Históricamente, BSD y AT&T desarrollaron versiones incompatibles de ps
. Las opciones sin un guión inicial (según la pregunta) son del estilo BSD, mientras que las que tienen un guión inicial son del estilo AT&T Unix. Además de esto, Linux desarrolló una versión que admite ambos estilos y luego le agrega un tercer estilo con opciones que comienzan con guiones dobles.
Todas (o casi todas) las distribuciones de Linux no integradas utilizan una variante de la suite procps. Las opciones anteriores están definidas en el procps ps
página man.
En los comentarios, dices que estás usando Apple MacOS (OSX, supongo). La página de manual de OSX para ps
está aquí y muestra soporte solo para el estilo de AT&T.
a Lift the BSD-style "only yourself" restriction, which is imposed
upon the set of all processes when some BSD-style (without "-")
options are used or when the ps personality setting is BSD-like.
The set of processes selected in this manner is in addition to the
set of processes selected by other means. An alternate
description is that this option causes ps to list all processes
with a terminal (tty), or to list all processes when used together
with the x option.
u Display user-oriented format.
x Lift the BSD-style "must have a tty" restriction, which is imposed
upon the set of all processes when some BSD-style (without "-")
options are used or when the ps personality setting is BSD-like.
The set of processes selected in this manner is in addition to the
set of processes selected by other means. An alternate
description is that this option causes ps to list all processes
owned by you (same EUID as ps), or to list all processes when used
together with the a option.
Ejemplo
$ ps aux | head -10
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.0 51120 2796 ? Ss Dec22 0:09 /usr/lib/systemd/systemd --system --deserialize 22
root 2 0.0 0.0 0 0 ? S Dec22 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? S Dec22 0:04 [ksoftirqd/0]
root 5 0.0 0.0 0 0 ? S< Dec22 0:00 [kworker/0:0H]
root 7 0.0 0.0 0 0 ? S Dec22 0:15 [migration/0]
root 8 0.0 0.0 0 0 ? S Dec22 0:00 [rcu_bh]
root 9 0.0 0.0 0 0 ? S Dec22 2:47 [rcu_sched]
...
saml 3015 0.0 0.0 117756 596 pts/2 Ss Dec22 0:00 bash
saml 3093 0.9 4.1 1539436 330796 ? Sl Dec22 70:16 /usr/lib64/thunderbird/thunderbird
saml 3873 0.0 0.1 1482432 8628 ? Sl Dec22 0:02 gvim -f
root 5675 0.0 0.0 124096 412 ? Ss Dec22 0:02 /usr/sbin/crond -n
root 5777 0.0 0.0 51132 1068 ? Ss Dec22 0:08 /usr/sbin/wpa_supplicant -u -f /var/log/wpa_supplica
saml 5987 0.7 1.5 1237740 119876 ? Sl Dec26 14:05 /opt/google/chrome/chrome --type=renderer --lang=en-
root 6115 0.0 0.0 0 0 ? S Dec27 0:06 [kworker/0:2]
...
Con los interruptores anteriores, obtendrá resultados con respecto a sus procesos como los anteriores.
Los interruptores aux
te mostrará:
- todos los procesos de los usuarios
- le muestra el proceso enumerado de forma orientada al usuario (por nombres de usuario)
- le muestra todos los procesos, no solo los que están conectados a una terminal. Esto incluirá procesos como servicios como crond, upowerd, etc.
La clave para comprender la página de manual no es buscar "aux" (que probé primero), sino centrarse en la sección que describe los tipos de parámetros ps
toma:
Esta versión de ps acepta varios tipos de opciones:
- Opciones de UNIX, que se pueden agrupar y deben estar precedidas por un guión.
- Opciones de BSD, que pueden agruparse y no deben usarse con un guión.
- Opciones largas de GNU, que van precedidas de dos guiones.
A partir de esto, sabemos que aux
es un conjunto de opciones BSD (agrupadas), a
, u
y x
, lo que los hace un poco más fáciles de buscar.
-
a
yx
controlar qué procesos se seleccionan y se usan juntos se describen explícitamente para seleccionar todos los procesos. -
u
salidas utilizando el formato "orientado al usuario", que proporciona más columnas, incluida la identificación del usuario y el uso de CPU/memoria.
Porque u
solo controla el formato de salida, puede obtener una salida de estilo "ps aux" solo para procesos específicos con ps u $pid1 $pid2 ...
.