Подтвердить что ты не робот

Как получить имя активного пользователя через командную строку в OS X?

Как получить имя активного пользователя через командную строку в OS X?

4b9b3361

Ответ 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...

enter image description here

Ответ 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