Comment obtenir le nom de l'utilisateur actif via la ligne de commande sous OS X?
macos
command-line
Lawrence Johnston
la source
la source
whoami
sur Leopard confirme qu'elle a été remplacée parid
.Si vous souhaitez afficher le nom complet (au lieu du nom d'utilisateur), ajoutez l'
-F
indicateur:la source
qui suis je
ÉDITER
L'utilitaire whoami est devenu obsolète par l'utilitaire id (1) et équivaut à
id -un
. La commandeid -p
est suggérée pour une utilisation interactive normale.la source
Par ici
Vérifier le propriétaire de / dev / console semble bien fonctionner.
stat -f "%Su" /dev/console
la source
Je suis presque sûr que le terminal sous OS X est comme unix, donc la commande serait:
Je n'ai pas de mac sur moi pour le moment, alors quelqu'un me corrige si je me trompe.
NOTE - L'
whoami
utilitaire est obsolète et équivaut àid -un
. Cela vous donnera l'utilisateur actuella source
Si vous voulez savoir qui est actuellement connecté au système:
(Cela provient d'un système Linux; le formatage sous OS X peut être légèrement différent, mais les informations devraient être à peu près les mêmes.)
Il peut y avoir plusieurs sessions de connexion; UNIX est conçu pour être un système multi-utilisateurs, après tout.
la source
Vous pouvez également utiliser la
logname
commande du manuel des commandes générales BSD sous Linux ou MacOS pour voir le nom d'utilisateur de l'utilisateur actuellement connecté, même si l'utilisateur effectue unesudo
opération. Ceci est utile, par exemple, lors de la modification du crontab d'un utilisateur lors de l'installation d'un package à l'échelle du système avec sudo:crontab -u $(logname)
Par
man logname
:la source
La question n'a pas été complètement répondue, à mon humble avis. Je vais essayer d'expliquer: j'ai une entrée crontab qui planifie une procédure de commande bash shell, qui à son tour effectue un certain nettoyage de mes fichiers; et, une fois terminé, m'envoie une notification en utilisant le centre de notification OS X (avec la commande
osascript -e 'display notification ...
). Si quelqu'un (par exemple ma femme ou ma fille) change l'utilisateur actuel de l'ordinateur vers elle, me laissant en arrière-plan, le script cron échoue lors de l'envoi de la notification.Alors, qui est l'utilisateur actuel signifie Est-ce que d'autres personnes sont devenues l'utilisateur effectif en me laissant en arrière - plan ? Est - ce que
stat -f "%Su" /dev/console
renvoie le courant utilisateur actif nom?La réponse est oui; donc, maintenant, mon script shell crontab a été modifié de la manière suivante:
la source
obtenir le nom d'utilisateur dans le terminal MAC est facile ...
Je l'utilise généralement
whoami
en terminal ...Par exemple, dans ce cas, j'en avais besoin pour installer Tomcat Server ...
la source
Il y a deux façons
ou
la source
Vous pouvez également le récupérer à partir des variables d'environnement, mais ce n'est probablement pas sécurisé, alors j'irais avec la réponse d'Andrew.
printenv USER
Si vous avez besoin de le récupérer à partir d'une application, telle que Node, il est plus facile de l'obtenir à partir des variables d'environnement, telles que
process.env.USER
.la source
Définissez «utilisateur actif».
Si la question est `` qui est l'utilisateur connecté '', alors `` qui suis-je '' ou `` whoami '' convient (bien qu'ils donnent des réponses différentes - `` whoami '' ne signale qu'un nom d'utilisateur; `` qui suis-je '' rapporte sur le terminal et temps de connexion aussi).
Si la question est «quel ID utilisateur est l'ID effectif du shell», il est souvent préférable d'utiliser «id». Cela rend compte de l'ID utilisateur et de l'ID de groupe réels et effectifs, ainsi que sur les ID de groupe supplémentaires. Cela peut être important si le shell exécute SUID ou SGID.
la source