Как получить имя активного пользователя через командную строку в OS X?
Как получить имя активного пользователя через командную строку в OS X?
Ответ 1
поскольку "whoami" устарел, он, вероятно, более совместим с Outlook:
id -un
Ответ 2
Если вы хотите отобразить полное имя (вместо имени пользователя), добавьте флаг -F
:
$ id -F
Andrew Havens
Ответ 3
РЕДАКТИРОВАТЬ
Утилита whoami устарела с помощью утилиты id (1) и эквивалентна id -un
. Идентификатор команды id -p
предлагается для обычного интерактивного использования.
Ответ 4
Через здесь
Проверка владельца /dev/console, похоже, работает хорошо.
stat -f "%Su" /dev/console
Ответ 5
Я уверен, что терминал в OS X похож на unix, поэтому команда будет:
whoami
У меня сейчас нет мака, так что меня кто-то исправит, если я ошибаюсь.
Ответ 6
Если вы хотите узнать, кто в настоящий момент вошел в систему:
<Предварительно > $ w 15:56:14 до 5 дней, 20:58, 6 пользователей, средний нагрузка: 0,43, 0,53, 0,50 USER TTY LOGIN @IDLE JCPU PCPU ЧТО me pts/2 Fri19 1: 03m 0.98s 0.98s -/bin/bash me pts/3 09:55 6: 00m 0.43s 0.43s/bin/bash me pts/5 15:56 0.00s 0.23s 0.00s w(Это из системы Linux, форматирование на OS X может немного отличаться, но информация должна быть примерно одинаковой.)
Может быть несколько сеансов входа в систему; В конце концов, UNIX разработан как многопользовательская система.
Ответ 7
Вопрос не получил полного ответа, ИМХО. Я попытаюсь объяснить: у меня есть запись crontab, в которой запланирована процедура командной оболочки bash, которая, в свою очередь, немного очищает мои файлы; и после этого отправляет уведомление мне, используя центр уведомлений OS X (с командой osascript -e 'display notification ...
). Если кто-то (например, моя жена или моя дочь) переключает на нее текущего пользователя компьютера, оставляя меня в фоновом режиме, cron script терпит неудачу при отправке уведомления.
Итак, кто является текущим пользователем. Имеет ли кто-то другой человек эффективный пользователь, оставляющий меня в фоновом режиме? Do stat -f "%Su" /dev/console
возвращает текущее имя активного пользователя?
Ответ: да; поэтому теперь моя оболочка crontab script была изменена следующим образом:
...
if [ "$(/usr/bin/stat -f ""%Su"" /dev/console)" = "loreti" ]
then /usr/bin/osascript -e \
'display notification "Cleanup done" sound name "sosumi" with title "myCleanup"'
fi
Ответ 8
получить имя пользователя в MAC-терминале легко...
Я вообще использую whoami
в терминале...
Например, в этом случае мне нужно было установить Tomcat Server...
Ответ 9
Вы также можете использовать команду logname
из Руководства по logname
командам BSD под Linux или MacOS, чтобы увидеть имя пользователя, вошедшего в систему в данный момент, даже если пользователь выполняет операцию sudo
. Это полезно, например, при изменении пользовательского crontab при установке общесистемного пакета с помощью sudo: crontab -u $(logname)
На man logname
:
LOGNAME(1)
NAME
logname -- display user login name
Ответ 10
Определить "активный пользователь".
Если вопрос "кто является зарегистрированным пользователем", то "кто я" или "whoami" - это нормально (хотя они дают разные ответы - "whoami" сообщает только имя пользователя; "кто я" сообщает о терминале и время входа тоже).
Если вопрос заключается в том, "какой идентификатор пользователя является эффективным идентификатором для оболочки", то часто лучше использовать "идентификатор". Это сообщает о действительном и эффективном идентификаторе пользователя и идентификаторе группы, а также о дополнительных идентификаторах группы. Это может иметь значение, если оболочка работает SUID или SGID.
Ответ 11
Вы также можете извлечь его из переменных окружения, но это, вероятно, небезопасно, поэтому я бы пошел с ответом Эндрю.
printenv USER
Если вам нужно извлечь его из приложения, такого как Node, проще получить его из переменных среды, таких как
process.env.USER
.
Ответ 12
Есть два ways-
whoami
или
echo $USER