feature image

2022年3月13日 | ブログ記事

[ 新歓ブログリレー ] WSL をインストールしよう!

こんにちは。21B のゆきくらげです。新歓ブログリレー 5 日目の今回は Windows で Web 開発を行う上でとても便利な、 WSL の導入について解説します。

(この記事ではWSL は WSL 2 のことを指します)

そもそもWSL って何?

詳しい説明は他の記事に任せるとして、ここでは簡単な説明をします。

WSLWindows Subsystem for Linux の略です。直訳すると "Linux 用の Windows サブシステム" となります。誤解を恐れずに言うと、Windows の一部のリソースを使って Linux をエミューレートする仕組みです。

WSL を導入することで次のような利点が得られます。

インストールと初期設定

WSL のインストール
コマンド wsl --install を使用して Linux 用 Windows サブシステムをインストールします。 Windows コンピューター上で、好みの Linux ディストリビューションによって実行される Bash ターミナルを使用します。Ubuntu、Debian、SUSE、Kali、Fedora、Pengwin、Alpine などを使用できます。

Windows 10 バージョン 2004 (2020年5月 ~) 以降は、非常に簡単に WSL が導入できます。ぶっちゃけると↑の公式の Docs が全てです。

まず、管理者権限のPowerShell (アプリ検索 → "PowerShell" と入力 → "Windows PowerShell" で右クリック → 管理者として実行) にて次のコマンドを実行します。

wsl --install

すると割と長いダウンロードが走り、Ubuntu が起動すると思います。実はもうこれでインストールは完了していて、あとは初期設定です。

これらを設定すると、シェル(bash)が起動します。次のようになっていれば OK。

ユーザー名@...:~$

以降は PowerShell で Ubuntu コマンドを実行すれば wsl が起動します。

wsl をシャットダウンするときは wsl --shutodown コマンドを実行します。

これでにて導入は終了です.

シェルの簡単な使い方

まずはシェルに最初から表示されている文字列を見てみます.

ユーザー名@...:~$

この ~ の部分をカレントディレクトリといいます.カレントディレクトリは現在いるディレクトリの位置です.~ は WSL のホームディレクトリを表しています.(後でもう少し説明します)

そして,$ の右側にはコマンドを入力します.

コマンドは

コマンド名 コマンドに渡す何かしら

という形をしています.先ほどの wsl --install では wsl--install を渡しています.

基本的なコマンド

ls コマンドを使って今いるディレクトリに含まれるフォルダとファイルの一覧を表示できます.

ls

今は何も表示されません.これはまだディレクトリやファイルなどを作っていないからです.

mkdir でディレクトリを作成できます.

mkdir test

もう一度 ls を実行すると

test

と表示されると思います.

cd でカレントディレクトリを変更できます.

cd test

カレントディレクトリが ~/testになりました.例えばここで

mkdir test2
mkdir test3

とすると,ディレクトリの構造は次のようになります.

~
+ test <- イマココ
  + test2
  + test3

lsコマンドを実行すると test2test3 が表示されます.

一階層上に戻るにはcd ..を使います

cd ..
~ <- イマココ
+ test
  + test2
  + test3

ディレクトリの削除には rm -r ディレクトリ名 を使います.(今は -r を気にしなくても良いです)カレントディレクトリが ~ であることを確認して次のコマンドを実行します

rm -r test

続いて ls を実行します.test ディレクトリが削除されたことが分かります.

このように,基本的には 「cd で目的地まで行って,lsで中身を確認しつつ,コマンドを実行する」動きを繰り返して利用します.

よく使うコマンドについて

(僕が)よく使うコマンドを載せておきます。軽く機能を説明しますが、詳しい解説は Google 先生に任せます。

Windows Terminal について

Windows Terminal はタブ機能の付いたターミナルです.Windows の PowerShell や WSL の bash などを同じウィンドウで管理することができ,開発には必須のアプリといえます.

最近プリインストールアプリになりましたが,インストールされていない人は Microsoft Store からインストールすることができます.

Windows Terminal を起動し,上部タブの + ボタンの横にあるメニューボタンを押すと Terminal で使えるシェルの一覧が出ます.ここから Ubuntu を選択することで,WSL のシェルを起動することができます.

起動時のディレクトリを変更(Terminal で WSL を使うならほぼ必須)

