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
    عرض ست عشري+ASCII قياسي. يُعرض إزاحة الإدخال بالنظام الست عشري، متبوعًا بستة عشر بايت ست عشري مفصولة بمسافات في عمودين، متبوعة بنفس الستة عشر بايت بتنسيق %_p محصورة بين محارف |. استدعاء البرنامج باسم hd يتضمن هذا الخيار.

-d، --two-bytes-decimal
    عرض عشري ثنائي البايت. يُعرض إزاحة الإدخال بالنظام الست عشري، متبوعًا بثماني وحدات من بيانات الإدخال بطول بايتين مفصولة بمسافات، في خمسة أعمدة، ومملوءة بالأصفار، بنظام عشري غير مُوقع، لكل سطر.

-e، --format تنسيق_سلسلة_محارف
    حدد سلسلة تنسيق لاستخدامها في عرض البيانات.

-f، --format-file ملف
    حدد ملفًا يحتوي على سلسلة تنسيق واحدة أو أكثر مفصولة بأسطر جديدة. تُتجاهل الأسطر الفارغة والأسطر التي تبدأ بمحرف المربع (#).

-L، --color[=متى]
    قبول وحدات الألوان للمخرجات. يمكن أن تكون المعلمة الاختيارية متى هي auto أو never أو always. إذا حُذفت معلمة متى، فإنها تكون auto بشكل مبدئي. يمكن تعطيل الألوان؛ لمعرفة القيمة المبدئية المدمجة الحالية راجع مخرجات --help. راجع أيضًا القسم الفرعي Colors وقسم COLORS أدناه.

-n، --length طول
    فسّر فقط عدد طول بايت من الإدخال.

-o، --two-bytes-octal
    عرض ثماني ثنائي البايت. يُعرض إزاحة الإدخال بالنظام الست عشري، متبوعًا بثماني كميات من بيانات الإدخال بطول بايتين مفصولة بمسافات، في ستة أعمدة، ومملوءة بالأصفار، بالنظام الثماني، لكل سطر.

-s، --skip إزاحة
    تخطّ عدد إزاحة بايت من بداية الإدخال.

-v، --no-squeezing
    يتسبب الخيار -v في قيام hexdump بعرض كافة بيانات الإدخال. دون الخيار -v، تُستبدل أي مجموعات من أسطر المخرجات المتطابقة مع المجموعة السابقة مباشرة (باستثناء إزاحات الإدخال) بسطر يحتوي على * واحد.

-x، --two-bytes-hex
    عرض ست عشري ثنائي البايت. يُعرض إزاحة الإدخال بالنظام الست عشري، متبوعًا بثماني كميات من بيانات الإدخال بطول بايتين مفصولة بمسافات، في أربعة أعمدة، ومملوءة بالأصفار، بالنظام الست عشري، لكل سطر.

-h، --help
    اعرض نص المساعدة ثم اخرج.

-V، --version
    اعرض الإصدار واخرج.

لكل ملف إدخال، ينسخ hexdump الإدخال بالتسلسل إلى المخرجات القياسية، محولًا البيانات وفقًا لسلاسل التنسيق المحددة بالخيارين -e و -f، وبنفس ترتيب تحديدها.

التنسيقات

تحتوي سلسلة التنسيق على أي عدد من وحدات التنسيق، تفصل بينها مسافات بيضاء. تحتوي وحدة التنسيق على ما يصل إلى ثلاثة عناصر: عدد التكرار، وعدد البايتات، والتنسيق.

عدد التكرار هو عدد صحيح موجب اختياري، وقيمته المبدئية هي واحد. يُطبق كل تنسيق بعدد مرات التكرار المحددة.

عدد البايتات هو عدد صحيح موجب اختياري. إذا حُدد، فإنه يعرّف عدد البايتات التي سيتم تفسيرها في كل تكرار للتنسيق.

في حال تحديد عدد التكرار و/أو عدد البايتات، يجب وضع شرطة مائلة واحدة بعد عدد التكرار و/أو قبل عدد البايتات لإزالة اللبس بينهما. تُتجاهل أي مسافة بيضاء قبل أو بعد الشرطة المائلة.

التنسيق مطلوب ويجب أن يكون محاطًا بعلامات اقتباس مزدوجة (" "). يُفسر على أنه سلسلة تنسيق بأسلوب fprintf (راجع fprintf(3))، مع الاستثناءات التالية:

    1. لا يجوز استخدام * كعرض للحقل أو كدقة.

    2. عدد البايتات أو دقة الحقل مطلوب لكل محرف تحويل s (على عكس القيمة المبدئية لـ fprintf(3) التي تطبع السلسلة كاملة إذا لم تُحدد الدقة).

    3. محارف التحويل h و l و n و p و q غير متاحة.

    4. تسلسلات الهروب أحادية المحرف الموضحة في معيار C متاحة:

            \0   NULL
            \a   محرف تنبيه
            \b   رجوع مسافة
            \f   تغذية النموذج
            \n   سطر جديد
            \r   رجوع الحامل
            \t   جدولة
            \v   جدولة عمودية

  سلاسل التحويل

تدعم أداة hexdump أيضاً سلاسل التحويل الإضافية التالية.

_a[dox]
    اعرض إزاحة المدخلات، التراكمية عبر ملفات المدخلات، للبايت التالي الذي سيُعرض. تحدد الأحرف الملحقة d و o و x قاعدة العرض كعشري أو ثماني أو ست عشري على التوالي.

_A[dox]
    مطابق تقريباً لسلسلة التحويل _a باستثناء أنه يُنفّذ مرة واحدة فقط، عندما تُعالج كافة بيانات المدخلات.

_c
    أخرج الأحرف بمجموعة الأحرف المبدئية. تُعرض الأحرف غير القابلة للطباعة في ثماني من ثلاثة أحرف ومبطن بالأصفار، باستثناء تلك التي يمكن تمثيلها بترميز الهروب القياسي (انظر أعلاه)، والتي تُعرض كسلاسل من حرفين.

_p
    أخرج الأحرف بمجموعة الأحرف المبدئية. تُعرض الأحرف غير القابلة للطباعة كعلامة '.' واحدة.

_u
    أخرج أحرف US ASCII، مع استثناء أن أحرف التحكم تُعرض باستخدام الأسماء التالية بالأحرف الصغيرة. الأحرف الأكبر من 0xff، بالست عشري، تُعرض كسلاسل ست عشرية.

            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
    قيمة للمطابقة محددة بالقاعدة الست عشرية، أو الثمانية، أو كسلسلة. يرجى ملاحظة أن تسلسلات هروب C المعتادة لا تُفسّر بواسطة hexdump داخل وحدات الألوان (color_units).

OFFSET
    إزاحة أو نطاق إزاحة للتحقق من وجود مطابقة. يرجى ملاحظة أن OFFSET_START الوحيدة تستخدم نفس قيمة إزاحة النهاية (END).

  العدادات

أعداد البايتات المبدئية والمتاحة لمحارف التحويل هي كما يلي:

%_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 بعد.

التبليغ عن الأخطاء

لتقارير العِلل، استخدم

التوفر

الأمر hexdump جزء من حزمة util-linux التي يمكن تنزيلها من