MJHD

エモさ駆動開発

最高のBoW(Bash on Ubuntu on Windows)環境のために

最近、Macを捨ててWindowsに乗り換えた。その際に、Macで使用していたCUIにより開発環境をできるだけWindowsに移植できないかと考えた。

BoW(Bash on Ubuntu on Windows)

BoWは、Windows10よりベータ版として提供された、Windows上でLinuxバイナリを実行することができる仕組み。

仮想環境よりもっとミニマルで、内部的にはWindows上で動作するUbuntu互換のAPIを実装している模様。

つまり、Linuxマシン語をネイティブに実行することができるということ。(しっかりとWindowsのプロセスとして立ち上がる)

このBoW環境が思ったよりもしっかりとしていたため、開発環境を整えてみた。

どんな見た目?

デスクトップにおいたリンクから端末を起動することができる。

 

X11に対応しているので、GUIも使える。

 

インストールすべきもの

まず、BoWのインストールが済んでいることが前提。

 

qiita.com

こちらを参考に。

 

次に、VcXsrvをインストールする。これは、X11互換のサーバであり、GUIを表示するために必要。(Xmingをおススメしているサイトが多いが、こちらのほうが安定している)

sourceforge.net

 インストールが終わったら、スタートアップとして登録しておこう。

BoWにて

まず、Win+Rボタンを押し「cmd」と入力しエンターを押す。

コマンドプロンプトが立ち上がるので、ここに「bash」と入力する。これでBoW環境に入ることができる。

ここで、以下のコマンドを実行しよう。

 

sudo apt-get install aptitude
sudo aptitude install gnome-terminal

 これで、gnome-terminalというターミナルエミュレータが入った。

bash上で、「gnome-terminal」と入力することで、新しい端末が立ち上がる。

 

また、日本語入力ができるよう、以下のコマンドも実行しよう。

sudo aptitude install uim-fep uim-anthy

そして~/.uimを作成し、以下の内容を記述しよう。キーバインドなどは自由でおk。

(define default-im-name 'anthy)
(define-key generic-on-key? '(" "))
(define-key generic-off-key? '(" "))

 

次に、zshを入れよう。

sudo aptitude install zsh

 

あとは好みに応じて、各自のdotfilesを入れるといいと思う。

使いやすく

この時点で、~/.bashrcを編集し、以下のように書き足そう。


export DISPLAY=localhost:0.0
export XMODIFIERS=@im=uim

if [ -t 1 ]; then
	 exec gnome-terminal -x uim-fep -e zsh
fi

 

 

これにより、bashコマンドを叩くとすぐにgnome-terminal上でuim-fepzshを起動することができるようになる。

また、以下のようなファイルを作成することで、cmdを非表示にしたまま、gnome-terminalだけを起動することができる。

terminal.vbs

Set ws = CreateObject("Wscript.Shell")
ws.run "bash", vbhide

 

あとは煮るなり焼くなり、好きなように環境設定をしよう。

 

mysqlapacheなどの個人的に必要なソフトウェアも、serviceコマンドから実行できるようなので、逆に他に何がほしいの?というレベル。

MacからWindowsに乗り換えるタイミングとしては最適だったように思える。