見出し画像

Windows11 WSL2 Ubuntu の超基本的な使い方【誰でもできるよ】

Windows11 WSL2 Ubuntu の最も基本的となる使い方について記事にします。【誰でもできるよ】シリーズの二つ目の記事です。

今回の記事の目標は

「Windows11 WSL2 Ubuntu で生成 AI の環境を
作る為に必要な知識を覚える」

です。

  • Windows11 + WSL2 特有の事

  • Ubuntu (Linux) 一般の事

  • 使う頻度の多い便利なコマンドの簡単な使い方

について、各項目毎に分けて記載します。

なお、【誰でもできるよ】シリーズの一つ目の記事、Windows11 に WSL2 Ubuntu をインストールして使ってみる記事の内容を前提としていますので、先にご覧ください。


Windows11 + WSL2 特有の事

この章では、Windows11 + WSL2 を使用するにあたり、覚えておくと便利な事について記載します。

WSL2 Ubuntu を起動する複数の方法

前回の記事では、Windows11 のターミナルアプリのコマンドプロンプトか PowerShell に

ubuntu

を入力して、そのターミナル内で WSL2 Ubuntu を起動する方法を紹介しました。

それ以外にも WSL2 Ubuntu を起動する方法があります。

一つは検索ボックスから Ubuntu アプリを探して起動する方法です。検索ボックスに "ubuntu" と入力すると、Ubuntu アプリが表示されますので、マウスでクリックすると、WSL2 Ubuntu が起動した状態でターミナルアプリが開きます。

検索ボックスに "ubuntu" と入力して Ubuntu アプリを起動

もう一つはターミナルアプリの新しいタブとして起動する方法です。タブを追加する "+" ボタンの右隣りの "v" ボタンを押すとメニューが開きますので、その中から Ubuntu をクリックすると、新しいタブで WSL2 Ubuntu が起動します。

ターミナルアプリのメニューから起動

WSL2 Ubuntu をインストールした直後には表示されませんので、ターミナルアプリを再起動してください。

紹介した3種類の方法のどれを使用してもかまいません。使いやすい方法で OK です。

個人的には wsl コマンドと併用する事が多いので、Windows11 ターミナルアプリの新しいタブで WSL2 Ubuntu を起動する事が多いです。

WSL2 Ubuntu を完全に停止する方法

前回の記事では、WSL2 Ubuntu を終了する場合には、WSL2 Ubuntu のプロンプトに

exit

と入力すると紹介しました。その時には

(実際には WSL2 Ubuntu は未だ動作していますが、一定時間後に自動的に終了します)

https://note.com/hiro20180901/n/nc798a07485e2

と書きました。

Windows11 ターミナルアプリのコマンドプロンプトや Windows PowerShell で

wsl -l -v

を実行すると、WSL2 の動作状態が一覧で表示されます。オプションの意味は、

  • -l , --list : ディストリビューションを一覧表示

  • -v, --verbose : 詳細情報を表示

です。WSL2 Ubuntu を終了した直後にこのコマンドを実行すると、STATE (状態) が Running (実行) になっています。

wsl -l -v の結果 (WSL2 Ubuntu 動作中)

時間が経過すれば自動で STATE (状態) は Stopped (停止) になりますが、確実に再起動させたい場合など、強制的に停止状態にする場合には、Windows11 ターミナルアプリのコマンドプロンプト又は PowerShell で

wsl --shutdown

を実行します。すると

wsl -l -v の結果 (WSL2 Ubuntu 停止)

のように、STATE (状態) が Stopped (停止) になります。

複数の WSL2 Ubuntu を使用している場合に、使用中の WSL2 Ubuntu を確実に停止させてから、もう片方の WSL2 Ubuntu 等を起動する事ができ、メインメモリの節約に有効です。

Windows11 から WSL2 Ubuntu のディレクトリを参照する

