著作一覧 |
ちょっと余裕ができたのでbash on Windowsを試そうと仮想マシンを用意してみた。
で、ちょこちょこ失敗したり(Windows8.1からWindows10へのアップグレードを試そうとして誤ってEnterprise Editionを入れてしまっていつまでたってもアップグレードのお知らせが来ないとかいろいろ)しながら、やっとbuild 14388になった。
で、さっそくcmd.exeを開いてbashと入力すると、エラーになる。
「サポートされていないコンソール設定です。この機能を使用するには、従来のコンソールを無効にする必要があります。」
はて? なんのことだろう? 従来のコンソールを無効といっても、cmd.exeの何を変えろと? と悩むことしばし。検索してもそれっぽいものも引っかからない。
で、いろいろいじくっているとcmd.exeのプロパティに「従来のコンソールを使う(再起動が必要)」というのが追加されていることに気付いた。しかもデフォルトチェック状態だ。
再起動はいやだなぁと思いながらチェックを外してOKしてexitでcmd.exeを終了してリブートしようとした瞬間、待てよ? もしかして「再起動」というのはcmd.exeの再起動ではなかろうかと考え直した。
で、cmd.exeを実行してbashと入力すると今度は話に聞いていた「これにより WindowsにUbuntuがインストールされます。……続行するには、"y"を入力してください」が表示されて、数分かかる処理に数10分かかっているが一向に終わりそうにないがとりあえず良かった。
The Official Ubuntu Book (English Edition)(Helmke, Matthew)
(しかしオルタナティブWindowsのLinux Desktopの最前線にいたはずがいつの間にか中の人になっている不思議感)
で、bashに入ると勝手にコードページが65001(utf-8)になるのだが文字化けの嵐。
あらかじめcmd.exeでchcp 65001してからbashとすれば……と考えても休みのと同じだった。
ls -l してみてみると、「月」を「諧」と表示しているので、そこにヒントがありそうだ(なお、コピー&ペーストするとちゃんと「月」になる)
(追記)リダイレクトしてWindows側でメモ帳で見るとちゃんとUTF-8で出力しいる。ということはコードページ65001の表示バグということなんじゃないかな。面倒だからexport LANG=Cして英語で動かす。
7/16 追記)考えてみたら、コードが正しいんだからフォントがおかしいわけだ。というわけでコンソールのプロパティを見たらフォントがラスターというのになっていた。MS ゴシックを選択したら無事日本語が表示できるようになった。
ジェズイットを見習え |
そんなチェックボックス以前は無かったと思うので、何か互換性問題を踏んだんでしょうねぇ……
従来ではないコンソールもアニバーサリーエディションの追加機能みたいですね。コピペがらみの機能追加やオパシティ設定が入っているみたいです。「新機能の詳細」リンクは https://technet.microsoft.com/en-us/library/mt427362.aspx
上の嘘でした。Windows10自体が「従来ではないコンソール」で、デフォルトがチェックオフ(ホストマシンのWindows10 Entにもチェックボックスがあって、いじってないけどチェックが外れていた)。というわけで、なるせさんの読み通り、何かやばい問題があって、アニバーサリーでは(build 14388はアニバーサリーに近づいたバージョンなわけなので)従来のコンソールをデフォルトにするみたいですね。
同じ問題で引っかかっていたので、助かりました。