什么是* nix命令来查看用户的默认loginshell
什么是* nix命令来查看用户的默认loginshell?
我可以使用chsh
更改默认的loginshell,但我不知道如何获取用户的默认shell。
伪代码
$ get-shell /usr/bin/zsh
查询/ etc / passwd文件的规范方法是使用getent
。 您可以使用标准工具(如cut
parsinggetent
输出以提取用户的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