WSL2 Ubuntu のディレクトリは、Windows11 のエクスプローラーから参照してコピーや編集する事が出来ます。

Windows11 エクスプローラーから WSL2 Ubuntu のディレクトリを参照

PC や ネットワークと並んで、Linux と Ubuntu が参照できるようになっています。WSL2 Ubuntu のコマンドラインの操作に慣れないうちは、Windows11 のエクスプローラーから操作するのも「あり」です。

設定ファイルの編集も、Windows11 のメモ帳 (Notepad) や Visual Studio Code で行う事も出来ます。(最近のメモ帳は改行コードを自動判別しますので、WSL2 Ubuntu のファイル編集に使用しても大丈夫です)

WSL2 Ubuntu から Windows11 のドライブを参照する

逆に、WSL2 Ubuntu から Windows11 のドライブを参照する事も出来ます。

C ドライブなら '/mnt/c/'、D ドライブなら '/mnt/d/' に cd コマンドで移動する事により、Windows11 のフォルダを参照する事が出来ます。

cd /mnt/c/Users/User/Desktop/
ls -l
WSL2 Ubuntu から Windows11 のドライブを参照

Windows11 側に保管してあるファイルを cp コマンドで WSL2 Ubuntu に持ってきたり、Windows11 のアプリを起動する事も出来ます。

WSL2 Ubuntu のプロンプトからメモ帳を起動して編集
メモ帳で編集したファイルが WSL2 Ubuntu 側に保存されている

このように、Windows11 の機能をシームレスに使える事が WSL2 で Ubuntu (Linux) を使う一番のメリットになります。

不要なファイルを削除します。

rm test.txt

Ubuntu (Linux) の一般の事

この章では、WSL2 に限らず Ubuntu や Linux を使う上で覚えておいた方が良い事について記載します。(Ubuntu は Debian というディストリビューションから派生していますので、共通する知識も多いです)

一般ユーザーとスーパーユーザー

Ubuntu (Linux) には、二種類のユーザーの種類があります。一般ユーザーとスーパーユーザーです。スーパーユーザーは、Windows11 の「管理者 (Administrator)」 と同様の考え方です。

スーパーユーザーは root というユーザー名で、Ubuntu (Linux) の全てのディレクトリのファイル・フォルダの追加・編集・削除が可能で、全てのプロセスの停止が可能です。全能神のようなユーザーです。

その代わり、操作ミスをすると Ubuntu (Linux) が起動できなくなったり、一般ユーザーの重要なファイルを削除するなど、大きなトラブルに繋がる可能性があります。

Ubuntu では、通常は一般ユーザーで操作します。インストール時に作成したユーザーは一般ユーザーです。

スーパーユーザーの権限が必要な操作のみ、sudo コマンドで一時的に権限を取得して実行します。

ホームディレクトリ

一般ユーザーには、自分専用のディレクトリ (Windows 風の表現だとフォルダ) があり、ホームディレクトリと呼びます。

ディレクトリの区切りは '/' (スラッシュ) で、一般ユーザー名が "hiro" の場合には、ホームディレクトリは "/home/hiro/" にあります。

自分で作成した文章や、ダウンロードしたソフトウェア等は、基本的に自分のホームディレクトリに置きます。

ファイルとディレクトリのパーミッション

Windows11 では、拡張子によりファイルの種類が分けられます。xlsx は Excel 用、exe は実行ファイル、zip は圧縮ファイル、等々。

Ubuntu (Linux) では、便宜上拡張子で区別していますが、実際にはファイルのパーミッションにより実行ファイルかどうかを指定しています。

コマンドの意味については後半で説明しますが、WSL2 Ubuntu を起動して、プロンプトに以下のコマンドを貼り付けて実行してみましょう。(&& は複数のコマンドを連続して実行する為の接続子です)

touch aa.txt && touch bb.txt && touch cc.txt && mkdir dd && ls -l
chmod go+w bb.txt && chmod a+x cc.txt && ls -l

