TidBITS の読者なら、macOS が Unix ベースであること、そして Terminal を開くとファイルやフォルダ、そしてアプリケーションをコマンドラインで操作できることはおそらくご存知だろう。Mac ユーザーの大半にとって、コマンドラインは好奇心の塊でしかなく、探求されることはない。その対極に位置するのが、Unix 系オペレーティングシステムに精通していて、グラフィカルアプリケーションよりもコマンドラインで多くの時間を過ごす人たちだ。私たちの多くはその中間に位置し、コマンドラインの威力は理解しているものの、ネイティブの Mac アプリケーションの方が快適だと考えている。これはまさに私の場合で、必要ならコマンドラインで grep を使うこともできるが、可能な限り BBEdit を使うようにしている。
もしあなたが私と同じなら、コマンドラインについて最も重要な点は、それが二者択一の問題になることは滅多にないということです。私が何かをするためにコマンドラインを使うのは、ほとんどの場合、Finder、BBEdit、あるいは他のMacネイティブアプリではそのタスクを実行するのが困難、あるいは不可能だからです。とはいえ、多くの機能が重複していないわけではありません。Finderでフォルダをダブルクリックしてファイルを開くことでファイルシステムを移動する方法を知っているのと同じように、コマンドラインでも同様の基本的な操作を知っておく必要があります。
Joe Kissell 氏の最新版『Take Control of the Mac Command Line with Terminal』(Take Control Books で 14.99 ドル)と Armin Briegel 氏の新刊『macOS Terminal and Shell』(Apple Books で 19.99 ドル)の 2 冊は、初心者でも管理者レベルのスキルがあれば役立つであろうと、コマンドラインでのスキル向上に役立つはずです。
(完全な情報開示:Joe がTake Control of the Mac Command Line with Terminal を最初に書いたのは、Tonya と私が Take Control Books を経営していた時で、私もその開発にかなり関与していました。しかし、私たちは 2017 年 5 月に Take Control を Joe に売却し、今ではその本にも会社にも金銭的な利害関係はありません。また、私は Armin Briegel をよく知っているわけではないのですが、カンファレンスなどで時々会っていますし、何年も前に MacTech で彼が親切にも私のために AppleScript を書いてくれたこともありました。私は今でもそれを使って、番号付きの TidBITS 号ごとに月曜日のイベントをカレンダーに入力しています。)
当然のことながら、どちらの本も冒頭ではほぼ同じ内容を扱っています。問題は、ターミナルの使い方、コマンドの入力、ファイルシステムの操作、マニュアルページの読み方など、基本的な知識を誰もが理解する必要があるという重複部分です。その後、両書の内容は少し異なります。
ターミナルでMacのコマンドラインをコントロールする
『Take Control of the Mac Command Line with Terminal』は正攻法をとっており、Joe Kissell が親しみやすく実践的なスタイルで、シェル スクリプトを作成してタスクを自動化する方法 (変数、ユーザー入力、条件文、ループ、数学を含む)、ssh 経由で他の Mac を制御する方法、パイプやリダイレクトなどの主要な Unix テクニックの使い方、grep を使用してファイル内のテキスト パターンを検索する方法、パッケージ マネージャーを使用して新しいコマンド ライン ソフトウェアをインストールする方法を説明しています。
コマンドラインに慣れていない多くの Mac ユーザーにとって、最も難しいのは、それが何ができるかを理解することです。その威力を理解していなければ、問題に直面したときにそれを思いつくことすらまずないでしょう。その学習プロセスを短縮するために、Joe は 64 個の「レシピ」を組み込んでおり、多くの場合複数のコマンドを結合する必要がある現実的な解決策を示しています。私が特に気に入っているのは、ボリュームが取り出せない理由 (何らかのアプリが使用していますが、どのアプリが使用しているのか?) を解明したり、ゴミ箱を空にしても削除されないファイルを処理するレシピなど、裏で動作するものです。また、textutil
テキスト ドキュメントをさまざまな一般的な形式に変換するコマンドについても知ることができ、特に嬉しかったです。Word ドキュメントでいっぱいのフォルダーを HTML に (またはその逆) 変換する必要がある状況は容易に想像できますが、これを 1 つずつ実行していたら気が遠くなるような作業でしょう。
macOS ターミナルとシェル
『Take Control of the Mac Command Line with Terminal』は日常的な Mac ユーザーを対象としていますが、Armin Briegel はシステム管理者としての経験を活かして、 Finder や他のネイティブ Mac アプリで常に利用できる以上の柔軟性を必要とするシステム管理者、開発者、科学者、および「プロ」ユーザー向けにmacOSターミナルとシェルを作成しました。
そのため、本書では、ユーザの管理( を使用sysadminctl
)とグループの管理( を使用dseditgroup
)についてより広範囲に取り上げています。これは、Mac を自分一人しか使用しない一般の人だけでなく、システム管理者にとっても大きな関心事であることが多いトピックです。Armin は、隠しユーザ アカウントの作成方法も説明しています。システム管理者は、従業員の Mac に管理者レベルのアカウントを用意してトラブルシューティングや修復を行う際に、ログイン ウィンドウや Mac インターフェースの他の部分を煩雑にすることなく、隠しユーザ アカウントを作成することがよくあります。同様に、Armin は、管理者や開発者に役立つ可能性のあるさまざまなリンク タイプ、特殊なファイル属性、macOS の権限についても詳しく説明しています。
macOS のターミナルとシェルが優れている点として、ターミナルアプリとシェルの両方を構成して動作をカスタマイズする方法がすべて公開されている点があります。たとえば、ターミナルでコマンドを選択してヘルプ > 選択範囲のマニュアルページを開く (または選択範囲を Control キーを押しながらクリックしてマニュアルページを開く) と新しいウィンドウが開き (目立つように背景が黄色に自動的にスタイル設定され)、選択した項目のマニュアルページが表示されます。マークを使用して出力をスクロールバックする方法 (出力が複数の画面にまたがる場合に便利)、コマンド内でのキーボードナビゲーション、Option キーを使用して長方形の選択を行う方法、その他多くのことを説明しているセクションもあります。私のお気に入りの新しいヒントは、ターミナルでウィンドウグループを作成して、頻繁にアクセスする必要があるリモートサーバーへのタブを開くことができることです。
Apple Booksアプリについて
Take Control のデザイン言語に携わった経験から、かなり偏った見方をしている部分もあるかもしれませんが、Apple の Books アプリでmacOS のターミナルとシェルをページングするという平凡なユーザーエクスペリエンスよりも、 Take Control of the Mac Command Line with Terminal の PDF 版をプレビューで読む方がはるかに気に入っています。(他の Take Control 書籍と同様に、Take Control of the Mac Command Line with Terminal は、リフロー可能なテキストが便利な状況向けに、Books 版の EPUB と Kindle 版の Mobipocket でも入手できます。)
公平を期すために言っておくと、Appleのブックアプリでの読書に対する私の批判は、アーミン・ブリーゲル氏の管轄外であり、複数のフォーマットで出版することの難しさは誰よりも私自身が理解しています。とはいえ、プレビューで丁寧に作成されたPDFを読むのと比べて、ブックアプリはいくつかの点でイライラさせられると感じています。
Booksのメリットとしては、Armin Briegel氏が、Finderからターミナルにファイルやフォルダをドラッグするなど、静止画のスクリーンショットよりも分かりやすく解説した非常に短いビデオをいくつか収録していることが挙げられます。ここ数年で何かが変わったのでなければ、PDFにビデオを埋め込むという難題は、これまで私たちが満足のいく解決策を見つけられずにいました。macOSのターミナルとシェルがBooksを使い続けているのも、まさにこのためです。
しかし、この2冊の読みやすさにはあまりこだわるつもりはありません。自分のニーズに最も適した本を選ぶべきだからです。ターミナルとコマンドラインの使い方を自分の目的のためにもっと詳しく知りたいだけなら、ジョー・キッセルの『Take Control of the Mac Command Line with Terminal』が最適な第一歩です。深い湖の表面をざっとなぞるようなものです。一方、アーミン・ブリーゲルの『macOS Terminal and Shell』はより深く掘り下げており、Macの管理者や開発者が日常業務で必要とするコマンドラインの専門知識を習得することに重点を置いています。どちらを選んでも間違いはありません。