hexdumpコマンドの基本!バイナリデータを16進数で表示する方法を初心者向けに解説
生徒
「ファイルの中身って文字じゃない場合もありますよね?それってどうやって確認するんですか?」
先生
「いいところに気づきましたね。そんなときはhexdumpコマンドを使うと便利ですよ。」
生徒
「へクスダンプって何ですか?難しそうです。」
先生
「簡単に言うと、データを16進数という形で表示する方法です。順番に見ていきましょう。」
1. hexdumpコマンドとは?
hexdumpコマンドは、Linuxでバイナリデータを16進数形式で表示するためのコマンドです。
通常、テキストファイルは人が読める文字で表示されますが、画像ファイルやプログラムの実行ファイルなどは「バイナリデータ」と呼ばれ、人間にはそのままでは読めません。
そこでhexdumpを使うと、データを数値に変換して確認できるようになります。
イメージとしては「暗号のようなデータを数字で見えるようにする道具」です。
2. 16進数とは?初心者向けにやさしく解説
16進数とは、0から9に加えてAからFまでを使って数を表す方法です。
普段使っている10進数は0から9までですが、16進数は0から15までを表現できます。
例えば以下のようになります。
- 10進数の10は16進数ではA
- 10進数の15は16進数ではF
コンピュータは内部でデータを扱うときに、このような形式をよく使っています。
3. hexdumpコマンドの基本的な使い方
まずは基本的な使い方から見ていきましょう。
hexdump sample.txt
0000000 4865 6c6c 6f20 576f 726c 640a
000000c
左側は「位置(アドレス)」、右側は「データ(16進数)」です。
この表示は、ファイルの中身を数字として確認している状態です。
4. -Cオプションで見やすく表示する
初心者には-Cオプションが特におすすめです。文字としても表示されるため、理解しやすくなります。
hexdump -C sample.txt
00000000 48 65 6c 6c 6f 20 57 6f 72 6c 64 0a |Hello World.|
0000000c
右側に「Hello World」と表示されています。
このように、16進数と文字を同時に確認できるのが特徴です。
5. -nオプションで表示するサイズを制限する
大きなファイルをすべて表示すると見づらくなるため、一部だけ表示したい場合があります。
hexdump -n 16 -C sample.txt
00000000 48 65 6c 6c 6f 20 57 6f 72 6c 64 0a |Hello World.|
0000000c
-nは「何バイト表示するか」を指定するオプションです。
6. -sオプションで途中から表示する
ファイルの途中から確認したい場合は-sを使います。
hexdump -s 6 -C sample.txt
00000006 57 6f 72 6c 64 0a |World.|
0000000c
6バイト目から表示され、「World」が確認できます。
7. バイナリファイルの確認例
画像ファイルなども確認できます。
hexdump -C image.png
00000000 89 50 4e 47 0d 0a 1a 0a 00 00 00 0d 49 48 44 52
00000010 00 00 02 00 00 00 02 00 08 06 00 00 00 f4 78 d4
これはPNGファイルの先頭部分です。
「89 50 4e 47」はPNGファイル特有の識別情報です。
8. hexdumpと他のコマンドとの違い
似たコマンドとしてxxdやodがあります。
hexdumpはシンプルで標準的xxdは逆変換も可能odはより細かい表示が可能
初心者はまずhexdumpから覚えるのがおすすめです。
9. よくある使いどころと活用シーン
hexdumpは以下のような場面で活躍します。
- ファイルが壊れていないか確認する
- バイナリ形式の中身を調査する
- プログラムのデータ構造を理解する
特にエンジニアやインフラ担当者にとっては重要なコマンドです。
まとめ
本記事ではLinuxコマンドの中でも重要なhexdumpコマンドについて、バイナリデータを16進数で表示する基本から実践的な使い方までを丁寧に解説しました。テキストファイルだけでなく、画像ファイルや実行ファイルなどのバイナリデータを扱う場面は多く、hexdumpコマンドを理解することでLinux操作の理解が大きく深まります。 特にLinux初心者の方にとっては、普段目に見えないデータの中身を可視化できるという点で非常に有用なコマンドです。16進数という概念も最初は難しく感じるかもしれませんが、実際にコマンドを実行しながら確認することで自然と理解できるようになります。 hexdumpコマンドの基本構文はシンプルでありながら、オプションを組み合わせることで柔軟な表示が可能です。例えばCオプションを使うことでASCII文字と16進数を同時に確認できるため、データの内容をより直感的に理解できます。またnオプションで表示範囲を制限したり、sオプションで特定の位置からデータを確認することで、大きなファイルでも効率よく解析することができます。 実際の現場ではファイルの破損チェックやフォーマットの確認、バイナリ解析などでhexdumpコマンドが活躍します。特にインフラエンジニアやプログラマーにとっては、トラブルシューティングの際に役立つ重要なスキルの一つです。 hexdumpコマンドはxxdやodといった類似コマンドと比較されることもありますが、まずは標準的でシンプルなhexdumpから学ぶことでLinuxの基礎力をしっかり身につけることができます。 この記事で学んだ内容をもとに、実際にコマンドを実行しながら理解を深めていくことが重要です。Linuxコマンドの学習においては、知識だけでなく実際に手を動かして試すことが最も効果的です。 また本記事の内容は:contentReference[oaicite:0]{index=0}として確認できる内容を踏まえて整理されているため、復習しながら繰り返し読むことで理解がより確実になります。
hexdumpコマンドの基本復習
hexdump -C sample.txt
00000000 48 65 6c 6c 6f 20 57 6f 72 6c 64 0a |Hello World.|
0000000c
表示サイズを制限する例
hexdump -n 8 -C sample.txt
00000000 48 65 6c 6c 6f 20 57 6f |Hello Wo|
00000008
途中から表示する例
hexdump -s 6 -C sample.txt
00000006 57 6f 72 6c 64 0a |World.|
0000000c
生徒
hexdumpコマンドはバイナリデータを16進数で表示するためのコマンドで、普通では読めないファイルの中身を確認できるということが分かりました。
先生
その通りです。特にLinux環境ではファイルの中身を直接確認することが重要になるため、hexdumpは非常に役立つコマンドです。
生徒
Cオプションを使うと文字と16進数が一緒に表示されるので、とても分かりやすいと感じました。
先生
初心者には特におすすめのオプションです。まずは見やすい表示で理解を深めることが大切です。
生徒
nオプションやsオプションを使うことで必要な部分だけ確認できるのも便利だと思いました。
先生
その理解はとても良いです。大きなファイルを扱うときには特に重要な使い方になります。
生徒
今後はファイルのトラブルや解析のときにhexdumpコマンドを使ってみたいです。
先生
ぜひ実際に使ってみてください。Linuxコマンドは使えば使うほど理解が深まり、確実にスキルとして身につきます。