WSL の bash コンソールのカスタマイズあれこれ①

Windows Subsystem for Linux (WSL) の bash コンソールも、通常の Linux のコンソール同様にカスタマイズすることが可能です。

カスタマイズするにあたっていろいろとお作法を勉強したので、備忘録がてら書き留めておきます。

まずは、設定変更の前にエディタを使いやすくしてみました。これ、いろいろやり方考えたんですが結局 wget  で元ファイルだけ持ってきてもエラーになるので git clone  したほうが一番早かったです。

余分な git が入っちゃうというポイントがあるのですが…ま、やりたいことと本質的にずれてはいないからありかなと。

 

vim のフォントカラーの変更

たまたま使っていた端末のディスプレイのせいだと思うのですが、正直なところコマンドプロンプトから起動したばかりの bash は色の組み合わせが悪く、設定ファイルも見づらかったので、標準エディタの vim の色設定を変更しました。

テーマの代表的なものに、Twilight, badwolf, Molokai などがありますが、今回はこの Molokai にしてみました。

デフォルトのフォントカラー …読みづらい(´・ω・`)

2016-09-06_14h28_01

カラーテーマをダウンロードして配置します。

sudo mkdir ~/.vim
sudo mkdir ~/.vim/colors


sudo apt-get install git
git clone https://github.com/tomasr/molokai
cd ~/.vim/colors
mv molokai/colors/molokai.vim ~/.vim/colors/

.vimrc ファイル(設定ファイル)を編集します。

vi ~/.vimrc

syntax on
colorscheme molokai
set t_Co=256

2016-09-06_14h31_55

カラフルで見やすくなりました!

本情報の内容(添付文書、リンク先などを含む)は、作成日時点でのものであり、予告なく変更される場合があります。

広告

PowerShell on Linux (Ubuntu16.4) のインストール方法

先日、PowerShell がオープンソース化され、Linux や OSX でも利用可能になりました。ただ、使えるようになったということではなく、その先には、 Microsoft loves Linux のきちんとしたビジョンとメッセージがあるのですが、詳細はリンク先をご覧いただくとして、SQL Server on Linux のアナウンス(製品はまだプライベートベータですので、内容については今日現在は言及できませんが、SQL Server 2016 の機能エンハンスから期待してもいいと思います。)、マルチプラットフォームでオープンソースな.NET Core やWSLとしてBash がWindows 10 に加わり、オープンソースソフトウェアの開発のためのプラットフォームを整備してきました。将来的には Microsoft Operations Management Suite (OMS)への機能拡張も視野にはいっています。個人的には、PowerShell のDesired State Configuration (DSC) で扱える範囲がさらに広がることによってマルチプラットフォームでのインフラストラクチャの運用管理がさらに自動化・効率化され、DevOpsに代表される作って捨てて、作って捨ててっていうインフラのライフサイクルをさらに加速するのではないかと期待しています。

さて、そんなオープンソースになったPowerShellですが、手元にUbuntu 16.04 (64-bit) の環境があったので、実際にどのようにインストールするのかを実施してみましたので手順について書いてみます。

 

PowerShell on Linux のインストール

※ちょっと不親切だなーと思ったので、自分で打つコマンドは緑で色分けしています。

前提環境:

Welcome to Ubuntu 16.04.1 LTS (GNU/Linux 4.4.0-34-generic x86_64)

* Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage

Get cloud support with Ubuntu Advantage Cloud Guest:
 http://www.ubuntu.com/business/services/cloud

14 packages can be updated.
 0 updates are security updates.
 Last login: Sat Aug 20 01:43:00 2016 from 157.65.54.111

作業用フォルダの作成、移動

miyamam@SQLinux:~$ pwd 
 /home/miyamam
 miyamam@SQLinux:~$ mkdir temp
 miyamam@SQLinux:~$ cd temp/

wget コマンドでインストールバイナリをダウンロードする。

 miyamam@SQLinux:~/temp$ wget https://github.com/PowerShell/PowerShell/releases/download/v6.0.0-alpha.9/powershell_6.0.0-alpha.9-1ubuntu1.16.04.1_amd64.deb
 --2016-08-20 01:44:41--  https://github.com/PowerShell/PowerShell/releases/download/v6.0.0-alpha.9/powershell_6.0.0-alpha.9-1ubuntu1.16.04.1_amd64.deb
 Resolving github.com (github.com)... 192.30.253.112
 Connecting to github.com (github.com)|192.30.253.112|:443... connected.
 HTTP request sent, awaiting response... 302 Found
 Location: https://github-cloud.s3.amazonaws.com/releases/49609581/3ab34990-63bf-11e6-84b3-9c3f34c3318d.deb?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAISTNZFOVBIJMK3TQ%2F20160820%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20160820T014442Z&X-Amz-Expires=300&X-Amz-Signature=9eee30f12bd1767fe0200f43acac93214a70e7aaa7835e97abc4eb393487be6d&X-Amz-SignedHeaders=host&actor_id=0&response-content-disposition=attachment%3B%20filename%3Dpowershell_6.0.0-alpha.9-1ubuntu1.16.04.1_amd64.deb&response-content-type=application%2Foctet-stream [following]
 --2016-08-20 01:44:42--  https://github-cloud.s3.amazonaws.com/releases/49609581/3ab34990-63bf-11e6-84b3-9c3f34c3318d.deb?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAISTNZFOVBIJMK3TQ%2F20160820%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20160820T014442Z&X-Amz-Expires=300&X-Amz-Signature=9eee30f12bd1767fe0200f43acac93214a70e7aaa7835e97abc4eb393487be6d&X-Amz-SignedHeaders=host&actor_id=0&response-content-disposition=attachment%3B%20filename%3Dpowershell_6.0.0-alpha.9-1ubuntu1.16.04.1_amd64.deb&response-content-type=application%2Foctet-stream
 Resolving github-cloud.s3.amazonaws.com (github-cloud.s3.amazonaws.com)... 54.231.72.219
 Connecting to github-cloud.s3.amazonaws.com (github-cloud.s3.amazonaws.com)|54.231.72.219|:443... connected.
 HTTP request sent, awaiting response... 200 OK
 Length: 40928824 (39M) [application/octet-stream]
 Saving to: ‘powershell_6.0.0-alpha.9-1ubuntu1.16.04.1_amd64.deb’

powershell_6.0.0-alpha.9-1ubu 100%[=================================================>]  39.03M  12.1MB/s    in 4.3s

2016-08-20 01:44:48 (9.03 MB/s) - ‘powershell_6.0.0-alpha.9-1ubuntu1.16.04.1_amd64.deb’ saved [40928824/40928824]


#wget する先のリンクは都度新しいものがリリースされている可能性がありますので、GitHubで確認をして環境に合わせます

2016-08-20_11h39_05

 

インストール

miyamam@SQLinux:~/temp$ sudo apt-get install libunwind8 libicu55
Reading package lists... Done
Building dependency tree
Reading state information... Done
libicu55 is already the newest version (55.1-7).
libunwind8 is already the newest version (1.1-4.1).
0 upgraded, 0 newly installed, 0 to remove and 18 not upgraded.
miyamam@SQLinux:~/temp$ sudo dpkg -i powershell_6.0.0-alpha.9-1ubuntu1.16.04.1_amd64.deb
Selecting previously unselected package powershell.
(Reading database ... 99535 files and directories currently installed.)
Preparing to unpack powershell_6.0.0-alpha.9-1ubuntu1.16.04.1_amd64.deb ...
Unpacking powershell (6.0.0-alpha.9-1) ...
Setting up powershell (6.0.0-alpha.9-1) ...
Processing triggers for man-db (2.7.5-1) ...

 

起動確認とHello PowerShell

miyamam@SQLinux:~/temp$ powershell
 PowerShell
 Copyright (C) 2016 Microsoft Corporation. All rights reserved.

PS /home/miyamam/temp> $PSVersionTable
 Name                           Value
 ----                           -----
 PSVersion                      6.0.0-alpha
 PSEdition                      Core
 PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
 BuildVersion                   3.0.0.0
 GitCommitId                    v6.0.0-alpha.9
 CLRVersion
 WSManStackVersion              3.0
 PSRemotingProtocolVersion      2.3
 SerializationVersion           1.1.0.1

 

PowerShellの典型的なサンプルのWrite-Host コマンドレットを使用します。(-ForegroundColor オプションは指定色にするというオプションです。)

 

PS /home/miyamam/temp> Write-Host "Hello PowerShell!!" -ForegroundColor Cyan
 Hello PowerShell!!
 PS /home/miyamam/temp> Write-Host "Hello PowerShell!!" -ForegroundColor Magenta
 Hello PowerShell!!

2016-08-20_11h46_14

 

インタラクティブシェルの動作確認として、Windows の PowerShell 環境ではエラーになる ifconfig ですが…

2016-08-20_11h52_42

ちゃんと動作します。

2016-08-20_11h52_56

終了させる場合はexit コマンドで終了させます。

 

参考リンク

PowerShell is open sourced and is available on Linux

https://azure.microsoft.com/en-us/blog/powershell-is-open-sourced-and-is-available-on-linux/

 

Package installation instructions

https://github.com/PowerShell/PowerShell/blob/master/docs/installation/linux.md

 

 

本情報の内容(添付文書、リンク先などを含む)は、作成日時点でのものであり、予告なく変更される場合があります。

Bash Shell on Windows 10 Anniversary Update インストール

以前、Bash on Ubuntu on Windows を早速触ってみました。というブログエントリを書いたのですが、その時はまだ Insider Preview の環境でした。

先日 Anniversary Update が出て、なぜだか降ってこなかった私の環境にも(原因がわかり)無事アップデートすることができたので、大手を振ってAnniversary Update での設定方法について説明したいと思います。

個人的には、Bash Shell が使える ⇒ SSH クライアントがコマンドプロンプトから使える ⇒ Linux の環境が容易に触れる (*’▽’) というメリットの図式しか無いので、もう設定しない理由は無いという感じです。

 

前提環境:

Windows 10 Anniversary Update – build 14393 (2016年8月2日に利用可能、Insider Preview の 14316 以降でも可。)

x64 ベースのプロセッサ ( AMD / Intel x64 互換CPU )

 

確認方法(一例)

スタート → 設定 → システム → バージョン情報 もしくは、Windows + R → cmd → systeminfo で確認できます。

image

 

image

インストールの作業流れ (たった2ステップです

  1. 開発者モード をオンにします
  2. “Windows Subsystem for Linux (beta)” を有効化する

開発者モードをオンにします

1.設定 → 更新とセキュリティ を開きます。

image

 

2.開発者向け を選択し、 開発者モード にチェックを入れます。

image

“Windows Subsystem for Linux (beta)” を有効化する

1. Windows 機能の有効化または無効化 を起動します。コントロールパネルからも起動可能ですが、検索で Windows 機能 等で検索すると早いです。

image

2.Windows Subsystem for Linux (Beta) にチェックを入れて、OK をクリックします

image

インストールが終わったら再起動します。

image

 

3.リブート後にコマンドプロンプトから bash と入力します。

プロンプトで入力を求められるので、”y” を入力します。

image

 

インストールの後半で、ユーザー名パスワードを入力します。

image

 

参考にしたマニュアル:
Installation Guide
https://msdn.microsoft.com/ja-jp/commandline/wsl/install_guide

Windows Subsystem for Linux Blog
https://blogs.msdn.microsoft.com/wsl/

 

本情報の内容(添付文書、リンク先などを含む)は、作成日時点でのものであり、予告なく変更される場合があります。

Bash on Ubuntu on Windows を試すときのポイント

前回のブログエントリでは、動いたことがうれしくて単なる手順になっていましたが、一晩頭を冷やして同僚のみなさんとディスカッションするといろいろなことがわかってきました。

正直なところ、Insider PreviewのFastで展開されているものなので、アルファ版というかベータ版というかとにかく製品としては実装したてのよちよち歩きなものです。今後の実装で変わる可能性がありますので、今日現在での好奇心を満たすための確認という位置づけでお願いします。

要望や開発に携わりたい方はGitHubのほうにアクセスしてみてください。

 

1.どこのフォルダがマウントされているのか見てみよう
コマンドプロンプトから起動してみます。
ls コマンドを叩くと、一覧表示されるのですが隠しフォルダが青く表示されているのが隠しフォルダ。
グリーンに青抜きで表示されているのが通常アクセスできるフォルダ。
グリーンの文字で表示されているのがOSで使われているフォルダという感じで確認できます。

image

 

スタートメニューから起動した場合は、/root になります。Windows環境には本来存在しないはずのファイルやコンポーネントが存在しています。

image

 

2.ps コマンドを実行してみる。

image

 

3.root@localhost としてログインしているようだが、管理者権限のないユーザーでログインしてみる。
コマンドプロンプトでbash と実行したところ、インストールしようとしました。今のところはユーザー単位のインストールのようです。

image

 

4.実際のUbuntuのマシンと比較してみる
Azure Market Place にあるイメージを使えば簡単につくることができるので比較することが簡単にできます。

 

5..bashrc をカスタマイズしてコマンドの戻り値をわかりやすく表示する。
久森さんがGitHubにすてきなサンプルを提供していらっしゃいました。コマンドが成功するとニコニコ。失敗すると残念顔。というものです。
ぜひご利用ください。

 

番外編:インストールが正常終了したのに、「Error:0x80070057」が表示されてbash が起動しない(スタートアップメニューから叩いても起動して瞬間にエラー終了しているようにみえる)場合の対処法。
コマンドプロンプトのウィンドウを右クリック→Propertiesを開きます。
“Use legacy consore (requires relaunch)” にチェックが入っている場合は外します。

image

 

参考リンク:https://github.com/Microsoft/BashOnWindows/issues/7

本情報の内容(添付文書、リンク先などを含む)は、作成日時点でのものであり、予告なく変更される場合があります。

Bash on Ubuntu on Windows を早速触ってみました。

今年の //build で発表され、かなりの方がご興味を持っているであろうBash on Ubuntu on Windows ですが、漸く私の手元の環境にも対応しているWindows insider preview である14316 が落ちてきたので早速さわってみました。

これから触るひとのために、手順を簡単にまとめましたのご参考にどうぞ。

このビルドをお試しいただく場合は、「国または地域」を「United States」「言語」を「English (United States)」が最上位にしておくことをおすすめします。

 

1.「Start」→「Settings」→「Update & security」を開きます。

image

 

2.左側のメニューで一番下の「For developers」をクリックして、「Developer mode」にチェックが入っていることを確認します。

image

 

3.スタートメニューで「Turn Windows Features on or off」をクリックします。

image

 

4.「Windows Subsystem for Linux (Beta)」にチェックを入れて「OK」をクリックします。

image

 

5.再起動を要求されますので、必ず再起動してください。

image

 

6.再起動後にコマンドプロンプトもしくはPowerShellのプロンプトで「Bash」を実行します。

※ベータの機能であること、Ubuntu on Windows をインストールする旨の確認が入るので「y」と入力します。

入力すると、Windows store からのダウンロードおよびインストールが開始されます。(ネットワークの回線速度および、PCのスペックによって数分~かかります)Installation successful!と表示されれば成功です。

稀に失敗することがありますが、原因等は不明です。試される場合はクリーンインストール可能な環境や仮想マシンで実施されることをおすすめします。

image

 

7.インストールが終わると、スタートメニューから「Bash on Ubuntu on Windows」を実行することができるようになります。

image

 

 

番外:cowsayを使って「Hello Bash on Ubuntu on Windows 」したい場合

インターネットに接続した環境で下記を実行します。

root@localhost:~# apt-get install cosway

root@localhost:~# echo “Hello Bash on Ubuntu on Windows” | /usr/games/cowsay

 

image

 

PythonやSSHがデフォルトで入っていたので、これでSSHをPowerShellに組み込んだりしなくてよくなりそうです。メインマシンでやらなかったから当分組み込んだものを使いますっ(強がり)

 

参考リンク:

https://blogs.windows.com/windowsexperience/2016/04/06/announcing-windows-10-insider-preview-build-14316/

https://blogs.msdn.microsoft.com/commandline/2016/04/06/bash-on-ubuntu-on-windows-download-now-3/

https://blogs.windows.com/buildingapps/2016/03/30/run-bash-on-ubuntu-on-windows/