神戸学院大学 経営学部 林坂ゼミ

CLI 入門トップページ

« 戻る 次へ »

Windows Coreutils

Coreutils とシェル

Windows Coreutils とは,Linux や Unix 系 OS で広く利用されている GNU Core Utilities (coreutils) を,Windows 環境でも利用できるようにしたツール群の総称です.GNU Core Utilities には,ファイルやディレクトリの操作,テキストの表示,システム情報の確認などを行うための基本的なコマンドが含まれています.代表的なコマンドとして,lscpmvrmcatpwdなどが挙げられます.

Windows では従来,dircopydelなどのコマンドが利用されてきましたが,Linux や macOS との操作方法の違いが学習や運用の障壁となることがあります.Windows Coreutils を導入することで,Windows 上でも Linux とほぼ同じコマンド体系を利用できるため,異なる OS 間で共通の操作方法を習得・活用できるようになります.

近年では,Git for Windows に含まれる Git Bash や,MSYS2,Cygwin,WSL (Windows Subsystem for Linux) などの環境を通じて GNU Core Utilities を利用する機会が増えています.特にソフトウェア開発やサーバ管理の分野では,Linux 環境で使用するシェルスクリプトやコマンドの多くをそのまま Windows 上で試せるため,開発効率や学習効率の向上に役立ちます.

大学の情報系演習においても,Windows Coreutils を利用することで,学生は Windows を使用しながら Linux 系コマンドの基礎を学ぶことができます.その結果,将来的に Linux サーバやクラウド環境を扱う際にも,スムーズに知識を応用できるようになるでしょう.

GNU Core Utilities と Bash は,どちらも Linux や Unix 系 OS で広く利用されていますが,その役割は異なります.簡単に言えば,Bash はコマンドを受け付けて実行する「シェル」であり,GNU Core Utilities は実際の処理を行う「コマンド群」です.

例えば,ユーザーが Bash 上で次のコマンドを実行したとします.

ls -l ⏎

このとき,Bash は利用者が入力した文字列を解析し,ls というプログラムを探して実行します.実際にディレクトリの内容を一覧表示する処理を行っているのは,GNU Core Utilities に含まれる ls コマンドです.つまり,Bash 自身がファイル一覧を表示しているのではなく,GNU Core Utilities のプログラムを呼び出しています.

Bash と GNU Core Utilities の関係は,しばしば「司令塔と作業員」に例えられます.Bash がユーザーからの指示を受け取り,どのプログラムを実行するかを決定する司令塔の役割を果たし,GNU Core Utilities が実際のファイル操作や情報表示などの作業を担当します.

なお,シェル(Shell)とは,ユーザーと OS との仲介役となるソフトウェアのことです.ユーザーが入力したコマンドを解釈し,OS や各種プログラムに処理を依頼した後,その結果を利用者へ返す役割を担当します.「Shell(殻)」という名称は,OS の中核であるカーネル (Kernel) を外側から包み込み,利用者が操作しやすい形で機能を提供することに由来しています.

すでにここで説明した Bash (Bourne Again SHell) は,Linux や Unix 系OSで広く利用されているシェルの一種です.ユーザーがコマンドを入力すると,その内容を解析し,必要に応じて GNU Core Utilities などのプログラムを実行します.また,単にコマンドを実行するだけでなく,変数,条件分岐,繰り返し処理,関数などの機能も備えており,複数のコマンドを組み合わせた自動処理を実現できます.

目次に戻る

コマンドプロンプト

まず,Windows Coreutils をインストールする前にコマンドプロンプトでは Linux コマンドを実行できないことを確認しておきます.コマンドプロンプトでカレントディレクトリにあるファイルとディレクトリの一覧を表示するにはdir」コマンドを利用します.

C:\Users\rinsaka\Documents\ps>dir ⏎
 ドライブ C のボリューム ラベルがありません。
 ボリューム シリアル番号は 8CDF-6D19 です

 C:\Users\rinsaka\Documents\ps のディレクトリ

2026/08/02  09:13    <DIR>          .
2026/08/02  09:13    <DIR>          ..
2026/08/02  09:14                72 test30.txt
               1 個のファイル                  72 バイト
               2 個のディレクトリ  19,700,359,168 バイトの空き領域

C:\Users\rinsaka\Documents\ps>

Linux ではls」コマンドが利用されますが,コマンドプロンプトでは動作しないはずです.

C:\Users\rinsaka\Documents\ps>ls ⏎
'ls' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。

C:\Users\rinsaka\Documents\ps>

コマンドプロンプトでテキストファイルの内容を表示するにはtypeコマンドを利用します.

C:\Users\rinsaka\Documents\ps>type test30.txt ⏎
This is a test string.
This is a test string.
This is a test string.

C:\Users\rinsaka\Documents\ps>

Linux ではcat」コマンドですが,これもコマンドプロンプトでは動作しません.

C:\Users\rinsaka\Documents\ps>cat test30.txt ⏎
'cat' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。

C:\Users\rinsaka\Documents\ps>

目次に戻る

PowerShell

PowerShell でテキストファイルの内容を検索するには,Get-Content」コマンドレットSelect-String」コマンドレットを次のように組み合わせます.

PS C:\Users\rinsaka\Documents\ps> Get-Content .\test30.txt | Select-String test ⏎

