スタパ齋藤のApple野郎

Macでたまーに「ターミナル」アプリを使う俺! その活用法は?

 Macでたまーに「ターミナル」アプリを使う。ターミナルは、OSに対してコマンドやコードをテキストのかたちで入力し、OSの機能を使えるというもの。Macをホストとして使うUNIX端末エミュレータとも言える。

ターミナルの表示例。MS-DOS時代のパソコンみたい〜。

 ターミナルは開発者など向けのアプリで、多くのユーザーには無縁だと思う。またUNIXコマンドを知らないと手も足も出ないアプリなので、「ターミナルをイジってみよっ!」などといきなり使っても「あ。……やーめたっ!」ってなっちゃうと思う。

 だが、目的によっては「あーターミナルあってよかったぁ」てな利便も。なので興味本位で使ってみて、「いつか役立つ知識」としてちょっと身につけておくといいかもしれない。

 ちなみに俺の場合、1980年後半頃にアスキー(ASCII)社で雑誌編集系の仕事をしていて、そこで使えるネットワークシステムがUNIX系であり、ネットワークプリンターやメールを使いたいがために基本的なUNIXコマンドを習得した(けど今はもうかなり忘れた)。そんな感じなのでMacのターミナルもちょっとだけ使うことができるのであった。

 でもまあコマンドで使うものなので、タイプミスひとつでエラーや誤動作になったり、「あのコマンドなんだっけー」と調べるのが面倒だったりする。なので、俺はあんまり使わないのであった。

 しかし、ここ半年くらいで頻繁に使用。「これはターミナルだと簡単にできるのか!」みたいな使い方を複数見つけ、ターミナルのお世話になっているのであった。以下、役立つかどうかアレだが、俺的ターミナル利用をひとつご紹介してみたい。

あれ? 何時に帰宅したんだっけ? 寝たの何時だっけ?

 ターミナルでけっこう使っているコマンドが「last」。これはシステムのログイン履歴を表示するコマンドで、たとえばターミナルアプリを開いて以下のコマンドを打ち込むと……。

last -15

ターミナルアプリにlast -15とだけ入力してリターンキーを押す。
ユーザーがログインなどした履歴が表示される。

 lastがコマンドで、その後の-10は履歴を10行だけ表示させるというオプション。単にlastコマンドだけ入力すると、記録が残っている全履歴(俺のmacOS環境だと半年分)が表示されてしまう。新しい履歴から表示されるので、スクロールしたりhomeキーを押して行頭に戻る必要が出がち。なので必要な行数を指定するのが無難かも。

こちらはlastコマンドでべつの期間を表示させたもの。

 表示された内容は、上のスクリーンショットの場合、shinsaitoがユーザー名、shutdown timeがMacをシャットダウンした時刻、reboot timeがMacを起動した時刻、consoleはMacを使っていた時間、ttys000などttysが含まれているのはターミナルを使っていた時間だ。

 こういったターミナルアプリおよびコマンドはMac以外のパソコンでも使える。コンピュータを多用する人の場合、いつコンピュータを使ったかが詳細にわかり、それと併せてどんな生活をしていたか思い出しやすい。

 俺がlastコマンドをよく使うのは、「あれ? 今日って何時に帰宅したんだっけ?」「昨日寝たの何時だっけ?」といったことを思い出すため。生活上の日報? みたいなのを書いていて、そこには「8:00掃除」とか「17:00夕食」とかメモ書きもしている。

 だがソレをたまに書き忘れてしまうのだ。いつも書き留めていることを書き忘れるとなーんかキモチワルイ。そこでlastコマンドでコンピュータの起動時間などを見て、「あーそうそう19時頃に帰宅したんだっけ」的に思い出すのであった。

 なお、lastコマンドや併せて使うと便利なオプションなどについては、「Mac last コマンド」あたりで検索すると多数ヒットし、非常に正しく詳しい情報が得られるので、そちらでゼヒ。こういった基本的で簡単なコマンドについてなら、ChatGPTに訊くのもいいかもしれない。

