OS X에서 명령 줄을 통해 활성 사용자의 이름을 어떻게 얻습니까?
답변:
'whoami'가 더 이상 사용되지 않았기 때문에 아마도 더 많은 호환성을 사용할 수 있습니다.
id -un
whoami
Leopard 의 man 페이지에서 id
.
현재 시스템에 로그인 한 사람을 알고 싶다면 :
$ w 15:56:14 5 일 증가, 20:58, 사용자 6 명,로드 평균 : 0.43, 0.53, 0.50 사용자 TTY 로그인 @ 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.00sw
(이것은 Linux 시스템에서 가져온 것입니다. OS X의 형식은 약간 다를 수 있지만 정보는 거의 동일해야합니다.)
여러 로그인 세션이있을 수 있습니다. UNIX는 결국 다중 사용자 시스템으로 설계되었습니다.
logname
Linux 또는 MacOS에서 BSD 일반 명령 매뉴얼 의 명령을 사용 하여 사용자가 sudo
작업을 수행하고 있더라도 현재 로그인 한 사용자의 사용자 이름을 볼 수도 있습니다. 예를 들어 sudo로 시스템 전체 패키지를 설치하는 동안 사용자의 crontab을 수정할 때 유용합니다.crontab -u $(logname)
당 man logname
:
LOGNAME(1)
NAME
logname -- display user's login name
질문에 완전히 대답하지 않았습니다, IMHO. 설명하려고합니다. bash 셸 명령 절차를 예약하는 crontab 항목이 있는데,이 항목은 차례로 내 파일을 정리합니다. 완료되면 OS X 알림 센터 (명령 사용 )를 사용하여 나에게 알림 을 보냅니다 osascript -e 'display notification ...
. 누군가 (예 : 아내 또는 딸)가 현재 컴퓨터 사용자를 그녀로 전환하여 나를 백그라운드로 남겨두면 알림을 보낼 때 cron 스크립트 가 실패합니다 .
그래서, 현재 사용자 누구 수단이 다른 사람들이 백그라운드에서 저를 떠나 유효 사용자가되어 있습니다 ? 수행 stat -f "%Su" /dev/console
수익률은 현재 활성 사용자 이름은?
대답은 '예'입니다. 이제 내 crontab 셸 스크립트가 다음과 같이 수정되었습니다.
...
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