Windows で Zsh と Oh My Zsh を使用して WSL2 の自動化を完了する

最終更新: 2月26の2026
  • WSL2 を使用すると、Windows 内で完全な Linux システムを使用し、それを Zsh と組み合わせて強力で最新のターミナルを作成できます。
  • Windows Terminal、Nerd Fonts、Oh My Zsh は、カスタム テーマ、アイコン、プラグイン、エイリアスを使用して、視覚的および機能的なエクスペリエンスを強化します。
  • ブートストラップ スクリプト、ドットファイル、開発コンテナを使用すると、開発チーム全体の環境の自動化とバージョン管理が容易になります。
  • VS Code と NVM、Conda、BAT、LSD、FZF などのツールとの統合により、堅牢で再現可能なワークフローが作成されます。

Windows 上の WSL2 Zsh 自動化

もしあなたが Windows で Node.js または Python を使用しており、Linux の利便性を望んでいますか? ゲーム、いつものツール、ワークフローを犠牲にすることなく、WSL2とZshはまさに探し求めていた組み合わせでしょう。強化されたターミナルとすべてが完璧に自動化された本格的なLinuxディストリビューションがあれば、開発環境の構築はもはやコマンドを何時間もかけてコピーする苦行ではなくなります。

このガイドでは、非常に注意深く詳細に、 ZshとOh My Zshを使ってWSL2環境を完全に自動化する方法WindowsターミナルとVisual Studio Codeとの統合方法、そしてスクリプトやドットファイルにパッケージ化して、あなた(またはチームの誰か)が同じ設定を数分で再現できるようにする方法をご紹介します。設定に悩む時間を減らし、コーディングにもっと時間を費やせるようにすることが目的です。

WSL2 とは何ですか? Zsh で使用する価値があるのはなぜですか?

WSL(Windows Subsystem for Linux)は、Windows内でLinuxを実行できるようにするレイヤーです。 重い仮想マシンやデュアルブートなしでも実行できます。WSL2では、Microsoftはさらに一歩進んで、 Hyper-Vを使用した完全なLinuxカーネルリソース消費量が非常に少なく、パフォーマンスはネイティブ インストールに非常に近いです。

これのおかげで、次のことが可能になります Ubuntu、Debian、Kali、Alpineなどのディストリビューションをインストールする Microsoft Storeから直接、またはPowerShellコマンドを使用して、Linuxファイルシステム、aptパッケージ、開発ツール、そしてもちろん、次のような高度なシェルをお楽しみください。 Zsh とともに ああ私のzsh およびそのプラグイン。

長年、 Windowsからのプログラミングは魅力的ではなかったbashがなく、扱いにくいファイルシステムとネイティブ開発ツールの少なさから、ほとんどの人はLinuxやmacOSに移行しました。WSL2の登場により、状況は劇的に変わります。Windowsを使い続けながら、 Linuxディストリビューションのように作業できますほぼ全体の構成プロセスを自動化する可能性があります。

WSL2とZshを組み合わせることの利点は、 Zshは、従来のbashよりもはるかに優れたターミナルエクスペリエンスを提供します。高度なオートコンプリート、提案、テーマ、Git 統合、NVM プラグイン、エイリアス、構文の強調表示など、一度試すと手放せなくなる機能が多数あります。

カスタム WSL2 および Zsh 環境

Windows 10 または 11 に WSL2 をインストールして準備する

自動化の微調整に入る前に、 WSL2 を有効にし、Linux ディストリビューションをインストールする必要があります。今日のプロセスは初期のバージョンよりもはるかにシンプルになり、ほぼすべての作業が 1 つのコマンドで実行できるようになりました。

En 最近の Windows 10 (バージョン 2004 以降) または Windows 11PowerShell を管理者として開き (スタート メニューで検索し、右クリックして「管理者として実行」)、起動します。

wsl --install

このコマンドは、 必要なオプション機能を有効にする、ダウンロード Linuxカーネル、 確立する デフォルトバージョンとしてWSL2 デフォルトでインストール Ubuntu 配布として。処理が完了すると、変更を適用するためにコンピューターを再起動するように求められます。

