什么是* nix的命令来查看用户的默认登录shell?
我可以更改默认的登录shell chsh
,但我不知道如何得到的是用户的默认外壳。
伪代码
$ get-shell
/usr/bin/zsh
什么是* nix的命令来查看用户的默认登录shell?
我可以更改默认的登录shell chsh
,但我不知道如何得到的是用户的默认外壳。
伪代码
$ get-shell
/usr/bin/zsh
查询这些信息在/ etc / passwd文件中的典型方法是使用getent
。 您可以解析getent
使用标准工具如输出cut
提取用户的登录shell。 例如:
$ getent passwd $LOGNAME | cut -d: -f7
/bin/bash
该命令是finger
。
[ken@hero ~]$ finger ken
Login: ken Name: Kenneth Berland
Directory: /home/ken Shell: /bin/tcsh
On since Fri Jun 15 16:11 (PDT) on pts/0 from 70.35.47.130
1 hour 59 minutes idle
On since Fri Jun 15 18:17 (PDT) on pts/2 from 70.35.47.130
New mail received Fri Jun 15 18:16 2012 (PDT)
Unread since Fri Jun 15 17:05 2012 (PDT)
No Plan.
登录shell中定义/etc/passwd
。 所以,你可以这样做:
grep username /etc/passwd
我认为你正在寻找的是:
#!/bin/bash
grep "^$1" /etc/passwd | cut -d ':' -f 7
保存,作为get-shell
某处在您的路径(可能是〜/ bin),然后再调用它:
get-shell userfoo
SHELL
变量用于表示用户的当前壳
echo $SHELL