動かざることバグの如し

近づきたいよ 君の理想に

macOSのシリアル番号をターミナルで確認するコマンド

環境

  • macOS Tahoe

やりたいこと

Macのシリアル番号は「このMacについて」を開けば見られるが、いちいちマウスでポチポチするのが面倒。SSH越しでも取れるようにターミナルから一発で引きたい。

コマンド

これ。以上。

❯ ioreg -c "IOPlatformExpertDevice" | awk -F'"' '/IOPlatformSerialNumber/ {print $4}'
XXXXXXXX

ioreg はI/O Kitのレジストリをダンプするコマンドで、-c IOPlatformExpertDevice でハードウェア情報を持つノードだけに絞れる。この中の IOPlatformSerialNumber が本体のシリアル番号。

出力は "IOPlatformSerialNumber" = "XXXXXXXX" という形式なので、awkでダブルクォートを区切り文字にして4番目のフィールドを取ればシリアル番号だけが残る。余計な文字が一切付かないので、そのまま変数に入れて使える。

もうひとつのやり方が system_profiler を使う方法。

❯ system_profiler SPHardwareDataType | grep "Serial Number"
2026-08-11 19:55:04.868 system_profiler[89634:2489984] hw.cpufamily: 0x1d5a87e8
      Serial Number (system): XXXXXXXX

こっちのほうが人間には読みやすいのだが、見てのとおり hw.cpufamily: ... という謎のログが標準エラー出力に混ざってくる。

あとsystem_profilerは全ハードウェア情報を集めてから吐き出す仕様なので、ioreg と比べると体感で分かるレベルで遅い。スクリプトから叩くなら素直に ioreg のほうを使っておけば間違いない。