目次
1. はじめに
wslu は、 WSL (Windows Subsystem for Linux) のためのユーティリティコマンドを集めたソフトウェアパッケージです。
最近、WLinux という Linuxディストリビューションが Microsoft Store からインストールできるようになりました。(ストアへのリンクはこちら → WLinux | Microsoft Store)
このディストリビューションは、WSL用に開発されているのが特徴で、今回取り上げる wslu もプリインストールされています。WLinux を開発しているのは Whitewater Foundry, Ltd. Co. という企業なのですが、特に Microsoft と何か関係があるというわけではないようです。そのため、WLinux にプリインストールされているからといって、何か権威付けされていることもないのですが、wslu がどういうものなのか気になったので使ってみました。
Pengwin
WLinux は Pengwin という名前に変わったようです。
🔗 Pengwin を購入 – Microsoft Store ja-JP
🔗 Pengwin Enterprise — Whitewater Foundry
2. 前提とする環境
- Ubuntu 16.04.5 LTS (WSL)
3. wslu に関する情報
wslu の公式サイト
wslu のGitHubページ
4. wslu のインストール
GitHub – wslutilities/wslu の「For Ubuntu/Debian/Kali Linux」に書いてある通りにコマンドを実行するだけです。
$ sudo apt install apt-transport-https
$ wget -O - https://api.patrickwu.ml/public.key| sudo apt-key add -
$ echo "deb https://apt.patrickwu.ml/ stable main" | sudo tee -a /etc/apt/sources.list
$ sudo apt update
$ sudo apt install wslu
インストールはこれだけですが、ついでにこのパッケージに含まれているコマンドを調べておきましょう。
$ dpkg -L wslu | grep bin/
/usr/bin/wslfetch
/usr/bin/wslsys
/usr/bin/wslupath
/usr/bin/wslusc
/usr/bin/wslview
5つのコマンドが含まれていることが分かりました。それぞれ確認したところ、すべてシェルスクリプトファイルでした。
また、これ以外のファイルも確認しましたが、ドキュメントはなさそうなので、詳しい使い方を知るにはこのシェルスクリプトを読むしかなさそうです。
念の為、このパッケージが依存しているパッケージも確認しておきます。
$ sudo apt depends wslu
wslu
依存: bc
依存: wget
推奨: git
5. 各コマンドを使ってみる
wslsys
概要
- WSL のシステム情報を出力するコマンドです。
ヘルプを表示
-h
オプションを指定してヘルプを表示します。
$ wslsys -h
wslsys - Component of Windows 10 Linux Subsystem Utility
Usage: wslsys (-h|-v|-S|-U|-b|-B|-fB|-R|-K|-P) -s
主なオプション
各オプションと表示される項目を表にしてみました。
オプション | 表示される項目 |
---|---|
-I, –sys-installdate | Release Install Date |
-b, –branch | Branch |
-B, –build | Build |
-fB, –full-build | Full Build |
-U, –uptime | Uptime |
-R, –release | Linux Release |
-K, –kernel | Linux Kernel |
-P, –package | Packages Count |
-s | 上記のオプションの後ろにこれを指定すると、項目名は出力せずに値だけ出力する。 |
実行サンプル
以下の実行サンプルを見ると、先程のオプションの各項目が何を表示するのか分かると思います。
$ wslsys
Release Install Date: 2018年 6月 20日 木曜日 22:29:49 JST
Branch: rs4_release
Build: 17134
Full Build: 17134.1.amd64fre.rs4_release.180410-1804
Uptime: 0d 1h 6m
Linux Release: Ubuntu 16.04.5 LTS
Linux Kernel: Linux 4.4.0-17134-Microsoft
Packages Count: 640
wslfetch
概要
- WSL のシステム情報を、見た目良く出力するコマンドです。
ヘルプを表示
-h
オプションを指定してヘルプを表示します。
$ wslfetch -h
wslfetch - Component of Windows 10 Linux Subsystem Utility
Usage: wslfetch (-h|-v|-s|-l|-c)
実行サンプル
wslupath
概要
- パスフォーマット変換コマンドです。
- WSL には
wslpath
という同じような目的で使うコマンドがありますが、特に互換性のようなものはないようです。
ヘルプを表示
引数なしで実行すると、ヘルプが表示されます。
$ wslupath
wslupath (-dOr) [-D|-A|-T|-S|-W|-s|-su|-H|-P|...NAME...]
wslupath (-h|-v|-R)オプション
主なオプション
スタイル関連のオプション
オプション | 表示される項目 |
---|---|
-O, –original | そのままのパスを出力する。 |
-d, –doubledash-dir | バックスラッシュ1つを、2つに変換する。 |
パス関連のオプション
オプション | 表示される項目 |
---|---|
-D, –desktop | Desktop へのパスを出力する。 レジストリからデスクトップへのパスを取得している。 |
-A, –appdata | Windowsの環境変数 %APPDATA% へのパスを出力する。 |
-T, –temp | Windowsの環境変数 %TMP% へのパスを出力する。 |
-S, –sysdir | C:\Windows\System32 へのパスを出力する。 |
-W, –windir | C:\Windows へのパスを出力する。 |
-s, –start-menu | Start Menu へのパスを出力する。 |
-su, –startup | Startup へのパスを出力する。 |
-H, –home | Windowsの環境変数 %HOMEDRIVE%%HOMEPATH% へのパスを出力する。 |
-P, –program-files | Windowsの環境変数 %ProgramFiles% へのパスを出力する。 |
その他のオプション
オプション | 表示される項目 |
---|---|
-r, –reg-data | レジストリ「HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders 」内の項目を指定する時に使う。「Desktop」「Start Menu」「Startup」などが指定できる。 |
-R, –avail-reg | -r オプションで指定できる項目名を一覧表示する。 |
以下は、レジストリエディタで、「HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders
」内を表示した画面です。赤枠で囲った「名前」欄に表示されているのが、-r
オプションで指定できる名前です。
実行サンプル
$ wslupath ~
c:\Users\foo
→ オプションなしだと、Windows用のパスフォーマットになる。
$ wslupath -O ~
/mnt/c/Users/foo
→ オプションなしだと、WSL用(Linux)のパスフォーマットになる。
$ wslupath -d ~
/mnt/c/Users/foo
→ 何も変わらない。
$ wslupath -d $(wslupath ~)
c:\\Users\\foo
→ バックスラッシュ1つが2つに変換される。
$ wslupath -T
/mnt/c/Users/foo/AppData/Local/Temp
$ wslupath -d -T
C:\\Users\\foo\\AppData\\Local\\Temp
$ wslupath -R
Available registery input:
AppData %USERPROFILE%\AppData\Roaming
Cache %USERPROFILE%\AppData\Local\Microsoft\Windows\INetCache
Cookies %USERPROFILE%\AppData\Local\Microsoft\Windows\INetCookies
Desktop %USERPROFILE%\Desktop
Favorites %USERPROFILE%\Favorites
History %USERPROFILE%\AppData\Local\Microsoft\Windows\History
Local AppData %USERPROFILE%\AppData\Local
My Music %USERPROFILE%\Music
My Pictures %USERPROFILE%\Pictures
My Video %USERPROFILE%\Videos
NetHood %USERPROFILE%\AppData\Roaming\Microsoft\Windows\Network Shortcuts
Personal %USERPROFILE%\Documents
PrintHood %USERPROFILE%\AppData\Roaming\Microsoft\Windows\Printer Shortcuts
Programs %USERPROFILE%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs
Recent %USERPROFILE%\AppData\Roaming\Microsoft\Windows\Recent
SendTo %USERPROFILE%\AppData\Roaming\Microsoft\Windows\SendTo
Start Menu %USERPROFILE%\AppData\Roaming\Microsoft\Windows\Start Menu
Startup %USERPROFILE%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
Templates %USERPROFILE%\AppData\Roaming\Microsoft\Windows\Templates
...
wslusc
概要
- Windows 側のデスクトップ上に、WSL側の実行ファイルへのショートカットファイルを作成するコマンドです。
注意点
引数にファイルパスを指定すると、そのファイルへのショートカットファイルを Windows側のデスクトップ上に作成くれます。作成先のパスを指定することはできないようです。
また、引数に指定するファイルパスは、絶対パスか、ホームディレクトリからの相対パスを指定します。そうしないと、できあがったショートカットファイルが動かなくなることがあります。
ヘルプを表示
-h
オプションを指定してヘルプを表示します。
$ wslusc -h
wslusc - Component of Windows 10 Linux Subsystem Utility
Usage: wslusc (-i|-g|-h|-v) ...NAME...
使用例
(1) a.sh
という名前のシェルスクリプトファイルを用意します。
以下の内容のファイルを、a.sh
という名前で、ホームディレクトリ直下に作成します。
#/bin/sh
echo "Hello!"
sleep 3
「”Hello!” と出力して、3秒待つ」という処理です。
(2) 以下のコマンドを実行して、ショートカットファイルを作成します。
$ wslusc /mnt/c/Users/foo/a.sh
wslu
というフォルダーが作成され、その中にrunHidden.vbs
、wsl.ico
という2つのファイルが作成されます。ショートカットファイルを作る時にこれらが利用されます。
(3) デスクトップにショートカットができます。
[プロパティ] – [ショートカット]タブ にある [リンク先] は、以下となっていました。
C:\Windows\System32\bash.exe -c "cd ~ && /mnt/c/Users/foo/a.sh"
(4) このショートカットファイルを実行します。
成功です。
wslview
概要
- WSL側から、Windows側のブラウザでリンクを開くためのコマンドです。
- ブラウザの起動処理は、「
powershell.exe Start
」コマンドを実行しています。
ヘルプを表示
-h
オプションを指定してヘルプを表示します。
$ wslview -h
wslview - Component of Windows 10 Linux Subsystem Utility
Usage: wslview (-u|-r|-h|-v) ...LINK...
主なオプション
オプション | 表示される項目 |
---|---|
-r, –register | 以下を実行します。update-alternatives --install /usr/bin/x-www-browser /usr/bin/wslview 1 update-alternatives --install /usr/bin/www-browser /usr/bin/wslview 1
これにより、 |
-u, –unregister | -r で追加した update-alternatives の設定を削除します。 |
実行例
以下は、Yahoo! JAPAN を Windows側の既定のブラウザで開くコマンドです。
$ wslview https://www.yahoo.co.jp/
問題なく、Yahoo! JAPAN のページがブラウザで表示されました。
6. まとめ
すぐに必要になりそうなコマンドはないように思いました。
WLinux には最初から wslu がインストールされているということですが、少なくともこの部分に関しては、特に大きなメリットになっているということはなさそうです。