ここでシェルのカレントディレクトリを見ると PowerShellから起動したとき ~ であったのが /mnt/c/Users/[ユーザー名] になっていると思います.実はこれは罠で,WSL は /mnt/c 以下のファイルを操作するのが非常に遅いのです.

WSL と Windows ではそれぞれ独立してファイルを管理します.

~WSL 側のホームディレクトリで,

/mnt/c/Users/[ユーザー名]Windows 側のホームディレクトリです.

ファイルフォーマットの違いによって読み書きの速度が遅くなっているらしいですが,詳しいことは僕も分かっていません.しかし,とにかく /mnt/c のままではまともな体験は得られないので,変更してしまいます.

Terminal のメニューから,設定を開きます.サイドバーの「プロファイル」から Ubuntu を選択して,「開始ディレクトリ」を %USERPROFILE% から \\wsl$\Ubuntu\home\ユーザー名 に変更しましょう.

WSL のシェルを再度開くと,カレントディレクトリが ~ になっていると思います.

PATH を通す」について

作業中,「PATH を通す」という作業が必要になることが稀によくあります.コレをなるべく簡単に説明します.

まず知っていてほしいのは,(大半の)コマンドに本体があるということです.
例えば,ls コマンドの本体は /usr/bin/ls にあります.ユーザーが ls を実行すると,シェルはそれを受け取り /usr/bin/ls を実行します.実際,ls コマンドを /usr/bin/ls と書いても動作しますが,ここでシェルが ls をどうやって /usr/bin/ls と解釈しているのかがキモになってきます.

PATH は環境変数の一種です.環境変数は,シェルを立ちあげている限りどこからでも参照できる値です.文で書いても分かりにくいので,次のコマンドで PATHの中身を見ることができます.

echo $PATH

結果

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin: ....

ズラっとでてきましたね.PATH では区切り文字として : が使われています.これを踏まえてみてみると,複数のディレクトリへのパスが連なっていることが分かると思います.

シェルがコマンドを受け取ると,この PATH に設定されたディレクトリの中から コマンドと同名のファイルを見つけてきて実行します.もう一度 PATH を見てみると /usr/bin があります!ここに ls が存在することでシェルはls/usr/bin/ls と解釈することができます.(逆に存在しなかったら ls ではなく /usr/bin/ls と打たなくてはいけなくなります!)

さて,これで PATH の役割は コマンドを実行するとき /usr/bin/ls のように入力しなければならないところを ls と入力するだけでよくする事だとわかりました.

時として,この PATH にないディレクトリを新たに PATH に追加したい事があります.こうすることでユーザー定義のコマンドをコマンド名だけで実行できるようになるからです.そして,この PATH にディレクトリを登録することを「PATH を通す」と言う訳です.

PATH は次のコマンドを実行することで通すことができます.いますぐ必要はありませんが,「PATHを通す」の意味を覚えておいて,必要になったときググれるようにしておきましょう.

$echo 'export PATH=パス:$PATH' >> .bash_profile

バックアップについて

定期的なバックアップは非常に大事です。PowerShell から下のコマンドを実行することでまるごとバックアップすることができます。(ubuntu20220305の部分は適当な名前を付けましょう。)

cd ~/Documents && wsl --export Ubuntu ubuntu20220305.tar

サイズによってかなり時間がかかりますが、終わると自分のドキュメントフォルダにバックアップが作成されるはずです。これを外部ディスクにとっておくなりなんなりしましょう。

いかが

でしたか

?

明日のブログリレーはは Swan 君 (@SWSRtech) の記事です。お楽しみに!

yukikurage icon
この記事を書いた人
yukikurage

色々しますよ

この記事をシェア

このエントリーをはてなブックマークに追加
共有

関連する記事

2022年4月7日
traPグラフィック班の活動紹介
annin icon annin
2022年4月5日
アーキテクチャとディレクトリ構造
mazrean icon mazrean
2022年3月29日
課題・レポートの作成、何使う?【新歓ブログリレー2022 21日目】
aya_se icon aya_se
2022年11月27日
Chromebook&VSCode Server(プレビューアクセスなし)で開発環境を作る
oribe icon oribe
2022年4月25日
部内ichigojamに参加した
Komichi icon Komichi
2022年4月19日
【入門】JUCEを使ってVSTプラグインを作ろう!!
kashiwade icon kashiwade
記事一覧 タグ一覧 Google アナリティクスについて 特定商取引法に基づく表記