| HEXDUMP(1) | أوامر المستخدم | HEXDUMP(1) |
الاسم
hexdump - يعرض محتويات الملف بالترميز الست عشري، أو العشري، أو الثماني، أو أسكي (ascii)
موجز
hexdump [خيارات] ملف ...
hd [خيارات] ملف ...
الوصف
أداة hexdump عبارة عن مرشح يعرض الملفات المحددة، أو المدخلات القياسية في حال عدم تحديد ملفات، بتنسيق يحدده المستخدم.
الخيارات
أدناه، قد تُتبع وسائط الطول و الإزاحة بلاحقات مضاعفة 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 تنسيق_سلسلة_محارف
-f، --format-file ملف
-L، --color[=متى]
-n، --length طول
-o، --two-bytes-octal
-s، --skip إزاحة
-v، --no-squeezing
-x، --two-bytes-hex
-h، --help
-V، --version
لكل ملف إدخال، ينسخ hexdump الإدخال بالتسلسل إلى المخرجات القياسية، محولًا البيانات وفقًا لسلاسل التنسيق المحددة بالخيارين -e و -f، وبنفس ترتيب تحديدها.
التنسيقات
تحتوي سلسلة التنسيق على أي عدد من وحدات التنسيق، تفصل بينها مسافات بيضاء. تحتوي وحدة التنسيق على ما يصل إلى ثلاثة عناصر: عدد التكرار، وعدد البايتات، والتنسيق.
عدد التكرار هو عدد صحيح موجب اختياري، وقيمته المبدئية هي واحد. يُطبق كل تنسيق بعدد مرات التكرار المحددة.
عدد البايتات هو عدد صحيح موجب اختياري. إذا حُدد، فإنه يعرّف عدد البايتات التي سيتم تفسيرها في كل تكرار للتنسيق.
في حال تحديد عدد التكرار و/أو عدد البايتات، يجب وضع شرطة مائلة واحدة بعد عدد التكرار و/أو قبل عدد البايتات لإزالة اللبس بينهما. تُتجاهل أي مسافة بيضاء قبل أو بعد الشرطة المائلة.
التنسيق مطلوب ويجب أن يكون محاطًا بعلامات اقتباس مزدوجة (" "). يُفسر على أنه سلسلة تنسيق بأسلوب fprintf (راجع fprintf(3))، مع الاستثناءات التالية:
\0 NULL \a محرف تنبيه \b رجوع مسافة \f تغذية النموذج \n سطر جديد \r رجوع الحامل \t جدولة \v جدولة عمودية
سلاسل التحويل
تدعم أداة hexdump أيضاً سلاسل التحويل الإضافية التالية.
_a[dox]
_A[dox]
_c
_p
_u
00 nul 08 bs 10 dle 18 can 7F del 01 soh 09 ht 11 dc1 19 em 02 stx 0A lf 12 dc2 1A sub 03 etx 0B vt 13 dc3 1B esc 04 eot 0C ff 14 dc4 1C fs 05 enq 0D cr 15 nak 1D gs 06 ack 0E so 16 syn 1E rs 07 bel 0F si 17 etb 1F us
الألوان
عند وضعه في نهاية محدد التنسيق، يبرز hexdump السلسلة المعنية باللون المحدد. تُقيّم الشروط، إن وجدت، قبل الإبراز.
_L[color_unit_1,color_unit_2,...,color_unit_n]
النحو الكامل لوحدة الألوان هو كما يلي:
[!]COLOR[:VALUE][@OFFSET_START[-END]]
!
COLOR
VALUE
OFFSET
العدادات
أعداد البايتات المبدئية والمتاحة لمحارف التحويل هي كما يلي:
%_c، %_p، %_u، %c
%d، %i، %o، %u، %X، %x
%E، %e، %f، %G، %g
كمية البيانات المفسرة بواسطة كل سلسلة تنسيق هي مجموع البيانات المطلوبة بواسطة كل وحدة تنسيق، وهي عدد التكرار مضروباً في تعداد البايتات، أو عدد التكرار مضروباً في عدد البايتات المطلوبة بواسطة التنسيق إذا لم يُحدد تعداد البايتات.
تُعالَج المدخلات في كتل، حيث تُعرّف الكتلة بأنها أكبر كمية من البيانات محددة بواسطة أي سلسلة تنسيق. سلاسل التنسيق التي تفسر أقل مما تحتويه كتلة المدخلات، والتي تفسر وحدة تنسيقها الأخيرة عدداً من البايتات ولا تملك عدد تكرار محدد، يزاد عدد تكرارها حتى تُعالَج كتلة المدخلات بالكامل أو لا يتبقى بيانات كافية في الكتلة لاستيفاء سلسلة التنسيق.
إذا كان عدد التكرار أكبر من واحد، سواء نتيجة لتحديد المستخدم أو تعديل hexdump لعدد التكرار كما هو موضح أعلاه، فلا تُخرج أي محارف مسافة بيضاء لاحقة خلال التكرار الأخير.
يُعد تحديد عدد البايتات مع عدة محارف أو سلاسل تحويل خطأً، ما لم تكن كافة محارف أو سلاسل التحويل -باستثناء واحد منها فقط- هي _a أو _A.
إذا كانت بيانات الإدخال تستوفي سلسلة التنسيق جزئيًا فقط، نتيجة لتحديد الخيار -n أو بلوغ نهاية الملف، تُملأ كتلة الإدخال بالأصفار بشكل كافٍ لعرض كافة البيانات المتاحة (أي أن أي وحدات تنسيق تتجاوز نهاية البيانات ستعرض عددًا من بايتات الأصفار).
يُستبدل أي مخرج إضافي بواسطة سلاسل التنسيق هذه بعدد مكافئ من المسافات. يُعرّف العدد المكافئ للمسافات بأنه عدد المسافات التي يخرجها محرف التحويل s بنفس عرض الحقل والدقة لمحرف أو سلسلة التحويل الأصلية، ولكن مع إزالة أي من محارف أعلام التحويل '+' أو ' ' أو '#' والإشارة إلى سلسلة نصية فارغة (NULL).
إذا لم تُحدد أي سلاسل تنسيق، فسيكون العرض المبدئي مشابهاً جداً لتنسيق مخرجات -x (يؤدي الخيار -x إلى استخدام مسافات أكبر بين وحدات التنسيق عما هو عليه في المخرجات المبدئية).
لاحظ أن التنسيق المبدئي والخيارات -x و -d و -o تستخدم وحدات تنسيق متعددة البايت تُعرض بترتيب البايت الأصلي للنظام (endianness). وهذا يعني أن نفس المدخلات قد تنتج مخرجات مختلفة على أنظمة little-endian (مثل x86 و ARM64) وأنظمة big-endian (مثل s390x). للحصول على مخرجات مستقلة عن ترتيب البايت، استخدم تنسيقات البايت الواحد مثل -b أو -c أو -C أو -X.
حالة الخروج
يخرج hexdump بالحالة 0 عند النجاح و > 0 في حال حدوث خطأ.
متوافق مع
يُتوقع أن تكون أداة hexdump متوافقة مع معيار IEEE Std 1003.2 ("POSIX.2").
أمثلة
عرض الإدخال بتنسيق القراءة المتفحصة:
"%06.6_ao " 12/1 "%3_u " "\t" "%_p " "\n"
تنفيذ الخيار -x:
"%07.7_Ax\n" "%07.7_ax " 8/2 "%04x " "\n"
مثال توقيع إقلاع MBR: تمييز العناوين باللون السماوي والبايتات عند الإزاحات 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"
الألوان
نُفذ تلوين المخرجات بواسطة وظيفة 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 بعد.
التبليغ عن الأخطاء
لتقارير العِلل، استخدم مُتتبع المشكلات https://github.com/util-linux/util-linux/issues.
التوفر
الأمر hexdump جزء من حزمة util-linux التي يمكن تنزيلها من أرشيف نواة لينكس https://www.kernel.org/pub/linux/utils/util-linux/.
| 2026-05-18 | util-linux 2.42.1 |