60

ユーザーのデフォルトのログイン シェルを表示する *nix コマンドは何ですか?

でデフォルトのログイン シェルを変更できますchshが、ユーザーのデフォルト シェルを取得する方法がわかりません。

疑似コード

$ get-shell
/usr/bin/zsh
4

5 に答える 5

77

この情報を/etc/passwdファイルに照会する正規の方法は、 getent. ユーザーのログイン シェルを抽出するgetentなど、標準ツールを使用して出力を解析できます。cut例えば:

$ getent passwd $LOGNAME | cut -d: -f7
/bin/bash
于 2012-06-15T22:57:01.317 に答える
24

コマンドは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.
于 2012-06-16T01:18:43.067 に答える
11

ログイン シェルは で定義されてい/etc/passwdます。したがって、次のことができます。

grep username /etc/passwd
于 2012-06-15T22:48:49.067 に答える
3

あなたが探しているのはこれだと思います:

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

それをパスのどこかに保存しget-shell(おそらく ~/bin)、次のように呼び出します。

get-shell userfoo
于 2012-06-15T22:56:15.287 に答える