このページの本文へ

前へ 1 2 次へ

Apple Geeks 第30回

知ってトクするOS Xのコマンド(2)

2011年03月02日 18時00分更新

文● 海上忍

  • この記事をはてなブックマークに追加
  • 本文印刷

 本連載「Apple Geeks」は、Apple製ハードウェア/ソフトウェア、またこれらの中核をなすOS X/iOSに関する解説を、余すことなくお贈りする連載です(連載目次はこちら)。

 UNIX使い向けを始め、Apple関連テクノロジー情報を知りつくしたいユーザーに役立つ情報を提供します。

 OS Xには多数のUNIXベースのコマンドが収録されている。前回は「scutil」、「hostinfo」、「launchctl」などの便利なコマンドを紹介した。今週も引き続き「ioreg」、「afplay」の2種類のコマンドを紹介していく。

内蔵バッテリーのヘタリ具合を計る「ioreg」

 普段何気なく利用している、メニューバー右端の領域「メニューエクストラ」。Wi-Fiの状態やスピーカーのボリュームといった”ステータス情報を一目で把握する”目的に加え、Spotlightやファストユーザスイッチなどの”必要なときすぐ呼び出したい”機能のアクセスポイントとして活用されている。

 内蔵バッテリーやBluetoothマウスなど、バッテリー残量の確認にもメニューエクストラは活用されるが、そこに表示される情報は、システムが把握している情報の一部に過ぎない。「アプリケーション」の「ユーティリティ」内にある「システムプロファイラ」を起動すれば、さらに詳細な情報を確認できるが、そこにも掲載されていない情報はある。

 OS Xの場合、それらハードウェア寄りのシステム情報は「IOKit」に集約されている。いわばシステム情報の源泉とでもいえる存在だが、API層なだけに通常の方法ではアクセスが難しい。

 そこで利用したいのが「ioreg」。このコマンドを利用すれば、IOKitの情報にアクセスできるのだ。ただし、レジストリツリーの形で表現されるうえに、デバイスクラスなど開発者でも完全には把握していない情報のオンパレードで、コツを知らないかぎり使いこなすのは難しい。ここでは、内蔵バッテリーのステータス情報を例に、その使い方を解説してみよう。

 まず、MacBook Proなどに使われる内蔵バッテリーは、デバイスクラス「AppleSmartBattery」としてレジストリツリーに表示される。通常このデバイスクラス名は、Developer Toolsに付属のドキュメントを参照しなければ分からないが、筆者はioregコマンドの出力を「battery」という文字列でgrepすることでアタリを付けた。どうやらデバイスクラス名は「AppleSmartBattery」でよさそうだ。

ioregコマンドで出力される情報は膨大で分析しきれないため、最初にデバイスクラスなどでアタリをつけること

 デバイスクラス名が分かれば、あとは簡単。オプションを「-c AppleSmartBattery」として情報を絞り込み、標準出力へアウトプットされた結果をgrepで絞り込めば、目当ての情報に素早くたどりつける。ここで利用した「Capacity」は、バッテリー容量に関するプロパティに含まれるもので、MaxCapacityは(多少劣化した)現在の最大容量、CurrentCapacityは現時点の容量、DesignCapacityは出荷時点でバッテリーが持っていた容量を意味する。つまり、メニューエクストラでもシステムプロファイラでも分からない「バッテリーのヘタリ具合」を知ることができるのだ。

同様の方法で、BNBMouseDevice(Bluetoothマウス)など他のデバイスクラスも探索してみよう

(次ページへ続く)

前へ 1 2 次へ

カテゴリートップへ

この連載の記事

ASCII.jp RSS2.0 配信中