Bash on Ubuntu on Windows の インストール と アンインストール + Bash からCドライブは見えるのか

windows anniversary update で追加されたBash。というかUbuntu
WindowsUbuntuをそのまま(?)インストールすることでBashが使えるという驚きしかない新機能。


なのですが、筆者がLinuxデビューしたタイミングでの大型アップデートだったのでほとんど触ってきませんでした。


職場のWindowsにもRubyの開発環境を構築するようになって、CUI環境で構築することに限界を感じてふとこの機能を思い出しました・ω・

もしもこのBashWindowsのファイル構造にアクセスできるなら、
Windowsのアプリで書いたソースコードBashで構築した環境からビルドできるのでは…!!と。

で、実践。

まず、Windows10のanniversary update(2016年8月の大型アップデート)を実施しただけではBash on Ubuntu on Windows は使えません。
自らインストール作業をする必要があります。



1.開発者モードに切り替える

Win + S ボタンでアプリ検索画面を開く。
「設定」と入力して設定アプリを起動する
f:id:AddyPlusy:20160901224117p:plain
設定から開発者向けのタブを押して、開発者向けの設定画面へ。
開発者モードのラジオボタンをON!
f:id:AddyPlusy:20160901224313p:plain

再起動



2.Windows subsystem for Linux (Beta) を有効にする

ツールバーにあるWinアイコン(スタートボタン)を右クリック。
プログラムと機能をクリック
Windowsの機能の有効化または無効化をクリックして設定画面を開く
Windows subsystem for Linux (Beta) のラジオボタンをクリックして有効化

再起動

再起動多いな(´・ω・`)



3.Ubuntuをインストールする

コマンドプロンプト、もしくはPowerShellBashと打てばUbuntuのインストールが始まります。
または、スタートボタンから「Bash on Ubuntu on Windows」を起動します。

WindowsのコンソールからBashと打てばUbuntuのインストールが始まります。

C:\Users\user>Bash

インストールしてよろしいですか的なことを聞かれるのでyesだったかyとか打ってください。
インストールがバリバリ始まります。

名前を入力してくださいと聞かれると思うので、
Ubuntuのユーザー名を好きにつけます。Windowsのユーザー名とは違うので好きに付けてください(2度め
でも確か.は使えなかったような??
私はAddyPlusyとつけました(^^)

パスワードはあまり記号は使わないほうがいいです。
無難に大文字小文字の英数字らへんでしっかりとしたパスワードをつけるが吉。


ちなみに、
最初にBashと打って「従来のコンソールが~」みたいなエラーが出た場合は、
従来以外のコンソールを使うことを許可する必要があります。

その場合は、
コンソールの左上にあるアイコンを右クリックして、プロパティを開く。
そんで従来のなんちゃら~というチェックを外してあげればOKです。





これでWindows上にあるUbuntuBash操作をできるようになります!

C:\\Users\user>Bash
AddyPlusy@PC名:mnt/c/Users/user$


ここで、そもそもWindowsUbuntuをインストール??
Bashで操作??どゆこと??と普通に思ったので(私が)ちょっと考えを整理してみました。
f:id:AddyPlusy:20160901234300p:plain
たぶんこんな感じなのかな??
Windowsの中にモノホンのUbuntuをインストールしていて、
実際にコンソールから動かすことができる!ということだと。
GUI環境を提供するわけではないので、開発者ぐらいしか恩恵には預かれませんが、素晴らしすぎる機能ですね!
Macとは違います。本物のUbuntuですよ!プロデューサー!

先ほどのように、Bashコマンドをコマンドプロンプトから打つことでUbuntuの操作に移って、CUI環境で普通にUbuntuを使うことができます。
Microsoftが正式に導入しているだけあって、ネイティブに動かすことができて便利ですね\(^o^)/


で、じゃあWindows上にインストールされているUbuntuからWindowsのドライブは扱えるのか。
答えはYes。声を大にして言いたい。YES!!


まずは色々と。。。

$ cd /

/直下はUbuntuシステムのとほぼおなじ構成です。binとかhomeとかusrとかがあります。
なので、apt-getとか、Ubuntu on Windows上でインストールしたアプリは普通に/usr/binあたりにインストールされると思います。

$ cd ~

~(チルダ)はホームのことです。
/home/AddyPlusy へと移動できました。普通はhomeの下にDesktopとかDownloadsとかPicturesとかあるのですが、何も入ってない空っぽでした。
DesktopはWindowsにあるから…ということなのでしょうか?
それともサーバータイプのデスクトップ環境がないやつは大体空なんでしょうか。

$ cd /mnt/c

ありました!Cドライブです!マウントされている形でCドライブが存在していました!
Program FilesとかCドライブ直下にあるものもちゃんと見えましたよ!

$ cd /mnt/c/Users/user/

この中にDesktopとかあります。



Bashでファイルを適当に作って、Desktopに出力してあげれば、ちゃんとデスクトップにファイルが生成されてました!




理想を試す。
WindowsのエディタでRubyを書いてデスクトップとかに保存。
Ubuntu on WindowsRubyをインストールして、BashからCドライブ配下のデスクトップにアクセス。
ちゃんとRubyのファイルがあったので、実行。

$ ruby /mnt/c/Users/user/Desktop/Hello.rb
Hello, world!

完璧です。やりたかったことができました!
後日ブログにて書きますが、Ubuntu on Windowsでgemからインストールしたり、
パッケージ管理システムからRubyをインストールできましたよ\(^o^)/



最後に。。。
Ubuntuのアンインストールの方法です。
例えば、Ubuntuのパスワードを忘れちゃった!とか、どうも動作がおかしい!という時は入れなおすのも手です。

Bashではなく、コマンドプロンプトから。。

/lxrun /uninstall /full

これでアンインストールされます。
またインストールするときは、bashと打てばインストール確認から始まります。
ちなみに、bashと打ってインストールしていますが、

/lxrun /install

と打ってもインストールされるみたいです。


twitter.com