who、whoami 和“我是谁”

who、whoami 和“我是谁”

我可以理解命令whowhoami,但是当我输入时到底会发生什么:

who am i

who am

我在 Ubuntu 上,之后没有任何反应!

为什么 Linux / UNIX 不回复错误消息(关于 的“未知参数”行的内容who),或者只回复 的输出who

答案1

如果whoami没有输出任何内容,则可能表明您的 shell 不是登录 shell。没有与who的标准输入关联的用户,因此who不会输出任何内容 - 就其而言,这不是错误,因此它不会输出错误消息。

如果你跑

xterm -ls

要使用登录 shell 打开终端,您应该会找到它whoami并且who am i工作正常。使用远程登录也是如此例如SSH。

答案2

当您输入:

$ who am i

在 shell(任何 shell)中,第一个单词 ( who) 被解析为“命令”。
因此,在 PATH 中搜索 who,找到后,所有其他参数/​​单词/参数都作为参数提供给命令。

who解释论点是我们的工作。

事实上,在linux中,世界卫生组织手册关于“我是”有这样的说法:

如果给出 ARG1 ARG2,则 -m 假定:“我是”或“妈妈喜欢”是常见的。

因此,这样who只会打印“与 stdin 关联的主机名和用户”(-m选项)。

如果没有与 stdin 关联的用户,则不会打印任何内容。

相关内容