Как мне получить имя активного пользователя через командную строку в OS X?
macos
command-line
Лоуренс Джонстон
источник
источник
whoami
по Leopard подтверждает, что он был заменен наid
.Если вы хотите отображать полное имя (вместо имени пользователя), добавьте
-F
флаг:источник
кто я
РЕДАКТИРОВАТЬ
Утилита whoami устарела утилитой id (1) и эквивалентна
id -un
. Командаid -p
предлагается для обычного интерактивного использования.источник
Я почти уверен, что терминал в OS X такой же, как unix, поэтому команда будет такой:
На данный момент у меня нет Mac, так что кто-нибудь поправит меня, если я ошибаюсь.
ПРИМЕЧАНИЕ. -
whoami
Утилита устарела и эквивалентнаid -un
. Это даст вам текущего пользователяисточник
Через здесь
Проверка владельца / dev / console, похоже, работает хорошо.
stat -f "%Su" /dev/console
источник
Если вы хотите знать, кто в данный момент вошел в систему:
(Это из системы Linux; форматирование в OS X может немного отличаться, но информация должна быть примерно такой же.)
Может быть несколько сеансов входа в систему; В конце концов, UNIX спроектирована как многопользовательская система.
источник
Вы также можете использовать
logname
команду из Руководства по основным командам BSD в Linux или MacOS, чтобы увидеть имя пользователя, вошедшего в систему, даже если пользователь выполняет какую-либоsudo
операцию. Это полезно, например, при изменении crontab пользователя при установке общесистемного пакета с помощью sudo:crontab -u $(logname)
За
man logname
:источник
Вопрос не получил полного ответа, ИМХО. Я попытаюсь объяснить: у меня есть запись crontab, которая планирует процедуру команды оболочки bash, которая, в свою очередь, выполняет некоторую очистку моих файлов; и, когда это будет сделано, отправляет мне уведомление с помощью центра уведомлений OS X (с помощью команды
osascript -e 'display notification ...
). Если кто-то (например, моя жена или моя дочь) переключает на нее текущего пользователя компьютера, оставляя меня в фоновом режиме, сценарий cron завершается ошибкой при отправке уведомления.Итак, кто является текущим пользователем, означает, что некоторые другие люди стали эффективными пользователями, оставив меня в тени ? У
stat -f "%Su" /dev/console
возвращает текущий активный пользователь имя?Ответ положительный; Итак, теперь мой сценарий оболочки crontab был изменен следующим образом:
источник
получить имя пользователя в MAC-терминале просто ...
Я обычно использую
whoami
в терминале ...Например, в данном случае мне это нужно для установки Tomcat Server ...
источник
Есть два пути-
или
источник
Вы также можете получить его из переменных среды, но это, вероятно, небезопасно, поэтому я бы пошел с ответом Эндрю.
printenv USER
Если вам нужно получить его из приложения, такого как Node, проще получить его из переменных среды, таких как
process.env.USER
.источник
Определите «активного пользователя».
Если вопрос в том, «кто вошел в систему», то «кто я» или «whoami» подойдет (хотя они дают разные ответы - «whoami» сообщает только имя пользователя; «кто я» сообщает на терминале и время входа тоже).
Если вопрос заключается в том, «какой идентификатор пользователя является эффективным идентификатором для оболочки», то часто лучше использовать «id». Это сообщает о реальном и действующем идентификаторе пользователя и группе, а также о дополнительных идентификаторах группы. Это может иметь значение, если в оболочке запущен SUID или SGID.
источник