zsh と tmux の簡単 Linux CUI 環境構築
Chromebook の Linux 環境で最近使っている zsh + tmux について整理してみました。
できるだけ簡単に、汎用性が高い環境を構築する
普段の作業では GUI アプリも便利ですが、プログラミングをしているときは CUI を使っている時間もかなりあります。 そうなると CUI の環境構築もしっかりやりたくなって、設定を作り込んだ時期もありました。
しかし、クラウドが普及してきたことで環境を行ったり来たりする場面が多くなり、環境構築のための初期設定が面倒になってきました。 環境ごとに少しずつカスタマイズしようものなら、そのメンテナンスでさらに手間が増えてしまいます。
最近は Chromebook を使うようになったことでローカルの Linux 環境も作り直しが簡単にできるようになり、さらに初期設定が面倒に感じられます。 Linux ディストリビューションや CPU アーキテクチャが変わったりするとインストールできるツールのバージョンが変わったりするので、そのまま設定ファイルを移動しただけでは動かなかったりします。 とはいえ毎日環境構築するというわけでもないので、構成管理ツールを使うほどではありません。
というわけで、「なるべく簡単にセットアップできる」「汎用性が高い」という方向で試行錯誤した結果、今はこんな感じになっています。
- zsh と tmux をインストールする
- prezto をインストールする
- .tmux.conf を設定する
以下は、この環境を構築する手順の詳細です。
zsh と tmux をインストールする
まずは zsh と tmux をパッケージからインストールします。Chromebook の Linux 開発環境は Debian/GNU Linux(動作確認時は bullseye 11.2)です。
# とりあえずパッケージを最新にします。 $ sudo apt update && sudo apt upgrade -y # zsh tmux をインストールします。 $ sudo apt install -y zsh tmux
prezto をインストールする
次に prezto をインストールします。zsh にはたくさんの機能がありますが、prezto を使うとおおよそいい感じに設定してくれます。
ホームディレクトリにドットファイルを増やしたくないので、.config/zsh
にインストールします。
# zsh を起動します。 $ zsh # prezto をダウンロードします。 % git clone --recursive https://github.com/sorin-ionescu/prezto.git \ "${ZDOTDIR:-${XDG_CONFIG_HOME:-$HOME/.config}/zsh}/.zprezto" # ~/.zshenv で prezto 設定ファイルの場所を指定します。 % echo 'export XDG_CONFIG_HOME="${XDG_CONFIG_HOME:=$HOME/.config}" export ZDOTDIR="${ZDOTDIR:=$XDG_CONFIG_HOME/zsh}" source "$ZDOTDIR/.zshenv"' > .zshenv # zsh に prezto の設定を反映します。 % export ZDOTDIR="${ZDOTDIR:-${XDG_CONFIG_HOME:-$HOME/.config}/zsh}" && \ setopt EXTENDED_GLOB for rcfile in "${ZDOTDIR:-$HOME}"/.zprezto/runcoms/^README.md(.N); do ln -s "$rcfile" "${ZDOTDIR:-$HOME}/.${rcfile:t}" done # デフォルトのシェルを zsh に変更します。 # Chromebook の Linux 環境では root にパスワードで # ログインできないようになっているのでこの方法で。 % sudo chsh $USER -s /bin/zsh # prezto のテーマを pure に切り替えます。お好みで。 % sed -i "s/theme 'sorin'/theme 'pure'/" \ ~/.config/zsh/.zprezto/runcoms/zpreztorc
これでターミナルを開き直せば zsh の設定は終わりです。
.tmux.conf を設定する
次は tmux です。
このまま tmux を起動しても使えますが慣れたキーバインドでないとつらいので、自分用にカスタマイズしている設定ファイル .tmux.conf
をコピーします。
設定ファイルは Google ドライブにバックアップしています。 以前は GitHub に置いていたのですが、Chromebook ならば Google ドライブのフォルダを簡単に共有できる(参照:フォルダを Linux 開発環境と共有できるサービス)ので、この方法に落ち着きました。
Google ドライブの決まったフォルダを Linux 環境と共有するようにしておき、そこから設定ファイルをホームディレクトリにコピーします。
❯ cp /mnt/chromeos/GoogleDrive/MyDrive/penguin/.tmux.conf ~/
このフォルダを複数の Chromebook に構築した Linux 開発環境で共有しておけば、中に置いたファイルが自動的に同期されるのでバックアップや移動に便利です。
git に慣れている人は、設定ファイルも git で管理したいかもしれません。 そんなときは Google ドライブに共有リポジトリを置くと便利です。
# 最初に Google ドライブにベアリポジトリを作っておきます。 ❯ mkdir -p /mnt/chromeos/GoogleDrive/MyDrive/penguin/dotfiles && cd !$ ❯ git init --bare # 設定ファイルを管理している git リポジトリを push しておきます。 ❯ cd my_dotfiles ❯ git remote add origin /mnt/chromeos/GoogleDrive/MyDrive/penguin/dotfiles ❯ git push origin master # 他の環境で使うときには clone してきます。 ❯ git clone /mnt/chromeos/GoogleDrive/MyDrive/penguin/dotfiles ~/dotfiles ❯ ln -s ~/dotfiles/.tmux.conf ~/
まとめ
ここまでやると最低限いろいろできるようになります。 Chromebook の Linux 開発環境では Google ドライブが簡単に使えるので、活用するといろいろなことに使えます。 環境設定のメモも Google ドライブに置くと、すぐに参照できていいですね。
執筆時環境
- ASUS Chromebox 4, Chrome OS 97.0.4692.102 (stable)
- Lenovo IdeaPad Duet Chromebook, Chrome OS 99.0.4844.14 (beta)