アルアカ - Arcadia Academia

Arcadia Academiaは「エンジニアリングを楽しむ」を合言葉に日本のデジタル競争力を高めることをミッションとするテックコミュニティです。

WSLとは?Windows上でLinuxを使う方法

Featured image of the post

Windowsユーザーにとって、Linux環境を手軽に利用できる「WSL(Windows Subsystem for Linux)」は、開発効率を大幅に向上させる重要なツールです。特に、Linux専用のソフトウェア開発やサーバー管理を行うエンジニアにとって、WSLはWindowsとLinuxの橋渡しをスムーズに行う便利な機能となっています。本記事では、WSLの基本的な概要、利点、使い方について解説していきます。

Linuxについておさらいしたい人は以下の記事を参照してください👍

📄Arrow icon of a page link現代のWebを支えているLinuxの基礎

[目次を開く]

WSLとは?

WSL(Windows Subsystem for Linux)は、Windows 10以降のOSでLinuxのコマンドライン環境を利用できる機能です。従来、Linuxを利用するにはデュアルブートや仮想マシンを使う必要がありましたが、WSLを使うことで、Windows上でネイティブにLinuxのコマンドやツールを実行できるようになりました。しかも、仮想マシンとは異なり、リソースの負荷が少ないため、軽快な動作を実現します。

WSLには2つのバージョンがあります。

  1. WSL 1

    互換性を重視した従来のバージョンで、Windowsカーネル上にLinuxカーネルのエミュレーションを行います。軽量で高速に動作するため、多くの開発者に利用されています。

  2. WSL 2

    Linuxカーネル自体を含んだ新しいバージョンで、完全なLinux互換性を提供します。WSL 1に比べて、ファイルシステムのパフォーマンスが大幅に向上し、Dockerなどのコンテナベースの開発ツールもサポートしています。

WSLのメリット

WSLを導入することには、開発者にとってさまざまな利点があります。特に、Windowsでの作業を続けながらLinuxの強力なツール群を活用できる点が大きな特徴です。

1. Linux環境の手軽な導入

WSLは、コマンド1つでLinuxディストリビューションをインストールできるため、Linuxのセットアップが非常に簡単です。これにより、初心者でもLinux環境を簡単に試すことができます。たとえば、Ubuntu、Debian、Fedoraなど、主要なディストリビューションがMicrosoft Storeから簡単にインストール可能です。

2. WindowsとLinuxのシームレスな連携

WSLを使えば、LinuxとWindowsのファイルを相互にアクセスしたり、Linux上のツールをWindowsアプリと連携させたりすることができます。例えば、Linuxのコマンドラインツールで処理したファイルを、すぐにWindowsのアプリで開いて編集することが可能です。このシームレスな統合により、複数のOSを行き来する煩雑さが大幅に軽減されます。

3. 軽量で高速なパフォーマンス

WSLは、仮想マシンに比べて非常に軽量です。通常の仮想マシンでは、ホストOSとゲストOSが完全に分離されているため、リソースが多く消費されますが、WSLではそのようなオーバーヘッドがほとんどありません。そのため、軽量で高速なLinux環境を手に入れることができます。

4. Dockerのサポート(WSL 2)

WSL 2では、完全なLinuxカーネルが搭載されているため、Dockerなどのコンテナ技術が利用可能です。これにより、開発者はWindows環境上でLinuxコンテナを使用したアプリケーション開発やテストを効率的に行えるようになります。WSL 1では制限があったコンテナベースの開発が、WSL 2によって大幅に強化されました。

Dockerについて復習したい方は以下の記事を参照してください🐋

📄Arrow icon of a page linkDockerとは何か?その概要と利点を解説

💡
ちなみにDockerコンテナのボリュームをWindowsのファイルシステムにマウントすると、Linuxのファイルシステムに変換して解釈する処理が発生するため、動作が遅くなります。WindowsでDockerを利用する場合は、可能であればLinuxシステム上にボリュームをマウントするのがおすすめです。

