Windows環境でBash(Bourne Again Shell)を使ってシェルスクリプトを実行したり、Linuxコマンドを使った自動化を行いたい場面は非常に多くあります。しかし、「どのツールを導入すればいいのか分からない」「インストールの手順が複雑そう」と迷っていませんか?
結論として、WindowsでBashを動かす最短ルートは WSL2 か Git Bash の2択です。
- 本格的なLinux開発やDocker連携を行うなら → WSL2(推奨)
- 手軽にLinuxコマンドやシェルスクリプトを動かすだけなら → Git Bash
環境ごとの詳細な仕組みやベンチマーク比較を知りたい方は、別記事「WSL2 vs Git Bash vs PowerShellの徹底比較」をご覧ください。本記事では、余計な比較を省き、「最短でインストールし、今すぐスクリプトを実行する手順」 に特化して直球で解説します。
最短で動かす!あなたに合った導入ルートの選び方
まずは自分がどちらのルートを選ぶべきか、以下の基準でサクッと判断しましょう。
本格的なLinux環境・Dockerを使うなら → WSL2(推奨)
WSL2(Windows Subsystem for Linux 2) は、Microsoftが提供する公式のLinux環境です。Windows内部で本物のLinuxカーネルが動作するため、Ubuntuなどのディストリビューションをそのまま利用できます。
- こんな人におすすめ:
- Python、Node.js、Go、PHPなどの本格的なWeb開発環境を構築したい
- Dockerと連携してコンテナ開発を行いたい
aptなどのパッケージマネージャーを使って自由に必要なツールをインストールしたい- Linuxサーバー本番環境と全く同じ挙動でスクリプトをテストしたい
- 導入の手間:PowerShellでコマンド1行(
wsl --install)を実行するだけ
コマンドラインツールを手軽に使うだけなら → Git Bash
Git Bash は、Windows版Git(Git for Windows)に同梱されている軽量なBash環境です。仮想マシンを立ち上げず、Windows上で直接動作するため、起動が一瞬でPCのメモリをほとんど消費しません。
- こんな人におすすめ:
- Gitの操作を中心に、
grep、sed、awk、findなどの基本Linuxコマンドを使いたい - Windows上のファイルに対して手軽にシェルスクリプト(
.sh)を自動実行させたい - 会社のPCなどで仮想化機能(Hyper-V)の有効化が制限されている
- とにかく今すぐ、3分以内にBashを動かしたい
- Gitの操作を中心に、
- 導入の手間:インストーラーをダウンロードして次へ進めるだけ
※なお、WSL2・Git Bash・PowerShellの詳細なアーキテクチャの違いや性能比較は、「WSL2とGit Bashの徹底比較」をご参照ください。
【ルート1】WSL2でBashを最短セットアップする(推奨・コマンド1行)
本格的なLinux環境を構築するなら、WSL2が最もおすすめです。現在のWindowsでは、コマンド1行でセットアップが完了します。
1. PowerShellを管理者で開き「wsl –install」を実行
Windowsのスタートボタンを右クリックし、「ターミナル(管理者)」 または 「PowerShell(管理者)」 を開きます。表示された画面に以下のコマンドを入力してEnterキーを押します。
# WSL2とデフォルトのUbuntuを一括インストール
wsl --install
このコマンドを実行すると、WSL2の実行に必要な仮想化機能の有効化と、標準ディストリビューション(Ubuntu)のダウンロードが全自動で進みます。
2. PC再起動と初期ユーザー/パスワード設定
- コマンドの処理が完了したら、画面の指示に従って PCを再起動 します。
- 再起動後、少し待つと自動的に黒いコンソール画面(Ubuntuのターミナル)が立ち上がります(立ち上がらない場合は、スタートメニューから「Ubuntu」を検索してクリック)。
- 初回起動時に UNIX username(ユーザー名)と UNIX password(パスワード)の設定を求められます。任意の英数字を入力してください(パスワード入力時は画面に文字が表示されませんが、正しく入力されています)。
Installing, this may take a few minutes...
Please create a default UNIX user account. The username does not need to match your Windows username.
Enter new UNIX username: your_name
New password:
Retype new password:
passwd: password updated successfully
Installation successful!
3. Bashを起動して「ls」「uname -a」で動作確認
ユーザー登録が完了すれば、すでにBashの入力待ちプロンプト(your_name@hostname:~$)が表示されています。動作確認として以下のコマンドを入力してみましょう。
# パッケージリストの最新化
sudo apt update && sudo apt upgrade -y
# カーネル情報とOSの確認(Linuxカーネルが動いていることを確認)
uname -a
# Bashのバージョン確認
bash --version
次回以降は、スタートメニューから「Ubuntu」を起動するか、Windows Terminalのタブから「Ubuntu」を選択するだけで、いつでも瞬時にBashを呼び出せます。
【ルート2】Git Bashで手軽にLinuxコマンドを動かす(インストーラー実行)
仮想環境を作らず、Windows上で直接Bashを動かしたい場合はGit Bashが最適です。
1. Git for Windowsをダウンロード&インストール
- Git for Windows 公式サイトにアクセスし、最新のインストーラー(64-bit Git for Windows Setup)をダウンロードします。
- ダウンロードしたインストーラー(
.exe)を起動します。 - セットアップウィザードが表示されます。基本的にはすべて「Next」をクリックして進めれば問題ありませんが、以下の項目だけ確認しておくと安心です:
- Choosing the default editor:普段使っているエディタ(VS Codeなど)を選択
- Adjusting your PATH environment:「Git from the command line and also from 3rd-party software」(推奨)を選択
- Configuring the line ending conversions:「Checkout Windows-style, commit Unix-style line endings」(推奨)を選択
- Configuring the terminal emulator:「Use MinTTY (the default terminal of MSYS2)」(推奨)を選択
- 「Install」をクリックし、完了したら「Finish」を押します。
詳しいインストール設定の各項目解説は「Git Bashとは?Windowsでのインストールと基本操作・コマンド一覧」でも紹介しています。
2. 右クリックメニューまたはWindows Terminalから起動
Git Bashを起動する方法は非常にシンプルです。
- 右クリックから即起動:エクスプローラーで任意のフォルダを開き、余白で右クリック → 「Open Git Bash here」 を選択します(Windows 11の場合は「その他のオプションを表示」→「Open Git Bash here」)。そのフォルダをカレントディレクトリとしてBashが起動します。
- スタートメニューから起動:スタートメニューで「Git Bash」と検索して起動します。
起動したら、以下のコマンドで動作を確認してみましょう。
# カレントディレクトリの確認(WindowsのCドライブは /c/ として扱われます)
pwd
# ディレクトリ内のファイル一覧を確認
ls -la
# 基本コマンドの動作確認
grep --version
3. 業務効率化:右クリックでのコピペ有効化設定
Git Bash(MinTTY)を使い始めた初心者が必ず戸惑うのが、「Ctrl + C や Ctrl + V でコピー&ペーストができない」という問題です。Bashでは Ctrl + C が「実行中プログラムの割り込み停止(SIGINT)」に割り当てられているためです。
日々の作業を爆速にするため、「マウスの右クリックで即貼り付け」 できる設定にしておきましょう。
- Git Bashウィンドウのタイトルバー(上枠)を右クリックし、「Options…」 を開きます。
- 左側のメニューから 「Mouse」 を選択します。
- 「Right mouse button」 の項目を 「Paste」 に変更します。
- ついでに 「Copy on select」(テキストを選択しただけで自動コピー)にチェックを入れておきます。
- 右下の 「Apply」 をクリックして保存します。
これで、「マウスで選択するだけでコピー完了」「右クリック1発で即ペースト」できるようになり、コマンドのコピペ作業が劇的に快適になります。
実践:Windows上でBashスクリプト(.sh)を作成・実行する
Bashの環境が整ったら、実際にシェルスクリプトファイル(.sh)を作成して動かしてみましょう。
1. スクリプト作成(Shebang: #!/bin/bash の記述)
任意のテキストエディタ(VS Codeやメモ帳など)を開き、以下の内容を貼り付けて run_task.sh という名前で保存します。
#!/bin/bash
# ==========================================
# 実務で必須の安全設定(手作業撲滅・エラー即停止)
# -e: コマンドがエラーになったら即終了
# -u: 未定義変数を参照したらエラー停止
# -o pipefail: パイプ途中のエラーも検知
# ==========================================
set -euo pipefail
# 引数が渡されていない場合はデフォルト値を設定
USER_NAME="${1:-開発者}"
echo "=========================================="
echo "Bashスクリプトの実行に成功しました!"
echo "対象ユーザー: ${USER_NAME}"
echo "実行日時: $(date '+%Y-%m-%d %H:%M:%S')"
echo "実行環境: $(uname -s)"
echo "=========================================="
1行目の #!/bin/bash は Shebang(シバン) と呼ばれ、このファイルをどのシェルで実行するかを指定する重要な宣言です。必ずファイルの最上行に記述してください。
2. 実行権限の付与(chmod +x)と実行(./script.sh)
作成したスクリプトを実行するには、ターミナル(WSL2またはGit Bash)でファイルのあるディレクトリへ移動し、以下のコマンドを実行します。
# 1. スクリプトに実行権限(実行可能フラグ)を付与
chmod +x run_task.sh
# 2. カレントディレクトリのスクリプトを実行
./run_task.sh "Bash道"
# (別解)bashコマンドに引数として渡せば実行権限なしでも即実行可能
bash run_task.sh "テスト実行"
パーミッション(権限)の詳しい仕組みは「chmodコマンドの使い方とパーミッションの仕組み」でも解説しています。
3. PowerShell / コマンドプロンプトからワンライナーでBashを呼び出す方法
実務では、「WindowsのPowerShellやタスクスケジューラ、バッチファイルから直接Bashスクリプトを呼び出したい」という自動化案件がよくあります。この場合、ターミナルを個別に開かずに ワンライナー で実行可能です。
# パターンA: PowerShellからWSL2のBashスクリプトを実行
wsl bash /mnt/c/Users/your_name/scripts/run_task.sh "PowerShell連携"
# パターンB: PowerShellからWSL2でLinuxコマンドを直接実行(-c オプション)
wsl bash -c "ls -lh /var/log | head -n 5"
# パターンC: PowerShellからGit Bashを呼び出して実行
& "C:Program FilesGitbinbash.exe" C:Usersyour_namescriptsrun_task.sh "GitBash連携"
このように記述すれば、Windowsの定期実行バッチ(タスクスケジューラ)の中に簡単にBashの処理を組み込むことができます。
WindowsでBashを使うときの最大の落とし穴:改行コード(CRLF)問題と解決策
Windows環境でシェルスクリプトを扱う際、初心者が 100%の確率で遭遇するトラブル が「改行コードの違い」によるエラーです。
なぜ動かない?「$’r’: command not found」の原因
WindowsとLinuxでは、テキストファイルの改行を表す見えない文字コードが異なります。
- Windowsの改行コード:
CRLF(rn) - Linux / Bashの改行コード:
LF(n)
Windowsのメモ帳や標準設定のエディタでスクリプトを保存すると、改行が CRLF になります。これをBashで実行すると、行末の余分な r(キャリッジリターン)がコマンド名の一部として解釈されてしまい、以下のような意味不明なエラーが発生します。
$ ./run_task.sh
: command not found: run_task.sh: line 2:
$'r': command not found
-bash: ./run_task.sh: /bin/bash^M: bad interpreter: No such file or directory
エラーメッセージにある ^M や $'r' は、まさに改行コード CRLF の r を示しています。このエラーが出たら、1秒も迷わずに「改行コードをLFに変換する」と判断してください。
解決策1: dos2unixコマンドで一括変換する
すでに作成したファイルの改行コードを一撃でLFに直す最も実務的なツールが dos2unix コマンドです。
# WSL2(Ubuntu)の場合:dos2unixをインストール
sudo apt update && sudo apt install -y dos2unix
# 単一ファイルの改行コードをLFへ一括変換
dos2unix run_task.sh
# カレントディレクトリ配下のすべての .sh ファイルを一発でLF変換(手作業は負け)
find . -type f -name "*.sh" -exec dos2unix {} +
コマンドの詳しいオプションや逆変換(unix2dos)は「dos2unixコマンドの使い方」を参考にしてください。
解決策2: VS Codeのステータスバーで「LF」に変更する
VS Codeを使っている場合は、エディタ上で直接LFに変更して保存できます。
- VS Codeで該当の
.shファイルを開きます。 - 画面右下のステータスバーにある 「CRLF」 と書かれた表示をクリックします。
- 画面上部に選択肢が表示されるので、「LF」 を選択します。
Ctrl + Sでファイルを上書き保存します。
今後作成するすべてのファイルを自動的にLFにしたい場合は、VS Codeの設定(settings.json)に "files.eol": "n" を追加しておくと便利です。
Windows Terminalと統合して快適に使う
日常的にコマンドを打つなら、Microsoft公式のモダンターミナル 「Windows Terminal」 を使うのが最もスマートです。Windows 11には標準でインストールされており、PowerShell、WSL2、Git Bashを同じウィンドウ内のタブで自由に切り替えられます。
WSL2とGit Bashをタブで切り替える設定
WSL2(Ubuntu)はWindows Terminalを起動すれば自動的にタブメニューに登録されますが、Git Bashは手動で追加設定しておくと非常に便利です。
- Windows Terminalを起動し、上部バーの 「v」 アイコン → 「設定」(ショートカット:
Ctrl + ,)を開きます。 - 左側メニューの下部にある 「プロファイル」 → 「新しいプロファイルを追加します」 をクリックします。
- 「+ 空のプロファイル」 を選択し、各項目を以下のように入力します:
- 名前:
Git Bash - コマンドライン:
%PROGRAMFILES%Gitbinbash.exe -i -l - 開始ディレクトリ:
%USERPROFILE% - アイコン:
%PROGRAMFILES%Gitmingw64sharegitgit-for-windows.ico
- 名前:
- 右下の 「保存」 をクリックします。
これで、タブ右側のプラスマーク横メニューから「Ubuntu」と「Git Bash」をいつでもタブで並べて立ち上げられるようになります。
よくある質問(FAQ)
Q. WindowsのCドライブのファイルはBashから見えますか?
はい、どちらの環境からも完全に参照・操作できます。
- WSL2の場合:
/mnt/c/にマウントされています(例:cd /mnt/c/Users/あなたのユーザー名/Desktop)。 - Git Bashの場合:
/c/にマウントされています(例:cd /c/Users/あなたのユーザー名/Desktop)。
実務上の注意点:WSL2から /mnt/c/ 配下のファイルを大量に読み書きする場合(npm install や Git操作など)、Windows側のファイルシステム変換を挟むため動作が重くなります。WSL2で本格的な開発を行う場合は、Linux領域内のホームディレクトリ(~/projects/ など)にコードを配置するのがパフォーマンス維持の鉄則です。
Q. 日本語ファイル名が文字化けしたときの対処法は?
文字コードが UTF-8 になっていない場合に文字化けが発生します。
- WSL2の場合:ターミナルで
localeを実行し、LANG="ja_JP.UTF-8"またはLANG="C.UTF-8"になっているか確認します。必要に応じてsudo update-locale LANG=ja_JP.UTF-8を実行してください。 - Git Bashの場合:ウィンドウタイトルバー右クリック →「Options」→「Text」を開き、「Character set」が UTF-8 になっていることを確認して「Apply」を押します。
まとめ & ステップアップ
Windows環境でBashを最短で動かすための要点を整理します:
- ツールの選び方:本格開発・Dockerなら
wsl --installでWSL2(推奨)、手軽なコマンド・自動化ならインストーラー1発のGit Bashの2択で決まり。 - スクリプト実行手順:最上行に
#!/bin/bashを記述し、chmod +x script.shで権限を付けて./script.shで実行する。 - 動かない時の鉄則:
$'r': command not foundエラーが出たら改行コードが原因。dos2unixコマンドかVS Codeで即座にLFへ変換する。
手作業によるクリック操作や定型業務をシェルスクリプトで自動化し、作業効率を劇的に高めていきましょう。
次に読みたいおすすめ関連記事
- WSL2 vs Git Bash vs PowerShellの徹底比較:仕組み・性能ベンチマーク・使い分けの完全比較
- Git Bashとは?Windowsでのインストールと基本操作・コマンド一覧:Git Bashを使い倒すための基本ガイド
- dos2unix – Windows/Mac形式の改行をUnix形式(LF)へ変換する:改行コードトラブルのコマンド解決法
- chmodコマンドの使い方とパーミッションの仕組み:実行権限エラーを安全に解消する基礎知識
- 【Linuxコマンド一覧・早見表】実務で頻出する主要コマンド逆引き完全ガイド:Bashで使う頻出コマンドを総まとめ