結果は次の様になります。

パーミッション変更の実行結果

ls コマンドは、ディレクトリの中身を表示するコマンドです。一つ目と二つ目で、先頭の部分が変化しているのが分かります。先頭部分を拡大します。

パーミッション

10文字が一組になっていて、

  • 先頭1文字 : 'd' ならディレクトリ、'-' ならファイル

  • 3文字ずつ一組で、「自分」「所属するグループ」「それ以外のユーザー」

  • 'r' があれば読込可能、'w' があれば書込可能、'x' があれば実行可能、'-' ならそれぞれ不可

という意味になります。

WSL2 Ubuntu の場合は自分一人の環境でしょうから、2文字目から4文字目の 'rwx' に着目して、'x' があれば実行ファイルだ、と分かれば、とりあえずは良いかと思います。

最後に、作成したファイルとディレクトリを消去します。以下のコマンドを同じ場所で実行してください。

rm *.txt && rmdir dd

カレントディレクトリの実行ファイルの実行方法

今の時点で居るディレクトリの事をカレントディレクトリと言います。

カレントディレクトリに実行ファイル aa.sh がある時に、次の方法では実行できません。

aa.sh  # 実行できない

必ずカレントディレクトリを表す './' (ピリオドとスラッシュ) を先頭に付ける必要があります。

./aa.sh

セキュリティーの面からこのようになっています。(カレントディレクトリに悪意のあるスクリプトを置かれて、意図せず実行するのを防止する)

タブ補完

WSL2 Ubuntu (Linux) というよりも、bash と呼ばれるシェルの機能ですが、ファイル名やディレクトリ名を途中まで入力してから TAB キーを押すと、残りの部分が補完されて表示されます。

touch LongLongFileName
ls Long

ここまで入力して TAB キーを押してください。すると、

ls LongLongFileName

まで補完されます。

TAB 補完前
TAB 補完後

複数の候補がある場合には TAB キーをもう一度押す (2回押す) と候補が表示されますので、続きをもう少し入力してから、もう一度 TAB キーを押すと補完されます。

touch Long_Long_File_Name
ls Long
ls Long_
ls Long_Long_File_Name
複数候補がある場合の TAB 補完 2つの候補あり
複数候補がある場合の TAB 補完 '_' 追加で補完できた

生成 AI のディレクトリ名は長い場合が多く、一文字一文字を全て入力するのは手間が掛かります。TAB 補完を上手く利用すると、キーボード入力を減らす事ができ、間違いも少なくなります。

作成したファイルを削除します。

rm Long*

コマンドラインの編集、ヒストリ

方向キーの左右で、カーソル (文字を入力する位置) を左右に変更できます。

それ以外にも、ショートカットキーを少し覚えるだけで、コマンドラインの入力が捗ります。

今回は、良く使用するショートカットキーを5つ紹介します。

  • Ctrl + a : 先頭に移動

  • Ctrl + e : 行末に移動

  • Ctrl + u : カーソル位置から前を消去 (行末にカーソルがあれば全て消去)

  • Ctrl + k : カーソル位置から後を消去 (先頭にカーソルがあれば全て消去)

ファイル名やディレクトリ名を少し間違えただけで全てを入力し直すのは大変ですよね。方向キーの上を押すと、実行したコマンドを過去履歴から遡る事ができます (ヒストリ)。方向キーの下で逆方向に戻ります。

ショートカットーキーの5つめはヒストリの検索です。

  • Ctrl + r : ヒストリを検索して探す。もう一度押すと更に探す。

ショートカットキー Ctrl + r を入力した直後
探したい文字列を入力 'Long_' を入力して検索
ショートカットキー Ctrl + e で行末に移動し検索を終了


使いたいコマンドを見つけて編集する場合には、Ctrl + a (行頭へ移動) か Ctrl + e (行末へ移動) を押します。これで Ctrl + r による検索は終了します。

