誰、whoamiと「私は誰ですか」

誰、whoamiと「私は誰ですか」

whoとコマンドを理解できますが、whoami次のように入力すると正確に何が起こりますか?

who am i

そして

who am

私はUbuntuにいて、その後は何も起こりません!

Linux / UNIXがエラーメッセージ(「不明なパラメータ」行の内容についてwho)で応答しないのか、出力で応答しないのですかwho

答え1

何も出力されない場合は、whoamiシェルがログインシェルではないことを意味します。whoの標準入力に関連付けられたユーザーがないため、who何も出力されません。これはエラーではないため、エラーメッセージを出力しません。

走れば

xterm -ls

ログインシェルを使用して端末を開くには、端末を見つけて正しくwhoami機能する必要がありますwho am i。リモートログインを使用している場合も同様です。例えばSSH。

答え2

入力するとき:

$ who am i

シェル(すべてのシェル)では、最初の単語(who)は「コマンド」として解析されます。
したがって、PATHで誰が検索され、見つかったら、他のすべてのパラメータ/単語/パラメータがコマンドの引数として提供されます。

who主張を説明することが私たちの使命です。

実際、Linuxでは世界保健機関ハンドブック「私は」についてこのような言葉があります。

ARG1 ARG2が与えられると、-mは「I am」または「Mom likes」が一般的であると仮定します。

したがって、who「stdinに関連付けられているホスト名とユーザー」(-mオプション)のみが印刷されます。

stdinに関連付けられているユーザーがなければ、何も印刷されません。

関連情報