WindowsでLinuxコマンドを使う|WSL2でUbuntuをインストールしWindows Terminalに追加する方法(sudo: command not foundの対処法)

windows-terminal-prograshi(プロぐらし)-kvGeneral

WSL2とは、Windows Subsystem for Linux 2の略で、Windows上でLinuxが使えるサービスのことです。WSLの後継として2019年にリリースされました。

WSL2を使うとWindows上でsudoなどLinuxのコマンドを使うことができます。(command not foundと言われなくなります)

導入はとても簡単です。またインストール後は自動でWindows Terminalに追加してくれます。

ここでは、WindowsにLinuxディストリビューションをWSL2として追加する方法を解説しています。

前提条件

WLS2を使うためにはwindowsのバージョンが条件に沿っている必要があります。

  • x64 システムの場合:バージョン 1903 以降、ビルド 18362 以上。

Windowsバージョンの確認方法

自分のPCの状態を確認するには、コマンドラインにwinverと入力すれば、バージョン情報のウィンドウが表示されます。

$ winver

バージョンやビルドが古い場合

Windows メニューから 「設定」→「更新プログラムの確認」をクリックします。

検索まどに「更新」と入力すれば表示されます。

必要に応じて「ダウンロードとインストール」を行ってください。

(参考)Windows 10 用 Windows Subsystem for Linux のインストール ガイド


仮想マシン機能を有効にする

仮想マシンとして使うための機能を有効化します。WindowsメニューからPowerShellを検索して、管理者として開きます。

次のコマンドを実行します。

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

再起動すれば、WSLのインストールが完了します。

注意点

再起動は必須です。再起動しないとWSLコマンドがないというエラーがでます。


Linuxカーネル更新プログラム パッケージの実行

続いて、 Linuxカーネル更新プログラムの最新パッケージをダウンロードし、インストールを行います。

次のリンクをクリックすればダウンロードが始まります。ダウンロードが完了したらダブルクリックしてインストールを行います。


WSLのデフォルトバージョンを2に指定する。

$ wsl --set-default-version 2
WSL 2 との主な違いについては、https://aka.ms/wsl2 を参照してください

正しく変更できると下に、「WSL 2 との主な違いについては、https://aka.ms/wsl2 を参照してください」というメッセージが表示されます。


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

Microsoft Store を開き、インストールしたいLinuxディストリビューションを選択します。

ディストリビューション内容
UbuntuDebian系。企業(Canonical社)が開発・運用。
Kali LinuxDebian系。ペネトレーションテストが主目的
Debian無料のLinuxディストリビューション。ボランティアで開発・運用。
Alpine WSL軽量。Debianベースのライブラリと互換性がない場合がある

選択するなら、UbuntuかDebianが無難です。ここではUbuntuをインストールします。

Ubuntuを選択して「入手」をクリックします。

インストールが完了したら、「起動」をクリックします。


すると、Ubuntuのコンソールが起動します。


Ubuntuのセットアップ

コマンドラインでUbuntuのセットアップをしていきます。

最初にユーザー名の入力を求められるので、好きな名前を入力します。(windowsのログイン情報を合わせる必要はありません)

Installing, this may take a few minutes...
Please create a 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:

続いてパスワードの入力を求められるので、好きなパスワードを入力します。(画面上に表示されませんが、打ち込まれています)

New password:
Retype new password:

設定が完了すると次のようなメッセージが表示されます。

passwd: password updated successfully
Installation successful!
To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.

Welcome to Ubuntu 20.04.2 LTS (GNU/Linux 5.4.72-microsoft-standard-WSL2 x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage

  System information as of Thu Jul 22 22:07:48 JST 2021

  System load:  0.07               Processes:             8
  Usage of /:   0.4% of 250.98GB   Users logged in:       0
  Memory usage: 10%                IPv4 address for eth0: 172.25.88.154
  Swap usage:   0%

1 update can be installed immediately.
0 of these updates are security updates.
To see these additional updates run: apt list --upgradable


The list of available updates is more than a week old.
To check for new updates run: sudo apt update


This message is shown once a day. To disable it please create the
/home/docker/.hushlogin file.

以上でUbuntuのインストールは完了です。


Ubuntuのインストール確認

Ubuntuが正しくインストールされたか確認するために、Windows Terminalを開き、wsl -l -v を実行します。

$ wsl -l -v
  NAME                   STATE           VERSION
* docker-desktop-data    Running         2
  docker-desktop         Running         2
  Ubuntu                 Running         2

Ubuntuが表示され、VERSIONが2になっていればOKです。WSL2としてUbuntuが認識されています。

tips

wsl -l -v コマンドのオプションはそれぞれ次のようになっています。

オプション意味ロングオプション
-lディストリビューションの一覧を表示–list
-v詳細情報を表示。-l オプションでのみ使える(※–versionではない)–verbose

▼注意点

#-lのみの場合はバージョンや状態を表示しません。
$ wsl -l
Linux 用 Windows サブシステム ディストリビューション:
docker-desktop-data (既定)
docker-desktop


#-vというオプションはありません
$ wsl -v
コマンド ライン オプションが無効です: -v
Copyright (c) Microsoft Corporation. All rights reserved.

なお、Windows Terminal上部のタブをクリックすると、Ubuntuが追加されています

Ubuntuを選択すれば、Linux系コマンドを実行することができます。

To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.

docker@user:/mnt/c/Users$

コマンドの実行例

Linuxディストリビューションがインストールできたので、Linux特有のコマンドを実行してみます。

sudo hwclock -s

マシン(ここではWSL2)の時刻にPCの時刻をセットするコマンドです。WSL2ではPCがスリープするとWindows本体と時刻がズレる問題があり、これを解消するものです。

  • sudo: スーパーユーザーとしてコマンドを実行する。
  • hwclock:  マシンの時刻設定(ハードウェア・クロック)を行う
  • -s: –setオプション。 –dateオプションで指定した時刻に設定する
$ sudo hwclock -s
[sudo] password for docker:

$ date
Fri Jul 23 10:21:41 JST 2021

パスワードを求められ、入力するとコマンドが実行できました。(bash: sudo: command not foundが出ません)

以上でLinuxディストリビューションのインストールは完了です。

タイトルとURLをコピーしました