Lệnh od trong linux với các ví dụ dễ hiểu

Lệnh od trong Linux là một công cụ mạnh mẽ để xem nội dung của file dưới nhiều định dạng khác nhau, ví dụ như số bát phân, thập lục phân hoặc ASCII. Lệnh od giúp bạn kiểm tra và phân tích dữ liệu nhị phân một cách chi tiết, rất hữu ích cho việc debug và reverse engineering. Nó cho phép người dùng hiểu rõ cấu trúc dữ liệu bên trong file, từ đó dễ dàng phát hiện lỗi hoặc tìm kiếm thông tin quan trọng.

Lệnh od trong linux là gì?

Lệnh command od in linux là một công cụ dòng lệnh mạnh mẽ, giúp bạn xem nội dung của một tệp tin dưới nhiều định dạng khác nhau. Nó cho phép bạn hiển thị dữ liệu ở dạng bát phân, thập lục phân, thập phân, hoặc ký tự ASCII, tùy thuộc vào nhu cầu phân tích của bạn. Với od, bạn có thể dễ dàng kiểm tra các tệp nhị phân, tìm lỗi, hoặc đơn giản là hiểu rõ hơn về cấu trúc dữ liệu bên trong. Đây là một công cụ không thể thiếu cho các nhà phát triển và quản trị hệ thống muốn đi sâu vào chi tiết của dữ liệu. Nó cung cấp nhiều tùy chọn để tùy chỉnh đầu ra, giúp bạn tập trung vào phần thông tin quan trọng nhất.

Tìm hiểu về lệnh od

Trong bước này, bạn sẽ làm quen với lệnh od (octal dump) trong Linux.

Lệnh od được dùng để hiển thị nội dung của một file dưới dạng octal, decimal, hexadecimal hoặc các định dạng khác.

Để bắt đầu, hãy tạo một file mẫu với một vài dòng chữ:

echo "Hello, Linux!" > sample.txt

Bây giờ, bạn có thể dùng lệnh od để xem nội dung file ở định dạng hexadecimal:

od -x sample.txt

Ví dụ về kết quả:

0000000 4865 6c6c 6f2c 2020 4c69 6e75 7821 0a00
0000020

Option -x báo cho lệnh od hiển thị nội dung file ở định dạng hexadecimal.

Mỗi dòng hiển thị offset (tính bằng byte) từ đầu file, sau đó là biểu diễn hexadecimal của dữ liệu.

Bạn cũng có thể dùng option -t để chỉ định định dạng đầu ra mong muốn.

Ví dụ, để hiển thị nội dung file ở định dạng decimal:

od -t d1 sample.txt

Ví dụ về kết quả:

0000000   72  101  108  108  111  44     32  108  105  110  117  120  33  10
0000020

Tham số d1 báo cho lệnh od hiển thị dữ liệu ở định dạng decimal 1-byte.

Khám phá các tùy chọn của lệnh od

Trong bước này, bạn sẽ khám phá các tùy chọn khác nhau của lệnh od để tùy chỉnh định dạng đầu ra.

Đầu tiên, hãy tạo một file mẫu khác với một số dữ liệu nhị phân:

echo -e "\x01\x02\x03\x04\x05\x06\x07\x08" > binary.txt

Bây giờ, bạn có thể sử dụng lệnh od với các tùy chọn khác nhau để hiển thị nội dung file theo nhiều định dạng:

## Display in octal format
od -t o1 binary.txt

## Display in hexadecimal format
od -t x1 binary.txt

## Display in ASCII format
od -t c binary.txt

Ví dụ về đầu ra:

0000000 001 002 003 004 005 006 007 010
0000010
0000000 01 02 03 04 05 06 07 08
0000010
0000000 001 002 003 004 005 006 007 010
0000010

Tùy chọn -t cho phép bạn chỉ định định dạng đầu ra mong muốn một cách linh hoạt.

Trong các ví dụ trên, o1 đại diện cho octal 1 byte, x1 đại diện cho hexadecimal 1 byte và c đại diện cho định dạng ký tự (ASCII).

Bạn cũng có thể kết hợp nhiều định dạng đầu ra bằng cách sử dụng tùy chọn -t.

od -t x1 -t d1 -t c binary.txt

Ví dụ về đầu ra:

0000000 01 02 03 04 05 06 07 08
0000010

Lệnh này sẽ hiển thị nội dung file ở định dạng hexadecimal, decimal và ký tự cạnh nhau.

Thực hiện Hexadecimal Dump của tập tin

Trong bước cuối cùng này, bạn sẽ học cách dùng lệnh od để thực hiện hexadecimal dump của các tập tin.

Chúng ta hãy tạo một tập tin mẫu lớn hơn với một số dữ liệu ngẫu nhiên:

