端末のデフォルトシェルとは何ですか?


51

ターミナルを開いて、いくつかのシェルコマンドを入力/実行したとしましょう。

しかし、私は明示的にBashまたは他のシェルを起動しませんでした。

デフォルトでどのシェルが使用されましたか?

回答:


51

の行で指定されたもの/etc/passwd:分離された行であり、シェルが最後の行です)。

私の例:

chris:x:1000:1000:Chris,,,:/home/chris:/bin/bash

ここにあります/bin/bash(Ubuntuのデフォルト)

以下も使用できますchsh

$ chsh
Password: 
Changing the login shell for chris
Enter the new value, or press ENTER for the default
        Login Shell [/bin/bash]:

これは私のシェルが私に言って、/bin/bashそれを変えさせます。

最後に、echo $SHELL同じことを行います:

$ echo $SHELL
/bin/bash

bashの場合、なぜsudo bash -c "netstat -an | grep LISTEN | grep -v ^ unix"のように明示的に呼び出されるのですか??
DrStrangeLove

個人的にはそれは悪いコマンドだと思います-そのどれもルートを必要としません。それは場合はやった、それがより良いように書かれるでしょうsudo netstat -an | grep LISTEN | grep -v ^unix。それをbashサブシェルで囲む理由はありません。
セシウム

2
@DrStrangeLove:パイプ内の複数のコマンドにルート権限が必要な場合、パイプsudo bash -c "..."全体がルートによって実行されるようにします。
キーストンプソン

rootを必要とするコマンド(およびその理由)がわからない場合は、実行しないでください。それ以外の場合は、コマンド/プログラム/スクリプトを必要以上に信頼する理由。できない場合commandA | sudo commandB | commandCは、sudo id最初に(idコマンドをとして実行しますが、(パスワードプロンプトなしでsudoを使用)トークンをroot取得します(デフォルトは15分間)。)
waltinator

2
あなたが使用している場合chsh、その後、あなたはログアウトし、再度ログインする必要があり、この変更を参照してください。
ニールトラフト14

17

GNU Bashは、Ubuntuのターミナルでデフォルトで使用されるシェルです。ただし、システムの起動時にスクリプトが実行される場合、ダッシュは/ bin / shであるため、ダッシュが使用されます。

これは、$ SHELL環境変数で定義されています。echo $SHELLターミナルに入力して確認できます。


14

次を入力すると、端末が開いたシェルが表示されます。

echo $SHELL

ただし、現在どのシェルにいるのか(変更した可能性があります)と入力するには、次のように入力します。

ps -p $$

たとえば、出力例ではシェルがbashであることがわかります。

  PID TTY          TIME CMD
 3500 pts/0    00:00:01 bash

別の方法は

echo $0

これは単に現在のシェルの名前を返します。


+1echo $0
djthoms

素晴らしい答えです!おかげで、何らかの理由でecho $ SHELLが機能せず(常にその1つを使用)、2つの選択肢が機能しました。ありがとう!
wolfdawn

3

デフォルトでは、bashです。

env | grep ^SHELL=

ほとんどの場合、生成されます

SHELL=/bin/bash

必ずしも。で新しいユーザーを作成するとuseradd、デフォルトでになりshます。$ useradd -D|grep SHELL SHELL=/bin/sh
スパラフーク14

選択された回答では入力が少なくて済みますが、複数の方法を使用できると便利です。

2

現在のシェル実行可能ファイルのファイルパスを取得するには、次のようにします。

readlink -f /proc/$$/exe

いくつかの可能な出力は次のとおりです。

  • /bin/bash
  • /usr/bin/bash
  • /usr/bin/zsh
  • /home/stan/.linuxbrew/Cellar/zsh/5.2/bin/zsh
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.