ターミナルを開いて、いくつかのシェルコマンドを入力/実行したとしましょう。
しかし、私は明示的にBashまたは他のシェルを起動しませんでした。
デフォルトでどのシェルが使用されましたか?
ターミナルを開いて、いくつかのシェルコマンドを入力/実行したとしましょう。
しかし、私は明示的にBashまたは他のシェルを起動しませんでした。
デフォルトでどのシェルが使用されましたか?
回答:
の行で指定されたもの/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
sudo netstat -an | grep LISTEN | grep -v ^unix。それをbashサブシェルで囲む理由はありません。
sudo bash -c "..."全体がルートによって実行されるようにします。
commandA | sudo commandB | commandCは、sudo id最初に(idコマンドをとして実行しますが、(パスワードプロンプトなしでsudoを使用)トークンをroot取得します(デフォルトは15分間)。)
chsh、その後、あなたはログアウトし、再度ログインする必要があり、この変更を参照してください。
次を入力すると、端末が開いたシェルが表示されます。
echo $SHELL
ただし、現在どのシェルにいるのか(変更した可能性があります)と入力するには、次のように入力します。
ps -p $$
たとえば、出力例ではシェルがbashであることがわかります。
PID TTY TIME CMD
3500 pts/0 00:00:01 bash
別の方法は
echo $0
これは単に現在のシェルの名前を返します。
echo $0