GCP Compute EngineにZshをインストール・ログインシェルにする

GCPのCompute EngineにZ Shell(Zsh)をインストールし、ログインシェルに変更する方法をまとめています。

iris

2 minute read

Google Cloud Platform の Google Compute Engine で Ubuntu 16.04 LTS の運用を始めました。 Z Shell (Zsh) をインストールして、ログインシェルに変更する方法を紹介します。

この記事の目次

Z Shell on Compute Engine

デフォルトでBashを使うことができますが、 Zshが好きなのでインストールしました。

Compute Engine でログインシェルを変更するのに少し手間取りました。 同じようにハマる人がいると思うので Compute Engine におけるログインシェルの変更方法をまとめておきました。

Zshのインストール

Zshのインストール及びインストールの確認を行います。

user@hostname:~$ sudo apt-get install -y zsh
user@hostname:~$ zsh --version
zsh 5.1.1 (x86_64-ubuntu-linux-gnu)

ログインシェルの変更

インストールしただけではログイン後に zsh コマンドを実行しなければZshを使うことはできません。 それは面倒なので、ログインシェルをBashからZshに変更します。

user@hostname:~$ which zsh
/usr/bin/zsh
user@hostname:~$ sudo chsh user -s /usr/bin/zsh

Zshのパスを確認して chsh コマンドでログインシェルを変更します。 user はログインシェルを変更したいユーザーのことなので適宜読み替えてください。

再ログインすれば、ログインシェルがzshになったことが確認できます。 Zshの初回ログイン時には設定ファイルの作成を行うかどうか質問されるので、 設定ファイルを作成しておくと良いでしょう。 ログインシェルは環境変数 $SHELL を参照することで確認できます。

hostname% echo $SHELL
/usr/bin/zsh

もしくは /etc/passwd を参照すればユーザーのログインシェルが確認できます。

hostname% grep "user" /etc/passwd
user:x:1001:1002::/home/user:/usr/bin/zsh

BashからZshへプロファイルを移行する

もともと用意されているBashの設定ファイルの中身で有用なものをZshに引き継ぎます。

  • .bashrc
  • .bash_logout

上の2つはデフォルトで結構記述があります。 ここでは .bash_logout の中身をZshに流用します。

ZshのRun command fileについては以下が参考になります。

.bash_logout の中には以下が記述されています。

# ~/.bash_logout: executed by bash(1) when login shell exits.

# when leaving the console clear the screen to increase privacy

if [ "$SHLVL" = 1 ]; then
    [ -x /usr/bin/clear_console ] && /usr/bin/clear_console -q
fi

これを下のコマンドで .zlogout にコピーします。

cat ~/.bash_logout > ~/.zlogout

次のコマンドを実行してエラーがなければOKです。

zsh -n ~/.zlogout

関連記事

参照リンク