who
및 명령을 이해할 수 있지만 whoami
다음을 입력하면 정확히 무슨 일이 발생합니까?
who am i
그리고
who am
나는 우분투에 있고 그 후에는 아무 일도 일어나지 않습니다!
Linux/UNIX가 오류 메시지("알 수 없는 매개변수" 줄의 내용에 대한 who
)로 응답하지 않거나 출력으로만 응답하지 않는 이유는 무엇입니까 who
?
답변1
아무 것도 출력되지 않으면 whoami
쉘이 로그인 쉘이 아니라는 의미일 수 있습니다. who
의 표준 입력과 연관된 사용자가 없으므로 who
아무 것도 출력되지 않습니다. 이는 오류가 아니므로 오류 메시지를 출력하지 않습니다.
당신이 달리면
xterm -ls
로그인 셸을 사용하여 터미널을 열려면 터미널을 찾아서 제대로 whoami
작동 해야 합니다 who am i
. 원격 로그인을 사용하는 경우에도 마찬가지입니다.예를 들어SSH.
답변2
입력할 때:
$ who am i
쉘(모든 쉘)에서 첫 번째 단어( who
)는 "명령"으로 구문 분석됩니다.
따라서 PATH에서 누가 검색되고 일단 발견되면 다른 모든 매개변수/단어/매개변수가 명령에 대한 인수로 제공됩니다.
who
주장을 설명하는 것이 우리의 임무입니다.
실제로 리눅스에서는세계보건기구 핸드북"나는"에 대해 이런 말이 있습니다.
ARG1 ARG2가 주어지면 -m은 "I am" 또는 "Mom likes"가 일반적이라고 가정합니다.
따라서 who
"stdin과 관련된 호스트 이름 및 사용자"( -m
옵션)만 인쇄됩니다.
stdin과 연관된 사용자가 없으면 아무것도 인쇄되지 않습니다.