WSLの有効化

まず、WSLを利用するには、Windowsの「機能の有効化」設定からWSLを有効にする必要があります。コマンドラインで以下のコマンドを実行することで、WSLを簡単に有効化できます。

wsl --install

このコマンドを実行することで、必要なコンポーネントが自動的にインストールされ、再起動後にWSLが利用できるようになります。

Linuxディストリビューションのインストール

WSLが有効化された後、次にLinuxディストリビューションをインストールします。これはMicrosoft Storeから簡単に行えます。

手順をみる

Microsoft Storeを開き、好きなLinuxディストリビューション(Ubuntuなど)を検索

Image in a image block

「入手」ボタンをクリックしてインストール

Image in a image block

インストールが完了すると、Linux環境がコマンドラインから利用できるようになります。

WSLを使ってみる

ターミナルからインストールしたディストリビューションが選択できるようになっているので、選択する。今回はUbuntuを例にみていきましょう。

Image in a image block

初回はユーザーを作成してといわれます。usernameを入力しましょう。なお、Windowsのユーザネームと同じものである必要はないです。

default UNIX user account. The username does not need to match your Windows username.
For more information visit: https://aka.ms/wslusers
Enter new UNIX username:

ユーザネームを送信すると、次はパスワードを聞かれるのでパスワードまで作成しましょう。

もろもろ設定が完了すると下記のようにターミナルの右上の+ボタンからインストールしたディストリビューションのCLIが起動できるようになります。

Image in a image block

初期設定は完了です。おめでとうございます。これでWindos上からLinux ディストリビューションを実行できるようになりました!

基本コマンドは下記のリンクより確認してみてください。

📄Arrow icon of a page linkこれだけは覚えておきたいLinuxの基本コマンド

WSLのバージョン確認と切り替え

WSLには、前述したようにWSL 1とWSL 2の2つのバージョンがあります。デフォルトではWSL 1がインストールされることが多いため、WSL 2に切り替える場合は以下のコマンドを実行します。

wsl --set-version <ディストリビューション名> 2

これにより、WSL 2の機能を利用できるようになります。


WSLのバージョンおよびインストールされているディストリビューションの確認は以下のコマンドになります。

wsl -l -v
Image in a image block

NAMEがディストリビューション名で、VERSIONがWSLのバージョンです。

WSLの活用事例

WSLは、多くの開発者やITエンジニアにとって非常に有用なツールです。以下は、具体的な活用例です。

  • Web開発

    Linux上の開発ツール(Node.js、Python、Rubyなど)を使って、Windows上でWebアプリケーションを開発。ブラウザで動作確認しながら開発を進められます。

  • サーバー管理

    リモートサーバーにアクセスするためのSSHや、Linuxコマンドを使ったローカルでの環境構築が手軽に行えます。

  • 機械学習

    TensorFlowやPyTorchなど、Linuxベースの機械学習ライブラリをWindows上で直接利用し、効率的な実験や開発が可能です。

まとめ

WSLは、Windows環境でLinuxを利用したい開発者にとって、非常に強力なツールです。軽量でありながら高いパフォーマンスを発揮し、WindowsとLinuxのシームレスな統合を実現します。特にWSL 2の登場により、Dockerを使ったコンテナ開発も容易になり、ますます活用の幅が広がっています。WindowsユーザーでありながらLinux環境を手軽に活用したいという方には、ぜひ、WSLを導入してみてください。

プログラミング学習でお悩みですか?

現役エンジニアがあなたの学習をマンツーマンでサポートします。

  • 学習の進め方がわからない
  • ポートフォリオの作り方を知りたい
  • 現場で使える技術を学びたい
まずは30分の無料相談

相談は完全無料・オンラインで気軽に

あなたを爆速で成長させるメンタリングプログラムはこちら

メンタープログラムバナー

プログラミングを学ぶならテックアカデミー

テックアカデミー
無料相談はこちら