別のディストリビューションを使用する場合は、コマンド自体でそれを指定することができます。たとえば、Debian をインストールするには次のようにします。

wsl --install -d Debian

いつでもできる インストールされているディストリビューションとそのバージョンのステータスを確認する と:

wsl -l -v

ディストリビューションを変更したり、不要になったディストリビューションを削除したい場合は、次のようなオプションがあります。 オンラインで利用可能なディストリビューションを一覧表示する または特定のインストールを削除します。

wsl -l -o
wsl --unregister Ubuntu-20.04

ディストリビューションを初めて起動すると、テキストベースのウィザードが表示され、 UNIXユーザーとそのパスワードを作成するこれはWSL内のメインユーザーとなり、典型的なHOMEは /home/tuusuarioユーザー名とパスワードは管理タスクで使用するため、書き留めておくことが重要です。 sudo.

WSL2 で動作するように Windows ターミナルを構成する

WSL2を起動したら、次の論理的なステップは Windows ターミナルを使用して Windows のコマンドライン エクスペリエンスを向上させるこのアプリケーションは、タブ、パネル、テーマ、透明度、ディストリビューションごとのプロファイル、アイコン付きフォントなどをサポートしています。

Windowsターミナルをインストールする 開くと、通常はデフォルトでPowerShellまたはCMDプロファイルが表示されます。タブのドロップダウン矢印からWSLディストリビューション(Ubuntu、Debianなど)を選択し、新しいタブで開くことができます。

のために Ubuntu または WSL で使用するディストリビューションは常にデフォルトで開きます。設定を編集できます。Windowsターミナルは設定をJSONファイルに保存し、設定メニューからアクセスできます。フィールドを見つけてください。 "defaultProfile" そして、 UbuntuプロファイルGUID (リストに表示されます) profiles) を値として入力します。

それに加えて、 カラーテーマをカスタマイズし、アクリルの透明度を追加します より現代的な雰囲気を出すために。例えば、 "defaults" プロファイルについては、次のように定義できます。

  クラウドにおける Linux: それは何であり、なぜ重要なのか?

"defaults": {
"useAcrylic": true,
"acrylicOpacity": 0.4
}

色彩をさらに強化したい場合は、 カスタムスキーム セクションで "schemes" JSONから背景色、前景色、基本的なターミナルパレットを定義します。典型的な例としては、Solarizedテーマのようなものがあり、これにプロパティを使用してWSLプロファイルを関連付けることができます。 "colorScheme" : "wsl" 対応するプロファイルで。

WSL2 と Zsh を使用した Windows ターミナル

WSL2 に Zsh + Oh My Zsh をインストールして自動化する

WSL と Windows ターミナルのベースが準備できたので、シェルに機能を追加します。 Zshはbashよりもはるかに強力な代替手段ですそして組み合わせて ああ私のzsh これは、Git、Node、Python、およびターミナル内のほぼすべてのものを操作するためのスイスアーミーナイフになります。

WSLディストリビューション(Ubuntuなど)では、 リポジトリを更新し、必要最小限のパッケージをインストールする:

sudo apt update
sudo apt install git zsh -y

次に、公式スクリプトを使用してOh My Zshをインストールします。 curl を実行してインストーラをダウンロードする 直接実行します:

sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

インストール中に、 Zshをデフォルトのシェルに設定するはい、と伝えてください。もし手動で行う必要がある場合は、以下の方法があります。

chsh -s /bin/zsh

完了すると、HOMEディレクトリに以下の設定ファイルが生成されます。 ~/.zshrcプラグイン、テーマ、エイリアス、環境、ルートなど、すべてが制御されます。

Oh My Zshの非常に人気のあるテーマは 不可知論者Gitの情報を明確に表示することに重点を置いています。これを有効にするには、ファイルを編集します。 ~/.zshrc お好みのエディタで(例えば vi ~/.zshrc o nano ~/.zshrc) をクリックし、件名が次のようになっていることを確認します。