検索を中止したい場合は ESC キーでキャンセルできます。

apt

Ubuntu と Debian のパッケージ管理用のソフトウェアの名称は apt です。apt でパッケージをインストール・削除する場合には、全ての一般ユーザーで使える状態にする為に共通領域に書き込みする為に、スーパーユーザーの権限が必要です。(一般ユーザーが一人でも同様です)

良く使用する例を挙げます。

  • パッケージリストの更新 (前回の記事で紹介済み)

sudo apt update
  • パッケージの更新 (前回の記事で紹介済み)

sudo apt upgrade
  • 特定のパッケージをインストール (複数指定可、例えば python3 と python3-venv)

sudo apt install python3 python3-venv
python3 と python3-venv をインストール (途中)
(Do you want to continue? [Y/n] に 'y' を入力)
python3 と python3-venv をインストール (終了時)
(実際には python3 はインストールされているので
python3-venv と依存パッケージがインストールされる)
  • パッケージリスト全体からパッケージを探す (一般ユーザーで実行可)

apt searcch python3-venv
apt search python3-venv の結果

python3-venv パッケージ名の最後に [installed] が書かれていますので、インストール済みである事が分かります。

もう一つの python3-virtualenv の最後には [installed] はありませんので、インストールされていません。

  • インストール済みのパッケージを探す (一般ユーザーで実行可)

apt list python3-venv
apt list python3-venv の結果

パッケージのバージョンも、このコマンドで確認できます。

  • パッケージを削除する

sudo apt purge python3-venv
sudo apt purge python3-venv の結果

使う頻度の多い便利なコマンド

この章では、Ubuntu に限らず Linux で一般的に使われる、使う頻度の多い便利なコマンドの簡単な使い方について記載します。

sudo

これまで幾度も出てきたコマンドです。sudo は一時的にスーパーユーザー権限を取得する為のコマンドです。一度パスワードを入力して認証されると、デフォルトでは15分間はパスワードなしで sudo コマンドを実行できます。入力するパスワードは、一般ユーザーのパスワードです。

一般ユーザーでは実行できないコマンドを実行でき、書き込みできないディレクトリに書き込む事が出来ます。

sudo コマンドは、パッケージのインストールや削除の為に apt と組み合わせて使う事が多いです。

cd

cd コマンドは、自分のホームディレクトリに戻る場合、及び指定したディレクトリに移動する場合に使います。

何も指定せずに cd のみで実行すると、自分のホームディレクトリに戻ります。

cd

一つ上のディレクトリ (親ディレクトリ) に移動する場合には

cd ..

と、ピリオド二つを指定します。

指定したディレクトリに移動する場合には

cd stable-diffusion-webui

cd /etc/

のようにディレクトリ名を指定します。

ls

ls コマンドは、指定したディレクトリに含まれるファイルとディレクトリを一覧で表示します。

現在のディレクトリのファイルとディレクトリを表示するには

ls 

と入力します。

ディレクトリを指定して一覧を見たい場合には

ls /

のようにディレクトリを指定します。

ls コマンドの実行例

パーミッションを含めて一覧を見たい場合には、'-l' オプションを付けます。

ls -l /
ls -l コマンドの実行例

ファイルが大量にあって画面内に収まらない場合には、条件を絞って表示する事が出来ます。

ls /usr/bin/l*

と '*' (アスタリスク) を付けると、先頭が 'l' で始まるファイルが表示されます。

ls /usr/bin/l* の実行結果

Ubuntu (Linux) では、先頭が '.' (ピリオド) で始まるファイルは、ls コマンドに '-a' オプションを付加しないと表示されません。

cd
ls -l
ls -la
ls の '-a' オプションの使用例


ls コマンドと cd コマンドを覚えたら、WSL2 Ubuntu の中を移動しなから探検してみてください。一般ユーザーであれば、殆どのディレクトリは書き込みできませんので、環境を壊す心配はありません。

