
WSL2試してみた

こんにちは、技術部のAです。今回、WSL2について試しましたので共有させていただきます。
試した経緯
自宅PCでデータの整理をしていた際に複数のファイル名を変更することがあり、ふとWSL2の存在を思い出しました。WindowsOS内のPowerShell操作でもよさそうですが、日々Linux操作をしているため、なじみ深いLinuxコマンド使えたら便利と思いWSL2のセッティングしました。会社PCでのセッティングも試しましたのでインストール手順含めシェアさせていただきます。
WSL2とは
Windows上でLinuxのコマンドラインを使用できるようになります。
またコマンドラインでのPCローカル上のファイルにもアクセスできます。
今回は一例としてLinuxコマンドを利用し、ファイル名を編集してみます。
初期設定
Microsoftの公式ホームページを見てみます。こちらにはWSLコマンドの使用のためインストールコマンドや導入条件が載っています。Windows11でしたら条件を満たしていますので気にせず進めていきます。
WSL のインストール | Microsoft Learn
インストールコマンド実施
管理者でコマンドプロンプトを開き下記を実施します。
wsl --install
正常に終了しますと下記のように表示されます。
C:\Windows\System32>wsl --install
ダウンロード中: Linux 用 Windows サブシステム 2.4.11
インストール中: Linux 用 Windows サブシステム 2.4.11
Linux 用 Windows サブシステム 2.4.11 はインストールされました。
Windows オプション コンポーネントをインストールしています: VirtualMachinePlatform
展開イメージのサービスと管理ツール
バージョン: 10.0.26100.1150
イメージのバージョン: 10.0.26100.3194
機能を有効にしています
[==========================100.0%==========================]
操作は正常に完了しました。
要求された操作は正常に終了しました。変更を有効にするには、システムを再起動する必要があります。
要求された操作は正常に終了しました。変更を有効にするには、システムを再起動する必要があります。
ディストリビューションのインストール
ディストリビューションのインストールするにあたり、コマンドプロンプトを開きなおします。
インストールできるディストリビューションの確認コマンド
wsl.exe --list --online
コマンドの実施結果、今回はUbuntu-22.04 Ubuntu 22.04 LTSをインストールしてみます。
C:\Users\NA>wsl.exe --list --online
インストールできる有効なディストリビューションの一覧を次に示します。
'wsl.exe --install <Distro>' を使用してインストールします。
NAME FRIENDLY NAME
Debian Debian GNU/Linux
SUSE-Linux-Enterprise-15-SP5 SUSE Linux Enterprise 15 SP5
SUSE-Linux-Enterprise-15-SP6 SUSE Linux Enterprise 15 SP6
Ubuntu Ubuntu
Ubuntu-24.04 Ubuntu 24.04 LTS
kali-linux Kali Linux Rolling
openSUSE-Tumbleweed openSUSE Tumbleweed
openSUSE-Leap-15.6 openSUSE Leap 15.6
Ubuntu-18.04 Ubuntu 18.04 LTS
Ubuntu-20.04 Ubuntu 20.04 LTS
Ubuntu-22.04 Ubuntu 22.04 LTS
OracleLinux_7_9 Oracle Linux 7.9
OracleLinux_8_7 Oracle Linux 8.7
OracleLinux_9_1 Oracle Linux 9.1
インストールコマンド
wsl --install -d <Distribution Name>
コマンド実施結果、インストールできました。
また、インストールするとユーザーの作成と任意のパスワードを求められますので入力します。
C:\Users\NA>wsl.exe --install Ubuntu-22.04
wsl: レガシの配布登録を使用しています。代わりに tar ベースの配布を使用することを検討してください。
インストール中: Ubuntu 22.04 LTS
Ubuntu 22.04 LTS がインストールされました。
Ubuntu 22.04 LTS を起動しています...
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: user01
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 22.04.5 LTS (GNU/Linux 5.15.167.4-microsoft-standard-WSL2 x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/pro
System information as of Mon Feb 24 20:35:39 JST 2025
System load: 0.0 Processes: 67
Usage of /: 0.1% of 1006.85GB Users logged in: 0
Memory usage: 5% IPv4 address for eth0: 172.24.165.233
Swap usage: 0%
This message is shown once a day. To disable it please create the
/home/user01/.hushlogin file.
Linuxコマンドを試してみる
今回はrenameコマンドを使用して特定ディレクトリ内のファイル名を変更してみます。
インストールのためにroot権限に昇格する必要あります。
また、renameインストールの際にapt updateを実施。
管理者権限に変更
求められるパスワードは、事前に設定をしたパスワードです。
sudo su -
アップデート
apt update
renameコマンドのインストール
root@NA-PC:~# apt install rename
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following NEW packages will be installed:
rename
0 upgraded, 1 newly installed, 0 to remove and 44 not upgraded.
Need to get 20.2 kB of archives.
After this operation, 55.3 kB of additional disk space will be used.
Get:1 http://archive.ubuntu.com/ubuntu jammy/universe amd64 rename all 1.30-1 [20.2 kB]
Fetched 20.2 kB in 1s (25.2 kB/s)
Selecting previously unselected package rename.
(Reading database ... 42578 files and directories currently installed.)
Preparing to unpack .../archives/rename_1.30-1_all.deb ...
Unpacking rename (1.30-1) ...
Setting up rename (1.30-1) ...
update-alternatives: using /usr/bin/file-rename to provide /usr/bin/rename (rename) in auto mode
Processing triggers for man-db (2.10.2-1) ...
renameのインストールできたか確認
root@NA-PC:~# which rename
/usr/bin/rename
ローカルのフォルダの場所
ローカルファイルの編集をするにあたり、ファイルの場所を確認してみます。
場所は「/mnt/c/」の配下です。
今回はローカルPC内のドキュメント配下に対象あるのでまずは場所を探します。
user01@NA-PC:~$ ll /mnt/c/Users/NA/
total 14624
drwxrwxrwx 1 user01 user01 4096 Feb 16 21:41 ./
dr-xr-xr-x 1 user01 user01 4096 Feb 16 04:26 ../
drwxrwxrwx 1 user01 user01 4096 Mar 18 2024 .config/
drwxrwxrwx 1 user01 user01 4096 Mar 18 2024 .local/
drwxrwxrwx 1 user01 user01 4096 Aug 31 12:06 .ms-ad/
drwxrwxrwx 1 user01 user01 4096 Feb 16 07:22 AppData/
lrwxrwxrwx 1 user01 user01 34 Feb 16 04:26 'Application Data' -> /mnt/c/Users/NA/AppData/Roaming/
drwxrwxrwx 1 user01 user01 4096 Feb 16 21:41 Contacts/
lrwxrwxrwx 1 user01 user01 62 Feb 16 04:26 Cookies -> /mnt/c/Users/NA/AppData/Local/Microsoft/Windows/INetCookies/
drwxrwxrwx 1 user01 user01 4096 Feb 16 21:41 Desktop/
drwxrwxrwx 1 user01 user01 4096 Feb 25 14:09 Documents/
drwxrwxrwx 1 user01 user01 4096 Feb 25 21:06 Downloads/
drwxrwxrwx 1 user01 user01 4096 Feb 16 21:41 Favorites/
drwxrwxrwx 1 user01 user01 4096 Feb 16 21:41 Links/
lrwxrwxrwx 1 user01 user01 32 Feb 16 04:26 'Local Settings' -> /mnt/c/Users/NA/AppData/Local/
drwxrwxrwx 1 user01 user01 4096 Feb 16 21:41 Music/
lrwxrwxrwx 1 user01 user01 28 Feb 16 04:26 'My Documents' -> /mnt/c/Users/NA/Documents/
-rwxrwxrwx 1 user01 user01 11010048 Feb 24 20:18 NTUSER.DAT*
こちらですね。
lrwxrwxrwx 1 user01 user01 28 Feb 16 04:26 'My Documents' -> /mnt/c/Users/NA/Documents/
renameコマンドでファイル名の編集をしてみる
試しに今回ブログのための取得したキャプチャファイルについて名前を編集してみます。
root@NA-PC:~# ll /mnt/c/Users/NA/Documents/ブログ
total 1188
drwxrwxrwx 1 user01 user01 4096 Feb 26 12:20 ./
drwxrwxrwx 1 user01 user01 4096 Feb 25 14:09 ../
-rwxrwxrwx 1 user01 user01 16059 Feb 26 12:45 20250224_WSL2.txt*
-rwxrwxrwx 1 user01 user01 7168 Feb 24 19:48 'スクリーンショット 2025-02-24 194840.png'*
-rwxrwxrwx 1 user01 user01 20274 Feb 24 19:51 'スクリーンショット 2025-02-24 195128.png'*
-rwxrwxrwx 1 user01 user01 314188 Feb 24 20:06 'スクリーンショット 2025-02-24 200638.png'*
-rwxrwxrwx 1 user01 user01 23230 Feb 24 20:11 'スクリーンショット 2025-02-24 201129.png'*
-rwxrwxrwx 1 user01 user01 76014 Feb 24 20:28 'スクリーンショット 2025-02-24 202814.png'*
-rwxrwxrwx 1 user01 user01 289790 Feb 24 20:32 'スクリーンショット 2025-02-24 203248.png'*
-rwxrwxrwx 1 user01 user01 28710 Feb 24 20:33 'スクリーンショット 2025-02-24 203318.png'*
-rwxrwxrwx 1 user01 user01 80472 Feb 24 20:36 'スクリーンショット 2025-02-24 203640.png'*
-rwxrwxrwx 1 user01 user01 336472 Feb 24 20:07 下書き.docx*
-rwxrwxrwx 1 user01 user01 7501 Feb 25 13:13 作成案_0225.txt*
drwxrwxrwx 1 user01 user01 4096 Feb 26 12:32 編集済み/
キャプチャツールで取得したデフォルトの命名規則では日付含む情報が後ろにあるので、
今回、日時を頭出ししてみます。
ファイルを編集するときはバックアップが基本です。
今回はディレクトリごとコピーを作成しておきます。
root@NA-PC:~# cp -ipr /mnt/c/Users/NA/Documents/ブログ /mnt/c/Users/NA/Documents/ブログ.org
コピーが作成されています。
もちろんエクスプローラーで見ても新しいディレクトリが作成されている状態です。
root@NA-PC:~# ll -d /mnt/c/Users/NA/Documents/ブログ*
drwxrwxrwx 1 user01 user01 4096 Feb 26 12:20 /mnt/c/Users/NA/Documents/ブログ/
drwxrwxrwx 1 user01 user01 4096 Feb 26 12:20 /mnt/c/Users/NA/Documents/ブログ.org/
バックアップが取得できましたので、ファイル名の編集をしていきます。
コマンドはrenameですが、-nのオプションでテスト実施できますので用意した正規表現含むコマンドが
目的通りに動くかここでテストしておきます。
root@NA-PC:~# rename -n 's/スクリーンショット (\d{4})-(\d{2})-(\d{2}) (\d{2})(\d{2})\d{2}\.png$/$1$2$3_$4$5_スクリーンショット.png/' /mnt/c/Users/NA/Documents/ブログ/*.png
rename(/mnt/c/Users/NA/Documents/ブログ/スクリーンショット 2025-02-24 194840.png, /mnt/c/Users/NA/Documents/ブログ/20250224_1948_スクリーンショット.png)
rename(/mnt/c/Users/NA/Documents/ブログ/スクリーンショット 2025-02-24 195128.png, /mnt/c/Users/NA/Documents/ブログ/20250224_1951_スクリーンショット.png)
rename(/mnt/c/Users/NA/Documents/ブログ/スクリーンショット 2025-02-24 200638.png, /mnt/c/Users/NA/Documents/ブログ/20250224_2006_スクリーンショット.png)
rename(/mnt/c/Users/NA/Documents/ブログ/スクリーンショット 2025-02-24 201129.png, /mnt/c/Users/NA/Documents/ブログ/20250224_2011_スクリーンショット.png)
rename(/mnt/c/Users/NA/Documents/ブログ/スクリーンショット 2025-02-24 202814.png, /mnt/c/Users/NA/Documents/ブログ/20250224_2028_スクリーンショット.png)
rename(/mnt/c/Users/NA/Documents/ブログ/スクリーンショット 2025-02-24 203248.png, /mnt/c/Users/NA/Documents/ブログ/20250224_2032_スクリーンショット.png)
rename(/mnt/c/Users/NA/Documents/ブログ/スクリーンショット 2025-02-24 203318.png, /mnt/c/Users/NA/Documents/ブログ/20250224_2033_スクリーンショット.png)
rename(/mnt/c/Users/NA/Documents/ブログ/スクリーンショット 2025-02-24 203640.png, /mnt/c/Users/NA/Documents/ブログ/20250224_2036_スクリーンショット.png)
```
20250224_1948_スクリーンショット.png のように日時を頭出しできることを確認できました。
作業実施して対象ファイル名が変わっているかを確認します。
root@NA-PC:~# rename 's/スクリーンショット (\d{4})-(\d{2})-(\d{2}) (\d{2})(\d{2})\d{2}\.png$/$1$2$3_$4$5_スクリーンショット.png/' /mnt/c/Users/NA/Documents/ブログ/*.png
root@NA-PC:~# ll /mnt/c/Users/NA/Documents/ブログ/
total 1204
drwxrwxrwx 1 user01 user01 4096 Feb 26 19:56 ./
drwxrwxrwx 1 user01 user01 4096 Feb 26 12:48 ../
-rwxrwxrwx 1 user01 user01 7168 Feb 24 19:48 20250224_1948_スクリーンショット.png*
-rwxrwxrwx 1 user01 user01 20274 Feb 24 19:51 20250224_1951_スクリーンショット.png*
-rwxrwxrwx 1 user01 user01 314188 Feb 24 20:06 20250224_2006_スクリーンショット.png*
-rwxrwxrwx 1 user01 user01 23230 Feb 24 20:11 20250224_2011_スクリーンショット.png*
-rwxrwxrwx 1 user01 user01 76014 Feb 24 20:28 20250224_2028_スクリーンショット.png*
-rwxrwxrwx 1 user01 user01 289790 Feb 24 20:32 20250224_2032_スクリーンショット.png*
-rwxrwxrwx 1 user01 user01 28710 Feb 24 20:33 20250224_2033_スクリーンショット.png*
-rwxrwxrwx 1 user01 user01 80472 Feb 24 20:36 20250224_2036_スクリーンショット.png*
-rwxrwxrwx 1 user01 user01 32757 Feb 26 19:56 20250224_WSL2.txt*
-rwxrwxrwx 1 user01 user01 336472 Feb 24 20:07 下書き.docx*
-rwxrwxrwx 1 user01 user01 7501 Feb 25 13:13 作成案_0225.txt*
drwxrwxrwx 1 user01 user01 4096 Feb 26 19:55 編集済み/
テスト実施通りに目的のファイル名が変わっているのが確認できました。
終わりに
今回はシンプルに日時の頭出しだけですが、ファイルの作成日時での時間を判別させてファイル名に組み込んだりもできるようです。
興味あればChatGPTなどで気軽にコマンド聞くことが可能です。
検証こそ必要ですが、定型的な事務作業とかもこうやってコマンド作業で工夫する余地もありますよね。
また、今回はUbuntuを使用するまでをコマンドで行いましたが、Windowsのストアからもディストリビューションをインストールすることもできます。
AlmaLinuxなど他ディストリビューションを追加で入れても、単純に切り替え可能ですので、ディストリビューションによるコマンドや環境の違いも簡単に試すこともでき、手軽な学習にも使えると思います。
ただし、自分のPCというある意味、本番環境ですので削除コマンドやなにか変更するコマンドは十分注意していただければと思います。