ZSH_THEME="agnoster"

また、bashとZshの両方で、 LinuxのHOMEディレクトリでシェルを強制的に起動する (Windowsユーザーフォルダではなく)WSLはディストリビューションのネイティブファイルシステム内でより適切に動作するので、以下の行を末尾に追加してください。 ~/.zshrc シンプルな行:

cd ~

Nerd FontsとPowerline: ターミナルのアイコンと美学

ZshとOh My Zshのトラックが意図したとおりに表示されるように、 特殊なアイコンや記号をサポートするフォントが必要です。 (これらはNerd FontsまたはPowerlineフォントと呼ばれます)。そうしないと、より高度なプロンプトで奇妙な四角形や壊れた文字が表示されます。

2つの一般的なオプションがあります。 クラシックPowerline電源パッケージ または、次のような特定のオタクフォントを選択します メスロLGS NF o Hack Nerdフォント簡単な方法は、まず空のフォルダーに移動して、Windows の PowerShell から Powerline フォント リポジトリのクローンを作成することです。

git clone https://github.com/powerline/fonts.git
cd fonts
.\install.ps1

インストールスクリプトは自動的にいくつかのフォントをシステムに追加します。その後、Windowsターミナルの設定から、 インストールされているフォントの1つを選択します WSL プロファイルの場合、たとえば次のようになります。

"fontFace": "DejaVu Sans Mono for Powerline"

もっとモダンなフォントがお好みなら、特定のNerd Font(例えば MesloLGS NF レギュラー.ttf) を Nerd Fonts Web サイトから入手し、ダブルクリックして「インストール」を選択して Windows にインストールし、Windows ターミナル プロファイルでフォントとして選択します。

高度なテーマを使用する場合、 パワーレベル10kNerd Fontsの使用を強くお勧めします。このテーマをインストールするには、WSLユーザーアカウントで以下の手順を実行してください。

git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ~/powerlevel10k
echo 'source ~/powerlevel10k/powerlevel10k.zsh-theme' >> ~/.zshrc

