bakalog

備忘録的なもの

ログインシェルをbashからzshに変更してみた。

今回、bashからzshに変更する機会があったので、 自分の備忘録がてら調べた事を記載しておきます。

おしながき

  1. そもそもシェルとは
  2. zshをお迎えする準備
  3. zshのインストール
  4. ログインシェルを変更
  5. 設定ファイルを反映する

そもそもシェルとは

巷で有名な操作画面( グラフィカルユーザインタフェース )があって、
それらを操作する事で処理結果が得られるものをGUI*1。 それに対してキーボードでコマンド入力を行い、結果を文字出力させる対話形式のユーザインタフェースの事を CUI*2と言うらしいです。

シェルというのはUnixLinuxの中核( kernel )に対して、
ユーザからの操作を仲介役のプログラムの事です。

f:id:kgr0210:20150324145452j:plain

CUI時のキーボードで入力するコマンドがシェルです。
今回、シェルの種類をbashからzshに変更するのですが、
人間で例えるなら、「シェル」が「言語」という広い括りで、
bash」「zsh」やらが「英語」「日本語」みたいな感じでしょうか?

zshをインストールする

今回導入するzshmacのデフォルトで入っているbashに比べて、
高機能かつ便利との事で、どうせなら最初からzshを使って、
慣れてしまえばええんや!という企みがあります。

それでは、導入していきます。

zshをお迎えする準備

最新版のzshをインストールしたいので、
homebrewとformulaのバージョンをアップデートします。*3

$ brew update

zshのインストール

以下のコマンドを入力してインストール完了です。

$ brew install zsh

ログインシェルを変更

このままだと毎回使用するシェルを変更しないと、
ログイン時はbashが起動する為、zshが起動する設定に変更します。

シェルの確認・追加

インストールされているシェルを確認。

$ cat /etc/shells

/bin/bash
/bin/csh
/bin/ksh
/bin/sh
/bin/tcsh
/bin/zsh

brewでインストールされたパスを追加します。*4

$ vi /etc/shells

/bin/bash
/bin/csh
/bin/ksh
/bin/sh
/bin/tcsh
/bin/zsh
/usr/local/bin/zsh
デフォルトのシェルを変更

chshと入力後、パスワードを入力。 その後Shellのパスを「/usr/local/bin/zsh」に書き換えて下さい。

$ chsh
# パスワードが求められる

( 省略 )

# Shell: /bin/bash
Shell: /usr/local/bin/zsh

( 省略 )

これでzshを利用する事が可能です。

設定ファイルを反映する

このままでも利用する事ができるのですが、
設定ファイルを反映すると便利になります。

以下の内容をコピペして、 少し凝った zshrc

ホームディレクトリに移動

$ cd ~
$ vi .zshrc 

で何もないファイルが生成されるので、
iキーを押して、コピーした内容をペースト。
escキーを押した後、:wq と入力して保存・離脱します。

最後にシェルを再起動して、
反映されたのを確認します。

exec $SHELL

参考

先人の知恵からまねぶ。
今回、参考にさせて頂いたものはこちらです。

shirokai.hatenablog.com

qiita.com

news.mynavi.jp

*1:グラフィカルインターフェース ( Graphical User Interface )

*2:Command Line Interface または CLI ... Command Line Interface

*3:こちらは任意なので飛ばしてもOKです

*4:brewでインストールしたものは/usr/local/に保存されます