web-dev-qa-db-ja.com

シェルをzshからbashに変更する

私のWebサーバーは、zshシェルを使用している誰かによって改ざんされました。 bashシェルはUbuntuとOS X(私が使用する2つの主要なオペレーティングシステム)に付属するデフォルトなので、bashシェルを使用する方が快適だと感じています。しかし、この質問はUbuntuサーバーに焦点を当てています。このWebサーバーで実行している4つのWebサイトがあり、byobuを使用し、tmuxを使用し、Ruby/Ruby on Rails、node.js、Apache、いくつかのデーモンを使用しています。現在のルートシェルをzshからbashに切り替えた場合、この切り替えによって悪影響が生じる可能性はありますか?たとえば、親プロセス(シェル)が切り替えられたため、プロセスは強制終了されますか?

13
JohnMerlino

Sudo chsh --Shell=/bin/bash $USER経由でシェルを変更すると、/etc/passwdのShellフィールドが変更されます。この値は、使用するシェルをシステムが認識していない場合に、ログイン時にのみ参照されます。

zshbashApache、またはevil_overlord's_programのいずれによって開始されたかに関係なく、実行中のプロセスは影響を受けません。

9
waltinator

スタックオーバーフローからの回答( zshからbashへの切り替え ):

Execを使用して、現在のシェルを新しいシェルに置き換えることができます。

Bashに切り替えます。

exec bash

Zshに切り替えます。

exec zsh

これは新しいターミナルウィンドウなどには影響しませんが、便利です。

24
Swap

ターミナルを開き、次のコマンドを使用します。

chsh -s $(which bash)
8
rɑːdʒɑ

Mac OS Catalinaの場合

  1. Zshに変更します。

    chsh -s /bin/zsh
    
  2. Bashに変更します。

    chsh -s /bin/bash
    
0
Mono