ユーザーのデフォルトのログイン シェルを表示する *nix コマンドは何ですか?
でデフォルトのログイン シェルを変更できますchsh
が、ユーザーのデフォルト シェルを取得する方法がわかりません。
疑似コード
$ get-shell
/usr/bin/zsh
この情報を/etc/passwdファイルに照会する正規の方法は、 getent
. ユーザーのログイン シェルを抽出するgetent
など、標準ツールを使用して出力を解析できます。cut
例えば:
$ 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.
ログイン シェルは で定義されてい/etc/passwd
ます。したがって、次のことができます。
grep username /etc/passwd
あなたが探しているのはこれだと思います:
#!/bin/bash
grep "^$1" /etc/passwd | cut -d ':' -f 7
それをパスのどこかに保存しget-shell
(おそらく ~/bin)、次のように呼び出します。
get-shell userfoo