El comando who en Linux es una utilidad de línea de comandos que muestra información sobre los usuarios que actualmente están conectados al sistema. Proporciona una visión general rápida de qué usuarios están conectados y qué están haciendo.
La salida del comando who normalmente incluye el nombre de usuario, el nombre del terminal (tty/pts), la fecha y hora de inicio de sesión y el nombre del host remoto del usuario si el inicio de sesión es desde una ubicación remota.
Sintaxis general del comando who:
who [OPCIONES…]- Mostrar información de todos los usuarios
- Mostrar la última hora de inicio del sistema
- Listar todos los usuarios conectados
- Verificar el permiso de escritura del usuario
- Mostrar todos los procesos inactivos
- Mostrar información sobre el usuario actual
- Mostrar todos los procesos activos generados por el proceso INIT
- Mostrar el nivel de ejecución actual
Mostrar información de todos los usuarios
who -aLa opción -a te permite ver todos los detalles de cada usuario conectado al sistema actual.
Ejemplo:
Aquí tienes un ejemplo de salida de lo que podría mostrar el comando who -a:
system boot 2024-05-09 08:15
run-level 5 2024-05-09 08:15
LOGIN tty1 2024-05-09 08:15 420 id=tty1
username + pts/0 2024-05-09 10:18 . 1025 (192.168.1.10)En este ejemplo:
system boot 2024-05-09 08:15muestra cuándo se inició el sistema por última vez.run-level 5 2024-05-09 08:15indica el nivel de ejecución actual del sistema y cuándo se cambió por última vez. El nivel de ejecución 5 normalmente significa que el sistema está en modo multiusuario con una interfaz gráfica de usuario.LOGIN tty1 2024-05-09 08:15 420 id=tty1muestra un proceso de inicio de sesión que se inició en el terminal tty1 a la hora especificada. El número 420 es el ID del proceso de inicio de sesión e id=tty1 es un identificador para el terminal.username + pts/0 2024-05-09 10:18 . 1025 (192.168.1.10)muestra a un usuario llamado username conectado al pseudoterminal pts/0 a la hora especificada. El signo + indica que el usuario está recibiendo mensajes de otros usuarios en el sistema. El punto (.) significa que el usuario está activo. El número 1025 es el ID del proceso del shell del usuario y (192.168.1.10) es la dirección IP del host remoto desde el que inició sesión el usuario.
Mostrar la última hora de inicio del sistema
who -bUsa el comando who con la opción -b para imprimir la última hora de inicio del sistema.
Ejemplo:
Aquí tienes un ejemplo de salida del comando who -b:
system boot 2024-05-09 08:17En este ejemplo:
system boot indica que la información proporcionada es sobre la hora de inicio del sistema.2024-05-09 08:17 es la fecha y hora en que se inició el sistema por última vez.
Listar todos los usuarios conectados
who -qEste comando muestra solo los nombres de los usuarios conectados y el número total de usuarios conectados. La opción -q significa “quick” (“rápido“).
Ejemplo:
Aquí tienes un ejemplo de salida del comando who -q:
username1 username2 username3
# users=3En este ejemplo:
username1,username2yusername3son los nombres de los usuarios actualmente conectados al sistema.users=3indica el número total de usuarios conectados actualmente al sistema.
Verificar el permiso de escritura del usuario
who -TEl comando who -t en Linux se utiliza para mostrar la última hora de inicio del sistema. La opción -t significa “time” (“hora“).
Ejemplo:
Escribamos el comando who -T para mostrar los estados de los usuarios en el terminal.
system boot 2024-05-09 08:15En este ejemplo:
system bootindica que es la hora en que el sistema se inició por última vez.2024-05-09 08:15es la fecha y hora del último inicio del sistema.
Mostrar todos los procesos inactivos
who -dEl comando who -d en Linux se utiliza para mostrar los usuarios que están conectados, pero también incluye los procesos que fueron iniciados por los usuarios pero que actualmente están en un estado “inactivo“. Estos son procesos que fueron iniciados por usuarios conectados pero que ya no están vinculados a una sesión de usuario.
Ejemplo:
Escribiendo el comando who con la opción -d para mostrar detalles de todos los procesos inactivos.
username pts/0 2024-05-09 10:18 (192.168.1.10)
username pts/1 2024-05-09 10:20 . 12345En este ejemplo:
- La primera línea es una sesión de usuario normal, similar a la salida del comando
who. - La segunda línea representa un proceso “inactivo”. El punto (.) indica que el proceso ya no está vinculado a una sesión de usuario. Este tipo de procesos son aquellos que fueron iniciados por usuarios conectados pero que ya no están directamente asociados con una sesión de terminal.
Mostrar información sobre el usuario actual
who -mEl comando who -m en Linux se utiliza para mostrar información sobre el terminal actual. La opción -m significa “mesg“, que es la abreviatura de “message” (“mensaje“). Muestra la información relacionada solo con el terminal actual.
Ejemplo:
Aquí hay un ejemplo de salida del comando who -m:
username pts/0 2024-05-09 10:18En este ejemplo:
usernamees el nombre del usuario conectado.pts/0es el nombre del terminal. Elptssignifica terminal pseudoesclavo. Si el usuario está conectado a través de un terminal físico, sería tty (teletypewriter).2024-05-09 10:18es la fecha y hora en que el usuario inició sesión.
Mostrar todos los procesos activos generados por el proceso INIT
who -pEl comando who -p muestra los procesos activos generados por el sistema init. Sin embargo, esta opción no está disponible universalmente en todos los sistemas operativos tipo Unix.
Ejemplo:
En los sistemas donde está disponible, podría mostrar una salida similar a esta:
run-level 3 2024-05-09 10:18En este ejemplo:
run-level 3indica el nivel de ejecución actual del sistema. Los niveles de ejecución son un estado o modo en el que opera un sistema operativo tipo Unix como Linux. Los diferentes niveles de ejecución sirven para diferentes propósitos y se denotan mediante números. Por ejemplo, el nivel de ejecución 3 normalmente significa que el sistema está en modo multiusuario con red (el significado exacto puede variar un poco según el sistema).2024-05-09 10:18es la fecha y hora en que se estableció el nivel de ejecución actual.
Mostrar el nivel de ejecución actual
who -rEl comando who -r en Linux muestra el nivel de ejecución actual del sistema. El nivel de ejecución es un estado del sistema que define qué servicios y recursos están disponibles para los usuarios.
Ejemplo:
run-level 3 2024-05-09 10:18En este ejemplo:
run-level 3indica el nivel de ejecución actual del sistema. En este caso, es 3, lo que normalmente significa que el sistema está en modo multiusuario con red (esto puede variar ligeramente según la distribución específica de Linux).2024-05-09 10:18es la fecha y hora en que se cambió por última vez el nivel de ejecución actual.
Más comandos de Linux:
| Operaciones de Directorios | rmdir · cd · pwd · exa · ls |
| Operaciones de Archivos | cat · cp · dd · less · touch · ln · rename · more · head |
| Operaciones de Sistema de Archivos | chown · mkfs · locate |
| Redes | ping · curl · wget · iptables · mtr |
| Búsqueda y Procesamiento de Texto | find · grep · sed · whatis · ripgrep · fd · tldr |
| Información y Gestión del Sistema | env · history · top · who · htop · glances · lsof |
| Gestión de Usuarios y Sesiones | screen · su · sudo · open |







Pingback: Cómo Utilizar el Comando iptables en Linux » Blog Linux
Pingback: Cómo Usar Comando wall en Linux para Enviar Mensajes Masivos