我如何通过在OS X中的命令行活动用户的名字吗?(How do I get the name of

2019-06-25 12:27发布

我如何通过在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



文章来源: How do I get the name of the active user via the command line in OS X?