RAKUS Developers Blog | ラクス エンジニアブログ

株式会社ラクスのITエンジニアによる技術ブログです。

zshのすすめ:zshインストール方法~設定をまとめて解説

こんにちは、あるいはこんばんは。すぱ..すぱらしいサーバサイドのエンジニアの(@taclose)です☆

今回はzshを使って更に普段の業務の作業効率をあげよう!』というテーマでお話をしたいと思います!

これまで日常業務の作業効率やミスを減らすためにいくつかの記事を書いてきました(sshばかり)。

もうここまできたらさすがにsshネタはないでしょ?と思ってるそこのあなたっ

これはsshだけに限った話ではないですが、実は

zshを使うとコマンドの入力補完等により作業効率3倍、入力ミス90%減、身長3mmアップします!(筆者の体感)

具体的にはsshのログインやgitコマンドでTABキーを押すと補完がきいたり、ブランチ名が表示されたりコマンド履歴が便利に使えたり..etc

この記事が読み終わった頃には以下のようなことができます!

zshに切り替えたコンソール

zshとは?

難しい話は置いといて、概要だけいうと、 zsh(ズィーシェル、もしくはそのままzshと呼ばれている)とは、簡単に言うとbashの上位互換 です。

ほかにもsh, ksh, bash, csh, tcshとかありますが、普通にパソコン触ってれば

  • shが初期、bashが標準、zshは上位互換(機能拡張版)
  • csh, tcshBSD UNIXとかで使われててるシェルだから関わる事はあまりない

とだけわかっていれば十分です。ちなみに現在では MacOSでは標準シェルとしてzshが採用されてます 。今回はそんなzshCentOSとかでも使いましょうという企画なわけですね!

zshをインストールしよう!

zshインストールされてないよね?確認!

# 今自分が使っているシェルがzshではなくbashである事を確認
$ echo $SHELL
/bin/bash

# zshがインストールされていない事を確認
$ chsh -l
/bin/sh
/bin/bash
/usr/bin/sh
/usr/bin/bash

はい、chshでzshが一覧にないのでインストール必要そうですね!次!

最新バージョンを確認しよう

早速インストールなんですが、現在(2023年1月4日) zshの最新は5.9となっています。

ZSH - Source download

yumでインストールするとしたらversionいくつかな?

$ yum info zshで確認

ちょっと古いですね。今回はソースダウンロードして最新を入れましょう。

インストール前の準備

ncurses-develをインストールしましょう!これを入れないとzshのインストール時に以下のようなエラー出ちゃいますよ!

configure: error: in `/usr/local/src/zsh-5.9':
configure: error: "No terminal handling library was found on your system.
This is probably a library called 'curses' or 'ncurses'.  You may
need to install a package called 'curses-devel' or 'ncurses-devel' on your system."
See `config.log' for more details

ちなみにncursesというのはTUI(TextUI)つまりWindowsでいうブルースクリーン的なインタフェースを提供するためのAPI群の集まりです。 zshはこれを使う事で入力補完とかを円滑に行えるようにしようとしてるわけですね!エレガント!

以下がncurses-develのインストール手順です。

# zshに必要なncurses-develをインストール
$ yum install -y ncurses-devel

zshのソースインストール

さ、お楽しみのzsh 早速入れていきましょう!

# sourceダウンロードする前にディレクトリを移動
$ cd /usr/local/src/
# ダウンロード
$ wget https://sourceforge.net/projects/zsh/files/zsh/5.9/zsh-5.9.tar.xz/download -O zsh-5.9.tar.xz
# 解凍
$ tar xvf zsh-5.9.tar.xz
# 解凍したディレクトリに移動
$ cd zsh-5.9/
# マルチバイトを有効にしてビルドしてインストール
$ ./configure --enable-multibyte
$ make && make install
# zshを使える状態にする
$ echo /usr/local/bin/zsh >> /etc/shells
# ログイン時のシェルをzshに変更する
$ chsh -s /usr/local/bin/zsh
# 一旦シェルを終了する
$ exit

これでzshのインストールは終わり!ソースインストールとか慣れてない方にとっては英語の羅列が気持ち悪いだけですが、インストールがErrorやFatal!warning!!みたいになってないかぐらいは確認しておけばだいたい問題ないですよっ