Zshをリロードした後(zsh またはターミナルを閉じて開くと、ガイド付きウィザードが起動します(p10k configure)プロンプトを好みに合わせてカスタマイズし、ファイルを生成する ~/.p10k.zsh すべての設定が含まれます。

WSL2とZshの高度な自動化

Zshの便利なプラグイン:すぐに生産性が向上

Oh My Zshの大きな利点の一つは プラグインを非常に簡単に追加できます。 作業環境を改善するために。WSL2開発環境で最もよく使用されるものは次のとおりです。

プラグイン git デフォルトで有効になっており、 保留中の変更がある場合、またはコミットされていない変更がある場合、どのブランチにいますか?…すべてプロンプト内で直接操作できます。ブラウジング中にリポジトリのステータスを追跡するのに最適です。

もう一つの古典は zsh 自動提案履歴に基づいて灰色でコマンドを提案するので、キー入力で提案を受け入れて 同じ長い組み合わせを何度も書かないようにする。 それをインストールするには:

git clone https://github.com/zsh-users/zsh-autosuggestions ~/.zsh/zsh-autosuggestions

また、強くお勧めします zsh 構文の強調表示コマンドのスペルが正しいか、指定しているファイルが存在するかなどに応じてコマンドを色分けし、 Enter キーを押す前に構文エラーを検出する:

git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ~/.zsh/zsh-syntax-highlighting

これらのプラグインを有効にし、次のコードを ~/.zshrc 次のようなものです:

source ~/.zsh/zsh-autosuggestions/zsh-autosuggestions.zsh
source ~/.zsh/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh

もう一つの非常に実用的な追加機能は Oh My Zsh sudoプラグインこれにより、例えばキーの組み合わせを押すことで 最後のコマンドの前に「sudo」を素早く追加する 実行中です。次のようにダウンロードできます。

mkdir -p ~/.zsh/sudo-plugin && cd ~/.zsh/sudo-plugin
wget https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/plugins/sudo/sudo.plugin.zsh

そして、それをあなたの ~/.zshrc:

source ~/.zsh/sudo-plugin/sudo.plugin.zsh

強化されたコマンドラインツール (BAT、LSD、FZF、HTTPie)

ターミナルを微調整するのであれば、いくつかインストールする価値がある 古典的なユーティリティの現代的な代替品 として cat o ls検索ツールやユーザーフレンドリーな HTTP クライアントも用意されています。

  Windows 11でBluetooth経由でファイルを共有する方法:完全ガイド

BAT これは「プロ」版です cat、と 構文の強調表示、番号付け、Git 統合…ターミナルで直接コードファイルを読むのに最適です。GitHubから対応するパッケージをダウンロードしてインストールできます(アーキテクチャに合わせて調整してください)。

wget https://github.com/sharkdp/bat/releases/download/v0.20.0/bat_0.20.0_amd64.deb
sudo dpkg -i bat_0.20.0_amd64.deb

ワークフローに統合するには、 ~/.zshrc だから書くときは cat 私は実際に BAT を呼び出しましたが、従来のユーティリティへのショートカットを保持しました。

alias cat='/bin/bat'
alias catn='/bin/cat'
alias catnl='/bin/bat --paging=never'

その部分については、 LSD 置き換えます ls とともに 色、アイコン、そしてより読みやすい出力BAT と同様にインストールされます。

wget https://github.com/Peltoche/lsd/releases/download/0.21.0/lsd_0.21.0_amd64.deb
sudo dpkg -i lsd_0.21.0_amd64.deb

次に、一般的なエイリアスを再定義して、ディレクトリを並べ替えたり、詳細を表示したり、非表示にしたりすることができます。次に例を示します。

alias ll='lsd -lh --group-dirs=first'
alias la='lsd -a --group-dirs=first'
alias l='lsd --group-dirs=first'
alias lla='lsd -lha --group-dirs=first'
alias ls='lsd --group-dirs=first'

ターミナル内でのインタラクティブな検索では、 FZF それはほぼ必須です: インクリメンタル検索エンジンを立ち上げる 履歴、パス、その他のコマンドと統合されています。リポジトリをクローンし、インストールスクリプトを実行することでインストールできます。

git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf
~/.fzf/install

インストーラーは ~/.zshrc el source 対応する(例えば [ -f ~/.fzf.zsh ] && source ~/.fzf.zsh)で準備完了です。ショートカットで起動できます。 Ctrl + T.

最後に、APIを使用する場合は、 HTTPie より快適な体験を提供します curl、と 色分けされた出力と非常に読みやすい構文リポジトリを追加して使用することでインストールできます apt:

curl -SsL https://packages.httpie.io/deb/KEY.gpg | apt-key add -
curl -SsL -o /etc/apt/sources.list.d/httpie.list https://packages.httpie.io/deb/httpie.list
apt update
apt install httpie
apt upgrade httpie

WSL2 の Node.js、NVM、Python などのツール

この事業を立ち上げた主な理由の一つは、 Node.js、Python、その他のテクノロジーのための堅牢な環境を持つことシンプルで再現性の高いバージョン管理。これが重要なのです NVM Node の場合は .NET Framework や Python の場合は Conda などのツール。

Nodeの場合、理想的なのは NVM (ノード バージョン マネージャー)これにより、複数のバージョンをインストールし、いくつかのコマンドで切り替えることができます。WSL2からNVMをインストールするには、次のコマンドを使用します。

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | zsh

次に、Node (現在の安定バージョンまたは特定のバージョン) をインストールします。

nvm install node
nvm install 18.17.0

すべてが正常であることを確認したい場合は、有効な値を返す一般的なバージョン検証コマンドが手元にあります。

node --version
npm --version

Zshでは、ターミナルを開いてもNVMが自動的に読み込まれないことがあります。この問題は2つの方法で解決できます。 必要な変数を手動で追加する ~/.zshrc またはプラグインを使用する zsh-nvm Oh My Zshから。手動バージョンは次のようになります。

export NVM_DIR=~/.nvm
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"

プラグインを選択した場合は、 ~/.zshrcプラグインの行を見つけます(例: plugins=(git))を追加し、 zsh-nvm リストに追加してください。保存してターミナルを再起動すると、NVMが問題なく読み込まれるはずです。

Pythonの場合、非常に強力なオプションは コンダ (またはMiniconda)では、 分離された環境を作成し、依存関係を管理し、Pythonのバージョンを処理する グローバルシステムを扱う必要はありません。WSL構成リポジトリ内に、Conda、GPUドライバー、その他のコンポーネントをほぼ透過的にインストールする自動スクリプトがあります。

スクリプト、ドットファイル、開発コンテナを使用して構成を自動化する

これまで、すべてを「手動で」設定する方法を見てきましたが、特にチーム内で良好な作業環境を実現する鍵は オンボーディングを自動化し、構成のバージョンを管理するWSL2 は、インストールからシェルのカスタマイズまですべてをパッケージ化できるため、これに最適です。

非常に一般的なアプローチは、 ブートストラップスクリプト (たとえば install.sh o setup.sh) をチーム リポジトリに作成し、次のようなタスクを順番に実行します。

  • 前提条件を確認する (Windows バージョン、アクティブな WSL2、必要に応じて Docker Desktop の存在など)。
  • WSLディストリビューションをインストールまたは更新する基本パッケージ、Zsh、Oh My Zsh、NVM、Conda など。
  • ドットファイルを複製して適用する (.zshrc, .bashrc, .gitconfig、テーマ ファイル、共有エイリアスなど)。
  • プロジェクトスタックツールをインストールする (Node、Python、データベース、特定の CLI)。
  • 検証スクリプトを構成する として make check-env すべてが正しいことを確認します。

これらのスクリプトは べき等性つまり、何も壊すことなく複数回実行できる必要があり、すべての環境変数を次のようなファイルに文書化することをお勧めします。 .env.example メインスクリプトに触れることなく、各人が環境をカスタマイズできるようにします。

もう一つの非常に強力なレイヤーは VS Code 開発コンテナ (.devcontainerこれらは、環境(Dockerfile、VS Code構成、拡張機能、ポートなど)の宣言的な記述で構成されており、 各プロジェクトには独自の開発コンテナがあります拡張機能のおかげでWSL2と組み合わせる リモート– WSLWSL 内の Linux コンテナーでリポジトリを開き、全員が同じバージョンとツールを持っていることを確認できます。

並行して、リポジトリを維持する バージョン管理されたドットファイル (例えばGitHubなど)は、シェル設定、エイリアス、テーマ、プログラムを複数のコンピュータ間、あるいは同じ開発者の異なるマシン間で共有・同期するのに役立ちます。 シェズモア または、単純なシンボリック コピー スクリプトがよく使用されます。

  Windowsで2つのNTFSパーティションを結合する方法:安全な方法、制限、ツール

WSL2 と Zsh を Visual Studio Code に統合する

この環境全体を軽量だが非常に高性能なエディタと統合すると、エクスペリエンスが大幅に向上します。 Visual Studio Code。 アイデアは VS CodeはWSLファイルシステムに対して直接動作しますパフォーマンスと権限の問題を回避します。

まず、公式サイトからWindowsにVS Codeをインストールします。次に、エディター内で拡張機能タブ(ショートカット)を開きます。 Ctrl+Shift+X)拡張機能を検索してインストールします 「リモート – WSL」この拡張機能を使用すると、すべてのロジックを WSL 内で実行しながら、Linux ディストリビューションにあるフォルダーとプロジェクトを開くことができます。

インストールが完了したら、Ubuntu ターミナルから次のコマンドを実行できます。

code .

これによりVS Codeが開き、WSL環境に接続され、そこにインストールしたツールにフルアクセスできるようになります。ビジュアル統合を完了するには、 VS Code統合ターミナルを構成する Windows ターミナルで選択したのと同じ Nerd フォントを使用して、アイコンもきれいに見えるようにします。

{
"terminal.integrated.fontFamily": "DejaVu Sans Mono for Powerline"
}

ファイル内 settings.json VS Code では、次のようにプロファイルを構成することで、WSL でデフォルトの Windows ターミナルを Ubuntu に設定することもできます。

"terminal.integrated.profiles.windows": {
"Ubuntu (WSL)": {
"path": "C:\\Windows\\System32\\wsl.exe",
"args": ["-d", "Ubuntu"]
}
},
"terminal.integrated.defaultProfile.windows": "Ubuntu (WSL)"

ついでに、この機会にアクティベートしてみましょう 保存時の自動フォーマット、括弧の色分け エディターでの日々の生活をもっと楽しくするその他の小さな改善点も含まれています。

自動化されたスクリプトと完全なWSL2構成リポジトリ

独自のスクリプトインフラストラクチャを構築することもできますが、 作業の多くを自動化する事前に構築されたリポジトリに依存する一部は、Linux ガイド、ターミナル ユーティリティ (Oh My Zsh、プラグイン、テーマ) をインストールするためのスクリプト、Conda、GPU ドライバー、およびデータ サイエンスまたは Web 開発環境のその他の重要なコンポーネントに重点を置いています。

これらのリポジトリの背後にある考え方は明確です。 1つのコマンドでBashスクリプトを実行する ディストリビューションを更新し、必要に応じて curl と Node.js をインストールし、NVM を処理し、Nerd Fonts などのフォントをダウンロードし、テーマと適切なプラグインおよびエイリアスのセットを使用して Zsh を構成し、ターミナルをすぐに使用できる状態にします。

これらのスクリプトを実行すると、いくつかの時点で次のような質問が表示されます。 管理者パスワード の使用により sudoパッケージがインストールされ、システム パスが変更され、ファイルが保護された場所にコピーされるため、これは完全に正常な動作です。

場合によっては、 BATやLSDなどのツールの特定のバージョンを選択する (たとえば bat_0.25.0_amd64.deb o lsd_1.1.5_amd64.deb)、これはGitHubで利用可能なバージョンとマシンのアーキテクチャに依存します(最近は amd64互換性のないパッケージのエラーを回避するために、必ず正しいものを選択してください。

このタイプのスクリプトの結果は、 Zshにはすでにファイルがあります .zshrc 非常に完全なテーマ、プラグイン、cat/lsのエイリアス、アイデアが浮かばない時にアイコンでコミットできるGitmoji統合、構文ハイライト、Oh My Zshのオートコンプリート機能など、便利な機能が満載です。一日中画面に表示させていたくなるようなターミナルです。

カスタマイズを完了するには、 テーマを調整してユーザー名のみを表示し、ホスト名を非表示にします 特定のテーマファイルを直接変更する、例えば agnoster.zsh-theme ルートで ~/.oh-my-zsh/themes対応する行を次のように変更します。

prompt_segment green black "%(!.%{%F{yellow}%}.)%n"

これらすべてによって、あなたが達成できるのは チームの開発者は誰でも、構成リポジトリのクローンを作成し、コマンドを実行して、わずか数分で同じ環境を実現できます。 他のものと比べて、同じシェル、同じテーマ、同じバージョンの基本ツール、同じターミナル動作を備えており、「私の PC では動作します」や「その日に何をインストールしたか覚えていません」といった問題が発生することはありません。

結局のところ、WSL2とZsh環境の構築と自動化には、Windows内のLinuxベース、Windows Terminalのような適切に構成されたターミナル、Oh My Zshとそのプラグインで強化されたシェル、BAT、LSD、FZFなどの最新ツール、NVMまたはCondaによるバージョン管理、Remote-WSLを介したVS Codeとの統合、そしてこれらすべてを確実に再現できるスクリプトとドットファイルなど、いくつかの要素を組み合わせる必要があります。時間をかけて微調整すれば、手動で再インストールする代わりに、数分でゼロから快適なプログラミングができるエコシステムを構築できます。