Windwos10 バージョン1709(Windows10 Fall Creators Update)からは、WSL(Windows Subsystem for Linux)が正式に利用できるようになった。
これは、Windows上でUbuntuなどのLinuxを動かすというもので、LinuxのAPIをWindowsAPIに変換するシステムである。仮想環境よりも軽快に動作できる特徴がある。
WSLの有効化
まずは、WSL機能を使えるように有効化しておく必要がある。
1)Windowsスタートから、設定 > アプリ を実行
2)「アプリと機能」の「プログラムと機能」を選択
3)「Windowsの機能の有効化または無効化」を選択
4)「Windows Subsystem for Linux」の項目をチェックしOK
再起動を要求されたら再起動する。
Microsoftストアから「Ubuntu」をインストール
Microsoftストアアプリを起動して「Ubuntu」と検索すると、Ubuntuが候補に表示される。
Ubuntuを選択して、アプリの画面で「入手」をクリックでインストールできる。
追記(2018/05/15)
従来の16.04LTS相当に追加して、Ubuntu 18.04 LTSも利用できるようになったので、そちらがよければ「Ubuntu 18.04」を選択する。
Ubuntuを起動
インストールできたら、スタートメニューに「Ubuntu」が追加されるので実行する。
bashコンソールが起動され、初回時は数分程度かかるので待つ。
続いて、ユーザ名とパスワードを入力し、準備完了。
ここからはUbuntuの世界なので、下記コマンドでパッケージをアップデートしておく。
$ sudo apt update
$ sudo apt upgrade
補足
- gitコマンドは、デフォルトで使えるようになっていた。
- WSLのUbuntu環境のホームは「
C:\Users\(UserName)\AppData\Packages\CanonicalGroupLimited.UbuntuonWindows_(ランダムな文字列)\LocalState\rootfs\home\(username)
」という位置に実体となるフォルダが存在しているが、直接Windowsから操作はしない方がよい。 - Windowsのファイルシステムへのアクセスは「
/mnt/c/
」のパスからアクセスできる。下記のように作業用フォルダ等へリンクしておくと便利。
$ ln -s /mnt/c/Users/<UserName>/work
- 「
$ /mnt/c/Windows/System32/notepad.exe &
」のように拡張子.exe
をつけて実行するとWSLからWindowsコマンドを実行できる。 - Ubuntuの他にも、「OpenSUSE」「SLES」のLinuxも利用できる。
- (2018/03/08追記)「Debian」も利用できるようになったらしい。
所感
以前のMicrosoftは独自路線の風潮が強かったが、このWSLのようにコマンド環境がLinuxと共通にできるは、とても便利で嬉しい。又、次期アップデート(1803)では更なるWSLの強化も予定されているとか。今後が期待される。
MacパソコンはUnix互換のコンソールを持っているので、Macを愛用していたが、Windows10になって電源ON時の起動も随分と速くなった。CPUは昔のCore-i5とかでもSSDにしたせいか、電源ONから10秒くらいで立ち上がる。以前はMacの方が起動が速くて快適と思っていたが、最近ではMacの起動は遅く感じる。
WSLも快適に使えるようになってくるとMacを使っていく意味が薄れてくる。Surface Proが欲しくなってきた(笑)。
関連記事
参考
- Windows 10でLinuxプログラムを利用可能にするWSL(Windows Subsystem for Linux)をインストールする
- Windows Subsystem for Linuxのファイルシステムを知る
- UbuntuをWindows 10(Fall Creators Update)にインストールしてみた
- WSL その51 – BashからWindowsコマンドを呼び出すコマンドの実行例
- Windows 10のWindows Subsystem for Linux(WSL)を日常的に活用する
- Windows 10“バージョン 1803”(RS4)はコマンドラインも充実? 搭載予定機能のまとめ
- WSLで複数のLinuxディストリビューションを管理する
コメント
簡潔明瞭な内容、大変有難うございます。お陰様でUbuntu on WSLインストールできました。
fileヘのlinkのところで、理解できない点をご教授ください。
1.ln -s 。。。を行うdirectoryはどこ? workはどのように参照するの?
2.linkを張るのはなぜ?不便さを解消するためだけ?
張らずに、田+r,bash入力でstartで済まない事がある?
コメントありがとうございます。
> 1.ln -s 。。。を行うdirectoryはどこ? workはどのように参照するの?
ln コマンドは最後の引数で「リンク先」を指定できるのですが、省略した時はリンク元と同じ名前のリンクがカレントディレクトリに作成されます。
> 2.linkを張るのはなぜ?不便さを解消するためだけ?
はい、タイプング数を減らしたい為です。毎回、/mnt/c/…. と入力するのであればリンクを張らなくても大丈夫です。