zshシェルをインストールする方法
centOS6.10のthinkpad x61にzshシェルをインストールし、ターミナルを立ち上げたらデフォルトでzshが立ち上がるように設定しました。
zshとは、bashよりも多機能で便利なシェル。
bashをいっぱい使って習得→zshなど高機能なシェルを使う
の流れをイメージしていたけど、便利なら使っておくべきかなと思いzshを積極的に使っていくことにしました。
https://ja.wikipedia.org/wiki/Z_Shell
自分のPCに実はzshがインストールされてないかの確認
まずは自分のPCにどんなシェルがインストールされているかを確認してみます。
$ cat /etc/shells
インストールされているシェルが表示されます。
※zshインストール後にスクショとったので、zshが入っていることが確認できます。
ncurses-develのインストール
zshのインストールには、ncurses-develを事前にインストールしておく必要があります。
$ su -
# yum install -y ncurses-devel
ncursesについても調べてみましたが、奥が深そうでした。
https://ja.wikipedia.org/wiki/Ncurses
CUIのスクリーン、キー入力、カーソルなどを管理するライブラリ。表面的ですが、あまり深追いせずサラッと理解にとどめておきました。
ncurses-develがインストールされたら、zshのダウンロードを行います。
zshのダウンロード
ダウンロードするディレクトリはどこでもokです。僕の場合は、シェルを立ち上げてデフォルトで居るディレクトリである、ホームディレクトリで作業しました。
# wget https://sourceforge.net/projects/zsh/files/zsh/5.5.1/zsh-5.5.1.tar.xz/download -O zsh-5.5.1.tar.xz
※zshのバージョンが5.5.1の場合です。僕は間違えて古いのをインストールしちゃいました。バージョンアップもまた方法を調べて、やっていこうと思います。
→追記:バージョンアップについては、ググったところ、コマンド1行とかでアップグレードできる方法とかなさそうな感じでした。
僕の場合は、この記事で書いた手順をまた最初から行うことで、結果としてバージョン5.8にできました。バージョンの部分を書き換えるだけでできました(僕の例では、5.5.1の部分を5.8に書き換えました)。
2020年8月現在のバージョンは、5.8みたいです。下記で確認できます。
http://zsh.sourceforge.net/Arc/source.html
ダウンロードした圧縮ファイルを、tar xvfコマンドで展開します。
tarとオプションのxvfをセットで使うとちゃんと展開できるみたいです。
# tar xvf zsh-5.5.1.tar.xz
zsh-5.5.1に移動
# cd zsh-5.5.1
zsh-5.5.1の中にある./configureというシェルスクリプトを実行。
# ./configure --enable-multibyte
マルチバイトを有効にする。マルチバイトについては、下記の記事がわかりやすいです。要は全角文字とか、日本語対応。
下記はマルチバイトについて分かりやすい記事です。
https://wa3.i-3-i.info/word1809.html
./configure、makeなどインストールで行う一連の作業については、下記の記事を読むことで、何をしているのかが分かりやすく理解できました。
https://qiita.com/chihiro/items/f270744d7e09c58a50a5
仕上げにmakeとmake installを実施。
# make && make install
zshをシェルの一覧に追加
# echo /usr/local/bin/zsh >> /etc/shells
/etc/shellsに追加することで、chshコマンドによってシェルを変更(zshに変更)できるようになる。
# chsh -s /usr/local/bin/zsh
exitすることでlogoutすると、シェルの変更が反映されます。
シェルの変更は、cat /etc/shellsで表示されるパスをchsh -sの引数に渡すことで、変更できます。
または、
# chsh
として、表示されるガイドにしたがって進めると変更できます。
Kali Linuxの場合、上記でシェルをzshに変更できました。
Kali Linuxではなぜかデフォルトでbashになってしまいます。
都度、zshと入力すると、zshにシェルが変わります。
現在使っているシェルを表示するには、
echo $SHELL
で表示できます。