デフォルトのシェルを変更するためにこの回答を参照しました。デフォルトのシェルをZSHに変更する方法 - chshに「無効なシェル」が表示されます。
zshを追加し/etc/shells
て実行した後にsudo chsh -s "$(command -v zsh)" "${USER}"
実行しましたecho $SHELL
(ところで出力がないので正常に実行されたと思いました)。/bin/bash
シェルを閉じて新しいシェルセッションを開き、zshが表示されたので、再起動すると問題が解決したと思いました。その後、echo $SHELL
zshセッションで実行しても同じ出力が表示され、/bin/bash``$SHELL --version
代わりにbashバージョンも提供されました。 zsh ワン
ctrl+alt+t を行うたびに zsh セッションが発生しますが、このecho $SHELL
出力は疑わしいです。
アップデート:私はUbuntu Budgie 18.04.3を実行しており、次/bin/zsh
から始めました。echo $0
ベストアンサー1
SHELL
環境変数は、ログアウトして再ログインしたり、フルログインを実行したり、他のコマンドを使用したりsu - "$USER"
するssh "$USER@localhost"
など、フルログインを実行する場合にのみ設定されます。
通常、login
プログラムはデータベース内のユーザーログインシェルの内容に基づいてこの変数を設定しますpasswd
。プロセスがユーザーのログイン要求を受け入れるたびに(たとえば、などを介してsshd
)、gdm
これはログインプロセスの一部と呼ばれます。
login(1)
Ubuntuのマニュアルから:
ユーザーとグループIDは
/etc/passwd
ファイルの値に基づいて設定されます。$HOME
、、、$SHELL
および$PATH
値$LOGNAME
は
単に新しいシェルセッションを開始すると、シェルが「ログインシェル」で始まっても、この変数の値は設定されません。