私のWebサーバーは、zshシェルを使用している誰かによって改ざんされました。 bashシェルはUbuntuとOS X(私が使用する2つの主要なオペレーティングシステム)に付属するデフォルトなので、bashシェルを使用する方が快適だと感じています。しかし、この質問はUbuntuサーバーに焦点を当てています。このWebサーバーで実行している4つのWebサイトがあり、byobuを使用し、tmuxを使用し、Ruby/Ruby on Rails、node.js、Apache、いくつかのデーモンを使用しています。現在のルートシェルをzshからbashに切り替えた場合、この切り替えによって悪影響が生じる可能性はありますか?たとえば、親プロセス(シェル)が切り替えられたため、プロセスは強制終了されますか?
Sudo chsh --Shell=/bin/bash $USER
経由でシェルを変更すると、/etc/passwd
のShellフィールドが変更されます。この値は、使用するシェルをシステムが認識していない場合に、ログイン時にのみ参照されます。
zsh
、bash
Apache
、またはevil_overlord's_program
のいずれによって開始されたかに関係なく、実行中のプロセスは影響を受けません。
スタックオーバーフローからの回答( zshからbashへの切り替え ):
Execを使用して、現在のシェルを新しいシェルに置き換えることができます。
Bashに切り替えます。
exec bash
Zshに切り替えます。
exec zsh
これは新しいターミナルウィンドウなどには影響しませんが、便利です。
ターミナルを開き、次のコマンドを使用します。
chsh -s $(which bash)
Mac OS Catalinaの場合
Zshに変更します。
chsh -s /bin/zsh
Bashに変更します。
chsh -s /bin/bash