こんにちは、あるいはこんばんは。すぱ..すぱらしいサーバサイドのエンジニアの(@taclose)です☆
今回は『zshを使って更に普段の業務の作業効率をあげよう!』というテーマでお話をしたいと思います!
これまで日常業務の作業効率やミスを減らすためにいくつかの記事を書いてきました(sshばかり)。
もうここまできたらさすがにsshネタはないでしょ?と思ってるそこのあなたっ
これはsshだけに限った話ではないですが、実は
zshを使うとコマンドの入力補完等により作業効率3倍、入力ミス90%減、身長3mmアップします!(筆者の体感)
具体的にはsshのログインやgitコマンドでTABキー
を押すと補完がきいたり、ブランチ名が表示されたりコマンド履歴が便利に使えたり..etc
この記事が読み終わった頃には以下のようなことができます!
zshとは?
難しい話は置いといて、概要だけいうと、 zsh(ズィーシェル、もしくはそのままzshと呼ばれている)とは、簡単に言うとbashの上位互換 です。
ほかにもsh, ksh, bash, csh, tcshとかありますが、普通にパソコン触ってれば
とだけわかっていれば十分です。ちなみに現在では MacOSでは標準シェルとしてzshが採用されてます 。今回はそんなzshをCentOSとかでも使いましょうという企画なわけですね!
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となっています。
yumでインストールするとしたらversionいくつかな?
ちょっと古いですね。今回はソースダウンロードして最新を入れましょう。
インストール前の準備
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に自分独自の設定を入れましょう!
- まずはこれまで
.bashrc
に記載した独自の設定を.zshrc
の一番下に転記しましょう - 次に
.zshrc
の11行目辺りに書かれているZSH_THEME="xxxxx"
という所に好きなテーマを指定しましょう。とりあえずeastwood
にしてみてください。 $ 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です!
また機会があれば続編やろうかな!お疲れ様でした!!
参考文献
オレオレ証明書なGitへの新規リポジトリ作成 - Qiita
エンジニア中途採用サイト
ラクスでは、エンジニア・デザイナーの中途採用を積極的に行っております!
ご興味ありましたら是非ご確認をお願いします。
https://career-recruit.rakus.co.jp/career_engineer/
カジュアル面談お申込みフォーム
どの職種に応募すれば良いかわからないという方は、カジュアル面談も随時行っております。
以下フォームよりお申込みください。
rakus.hubspotpagebuilder.com
ラクスDevelopers登録フォーム
https://career-recruit.rakus.co.jp/career_engineer/form_rakusdev/
イベント情報
会社の雰囲気を知りたい方は、毎週開催しているイベントにご参加ください!
◆TECH PLAY
techplay.jp
◆connpass
rakus.connpass.com