pwd

pwd コマンドは、どのディレクトリにいるかを表示します。

pwd
cd /usr/bin
pwd
pwd コマンドの実行結果

WSL2 Ubuntu の中を探検している時に、自分の居場所が分からなくなった場合に実行してください。

less

less コマンドは、テキストファイルの中身や他のコマンドの実行結果を、ゆっくり一時停止しながら見る事が出来ます。

Ubuntu (Linux) の設定ファイルはテキストファイルである事が多いです。その中身を見るのに良く使います

less /etc/apt/sources.list
less /etc/apt/sources.list の実行結果
  • 終了する場合は 'q' を押します。

  • 画面一つ分を進める場合 : PgDn (Page Down)、SPACE

  • 画面一つ分を戻す場合 : PgUp (Page Up)、'b'

他のコマンドの実行結果を受け取って、一時停止しながら見る事も出来ます。

ls -l /usr/bin | less

'|' (バーティカルバー、縦線) はパイプと呼ばれるもので、コマンドの実行結果を次のコマンドに渡す場合に使われます。

ls -l /usr/bin | less の実行結果

大量にファイルのあるディレクトリの中身を確認する場合に便利です。

mkdir, rmdir

ディレクトリを作成するのが mkdir コマンド、ディレクトリを削除するのが rmdir コマンドです。

mkdir test
ls -l
rmdir test && ls -l
ls -l
mkdir, rmdir コマンドの実行例

ディレクトリ内にファイルが存在していると、rmdir コマンドでディレクトリを削除する事は出来ません。ファイルを全て削除してからディレクトリを削除して下さい。隠しファイル (先頭が '.' ピリオドで始まるファイル) がある場合に注意下さい。

cp, mv, rm

cp コマンドはファイルのコピー、mv コマンドはファイルの名前の変更・ファイルの移動、rm コマンドはファイルの削除です。

それぞれ、ファイル名を指定して実行します。(touch コマンドは中身のないファイルを作成するものです)

touch test
cp test test2
ls
mv test2 test3
ls
rm test test3
ls
cp, mv, rm コマンドの実行例

cp、mv、rm コマンドにはオプションが色々とありますが、先ずは基本的な使い方を押さえれば OK です。

chmod

chmod コマンドは、ファイルとディレクトリのパーミッションを設定します。

先に添付した画像を再掲します。

パーミッション

パーミッションを一度に個々にしていする方法と、一括で指定する方法の2種類があります。

個々に指定する場合には

  • 'u' (user、自分自身)、'g' (group、グループ)、'o' (other、他の人)、'a' (all、全て)

  • '+' (付加)、'-' (除去)

  • 'r' (読み込み)、'w'  (書き込み)、'x' (実行)

を組み合わせて指定します。一例を示します。

touch test.sh
chmod u+x test.sh
ls -l
chmod コマンドの実行例 1

自分自身の 'x' が付加されましたので、test.sh は実行可能になりました。(中身が無いので実行は出来ませんが)

2番目を変更してみます。

rm test.sh
touch test.sh
chmod u-w test.sh
ls -l
rm test.sh
chmod コマンドの実行例 2

自分自身の書き込みが出来なくなりました。削除も直ぐには出来ません。表示されるメッセージに 'y' を入力し ENTER を押す事で削除できます。

一括で指定する場合には、8進数3桁で指定します。

touch test.sh
chmod 755 test.sh
ls -l
chmod コマンドの実行例 3

8進数 の 755 は、2進数だと 111101101 となります。これは 'rwxr-xr-x' に対応します。

良く使う8進数を覚えておいて、これで指定した方がシンプルです。

  • 755 = 'rwxr-xr-x'

  • 644 = 'rw-r--r--'

  • 600 = 'rw-------'

  • 400 = 'r--------'

通常使うのはこの位です。

(SETUID や SETGID、Sticky bit については使う頻度が少ないので省略します)

Python

