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


답변:


196

'whoami'가 더 이상 사용되지 않았기 때문에 아마도 더 많은 호환성을 사용할 수 있습니다.

id -un

2
어떤 의미에서 'whoami'는 쓸모가 없습니까? 누가 쓸모 없다고 선언 했습니까?
Jonathan Leffler

2
@Jonathan : whoamiLeopard 의 man 페이지에서 id.
Naaff

아! 왜 그들은 새벽부터 주변에 있었던 무언가를 바꾸고 있습니까?
dmckee --- 전 사회자 고양이

29
와미라고? <boom-chacka>
kent

27

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

$ id -F
Andrew Havens

1
-F는 Mavericks에서 불법적 인 옵션입니다. 언제 처음 작동을 시작 했습니까?
Eli B.

11

Whoami

편집하다

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


11

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

whoami

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

참고-이 whoami유틸리티는 더 이상 사용되지 않으며 id -un. 현재 사용자를 제공합니다.


10

통하다 여기를

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

stat -f "%Su" /dev/console


1
이것은 컴퓨터에 ssh'ed되어 있고 사용자가 로컬로 로그온했는지 확인하려는 경우 유용합니다. 그렇지 않은 경우 명령은 "root"를 반환합니다.
팀 디어

4

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

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


4

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

man logname:

LOGNAME(1)

NAME
    logname -- display user's login name

1
이것은 확실히 가장 깨끗하고 쉬운 해결책입니다. 어떤 사용자가 명령을 실행하든 상관없이 작동합니다.
Maxime Viargues

2

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

2

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

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

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

여기에 이미지 설명 입력



1

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

printenv USER

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

process.env.USER.


1

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

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

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

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.