😎

zshの意味、使い方について学ぶ。

2022/03/09に公開

本日は、zshの意味、そしてインストール方法などについて学んだので、その振り返りです。

今回学習するにあたり参考にさせていただいたのは、Linux環境のあれやこれやをオンラインで、しかも環境構築なしで学べてしまうオンライン学習サービス、Envaderを利用しながら学習を進めました。

初心者でも分かりやすくなるべく、細かい解説もしっかりされているので、初学者に最適な環境だと思います。

リンクはこちら
Envader

コース一覧

今回使用したコース

この記事でわかること

  • zshとは何なのか?
  • シェルの確認方法
  • シェルのインストール方法
  • シェルの切り替え方法

zshとは?

zsh(ゼットシェル、ジーシェル、ゼッシュ)など人によって読み方は異なるかも知れませんが、zshとはOS(オペレーティングシステム)とアプリケーションの仲介役として、ユーザーからの様々な要求をOSに伝えるために活躍してくれるユーザーインターフェイスのこと。
複数ある種類のshellと呼ばれるものの一つになります。

例えばターミナルでコマンドをlsと叩くと結果が返ってきますが、このコマンドを叩いた事を認識して、それをOSへ伝えてくれて、OSから返ってきた結果をユーザーへ表示する仕事をしてくれるイメージでしょうか。

その数ある中でも最強のshellと言われているのがこのzshというshellみたいです。
sh、bash、csh、tcshの機能をほぼ網羅しているとの事。
アルファベットの最後のzを使うあたり、強いぜ感が出ていると感じてしまうのは私だけでしょうか。

主要なshellの種類

shellには複数の種類があります。以下参考までに。

  • sh(シェル) Bourne Shell
  • bash(バッシュ) Bourne-Again shell
  • csh(シーシェル) C shell
  • tcsh
  • ksh (KornShell)
  • zsh

調べると他にもたくさんのshellがあるので、興味がある方はリンクを貼っておきますのでよろしかったらどうぞ。

wikipedia

zshは、macOSのCatalinaから標準シェルとして採用されたようなので、環境によってはzshがないかも知れませんので、その場合にはインストールが必要となります。

デフォルトシェルの確認

一旦自分の環境はどのシェルなのか確認をしてみましょう。

#コマンド
echo $SHELL
#結果 zshの場合
/bin/zsh
#結果 bashの場合
/bin/bash

このようにzshであればzsh、bashであればbashが結果として返ってきます。

/binディレクトリとは

UNIXやPOSIX準拠OS(Linux等)で、コンピューター利用者全員で用いる、基本的なバイナリファイル(実行ファイルなど)を格納するディレクトリ。
/binがあるOSでは、chmod、cp、pwd、ls、mvやシェルなど、無ければ困る基本コマンドがここに入る。
引用元より一部抜粋

疑問に思って/binディレクトリとは何なのか?を調べた所、コマンドなどのバイナリファイルが格納されるディレクトリが/binなんですね〜。
だからwhich lsと叩いても/bin/が出てくる訳なのか。

これで一つ理解が進みました。

使用可能なシェルの確認

次に使用可能なシェルの種類を確認してみましょう。

#コマンド
cat /etc/shells
#結果
# List of acceptable shells for chpass(1).
# Ftpd will not allow users to connect who are not using
# one of these shells.

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

この中にzshが含まれている場合には、自分の環境にzshが存在しています。
なければ、zshをインストールしなければいけません。

zshのインストール

環境がなかった場合は、以下のコマンドで自分の環境へインストールします。

# RHEL系
sudo yum install -y zsh
# debian系
sudo apt install -y zsh

パスの確認

インストールできたら、次はパスの確認です。
シェルを変更するときにこのパスを使います。

# パスの確認
which zsh
/usr/bin/zsh

シェルを切り替える

まだ今の段階ではシェルはzshが適用されていない状態なので、インストールしたzshに切り替えます。

#シェルを切り替えるコマンド chsh
sudo chsh -s /usr/bin/zsh ユーザー名
# -sでログインシェル、デフォルトシェルとして変更する事ができる

こうしても良いのですが、Envaderの中ですごい便利だなと思ったのでご紹介。

sudo chsh -s $(which zsh) ユーザー名

こうする事で、which zshで出力した結果を利用してchshコマンドを実行する事ができます。
$(...)とする事によって、上記で言えばwhich zshコマンドの実行結果を出力して展開されて、その結果を元にchshコマンドを実行している事になります。

パスを確認する工程を一回省く事ができて、あ〜こんなやり方もあるんだと勉強になりました。

まとめ

  • shellには色々な種類がある。
  • その中でもzshは色々なshellの機能を網羅した最強のshellと呼ばれている。
  • 自分のshellは何に設定されているかの確認と、zshのインストール方法を理解した。
  • shellを切り替えるときは、$(which zsh)とした方が効率的。

今回はEnvaderのターミナルカスタマイズコース、zshを使いこなそうを利用しながら学習を進めました。
他にもセキュリティやLinux基礎などたくさんコースがあるので、今後も利用して記事にて振り返りをしようと思います。

最後まで読んでいただきありがとうございました。

参考にさせていただいた記事一覧

zsh 【Z Shell】
わわわIT用語辞典

Discussion