Linux shell获取当前登录的用户名
在linux操作系统里,很多时候我们需要切换到root去执行一些操作,但同时也需要拿到常驻用户(这里指登录系统的那个用户)名称时就比较困难。这里可以通过以下命令获取到:getent passwd `who` | head -n 1 | cut -d : -f 1故而,可以得到远程登录终端或者登录系统的用户“ysgz”的名称。主要在deb打包时比较有用哈。为啥这么说呢,试想一下,某一个软件需要安装到
·
在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#
更多推荐
已为社区贡献5条内容
所有评论(0)