

**・行いたいこと**  
<https://qiita.com/d-dai/items/084cace7f6bfd3580f9d>
を参考にしてvagrant上のCentOS7にzshをインストールしました。そしてzshのパス(/usr/local/bin/zsh)を直接実行できるのを確認しました。  
デフォルトの起動シェルをbashからzshに切り替えたいです。

**・問題点**  
起動シェルを変更するために、

[code]

    # echo /usr/local/bin/zsh >> /etc/shells
    # chsh -s /usr/local/bin/zsh
    
[/code]

を実行したのですが、その後`exec $SHELL -l`を実行してもzshが起動せず、bashが起動します。  
`echo $SHELL`の結果は`/bin/bash`のままでした。  
正常に起動シェルを切り替えられる方法を教えていただきたいです。

**追記**  
exitで一度抜けてからもう一度`vagrant ssh`をして再ログインすることで解決しました。  
ご回答くださりありがとうございました。


CC BY-SA 4.0
2019-04-28T04:22:24.503
54534
2019-04-30T07:05:24.193
2019-04-28T05:50:51.707
31473
31473
question
linux centos
CentOS7で起動シェルの設定が切り替わらない


あるプロセスから別のプロセスの環境変数 (`$SHELL` など)
を書き換えることはできません(絶対に不可能ではありませんが通常は不可能)。よってファイルを書き換えたり `chsh`(1)
などのコマンドを実行しても既存のログインシェルプロセスの `$SHELL` はそのままです。ログアウトせずに対話シェルを切り替えたいなら `export
SHELL=/usr/local/bin/zsh` してから `exec $SHELL -l` するか、`exec env
SHELL=/usr/local/bin/zsh /usr/local/bin/zsh -l` などと実行しましょう。


CC BY-SA 4.0
2019-04-30T07:05:24.193
54600
2019-04-30T07:05:24.193
3061
54534
answer