linux脚本获取当前用户,在bash中获取当前用户的用户名? | 您所在的位置:网站首页 › Shell脚本获取当前登录用户 › linux脚本获取当前用户,在bash中获取当前用户的用户名? |
在bash中获取当前用户的用户名? 我正在用bash编写一个程序,需要获取用户的用户名。 我听说过一个名为whoami的东西,但我不知道它做了什么或如何使用它。 我用什么命令来获取当前用户名? George asked 2019-03-03T04:25:05Z 10个解决方案 316 votes 在命令行输入 echo $USER 要么 whoami 要将这些值保存到变量,请执行 myvariable=$(whoami) 要么 myvariable=$USER 当然,您不需要创建变量,因为这是$USER变量的用途。 SethMMorton answered 2019-03-03T04:25:34Z 48 votes id -u的替代方案是id -u -n。 id -u将返回用户ID(例如,0表示root)。 Brett answered 2019-03-03T04:26:08Z 16 votes 我在Solaris 9和Linux上使用的hack,它适用于它们: ps -o user= -p $$ | awk '{print $1}' 此代码段显示具有当前EUID的用户名。 注意:你需要bash作为翻译。 在Solaris上,您遇到方法问题,如上所述: $USER不接受/etc/profile和-n参数(因此您必须解析输出结果) $USER不存在(默认情况下) $USER打印当前终端的所有者(忽略EUID) 只有在读取配置文件后才能正确设置$USER变量(例如/etc/profile) Elvenfighter answered 2019-03-03T04:27:23Z 11 votes 两个命令: whoami打印用户ID以及组。格式:uid=usernumber(username) ... whoami给出了当前的用户名 Sireesh Yarlagadda answered 2019-03-03T04:28:03Z 9 votes 使用标准Unix / Linux / BSD / MacOS命令logname检索登录用户。 这忽略了环境以及sudo,因为这些是不可靠的记者。 它将始终打印登录用户的名称,然后退出。 这个命令自1981年左右开始出现。 My-Mac:~ devin$ logname devin My-Mac:~ devin$ sudo logname Password: devin My-Mac:~ devin$ sudo su - My-Mac:~ root# logname devin My-Mac:~ root# echo $USER root Devin R answered 2019-03-03T04:28:30Z 6 votes 当需要root(sudo)权限时,使用脚本时通常为90%+,上述方法总是会给你$SUDO_UID作为答案。 要获得当前“登录”用户同样简单,但需要访问不同的变量:$SUDO_UID和$SUDO_USER。 他们可以回应: echo $SUDO_UID echo $SUDO_USER 或指定的,例如: myuid=$SUDO_UID myuname=$SUDO_USER OldManRiver answered 2019-03-03T04:29:20Z 6 votes 对于myvar=$(whoami)等。您的许多问题都可以通过以下方式快速得到解答: man [function] 获取您正在使用的系统的文档。 或者通常更方便:谷歌“男人的功能”对于linux和unix具有适度差异的一些事情,这可能会给出不同的结果。 对于这个问题,只需在shell中输入“whoami”即可。 编写脚本: myvar=$(whoami) Fred Mitchell answered 2019-03-03T04:30:22Z 5 votes 在Solaris OS中 - 我使用了此命令。 $ who am i # remember to use it with space. 在Linux上 - 有人已经在评论中回答了这个问题。 $ whoami # without space Lin-man answered 2019-03-03T04:30:57Z 0 votes 在大多数Linux系统上,只需在命令行上键入whoami即可提供用户ID。 但是,在Solaris上,您可能必须通过确定通过以下命令登录的用户的UID来确定用户ID。 echo $UID 知道UID后,通过将UID与/ etc / passwd匹配来查找用户。 cat /etc/passwd | cut -d":" -f1,3 John answered 2019-03-03T04:31:40Z -3 votes 获取当前任务的user_struct #define get_current_user() \ ({ \ struct user_struct *__u; \ const struct cred *__cred; \ __cred = current_cred(); \ __u = get_uid(__cred->user); \ __u; \ }) leesagacious answered 2019-03-03T04:32:09Z |
CopyRight 2018-2019 实验室设备网 版权所有 |