rcmdnk's blog

Linguaggi Di Scripting: TCL, JavaScript, Falcon, Linguaggio Di Scripting, Perl, Windows Powershell, Ruby, Scumm, Bash, Mirc Scripting, Hybris

先日PowerShellがオープンソース化しLinuxやOS Xでも使える様になりましたが、 それに先駆けWindows内でLinuxをSubsystemとして動かしBashを使う機能が 正式にWindows 10に導入されています。

そこで無駄にPowerShellをそのSubsystem内のBash上で動かすということをやってみました。

Sponsored Links

PowerShell on Bash on Ubuntu on Windows

まず、Windows内でBashを使うBash on Ubuntu on Windowsについてはこちらから。

開発者モードにしてWindowsの機能の有効化から Windows Subsystem for Linux (Beta)を有効にするなど 少し使うまでに手順が必要です。

以前までは開発者、テスター向けのInsider Preview板ビルドにしか入ってませんでしたが、 先日のWindows 10 Anniversary Updateで通常の最新Windows 10の中にも 組み込まれる様になりました。

これでBashターミナルを立ち上げてLinuxのリリースなどを見て見ると、

$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 14.04.4 LTS
Release:        14.04
Codename:       trusty

と、Ubuntu 14.04が使われています。

ここにPowerShellを入れてみます。

Ubuntu 14.04なので、

$ sudo dpkg -i powershell_6.0.0-alpha.9-1ubuntu1.14.04.1_amd64.deb Package installation instructions に従って、

$ sudo apt-get install libunwind8 libicu52
$ wget https://github.com/PowerShell/PowerShell/releases/download/v6.0.0-alpha.9/powershell_6.0.0-alpha.9-1ubuntu1.14.04.1_amd64.deb
$ sudo dpkg -i powershell_6.0.0-alpha.9-1ubuntu1.14.04.1_amd64.deb

でOK。

Linuxの場合は/opt/以下にインストールされるとなっていますが、 実際、/opt/microsoft/powershell/6.0.0-alpha.9/ というディレクトリが出来ています。 これがPowerShell内での$PSHOMEになります。

powershellコマンドは/usr/binにシンボリックリンクとしてインストールされていて、

$ ls -l /usr/bin/powershell
.... /usr/bin/powershll -> /opt/microsoft/powershell/6.0.0-alpha.9/powershell

となっています。

OS Xでは/usr/local/binにリンクが作られているのでちょっと注意。

取り敢えずインストールできたのでおもむろに立ち上げてみると、

20160820_powershellstart.jpg

こんな感じで上手く言ってる様に見えます。

が、何か出力を出すようなコマンドを打ってみると、

20160820_powershelloutput.jpg

こんな感じでぐちゃぐちゃに。 ここでは

PS /home/user > Write-Host hoge

を二回行ってるだけです。

最初のコマンドもプロンプト部分が実行時に消されてコマンドが左詰めされていて、 さらに、2番目のコマンドは一番上のWrite-Host hogeで、 何故かこの位置に表示され、以前の出力を上書きするような形になっています。

何の不具合かは分かりませんが、現状 PowerShell on Bash on Ubuntu on Windows (Bash上で立ち上げてるだけでUbuntu上で動いてるので PowerShell on Ubuntu on Windowsのが正しいかもしれませんが) は使えない、と言う状態みたいです。

まあ、まったくもって不毛な使い方なんでどうでもよいわけですが。

ただ、PowerShellのIssuesとかを見ていると特にtmuxやGNU screenでの 表示の乱れがあったりするみたいで、 その辺も全く無関係ではないのかもしれません。

Issues · PowerShell/PowerShell

Sponsored Links
Sponsored Links

« PowerShellがオープンソース化しMacやLinuxでも使える様になった FacebookのAPIが変更されシェア数の取り方が変わった »