コマンドwho
とwhoami
は理解できますが、入力すると正確に次のようになります。
who am i
そして
who am
私はUbuntuを使用していますが、その後は何も起こりません!
Linux/UNIXがエラーメッセージ(who
の「不明な引数」の行にあるもの)で応答しない、または単にwho
の出力で応答しないのはなぜですか?
whoami
が何も出力しない場合は、シェルがログインシェルではないことを示している可能性があります。 who
の標準入力に関連付けられているユーザーはいないため、who
は何も出力しません。これは、関係がない限りエラーではないため、エラーメッセージは出力されません。
走れば
xterm -ls
ログインシェルでターミナルを開くには、whoami
およびwho am i
正常に動作します。同じことがe.g。 SSHを使用したリモートログインにも当てはまります。
入力すると:
$ who am i
シェル(任意のシェル)では、最初のワード(who
)は「コマンド」として解析されます。
したがって、PATHで検索された人、およびそれが見つかった後、他のすべてのパラメーター/単語/引数が引数としてコマンドに渡されます。
引数を解釈するのはwho
の仕事です。
実際、Linuxでは、 manのwho は 'am i'についてこれを言っています:
ARG1 ARG2が指定されている場合、-mは「am i」または「mom likes」が通常と推定されます。
したがって、そのようなwho
は、「stdinに関連付けられているホスト名とユーザー」(-m
オプション)。
Stdinに関連付けられているユーザーがいない場合、何も出力されません。
複製できません:
ghoti@home:~
$ who am i
ghoti pts/0 2017-07-10 08:33 (38.142.104.170)
ghoti@home:~
$ cat /etc/issue
Ubuntu 16.04.2 LTS \n \l