我如何通过在OS X中的命令行活动用户的名字吗?
Answer 1:
作为“WHOAMI”已过时,它可能更向前兼容的使用方法:
id -un
Answer 2:
如果你想显示的全名(而不是用户名),加上-F
标志:
$ id -F
Andrew Havens
Answer 3:
我是谁
编辑
所述WHOAMI效用已经由ID(1)工具废弃,并且等同于id -un
。 命令id -p
建议正常交互使用。
Answer 4:
通过这里
检查的/ dev / console的拥有者似乎运作良好。
stat -f "%Su" /dev/console
Answer 5:
我敢肯定,在OS X中的终端就像UNIX,所以命令是:
whoami
我没有在我的Mac此刻所以有人纠正我,如果我错了。
Answer 6:
如果你想知道目前谁是登录到系统:
$ w 15:56:14 up 5 days, 20:58, 6 users, load average: 0.43, 0.53, 0.50 USER TTY LOGIN@ IDLE JCPU PCPU WHAT me pts/2 Fri19 1:03m 0.98s 0.98s -/bin/bash me pts/3 09:55 6:00m 0.43s 0.43s /bin/bash me pts/5 15:56 0.00s 0.23s 0.00s w
(这是从Linux系统;在OS X的格式可能会稍有不同,但信息应该是大约相同的。)
可能有多个登录会话; UNIX的设计是一个多用户系统,毕竟。
Answer 7:
这个问题还没有完全回答,恕我直言。 我会尽量解释:我有一个crontab条目安排一个bash shell命令程序,这反过来做我的文件进行一些清理; 并且,在完成时,发送使用OS X通知中心到我的通知(用命令osascript -e 'display notification ...
)。 如果有人(比如我的妻子,我的女儿)切换计算机她的当前用户,留下我在后台,cron的脚本发送通知时失败 。
那么, 谁是当前用户的手段有一些其他人成为有效用户留下我的背景是什么? 不要stat -f "%Su" /dev/console
返回当前活动的用户名?
答案是肯定的; 所以,现在我的crontab shell脚本已被修改以下列方式:
...
if [ "$(/usr/bin/stat -f ""%Su"" /dev/console)" = "loreti" ]
then /usr/bin/osascript -e \
'display notification "Cleanup done" sound name "sosumi" with title "myCleanup"'
fi
Answer 8:
在MAC终端获得的用户名是容易...
我一般使用whoami
在终端 ...
例如,在这种情况下,我需要的是安装Tomcat服务器 ...
Answer 9:
您还可以使用logname
命令从Linux或MacOS的基于BSD通用命令手册看当前登录的用户的用户名,即使用户正在执行sudo
操作。 这是有用的,例如,修改用户的crontab时,在安装一个全系统的包装使用sudo: crontab -u $(logname)
每man logname
:
LOGNAME(1)
NAME
logname -- display user's login name
Answer 10:
定义“活动用户”。
如果问题是“谁是登录的用户”,那么“我是谁”或“WHOAMI”是好的(虽然他们给出不同的答案 - “WHOAMI的报告只是一个用户名;“我是谁”的最终报告和登录时间太)。
如果问题是“该用户ID是外壳的有效ID”,那么它往往是更好地使用“身份证”。 该报告的真实和有效的用户ID和组ID,并在补充组ID了。 如果shell运行SUID或SGID这可能无所谓。
Answer 11:
您也可以从环境变量检索它,但是这可能是不安全的,所以我会用安德鲁的回答去。
printenv USER
如果你需要从应用程序检索它,就像节点,它更容易从环境变量,如得到它
process.env.USER
。