環境
- 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 のほうを使っておけば間違いない。