| HEXDUMP(1) | دستورهای کاربر | HEXDUMP(1) |
نام (NAME)
hexdump - نمایش محتویات فایل در قالبهای هگزادسیمال، دهدهی، هشتهشتی یا اسکی
خلاصه دستور (SYNOPSIS)
hexdump [گزینهها] فایل ...
hd [گزینهها] فایل ...
توضیحات (DESCRIPTION)
ابزار hexdump یک پالایه (فیلتر) است که محتوای فایلهای مشخصشده، یا در صورت عدم تعیین فایل، ورودی استاندارد را در قالبی که کاربر مشخص میکند نمایش میدهد.
گزینهها (OPTIONS)
در ادامه، آرگومانهای length و offset میتوانند با پسوندهای ضربی KiB (=1024)، MiB (=1024*1024) و به همین ترتیب GiB، TiB، PiB، EiB، ZiB و YiB همراه شوند (عبارت "iB" اختیاری است؛ برای نمونه "K" همان معنای "KiB" را دارد)، یا پسوندهای KB (=1000)، MB (=1000*1000) و به همین ترتیب GB، TB، PB، EB، ZB و YB.
-b, --one-byte-octal
-X, --one-byte-hex
-c, --one-byte-char
-C, --canonical
-d, --two-bytes-decimal
-e, --format format_string
-f, --format-file file
-L, --color[=when]
-n, --length length
-o, --two-bytes-octal
-s, --skip offset
-v, --no-squeezing
-x, --two-bytes-hex
-h, --help
-V, --version
برای هر فایل ورودی، hexdump به صورت ترتیبی ورودی را در خروجی استاندارد رونوشت کرده و دادهها را بر اساس رشتههای قالببندی ارائهشده توسط گزینههای -e و -f، به همان ترتیبی که تعیین شدهاند دگرگون میسازد.
قالبها (FORMATS)
یک رشته قالببندی میتواند شامل هر تعداد واحد قالببندی باشد که با فاصله از یکدیگر جدا شدهاند. هر واحد قالببندی تا سه مؤلفه دارد: شمارش تکرار، شمارش بایت، و قالب.
شمارش تکرار یک عدد صحیح مثبت اختیاری است که مقدار پیشفرض آن یک است. هر قالب به تعداد شمارش تکرار اعمال میشود.
شمارش بایت یک عدد صحیح مثبت اختیاری است. در صورت تعیین، تعداد بایتهایی را که باید در هر بار تکرار قالب تفسیر شوند مشخص میکند.
اگر شمارش تکرار و/یا شمارش بایت مشخص شده باشد، باید یک اسلش تکی پس از شمارش تکرار و/یا قبل از شمارش بایت قرار گیرد تا ابهام میان آنها برطرف شود. فاصلههای قبل یا بعد از اسلش نادیده گرفته میشوند.
تعیین قالب الزامی است و باید داخل علامتهای نقل قول جفت (" ") قرار گیرد. این قالب مانند رشتههای قالببندی به سبک fprintf (به fprintf(3) مراجعه کنید) تفسیر میشود، به استثنای موارد زیر:
1.
2.
3.
4.
| NULL (نویسه تهی) | \0 |
| <alert character> (هشدار) | \a |
| <backspace> (پسبر) | \b |
| <form-feed> (برگهبر) | \f |
| <newline> (خط جدید) | \n |
| <carriage return> (بازگشت سطر) | \r |
| <tab> (تب افقی) | \t |
| <vertical tab> (تب عمودی) | \v |
رشتههای تبدیل (Conversion strings)
ابزار hexdump همچنین از رشتههای تبدیل اضافی زیر پشتیبانی میکند.
_a[dox]
_A[dox]
_c
_p
_u
| 000 nul | 001 soh | 002 stx | 003 etx | 004 eot | 005 enq |
| 006 ack | 007 bel | 008 bs | 009 ht | 00A lf | 00B vt |
| 00C ff | 00D cr | 00E so | 00F si | 010 dle | 011 dc1 |
| 012 dc2 | 013 dc3 | 014 dc4 | 015 nak | 016 syn | 017 etb |
| 018 can | 019 em | 01A sub | 01B esc | 01C fs | 01D gs |
| 01E rs | 01F us | 0FF del |
رنگها (Colors)
در صورت قرار گرفتن در انتهای یک مشخصکننده قالب، hexdump رشته مربوطه را با رنگ مشخصشده برجسته میکند. شرایط، در صورت وجود، پیش از برجستهسازی ارزیابی میشوند.
_L[color_unit_1,color_unit_2,...,color_unit_n]
قالب دستوری کامل یک واحد رنگی به صورت زیر است:
[!]COLOR[:VALUE][@OFFSET_START[-END]]
!
COLOR
VALUE
OFFSET
شمارندهها (Counters)
شمارش بایتهای پیشفرض و پشتیبانیشده برای نویسههای تبدیل به شرح زیر است:
%_c, %_p, %_u, %c
%d, %i, %o, %u, %X, %x
%E, %e, %f, %G, %g
میزان داده تفسیرشده توسط هر رشته قالببندی، مجموع دادههای مورد نیاز هر واحد قالببندی است که برابر است با حاصلضرب شمارش تکرار در شمارش بایت، یا حاصلضرب شمارش تکرار در تعداد بایتهای مورد نیاز قالب در صورتی که شمارش بایت مشخص نشده باشد.
ورودی در قالب بلوکها دستکاری و مدیریت میشود، که در آن یک بلوک به عنوان بزرگترین مقدار داده تعیینشده توسط هر رشته قالببندی تعریف میگردد. رشتههای قالببندی که دادهای کمتر از یک بلوک ورودی را تفسیر میکنند و آخرین واحد قالببندی آنها هم تعدادی بایت را تفسیر کرده و هم شمارش تکرار مشخصی ندارد، شمارش تکرار آنها افزایش مییابد تا زمانی که کل بلوک ورودی پردازش شود یا داده باقیمانده در بلوک برای برآورده کردن رشته قالببندی کافی نباشد.
اگر چه بر اثر تعیین کاربر و چه به دلیل تغییر شمارش تکرار توسط hexdump به روش شرح داده شده در بالا، شمارش تکرار بزرگتر از یک باشد، در آخرین تکرار هیچ نویسه فاصله پایانی در خروجی درج نمیشود.
مشخص کردن شمارش بایت همراه با چند نویسه یا رشته تبدیل غیرمجاز و خطا است، مگر اینکه تمام نویسهها یا رشتههای تبدیل به جز یکی از آنها _a یا _A باشند.
اگر بر اثر مشخص شدن گزینه -n یا رسیدن به پایان فایل، دادههای ورودی تنها بخشی از رشته قالببندی را برآورده کنند، بلوک ورودی با بایتهای صفر به میزان کافی پر میشود تا تمام دادههای در دسترس نمایش داده شوند (یعنی هر واحد قالببندی که با انتهای دادهها همپوشانی دارد، تعدادی بایت صفر را نمایش خواهد داد).
خروجی بیشتر توسط چنین رشتههای قالببندی با تعداد معادلی از فاصلهها جایگزین میشود. تعداد معادل فاصلهها به عنوان تعداد فاصلههای تولیدشده توسط نویسه تبدیل s با همان پهنای فیلد و دقت نویسه یا رشته تبدیل اصلی تعریف میشود، اما در حالی که هر یک از نویسههای فلگ تبدیل '+'، ' ' و '#' حذف شده و به یک رشته تهی (NULL) اشاره دارد.
اگر هیچ رشته قالببندی مشخص نشود، نمایش پیشفرض بسیار شبیه به قالب خروجی -x خواهد بود (گزینه -x باعث میشود فضای بیشتری بین واحدهای قالببندی نسبت به خروجی پیشفرض استفاده شود).
وضعیت خروج (EXIT STATUS)
دستور hexdump در صورت موفقیت با وضعیت 0 و در صورت بروز خطا با مقداری بزرگتر از 0 خارج میشود.
انطباق با استانداردها (CONFORMING TO)
انتظار میرود که ابزار hexdump با استاندارد IEEE Std 1003.2 ("POSIX.2") سازگار باشد.
مثالها (EXAMPLES)
نمایش ورودی در قالب بررسی و خوانش (perusal):
"%06.6_ao " 12/1 "%3_u " "\t" "%_p " "\n"
پیادهسازی رفتار گزینه -x:
"%07.7_Ax\n" "%07.7_ax " 8/2 "%04x " "\n"
مثال امضای بوت MBR: هایلایت کردن آدرسها با رنگ فیروزهای (cyan) و بایتهای واقع در آفستهای 510 و 511 با رنگ سبز اگر مقدارشان 0xAA55 باشد، و در غیر این صورت با رنگ قرمز:
"%07.7_Ax_L[cyan]\n" "%07.7_ax_L[cyan] " 8/2 " %04x_L[green:0xAA55@510-511,!red:0xAA55@510-511] " "\n"
رنگها (COLORS)
رنگآمیزی خروجی بر اساس قابلیتهای terminal-colors.d(5) پیادهسازی شده است. رنگآمیزی ضمنی را میتوان با ایجاد یک فایل خالی
/etc/terminal-colors.d/hexdump.disable
برای دستور hexdump یا برای تمامی ابزارها با فایل
/etc/terminal-colors.d/disable
غیرفعال کرد.
از نسخه 2.41، متغیر محیطی $NO_COLOR نیز برای غیرفعالسازی رنگآمیزی خروجی پشتیبانی میشود، مگر اینکه صراحتاً توسط یک گزینه خط فرمان فعال شده باشد.
مسیرهای اختصاصی کاربر شامل $XDG_CONFIG_HOME/terminal-colors.d یا $HOME/.config/terminal-colors.d بر تنظیمات سراسری اولویت دارند.
توجه داشته باشید که ممکن است رنگآمیزی خروجی به صورت پیشفرض فعال باشد، و در این حالت نیازی به وجود قبلی دایرکتوریهای terminal-colors.d نیست.
گزارش باگها (REPORTING BUGS)
برای گزارش باگها، از سامانه پیگیری مشکلات https://github.com/util-linux/util-linux/issues. استفاده کنید.
دسترسی (AVAILABILITY)
دستور hexdump بخشی از بسته util-linux است که میتوان آن را از آرشیو کرنل لینوکس https://www.kernel.org/pub/linux/utils/util-linux. دریافت کرد.
| 2026-06-16 | util-linux 2.41.5 |