Self-signed certificate encountered. To connect to raw.githubusercontent.com insecurely, use `--no-check-certificate'.

もしwgetで上記のようなエラーが出た人はwgetコマンド実行時に--no-check-certificateオプションを付与してくださいね

zshを使いやすくカスタマイズしよう!(oh-my-zsh)

早速シェルを立ち上げてみたが・・・これだけでは改善効果が感じられませんね。

せいぜいcd を入力途中で[Tabキー]連打で候補が次から次へと変わるぐらいです。かといってzshの設定は多岐に渡るため

今回はoh-my-zshというオススメ設定を紹介します。

oh-my-zshとは?

zshの設定は.zshrcに記載するのですが、良い感じにその初期設定ファイルを生成したり、テーマ変更という形でプロンプトのデザインをさらっと変えられるようになります。

oh-my-zshのインストール

# oh-my-zshをインストール
sh -c "$(wget -O- https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

これだけ!もしgit cloneでこけたよ!って人とかいたら、原因様々ですが普段git問題なく使えてる方ならば install.shが内部的にhttpsリポジトリ指定してるのが癖あるので、それかもしれません。

Cloning Oh My Zsh... fatal: unable to access 'https://github.com/ohmyzsh/ohmyzsh.git/': Peer's certificate issuer has been marked as not trusted by the user.

こんなエラーが出た方は一旦以下のコマンドを実行してしまえば問題なく次はインストール出来るかと思います。

$ git config --global http.sslVerify false

oh-my-zshに自分独自の設定を入れましょう!

  1. まずはこれまで.bashrcに記載した独自の設定を.zshrcの一番下に転記しましょう
  2. 次に.zshrcの11行目辺りに書かれているZSH_THEME="xxxxx"という所に好きなテーマを指定しましょう。とりあえずeastwoodにしてみてください。
  3. $ source ~/.zshrcと入力してzshの設定を反映させるとデザインが変わるはずです

他にもテーマはたくさんあります!以下から選んで下さいね!

(oh-my-zsh Wiki: Themes)https://github.com/ohmyzsh/ohmyzsh/wiki/Themes

もしBashに戻したいのなら...

万が一、あまりzshがお気に召さないという方は以下の手順で元通りです!

# 使えるシェルを確認。
$ chsh -l
/bin/sh
/bin/bash
/usr/bin/sh
/usr/bin/bash

# ログインシェルをBashに戻す
$ chsh -s /usr/bin/bash

# 不要なファイルを削除
$ rm -rf ~/.oh-my-zsh
$ rm -rf ~/.zshrc

最後に

お疲れ様でした!ここまでやると以下のような入力補完がバシバシ効いたUIになったんじゃないでしょうか。 今回はgitコマンドやsshの入力補完を例にしていますが、プラグイン次第でもっともっと使いやすくできます。

うんうん、これでsshコマンドの入力ミスも起きないですね!

尚、sshの後にタブキーで入力候補で__taclose.develop等が出てくるのは、以前sshの設定に関するまとめ記事を読んでくださいね!

.ssh/configの設定をすればOKです!

また機会があれば続編やろうかな!お疲れ様でした!!

参考文献

tech-blog.rakus.co.jp

最新のzshをインストールする手順 - Qiita

ohmyzsh - GitHub

オレオレ証明書なGitへの新規リポジトリ作成 - Qiita


エンジニア中途採用サイト
ラクスでは、エンジニア・デザイナーの中途採用を積極的に行っております!
ご興味ありましたら是非ご確認をお願いします。
20210916153018
https://career-recruit.rakus.co.jp/career_engineer/

カジュアル面談お申込みフォーム
どの職種に応募すれば良いかわからないという方は、カジュアル面談も随時行っております。
以下フォームよりお申込みください。
rakus.hubspotpagebuilder.com

ラクスDevelopers登録フォーム
20220701175429
https://career-recruit.rakus.co.jp/career_engineer/form_rakusdev/

イベント情報
会社の雰囲気を知りたい方は、毎週開催しているイベントにご参加ください!

◆TECH PLAY
techplay.jp

◆connpass
rakus.connpass.com

Copyright © RAKUS Co., Ltd. All rights reserved.