什么是* nix命令来查看用户的默认loginshell

什么是* nix命令来查看用户的默认loginshell?

我可以使用chsh更改默认的loginshell,但我不知道如何获取用户的默认shell。

伪代码

 $ get-shell /usr/bin/zsh 

查询/ etc / passwd文件的规范方法是使用getent 。 您可以使用标准工具(如cutparsinggetent输出以提​​取用户的loginshell。 例如:

 $ 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. 

loginshell在/etc/passwd定义。 所以你可以这样做:

 grep username /etc/passwd 

我觉得你要找的是这样的:

 #!/bin/bash cat /etc/passwd | grep $1 | cut -d ':' -f 7 

编辑: @jrrsbuild议这个版本作为改进…我同意…

 #!/bin/bash grep "^$1" /etc/passwd | cut -d ':' -f 7 

保存为你的path中的get-shell (可能是〜/ bin),然后调用它:

 get-shell userfoo