ChatGPTにlastコマンドの使い方を訊いてみた結果。

拾ったコマンドをそのまま使ったりするが……

 俺の場合、Macを一定時間使わない場合は、スリープではなくシャットダウンしている。使っているMac Studioは、スリープさせているとすこーし熱を持つ。ほんのり暖かい感じだが、これはスリープ中にはファンが回転しないため放熱効率が落ちているからだと思う。

 Mac Studioスリープ中発熱問題、と呼んでいるが、Mac Studioは起動も速いので、それなら一定時間使わないときはシャットダウンしちゃおうか、と。たとえば「もう寝よう」となったらMacをシャットダウン。「1時間ほど出かけてこよう」という場合はスリープ、という感じで使っている。

 前述のlastコマンドはスリープの時間帯がわからない。なので、自分の行動を思い返すには、ちょっと不十分。

 そこで「スリープ時間帯がわかる方法ってないかなー」と探していたら、ある人のブログでまさにその方法が公開されていた。そのページにリンクを張ろうと考えたが、個人ブログに商用サイトからのリンクが直接なされるとご迷惑になる可能性があるのでリンクは控えた。なお「Mac スリープ 記録」で検索すれば、ほかの方法も含めていろいろ見つかると思う。

 さておき、その方法はターミナルへの以下コマンドの入力だ。

pmset -g log | grep "Display is turned"| sed 's/[ ][ ]*/ /g'

上記コマンドをコピペしてターミナルに入力すると……。
ディスプレイがオンになった時間やオフになった時間がわかる。

 ディスプレイのオン/オフ時間はわかったが、途中で連続してオンになっている時間帯がある。再起動したとき? 元のログの内容を理解していないので、謎が残ってしまった。

 でも便利〜! このときにオフ、このときにオン、というだけわかれば俺の場合は十分。

 このコマンド書いた作者さんありがとうございます! なおこの一連のコマンドは、pmsetコマンドで読み出した電源関連ログから、grepコマンドを使い一部文字列を検索し、sedコマンドで置換などし余分な情報を削除して見やすく表示しているようだ。また、コマンド中の[ ]内にはスペースとタブが書き込まれているとのこと。

 こういうコマンドがスラスラ書けるようになったらいろいろ効率化して便利になったりもするのかニャ? ……あ、ChatGPTにコマンドを書いてもらったらどうだろう?

 試してみた。ChatGPTへの依頼は「Macのスリープ時間を知るためのターミナルコマンドを教えてください。スリープした時間とウェイクアップした時間だけが表示されるようなコマンドです」としてみた。

あっなんかコマンド教えてくれた!
それをターミナルに入力すると……確かにスリープしていた時間もわかるっぽいのだが……ログ上の余計な情報もぜーんぶ表示されてしまうコマンドっぽい。

 ChatGPTの返答結果をもとに、ChatGPTへの要求をさらに重ねていけば……とは思ったのだが、同じような目的を持った人が書いたコマンドを検索したほうが早いように思う。ともあれ、前出のコマンドで、Macがスリープしている時間帯も掴めるようになった。

 ただし、pmsetコマンドで呼び出せるログは過去1週間分程度だそうだ。lastコマンドのようにわりと長期間をさかのぼってMacの挙動を調べることはできない。もしかしたら電源関連のログをより長期間残せるようにする方法があるのかもしれない……。

 まあでも俺がこのコマンドを必要とするのは、「昨日何時に外出したんだっけ?」くらいのとき。昨日や一昨日のスリープ時間帯がわかれば十分なのであり、再びコマンド記述者に感謝ッ!!!

スタパ齋藤

1964年8月28日デビュー。中学生時代にマイコン野郎と化し、高校時代にコンピュータ野郎と化し、大学時代にコンピュータゲーム野郎となって道を誤る。特技は太股の肉離れや乱文乱筆や電池の液漏れと20時間以上の連続睡眠の自称衝動買い技術者。収入のほとんどをカッコよいしサイバーだしナイスだしジョリーグッドなデバイスにつぎ込みつつライター稼業に勤しむ。