Ubuntu (Linux) の標準コマンドではありませんが、生成 AI を使う上で避けて通れませんので、この項で Python について説明します。

なお、Python のプログラミングについては「誰でもできる」説明をする事は出来ません。生成 AI を使うのに必要最低限な使い方と知識についてのみ記載します。

WSL2 Ubuntu (22.04 LTS) にデフォルトで導入されているのは、Python 3.10.12 です。パッケージ名は 'python3'、実行ファイル名も 'python3' です。'-V' オプションでバージョンが表示できます。

python3 -V
python3 -V 実行例

Python 3.10 系であれば、殆どの生成 AI で使用できるバージョンです。特に新しいバージョンをインストールする必要はありません。

Python を使用する場合には、Python 仮想環境を常に使用するようにしてください。他の環境に影響を与えずに、Python のライブラリを使用する事が出来ます。

(Stable Diffusion WebUI や Forge は起動・インストールスクリプト内で仮想環境を有効にしますので、気にしなくても大丈夫です)

Python 仮想環境を作成する為には、'python3-venv' パッケージをインストールします。

sudo apt install python3-venv
python3-venv のインストール

仮想環境を作ってみます。

  • ディレクトリの作成、ディレクトリ内に入る

mkdir testdir && cd testdir
  • python 仮想環境の作成

python3 -m venv venv
  • python 仮想環境の中に入る プロンプトが (venv) 付に変わります。

source venv/bin/activate
  • python 仮想環境から抜ける プロンプトから (venv) が無くなります。

deacitivate
python 仮想環境の作成、入り方、抜け方

Python 仮想環境内で pip コマンド (Python のパッケージマネージャ) を使用してパッケージをインストールした場合には、その仮想環境内でのみ有効です。

source venv/bin/activate
pip list
pip install --upgrade pip setuptools
python 仮想環境内で pip を使う

Python 仮想環境を作成したら、先ずは pip と setuptools を upgrade しておいた方が良いかと思います。

Python 仮想環境を作り直したい場合等、仮想環境を削除する場合には、ディレクトリを削除します。

deactivate
cd
rm -fr testdir
ls
python 仮想環境を削除する

Python のパッケージは Ubuntu のパッケージにもありますが、python3-venv (と依存パッケージ) 以外は仮想環境内の pip コマンドでインストールした方がトラブルは少ないと思います。

また、Python には他の仮想環境もありますが (Anaconda、Poetry、等々)、先ずは python3-venv + pip で使い方を学び、必要に応じて他の Python 仮想環境を使用する事をお勧めします。

複数の仮想環境を混在させるのは厳禁です!トラブルの元です。Text generation webUI のインストーラは Anaconda を使用しています。そのような場合には、インストーラが実行している内容を pip に置き換えて実行した方が良いと思います。Text generation webUI を pip でインストールする方法は、私の個人ブログにまとめていますので、興味のある方はご覧ください。
(「誰でもできる」形ではまとめていませんので、内容に不明な点がありましたらコメント欄からご指摘下さい)


結び

今回の記事は【誰でもできるよ】シリーズの二つ目の記事として WSL2 Ubuntu の最も基本的な使い方について記載しました。

【誰でもできるよ】シリーズは、経験の少ない方にも手を動かしながら実行し理解して頂けるように、細かな手順まで記載しています。

今回の記事の目標は

「WSL2 Ubuntu で生成 AI の環境を作る為に必要な知識を覚える」

でした。

別の見方をすれば、WSL2 Ubuntu の他の設定や使い方には触れていません(例えば、日本語化とか WSLg とか)。これらの内容については直ぐに記事を書く予定はありません。個人ブログで参考になる記事を紹介しますので、こちらを参照下さい。

この先、WSL2 Ubuntu に生成 AI の環境を構築する記事を作成する予定です。その為の知識の習得にお役に立てれば幸いです。

この記事が気に入ったらサポートをしてみませんか?