Nice programing

OS X의 명령 줄을 통해 활성 사용자의 이름을 어떻게 얻습니까?

nicepro 2020. 12. 27. 20:49
반응형

OS X의 명령 줄을 통해 활성 사용자의 이름을 어떻게 얻습니까?


OS X의 명령 줄을 통해 활성 사용자의 이름을 어떻게 얻습니까?


'whoami'가 더 이상 사용되지 않았기 때문에 아마도 더 포워드 호환이 가능할 것입니다.

id -un

사용자 이름 대신 전체 이름을 표시하려면 다음 -F플래그를 추가하세요 .

$ id -F
Andrew Havens

Whoami

편집하다

whoami 유틸리티는 id (1) 유틸리티에서 더 이상 사용되지 않으며 id -un. 이 명령 id -p은 일반적인 대화식 사용을 위해 제안됩니다.


여기를 통해

/ dev / console의 소유자를 확인하는 것이 잘 작동하는 것 같습니다.

stat -f "%Su" /dev/console


나는 OS X의 터미널이 유닉스와 똑같다고 확신하므로 명령은 다음과 같습니다.

whoami

나는 현재 나에게 맥이 없기 때문에 누군가 내가 틀렸다면 나를 고쳐줍니다.


현재 시스템에 로그인 한 사람을 알고 싶다면 :

$ 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는 결국 다중 사용자 시스템으로 설계되었습니다.


질문에 완전히 대답하지 않았습니다, 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

MAC 터미널 에서 사용자 이름을 얻는 것은 쉽습니다 ...

나는 일반적으로 터미널whoami 에서 사용합니다 ...

예를 들어,이 경우 Tomcat Server 를 설치하는 데 필요했습니다 ...

여기에 이미지 설명 입력


lognameLinux 또는 MacOS에서 BSD General Commands Manual 명령을 사용 하여 사용자가 sudo작업을 수행하는 경우에도 현재 로그인 한 사용자의 사용자 이름을 볼 수 있습니다. 예를 들어 sudo로 시스템 전체 패키지를 설치하는 동안 사용자의 crontab을 수정할 때 유용합니다.crontab -u $(logname)

man logname:

LOGNAME(1)

NAME
    logname -- display user's login name

환경 변수에서 검색 할 수도 있지만 안전하지 않을 수 있으므로 Andrew의 대답으로 이동합니다.

printenv USER

Node와 같은 앱에서 검색해야하는 경우 다음과 같은 환경 변수에서 가져 오는 것이 더 쉽습니다.

process.env.USER.


'활성 사용자'를 정의합니다.

질문이 '로그인 한 사용자'인 경우 '나는 누구인가'또는 'whoami'가 괜찮습니다 (답은 다르지만 'whoami'는 사용자 이름 만보고하고 'who am i'는 터미널에서보고하고 로그인 시간도).

질문이 '어떤 사용자 ID가 셸의 유효 ID인지'인 경우 'id'를 사용하는 것이 더 좋습니다. 이는 실제 유효 사용자 ID와 그룹 ID, 그리고 보조 그룹 ID에 대해서도보고합니다. 쉘이 SUID 또는 SGID를 실행중인 경우 이는 중요 할 수 있습니다.


두 가지 방법이 있습니다.

whoami

또는

echo $USER

참조 URL : https://stackoverflow.com/questions/1104972/how-do-i-get-the-name-of-the-active-user-via-the-command-line-in-os-x

반응형