在linux操作系统里,很多时候我们需要切换到root去执行一些操作,但同时也需要拿到常驻用户(这里指登录系统的那个用户)名称时就比较困难。

这里可以通过以下命令获取到:


getent passwd `who` | head -n 1 | cut -d : -f 1

故而,可以得到远程登录终端或者登录系统的用户“ysgz”的名称。

主要在deb打包时比较有用哈。为啥这么说呢,试想一下,某一个软件需要安装到3个人电脑上,A用户的常规登录用户名是ysgz,B用户是www,C用户是101。故而我们在打包的时候不能把用户名写死,那要么就只能规避掉可变目录(如$HOME,$USER等)。

 综述,只需要组装一下就可以得到登录用户和home路径

root@ysgz:/home/ysgz# USER_NAME=$(getent passwd `who` | head -n 1 | cut -d : -f 1)
root@ysgz:/home/ysgz# USER_HOME="/home/$(getent passwd `who` | head -n 1 | cut -d : -f 1)"
root@ysgz:/home/ysgz#
root@ysgz:/home/ysgz#
root@ysgz:/home/ysgz# echo $USER_NAME
ysgz
root@ysgz:/home/ysgz# echo $USER_HOME
/home/ysgz
root@ysgz:/home/ysgz#

来源:shell如何获取当前登录的用户名_Colin-YYYY的博客-CSDN博客_shell获取当前用户名 

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