Windows 10 Anniversary UpdateでBashを試してみる

昨日からWindows 10 Anniversary Updateの一般公開が始まりました。

ふくゆきブログのこちらの記事を読んで、テンションが上がったので、早速Let’s noteに導入してみました。

Win10アプデすごい!やれ!bashもapt-getもubuntuバイナリも動く。本当にAniversary Updateだ。

いますぐアップデートするには、こちらのWindows公式ブログの記事を参照ください。

Bashを有効化する

Windows 10 Anniversary Updateには、いろいろな機能のアップデートが入っています。たしかにアップデート後の画面を見てみると、変化に気づきます。

たとえば、画面右下に通知アイコンが表示され、通知件数がバッジになっていたりとか・・・。

win10rs1-1

ただ、そういうアップデートはさておき、私としてはBashに注目したいわけですヨ。

Bashを有効化するには、まず開発者モードに変更します。

win10rs1-2

次に、Windowsの機能で「Windows Subsystem for Linux (Beta)」のチェックボックスをオンにします。

win10rs1-3

これで、コマンドプロンプトを開いてbashと入力すると、初回の設定を行い、使用できるようになります。

win10rs1-4

また、Windowsのスタートメニューにも、Bash on Ubuntu on Windowsが追加されるので、直接Bashを起動することもできます。

Bashのファイルはどこにある?

Bashを開いて、どのようなディレクトリがあるかを見てみると、あたかもLinuxなディレクトリ群を確認できます。

win10rs1-5

ホームディレクトリにも.bashrcなんかあるし、ssh-keygenすると.sshディレクトリができたりするし、Windows標準環境でこういう操作を行うとは隔世の感があるのですが、そもそもこれらのファイルはどこにあるのでしょう。

エクスプローラで探してみても見つからないのですが、rcmdnk’s blogの「Windowsに採用されたBash (Ubuntu)を試してみる」という記事に詳しく書いてありました。

C:\ユーザー\(ユーザー名)\AppData\Local\lxss です。通常は見えないようになっているので、エクスプローラのアドレスバーに直接入力するとよいでしょう。

win10rs1-6

Bashで何かやってみたい

AWS CLIではPythonを使います。ちょっと調べてみると、Bashには標準でPython2.7.6とPython3.4.3(Python2.7.6が優先)が導入されているようです。RubyやNode.js、PHPは導入されていませんが、apt-getでインストールすることは可能です。

ちなみに、rubyと入力してみると、このような表示が行われます。

win10rs1-7

「みつかりま」と、「ま」の途中で表示が切れてしまっていますが、現在のBashはベータ版のためか、日本語対応は十分ではありません。

Windows側のファイルは使える?

WindowsのCドライブなどは、/mnt/cからアクセス可能です。

win10rs1-8

では、WindowsにあるプログラムをBashから起動できるでしょうか?

win10rs1-9

メモ帳(notepad.exe)をフルパスで開いてみようとしましたが、エラーになってしまいました。

Bash on Windowsを何に使うのか?

私はいままで、Let’s noteにこのような環境を作って作業していました。

  1. Git for WindowsのBashでコマンド作業
  2. VirtualBox+VagrantでVCCW(WordPress)
  3. VirtualBoxにピュアなCentOSを導入してLinuxでしかできない作業

このうち、どの作業をBash on Windowsは置き換えることができるでしょうか。

まず、2のVCCWについてはそのままにしたいと思います。VCCWを使う理由は単にWindowsでWordPressを動かしたいというだけではなく、サイトによって環境を分けたいからということでもあります。WordPressでのサイト構築は並行でいくつも行っているので、同じ環境で作業してファイルが混じったりしてしまっては困ります。

Bash on WindowsではUbuntuのバイナリが動くので、ApacheやMySQLを導入してWordPressを動かすこともきっとできるだろうと思います。(ネットワーク系のところを調べていないので、実際どうなのかはわからない。)ただ、それだけではないということです。

1のGit for Windowsで導入されるBashについては、できればBash on Windowsで置き換えたいところでしたが、Bash on WindowsからWindowsのプログラムを動作させることができないので断念するしかなさそうです。また、現時点では日本語対応も不十分なのも気になります。残念。

3のVirtualBoxでCentOSについては、Bash on Windowsで置き換え可能だと思います。CentOSとUbuntuの違いはありますが、そこでサーバを動かしたりしていたわけではなく、先ほど取り上げたAWS CLIにようなツールがWindowsでは使いづらかったり、そもそも提供されていなかったりするような場合に、VirtualBox上のCentOSを使っていたというだけです。Bash on Windowsではそうしたツールで一般的に用いられるPythonが標準で導入されていますし、それ以外に必要となるプログラミング言語やライブラリもapt-getで簡単にインストールできます。

まとめ

ここ数年で多くの開発者がWindowsからMacに移りました。私もその一人で、Let’s noteも使っていますがMacBook Proも使っています。開発作業では主にMacを使っているわけです。(Let’s noteを使っている理由はWindowsが使いたいからではなく、ポートがたくさんついているのでプレゼン時に便利とか、LTEが載っているからといったハードウェア的な魅力だったりします。)

最近は、VirtualBoxのような仮想環境での作業の普及などがあり、Windowsでの開発作業も比較的やりやすくなってきましたが、ちょっとした作業でもいちいち仮想環境を立ち上げないといけないのは面倒であることも事実。

そこで、Bash on Windowsが登場したとなると、仮想環境を立ち上げなくてもすぐに使えるし、おそらくは動作も軽いだろうと思われるので(Linuxの仮想環境が辛いほど非力なマシンも少ないですが)、開発者をWindowsに呼び戻す決定打!とまではいかなくても、一つの誘因になることは間違いないでしょう。

この記事を書いた人

井上 研一

株式会社ビビンコ代表取締役、ITエンジニア/経済産業省推進資格ITコーディネータ。AI・IoTに強いITコーディネータとして活動。画像認識モデルを活用したアプリや、生成AIを業務に組み込むためのサービス「Gen2Go」の開発などを行っている。近著に「使ってわかった AWSのAI」、「ワトソンで体感する人工知能」。日本全国でセミナー・研修講師としての登壇も多数。