¿Cómo obtengo el nombre del usuario activo a través de la línea de comando en OS X?
macos
command-line
Lawrence Johnston
fuente
fuente
whoami
Leopard confirma que ha sido reemplazada porid
.Si desea mostrar el nombre completo (en lugar del nombre de usuario), agregue la
-F
bandera:fuente
quién soy
EDITAR
La utilidad whoami ha quedado obsoleta por la utilidad id (1) y es equivalente a
id -un
. El comandoid -p
se sugiere para uso interactivo normal.fuente
Estoy bastante seguro de que el terminal en OS X es como Unix, por lo que el comando sería:
No tengo una Mac en este momento, así que alguien me corrija si me equivoco.
NOTA: La
whoami
utilidad ha quedado obsoleta y es equivalente aid -un
. Te dará el usuario actualfuente
Vía aquí
Verificar el propietario de / dev / console parece funcionar bien.
stat -f "%Su" /dev/console
fuente
Si desea saber quién está conectado actualmente al sistema:
(Esto es de un sistema Linux; el formato en OS X puede ser ligeramente diferente, pero la información debe ser aproximadamente la misma).
Puede haber varias sesiones de inicio de sesión; UNIX está diseñado para ser un sistema multiusuario, después de todo.
fuente
También puede usar el
logname
comando del Manual de comandos generales de BSD en Linux o MacOS para ver el nombre de usuario del usuario que está conectado actualmente, incluso si el usuario está realizando unasudo
operación. Esto es útil, por ejemplo, cuando se modifica el crontab de un usuario mientras se instala un paquete de todo el sistema con sudo:crontab -u $(logname)
Por
man logname
:fuente
La pregunta no ha sido completamente respondida, en mi humilde opinión. Intentaré explicar: tengo una entrada crontab que programa un procedimiento de comando de shell bash, que a su vez hace una limpieza de mis archivos; y, cuando se hace, envía una notificación a mí con el centro de notificaciones de OS X (con el comando
osascript -e 'display notification ...
). Si alguien (por ejemplo, mi esposa o mi hija) cambia el usuario actual de la computadora a ella, dejándome en segundo plano, el script cron falla al enviar la notificación.Por lo tanto, quién es el usuario actual mediante alguna otra gente ha convertido en el usuario efectivo dejándome en el fondo ? ¿
stat -f "%Su" /dev/console
Devuelve el nombre de usuario activo actual ?La respuesta es sí; entonces, ahora mi script de shell crontab se ha modificado de la siguiente manera:
fuente
obtener el nombre de usuario en la terminal MAC es fácil ...
Generalmente uso
whoami
en terminal ...Por ejemplo, en este caso, lo necesitaba para instalar Tomcat Server ...
fuente
Hay dos maneras-
o
fuente
También puede recuperarlo de las variables de entorno, pero eso probablemente no sea seguro, por lo que iría con la respuesta de Andrew.
printenv USER
Si necesita recuperarlo de una aplicación, como Node, es más fácil obtenerlo de las variables de entorno, como
process.env.USER
.fuente
Defina 'usuario activo'.
Si la pregunta es 'quién es el usuario que inició sesión', entonces 'quién soy yo' o 'whoami' está bien (aunque dan respuestas diferentes: 'whoami' informa solo un nombre de usuario; 'quién soy yo' informa en la terminal y tiempo de inicio de sesión también).
Si la pregunta es 'qué ID de usuario es el ID efectivo para el shell', a menudo es mejor usar 'id'. Esto informa sobre el ID de usuario y el ID de grupo reales y efectivos, y también sobre los ID de grupo complementarios. Esto puede ser importante si el shell está ejecutando SUID o SGID.
fuente