スタッフブログ

STAFF BLOG

やってみた

2016.08.29

Bash on Ubuntu on Windowsで何ができるのか

サーバー開発担当の木下です。
Bash on Ubuntu on Windowsでさわいでいたら、今度はWindowsのPowerShellがGitHubで公開された、というニュースも入ってきました。
マイクロソフトのおかげで、落ちきつつあったオープンソース化にまた大きな波が来そうな感じがします。

さて、前回の予告通り。

Bash on Ubuntu on Windowsで何ができるのか

ひとことで言ってしまえば、UbuntuのBashと同じことができます。しかも、仮想OSのように隔離されたUbuntu環境の中だけではなく、WindowsのCドライブの中を見ることもできます。
このおかげで、「この大量のファイルを操作するのが面倒!Bashならコマンド一行なのに!」というシェル芸人Linux環境に慣れている方も、これで作業を効率化できます。

Bashでどう効率化できるのか

たとえば、いくつかのJPEG画像をまとめてひとつのPDFファイルにしたい場合です。
Googleで「画像 PDF化」と検索すると、いろいろ出てきます。ウェブベースの変換サービスを使うとか、Adobe Acrobatで変換する、Microsoft Wordで編集してPDFエクスポート、などなど。
しかし、Linuxに「ImageMagick」が入っていれば、コマンドだけで簡単に完了できます。

ImageMagickをインストールする

代表的なLinuxディストリビューションは、パッケージマネージャと言われるものを持っています。スマホで言えば、AndroidのPlay Store, iOSのApp Storeに近いものです。
Ubuntuの場合、aptというパッケージマネージャがありますので、これを使ってImageMagickをインストールします。
Bashの画面で、

sudo apt-get -y install imagemagick

と入力してエンターキーを押します。パスワードを聞かれるので入力すれば、インストール完了です。簡単ですね。

ImageMagickでJPEGファイルをPDFにする

Windowsのデスクトップに、牧場で撮影した写真を4枚準備しました。
photosdir
Bashで、Ubuntu環境のホームディレクトリに写真をコピーします。

$ cp /mnt/c/Users/user/Desktop/Photos/*.jpg /home/user/

コピー先に移動して、JPEGを全部まとめて「photos.pdf」というPDFファイルに変換します。

$ cd /home/user/
$ convert *.jpg photo.pdf

完成したファイル:photo.pdf
これで変換完了です。ただ、元の画像が大きいので、PDFファイルも12MBになってしまいました。これではメール添付も難しいので、もう少し小さくしてみましょう。
幅を1024pxで指定してみます。

$ convert *.jpg -resize 1024x photo1024.pdf

完成したファイル:photo1024.pdf
1.6MBまで小さくすることができました。

あとは、変換して出来たPDFファイルをWindows側に移動できれば良いのですが、現状は簡単にはいかないようです。このあたりは今後のアップデートに期待したいと思います。

サーバーとBashの組み合わせで使い道が広がる

Bashのコマンドは、IoTにも対応できます。
たとえば、安価なIoTデバイスとして知られるRaspberry Pi向けに開発されている、RaspbianというLinuxディストリビューションがあります。
Raspberry PiのGPIO18番にLEDをつないでおき、コマンドで

$ echo "18" > /sys/class/gpio/export
$ echo "out" > /sys/class/gpio/gpio18/direction
$ echo "1" > /sys/class/gpio/gpio18/value

を実行すると、GPIO18番に電流が流れ、LEDが光ります。

さらに、BashコマンドはPHPなどのサーバースクリプトからも実行でき、スマホアプリと連動させることもできます。
回路設計、サーバープログラミング、スマホアプリ作成のスキルがあれば、「外出先から照明の消し忘れがないか確認できるアプリ」「ベッドの中からコーヒーメーカーのスイッチを入れられるアプリ」などを作ることができるようになります。

Bashをさわってみよう!

ご使用のPCがWindows10で、最新のUpdateが適用されていれば、5分ほどでBash環境を準備することができます。
日本語での情報もたくさん出始めていますので、ぜひBashを体験してみてください。

また弊社では、IoTアプリの開発も承っています。お気軽にお問い合わせください!

BACK

お問合せ

イーディーエーに興味をお持ちいただいて
ありがとうございます!
スマホアプリに関するご相談、
お見積りや弊社へのご質問など、
お気軽にお問い合わせください。
担当者より折り返しご連絡させていただきます。

    お名前必須
    会社名
    メールアドレス必須
    電話番号必須
    お問合わせ種別必須
    お問合わせ内容必須

    アンケートにご協力ください。
    弊社サイトへはどのようにしてアクセスされましたか?

    個人情報のお取扱いに関する同意事項

    1.事業者の氏名又は名称

    株式会社イーディーエー

    2.個人情報保護管理者の氏名又は職名、所属及び連絡先

    個人情報保護管理者 小宮 保人
    Mail:[email protected]

    3.取得した個人情報の利用目的

    当フォームで取得した個人情報は、お問い合わせに関する回答のために利用し、目的外利用はいたしません。

    4.弊社が取得した個人情報の第三者への委託、提供について

    弊社は、ご本人に関する情報をご本人の同意なしに第三者に委託または提供することはありません。

    5.個人情報保護のための安全管理

    弊社は、ご本人の個人情報を保護するための規程類を定め、従業者全員に周知・徹底と啓発・教育を図るとともに、その遵守状況の監査を定期的に実施いたします。
    また、ご本人の個人情報を保護するために必要な安全管理措置の維持・向上に努めてまいります。

    6.個人情報の開示・訂正・利用停止等の手続

    ご本人が、弊社が保有するご自身の個人情報の、利用目的の通知、開示、内容の訂正、追加又は削除、利用の停止、消去及び第三者への提供の停止を求める場合には、下記に連絡を頂くことで、対応致します。

    株式会社イーディーエー 個人情報お問合せ窓口
    〒106-0032 東京都港区六本木7丁目14番23 ラウンドクロス六本木4F
    TEL:03-5422-7524 FAX:03-5422-7534
    Mail:[email protected]

    7.ご提供いただく情報の任意性

    個人情報のご提供は任意ですが、同意を頂けない場合には、第3項にあります利用目的が達成できない事をご了承いただくこととなります。

    8.弊社Webサイトの運営について

    弊社サイトでは、ご本人が弊社Webサイトを再度訪問されたときなどに、より便利に閲覧して頂けるよう「クッキー(Cookie)」という技術を使用することがあります。これは、ご本人のコンピュータが弊社Webサイトのどのページに訪れたかを記録しますが、ご本人が弊社Webサイトにおいてご自身の個人情報を入力されない限りご本人ご自身を特定、識別することはできません。
    クッキーの使用を希望されない場合は、ご本人のブラウザの設定を変更することにより、クッキーの使用を拒否することができます。その場合、一部または全部のサービスがご利用できなくなることがあります。