This is a test string.
This is a test string.
This is a test string.

PS C:\Users\rinsaka\Documents\ps>

PowerShell ではGet-Content」のエイリアス(別名)として Linux コマンドと同じ名前の「cat」コマンドが準備されているため,次のコマンドが動作します.

PS C:\Users\rinsaka\Documents\ps> cat .\test30.txt | Select-String test ⏎

This is a test string.
This is a test string.
This is a test string.

PS C:\Users\rinsaka\Documents\ps>

しかしながら,Linux の「grep」コマンドSelect-String」のエイリアスではない(オプションの指定方法なども異なる)ことから,次のコマンドは動作しません.

PS C:\Users\rinsaka\Documents\ps> cat .\test30.txt | grep test ⏎
grep: The term 'grep' is not recognized as a name of a cmdlet, function, script file, or executable program.
Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
PS C:\Users\rinsaka\Documents\ps>

目次に戻る

Windows Coreutils のインストール

Windows Coreutils のインストールはコマンドプロンプト,または PowerShell から次のコマンドを実行します.なお,Coreutils を利用するには,インストール完了後にコマンドプロンプトや PowerShell を再起動してください.

PS C:\Users\rinsaka\Documents\ps> winget install Microsoft.Coreutils ⏎
'msstore' ソースでは、使用する前に次の契約を表示する必要があります。
Terms of Transaction: https://aka.ms/microsoft-store-terms-of-transaction
ソースが正常に機能するには、現在のマシンの 2 文字の地理的リージョンをバックエンド サービスに送信する必要があります (例: "US")。

すべてのソース契約条件に同意しますか?
[Y] はい  [N] いいえ: y ⏎
見つかりました Coreutils for Windows [Microsoft.Coreutils] バージョン 2026.6.16
このアプリケーションは所有者からライセンス供与されます。
Microsoft はサードパーティのパッケージに対して責任を負わず、ライセンスも付与しません。
ダウンロード中 https://github.com/microsoft/coreutils/releases/download/v2026.6.16/coreutils-2026.6.16-arm64.exe
  ██████████████████████████████  4.78 MB / 4.78 MB
インストーラーハッシュが正常に検証されました
パッケージのインストールを開始しています...
インストーラーは管理者として実行するように要求します。プロンプトが表示されます。
インストールが完了しました
PS C:\Users\rinsaka\Documents\ps>

目次に戻る

コマンドプロンプトでの Linux コマンド

Windows Coreutils のインストール後にコマンドプロンプトを再起動すると,コマンドプロンプトで Linux のコマンドが利用できるようになります.コマンドプロンプトでのファイルやディレクトリの一覧コマンドはdirでした.

C:\Users\rinsaka\Documents\ps>dir ⏎
 ドライブ C のボリューム ラベルがありません。
 ボリューム シリアル番号は 8CDF-6D19 です

 C:\Users\rinsaka\Documents\ps のディレクトリ

2026/08/02  09:13    <DIR>          .
2026/08/02  09:20    <DIR>          ..
2026/08/02  09:14                72 test30.txt
               1 個のファイル                  72 バイト
               2 個のディレクトリ  19,699,523,584 バイトの空き領域

C:\Users\rinsaka\Documents\ps>

Linux では「ls」ですが,次のとおり,コマンドプロンプトでも動作するようになりました.

C:\Users\rinsaka\Documents\ps>ls ⏎
test30.txt

C:\Users\rinsaka\Documents\ps>

詳細情報を表示するために「-l」オプションを付与します.

C:\Users\rinsaka\Documents\ps>ls -l ⏎
total 72
-rwxrwxrwx 1 rinsaka なし 72 Aug  2 09:14 test30.txt

C:\Users\rinsaka\Documents\ps>

隠しファイルも含めて詳細表示を行うには「-la」オプションを付与します.

C:\Users\rinsaka\Documents\ps>ls -la ⏎
total 4168
drwxrwxrwx 1 rinsaka なし    0 Aug  2 09:13 .
dr-xr-xr-x 1 rinsaka なし 4096 Aug  2 09:20 ..
-rwxrwxrwx 1 rinsaka なし   72 Aug  2 09:14 test30.txt

C:\Users\rinsaka\Documents\ps>

また,Linux の「cat」コマンドも利用できるようになりました.

C:\Users\rinsaka\Documents\ps>cat test30.txt ⏎
This is a test string.
This is a test string.
This is a test string.

C:\Users\rinsaka\Documents\ps>

さらに,Linux の「grep」コマンドももちろん動作します.

C:\Users\rinsaka\Documents\ps>cat test30.txt | grep test ⏎
This is a test string.
This is a test string.
This is a test string.

C:\Users\rinsaka\Documents\ps>

目次に戻る

PowerShell での Linux コマンド

Windows Coreutils のインストール後に PowerShell を再起動すると,PowerShellでも Linux のコマンドが利用できるようになります.インストール前には動作しなかった検索のための「grep」コマンドが動作するようになりました.

PS C:\Users\rinsaka\Documents\ps> cat .\test30.txt | grep test ⏎
This is a test string.
This is a test string.
This is a test string.
PS C:\Users\rinsaka\Documents\ps>

Windows Coreutils をインストールするとここで見たとおり Windows で Linux コマンドが動作するので,積極的に利用すると良いでしょう.

目次に戻る