パズルを解きながらBashをマスターできる一冊――『Bash it out』レビュー
コンピューターは私にとって趣味であり、同時に仕事でもあります。自宅のアパートには10台ほどのマシンがあり、Macも含めてすべてLinuxが動いています。マシンのアップグレードもスキルの向上も好きな私にとって、Sylvain Leroux(シルヴァン・ルルー)氏の著書『Bash it out』を見つけたときは、迷わず購入しました。日頃からDebian Linuxでコマンドラインを多用している私にとって、Bashの知識を深める絶好の機会に思えたのです。しかも序文で著者自身がDebian Linuxを使っていると書かれており、私のお気に入りディストリビューションのひとつだけに、思わず笑みがこぼれました。
Bashはタスクの自動化を可能にする、省力化できて面白く、実用的なツールです。この本を読む前から、UnixやLinux上でのBash経験はそれなりに積んでいました。とはいえ専門家と呼べるレベルではありません。スクリプト言語としてのBashはあまりにも広大で強力だからです。私がBashに興味を持ったきっかけは、Arch系ディストリビューションであるEndeavourOSのウェルカム画面で目にしたときでした。
以下のスクリーンショットは、EndeavourOSのメニュー項目の一部です。信じられないかもしれませんが、これらのパネルはそれぞれBashスクリプトへの入り口にすぎません。そして各スクリプトは、比較的複雑な処理を見事にこなしてくれます。すべてオープンソースなので、必要があれば自分でスクリプトを修正することも可能です。


学ぶべきことは常にそこにある
本書への印象は非常に良好です。ページ数は多くありませんが、よく練り上げられた内容です。著者はBashに関する知識が非常に豊富で、その使い方を説明する能力も抜群です。本書では16個のパズル――著者のいうところの「チャレンジ」――を通じて、初級・中級・上級のBashスクリプティングを段階的に学べます。おかげで私は、Bashスクリプティングを「解くべきプログラミングパズル」として捉えるようになり、より楽しく取り組めるようになりました。
Bashの魅力は、Linuxシステムとの深い統合にあります。その力の一部は構文そのものにありますが、アクセスできる対象が非常に多いことも大きな強みです。反復作業や、「簡単だけど手作業でやるのはもううんざり」というタスクをスクリプト化できます。扱う対象の規模は大小問わず、『Bash it out』は「何ができるのか」と「どうやって実現するのか」の両方を理解させてくれる一冊です。
このレビューを完結させるには、Opensource.comで公開されているDavid Both氏の無料リソース「A sysadmin's guide to Bash scripting」に触れないわけにはいきません。こちらは全17ページのPDFガイドで、本書とはアプローチが異なりますが、両者を組み合わせれば、Bashを学びたい人にとって最強のコンビネーションになるでしょう。
私はプロのプログラマーではありませんが、『Bash it out』を読んで、より高度なBashスクリプティングに挑戦したいという意欲が湧いてきました。気づけば、予定していなかったのにプログラマーになっていた……なんてことになるかもしれません。
私がLinuxを愛する理由のひとつは、OSとしてのパワーと汎用性の高さです。どれだけLinuxについて知ったつもりでも、必ず新しい発見があり、それがさらにLinuxへの感謝と敬意を深めてくれます。
競争が激しく変化の速い現代の雇用市場においては、誰もが継続的にスキルを更新していくべきです。本書は、とても実践的な形でBashを学ばせてくれました。まるで著者が同じ部屋にいて、辛抱強く学びを導いてくれているかのような感覚さえありました。
著者Leroux氏には、読者を引き込む不思議な才能があります。これは稀有なギフトであり、技術的な専門性以上に価値があると私は考えています。実際、私がこの書評を執筆しているのも、私自身の学習ニーズを先回りして汲み取ってくれた著者への感謝の気持ちゆえです。面識は一度もありませんが、その才能から確かな恩恵を受けているのですから。
-
screenFetchとNeofetchでLinuxシステム情報を美しく表示・共有する方法
自分のLinux環境の設定を他の人と共有したい理由はさまざまです。システムのトラブルシューティングで助けを求めたい場合もあれば、自分が作り上げたデスクトップ環境を誇らしく思って、オープンソース愛好家の仲間に披露したい場合もあるでしょう。 cat /proc/cpuinfo や lscpu コマンドを使えば、一部の情報はBashプロンプトから取得できます。しかし、OS、カーネル、稼働時間(アップタイム)、シェル環境、画面解像度といったより詳細な情報をまとめて共有したいなら、「screenFetch」と「Neofetch」という2つの優れたツールがおすすめです。 ScreenFetchとは Scr
-
自宅プリンターで両面印刷を自動化!シンプルなBashスクリプトの作り方
私の自宅にはレーザープリンターがあります。Hewlett Packard LaserJet Pro CP1525nwカラープリンターはやや古いモデルですが、何年もの間、安定してカラー印刷をこなしてくれる頼れる働き者です。数年前にRaspberry Piをプリントサーバーとして導入し、家庭内ネットワークに接続しました。 このLaserJetはホームオフィスにとって大きな戦力です。昨年会社を立ち上げて以来、クライアントとの打ち合わせやワークショップ、研修会用の資料印刷には、ずっとこの小さなレーザープリンターにお世話になってきました。 ただ、ひとつだけ不満があります。このプリンターは片面印刷にしか対