我偶然发现了一个提到以下命令的博客。
who mom likes
Run Code Online (Sandbox Code Playgroud)
它似乎相当于
who am i
Run Code Online (Sandbox Code Playgroud)
作者警告永远不要在命令行中输入以下内容(我怀疑他是在开玩笑)
who mom hates
Run Code Online (Sandbox Code Playgroud)
没有关于该mom
命令的任何记录。它有什么作用?
为什么当我切换用户su <username>
然后执行时who am i
输出的是我之前登录的用户而不是我切换到的用户?
在在线命令行平台中,例如 Codecademy 上的一个,当我运行时
for cmd in w who whoami id
do
echo $cmd
$cmd
echo =========================
echo " "
done
Run Code Online (Sandbox Code Playgroud)
我得到
w
00:52:54 up 8 days, 14:10, 0 users, load average: 3.78, 2.98, 2.69
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
=========================
who
=========================
whoami
ccuser
=========================
id
uid=1000(ccuser) gid=1000(ccuser) groups=1000(ccuser)
=========================
Run Code Online (Sandbox Code Playgroud)
注意 onlywhoami
和id
output 的东西。当我在我的电脑上运行同样的东西时,我看到所有命令的结果都相似。
为什么不Codecademy网站为用户显示w
和who
?这些命令有什么不同?
我可以理解命令who
和whoami
,但是当我输入时到底发生了什么:
who am i
Run Code Online (Sandbox Code Playgroud)
和
who am
Run Code Online (Sandbox Code Playgroud)
我在 Ubuntu 上,在他们之后没有任何反应!
为什么 Linux / UNIX 不回复错误消息(“未知参数”行中的内容who
),或者只回复 的输出who
?
我知道pwd
给出当前工作目录,hostname
给出当前主机并whoami
给出当前用户。是否有一个unix命令可以给我输出
whoami@hostname:pwd
Run Code Online (Sandbox Code Playgroud)
以便我可以快速将输出粘贴到scp
命令中?
我目前正在通过一些练习来尝试改进我的 shell 脚本。脚本要求如下:
- 它必须使用
whoami
命令获取用户名并将其存储在名为 的变量中username
。- 它必须采用单个参数,即要搜索的文件的名称。
- 它必须
grep
在指定的文件中搜索用户名的出现并打印它们。
这部分相对简单,我使用以下内容使其工作:
username=$(whoami)
echo 'Enter the name of the file you would like to search: '
read fileName
cat "fileName" | grep "$username"
Run Code Online (Sandbox Code Playgroud)
但是有一个问题,该练习指出以下内容:
注意:对于此任务,无需担心缺少错误检查参数。除了shebang 和您选择添加的任何注释之外,脚本应该由两行组成。
如何将其减少到只有两行?
who
命令的手册页描述是
who - show who is logged on
但是存在一个类似的命令whoami
。的手册页描述whoami
是
whoami - print effective userid
谁能解释一下这些命令的作用?它们有何不同?
在阅读有关环境变量的信息时,我遇到的一个是LOGNAME
,我想知道此变量与命令logname
返回的任何内容之间的区别- 因为它们返回的内容确实有所不同。
-bash-3.2$ logname
user11
-bash-3.2$ echo $LOGNAME
user1
Run Code Online (Sandbox Code Playgroud)
虽然,whoami
返回相同的用户LOGNAME
-bash-3.2$ whoami
user1
Run Code Online (Sandbox Code Playgroud) 我在我的项目中运行一个脚本,我看到这个命令
su - `whoami`
Run Code Online (Sandbox Code Playgroud)
我有几个基本问题:
我知道su
代表切换用户。