dd if=/dev/urandom of=random.txt bs=1024 count=10

Lệnh này sẽ tạo ra một tập tin tên là random.txt với 10 kilobytes dữ liệu ngẫu nhiên.

Bây giờ, bạn có thể dùng lệnh od để hiển thị hexadecimal dump của tập tin:

od -x random.txt

Ví dụ về đầu ra:

0000000 f6d1 9d2e 4a4b 5b8f 6acd 0f1e 0f6a 1b2e
0000020 b6f9 2d4a 1e0f 6a1b 2e6f 9d2e 4a4b 5b8f
0000040 6acd 0f1e 0f6a 1b2e b6f9 2d4a 1e0f 6a1b
0000060 2e6f 9d2e 4a4b 5b8f 6acd 0f1e 0f6a 1b2e
0000100 b6f9 2d4a 1e0f 6a1b 2e6f 9d2e 4a4b 5b8f
0000120 6acd 0f1e 0f6a 1b2e b6f9 2d4a 1e0f 6a1b
0000140 2e6f 9d2e 4a4b 5b8f 6acd 0f1e 0f6a 1b2e
0000160 b6f9 2d4a 1e0f 6a1b 2e6f 9d2e 4a4b 5b8f
0000200 6acd 0f1e 0f6a 1b2e b6f9 2d4a 1e0f 6a1b
0000220 2e6f 9d2e 4a4b 5b8f 6acd 0f1e 0f6a 1b2e
0000240

Đầu ra hiển thị biểu diễn hexadecimal của nội dung tập tin, mỗi dòng hiển thị offset (tính bằng bytes) từ đầu tập tin.

Bạn cũng có thể dùng tùy chọn -c để hiển thị nội dung tập tin ở định dạng ASCII cùng với hexadecimal dump:

od -tx1 -tc random.txt

Ví dụ về đầu ra:

0000000 f6 d1 9d 2e 4a 4b 5b 8f 6a cd 0f 1e 0f 6a 1b 2e  |......JK[..j...j..|
0000020 b6 f9 2d 4a 1e 0f 6a 1b 2e 6f 9d 2e 4a 4b 5b 8f  |..-J..j..o..JK[.|
0000040 6a cd 0f 1e 0f 6a 1b 2e b6 f9 2d 4a 1e 0f 6a 1b  |j....j....-J..j.|
0000060 2e 6f 9d 2e 4a 4b 5b 8f 6a cd 0f 1e 0f 6a 1b 2e  |.o..JK[.j....j..|
0000100 b6 f9 2d 4a 1e 0f 6a 1b 2e 6f 9d 2e 4a 4b 5b 8f  |..-J..j..o..JK[.|
0000120 6a cd 0f 1e 0f 6a 1b 2e b6 f9 2d 4a 1e 0f 6a 1b  |j....j....-J..j.|
0000140 2e 6f 9d 2e 4a 4b 5b 8f 6a cd 0f 1e 0f 6a 1b 2e  |.o..JK[.j....j..|
0000160 b6 f9 2d 4a 1e 0f 6a 1b 2e 6f 9d 2e 4a 4b 5b 8f  |..-J..j..o..JK[.|
0000200 6a cd 0f 1e 0f 6a 1b 2e b6 f9 2d 4a 1e 0f 6a 1b  |j....j....-J..j.|
0000220 2e 6f 9d 2e 4a 4b 5b 8f 6a cd 0f 1e 0f 6a 1b 2e  |.o..JK[.j....j..|
0000240

Đầu ra này hiển thị các giá trị hexadecimal cùng với các ký tự ASCII tương ứng, giúp bạn dễ dàng diễn giải nội dung tập tin hơn.

Kết luận cho linux od command

```html

Tóm lại, lệnh od là một công cụ mạnh mẽ để xem dữ liệu nhị phân một cách chi tiết trong Linux. Nó cho phép bạn kiểm tra nội dung của tệp ở nhiều định dạng khác nhau, giúp ích cho việc gỡ lỗi và phân tích dữ liệu. Với các tùy chọn đa dạng, bạn có thể tùy chỉnh đầu ra để phù hợp với nhu cầu cụ thể của mình, từ hiển thị số octal đến số thập lục phân. Đừng ngần ngại thử nghiệm với các tùy chọn khác nhau để khám phá hết tiềm năng của linux od command. Hy vọng hướng dẫn này đã giúp bạn hiểu rõ hơn về cách sử dụng lệnh này. Hãy nhớ rằng, việc thực hành thường xuyên sẽ giúp bạn thành thạo hơn trong việc sử dụng od. Chúc bạn thành công trong việc khám phá thế giới dữ liệu nhị phân!

```
Last Updated : 18/10/2025