👌

新しい環境で活用!ZshとOh My Zshの設定ガイド(Dockerでのテスト導入も解説)

2024/08/02に公開

はじめに

こんにちは、Kouです。

CentOSのメンテナンスサポートサポートが終了し、新しいOSへの移行が必要になってきました。
例えば、Rockey LinuxやAlmaLinuxなどのディストリビューションが注目されています。
これらの新しいOS環境で、ZshとOh My Zshを使って、より快適な開発環境を整える方法をご紹介します。
Dockerを使ってテスト導入する方法も解説するので、ぜひお試しください。

前回は「LaravelでAWS CloudFrontの署名付きCookieを生成・設定してみた」を投稿しました。

Zshとは

  • 高度な補完: コマンドや引数の補完機能が強力で、効率的にコマンド入力が可能です。
  • 履歴管理: 履歴の検索と管理が簡単で、過去のコマンドを迅速に再利用できます。
  • スクリプト機能: 条件分岐や配列操作が柔軟で、複雑なスクリプトの作成が容易です。

Oh My Zshとは

Oh My Zshは、Zshをカスタマイズし、管理を簡単にするためのオープンソースフレームワークです。以下の利点や機能があります:

  • 自動アップデート: インストール後も自動的にアップデートが行われ、常に最新の機能や修正が適用されます。
  • プラグイン追加: 機能を簡単に拡張でき、開発効率を向上させます。
    • 自動補完: コマンドや履歴の予測機能が充実しており、コマンド入力がさらに効率化されます。
  • 豊富なテーマ: 多くのテーマから選択でき、シェルの見た目を簡単に変更できます。

RokyLinuxマシンでのZshのインストールと設定

1. Zshのインストール

  • Zshのインストール方法
    sudo dnf install -y zsh
    

2. Oh My Zshのインストール

  • Oh My Zshの概要
    • Zshの設定と管理を簡単にするフレームワーク
  • インストール手順
    • curlまたはwgetを使用
    sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
    
    または
    sh -c "$(wget https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh -O -)"
    
  • 設定のカスタマイズ
    • テーマの選択 (~/.zshrcで設定)
    • プラグインの追加 (~/.zshrcで設定)

3. Zshをデフォルトのシェルに設定

  • デフォルトシェルの変更
    chsh -s $(which zsh)
    

4. 予測コマンド機能の追加

4.1 zsh-autosuggestionsプラグインの導入

  • プラグインの説明
    • コマンド入力時に予測を表示
  • インストール手順
    git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
    
  • 設定のカスタマイズ
    • ~/.zshrcでプラグインを追加
    plugins=(git zsh-autosuggestions)
    

4.2 zsh-syntax-highlightingプラグインの導入

  • プラグインの説明
    • コマンド構文をハイライト
  • インストール手順
    git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
    
  • 設定のカスタマイズ
    • ~/.zshrcでプラグインを追加
    plugins=(git zsh-syntax-highlighting)
    

4.3 zsh-history-substring-searchプラグインの導入

  • プラグインの説明
    • 履歴のサブストリング検索機能
  • インストール手順
    git clone https://github.com/zsh-users/zsh-history-substring-search ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-history-substring-search
    
  • 設定のカスタマイズ
    • ~/.zshrcでプラグインを追加
    plugins=(git zsh-history-substring-search)
    

Dockerで試す

  • Docker Composeを使用してRocky Linuxコンテナを立ち上げ、その中にOh My Zshをインストールする方法について説明

ステップ1: プロジェクトディレクトリとDockerファイルの準備

  1. プロジェクトディレクトリを作成する

    mkdir my-rockylinux-project
    cd my-rockylinux-project
    
  2. Dockerfileを作成する

  • Dockerfileを作成し、以下の内容を記述します。
    FROM rockylinux/rockylinux:8
    
    # 必要なパッケージをインストール
    RUN dnf update -y && \
        dnf install -y zsh git curl util-linux-user which && \
        dnf clean all
    
    # Oh My Zshのインストール
    RUN sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" "" --unattended
    
    # zshをデフォルトシェルに設定
    RUN chsh -s $(which zsh)
    
    # ユーザーの設定
    ENV USER=root
    ENV SHELL=/bin/zsh
    
    # 作業ディレクトリを設定(必要に応じて)
    WORKDIR /app
    
    # コンテナ起動時にzshを実行
    CMD ["zsh", "-c", "sleep infinity"]
    
  1. docker-compose.ymlファイルを作成する
    • docker-compose.ymlファイルを作成し、以下の内容を記述します。
      services:
        app:
          build: .
          ports:
            - "3000:3000"
          volumes:
            - .:/app
          environment:
            NODE_ENV: development
      

ステップ2: Docker Composeでコンテナをビルドおよび起動

  1. Docker Composeを使用してコンテナをビルドする

    docker-compose build
    
  2. Docker Composeを使用してコンテナを起動する

    docker-compose up -d
    
  3. コンテナに接続する

    docker-compose exec app zsh
    
  • これで、Oh My ZshがインストールされたRocky Linuxコンテナ内に入ることができます。

ステップ3: コンテナ内での操作

  • コンテナ内で~/.zshrcファイルを編集することで、Oh My Zshの設定を変更できます。

ステップ4: コンテナの停止と削除

  1. コンテナを停止する
    docker-compose down
    

カスタマイズ: テーマの適用方法

  • 個人的にお気に入りのテーマを紹介します。

1. agnosterテーマの設定

  • Oh My Zshの設定ファイルを編集して、agnosterテーマを有効にします。以下のコマンドで設定ファイルを開きます。

    vi ~/.zshrc
    
  • 設定ファイル内で、次の行を探して変更します。

    ZSH_THEME="agnoster"
    
  • ファイルを保存して閉じます (Ctrl+O で保存し、Ctrl+X で終了)。

2. Powerlineフォントのインストール

  • 多くのテーマではPowerlineフォントが必要です。dnfを使ってPowerlineフォントをインストールします。
    dnf install powerline-fonts
    

3. フォントの設定

  • ターミナルの設定で、インストールしたPowerlineフォントを選択します。ターミナルの設定メニューから「フォント」セクションにアクセスし、Powerlineフォントを選択します。

4. 設定の反映

  • 設定を反映するために、次のコマンドを実行してZshを再起動します。
    source ~/.zshrc
    

まとめ

  • Zshのインストールと設定の重要性: Zshは高機能なシェルで、作業効率を大幅に向上させます。
  • 予測コマンド機能の追加での利便性: Oh My Zshプラグインにより、コマンド入力の効率が向上します。

参考リンク

GitHubで編集を提案
CareNet Engineers

Discussion