| DHEX(1) | General Commands Manual | DHEX(1) |
نام (NAME)
dhex —
ویرایشگر
هگزادسیمال
با حالت
مقایسه (diff)
خلاصه دستور (SYNOPSIS)
dhex [-x]
dhex [-h]
[-v] [-g]
[-k]
[-ab -ad -ah -ao base address]
[-f config-file]
[-m marker-file]
[-ob -od -oh -oo offset]
[-r searchlog]
[-sa -sab string (ascii)]
[-sh -shb string (hex)]
[-w searchlog]
[file] dhex
[-h] [-v]
[-g] [-k]
[-a1b -a1d -a1h -a1o base address 1]
[-a2b -a2d -a2h -a2o base address 2]
[-cb]
[-cd upper-limit]
[-cl]
[-f config-file]
[-m marker-file]
[-o1b -o1d -o1h -o1o offset1]
[-o2b -o2d -o2h -o2o offset2]
[-r1 searchlog1]
[-r2 searchlog2]
[-s1a -s1ab -s1h -s1hb string (ascii/hex)]
[-s2a -s2ab -s2h -s2hb string (ascii/hex)]
[-w1 searchlog1]
[-w2 searchlog2]
[file1 file2]
توضیحات (DESCRIPTION)
dhex یک
ویرایشگر
هگزادسیمال
(hex) است.
میتوان از
آن برای
تغییر
بایتهای
منفرد در
فایلهای
بزرگ
استفاده
کرد. از آنجا
که این
برنامه در
حالت متنی و
مبتنی بر ncurses
است،
میتواند
در
سناریوهای
متعددی
اجرا شود.
ویژگی خاص
آن حالت
مقایسه (diff)
است: با
استفاده از
آن، کاربر
ابزاری
بصری برای
مقایسه
فایلها در
اختیار
دارد. این
حالت زمانی
فراخوانی
میشود که
dhex به جای
یک فایل، با
دو فایل به
عنوان
پارامتر
فراخوانی
شود.
گزینهها (OPTIONS)
تمامی گزینهها به کوچک و بزرگ بودن حروف حساس نیستند و میتوان آنها را با حروف کوچک یا بزرگ وارد کرد.
-ab-ad-ah-aobase address- پس از
بارگذاری
یک فایل، هر
نشانی یک
نشانی پایه
غیر از ۰
دریافت
میکند. با
این کار،
کار کردن با
رونوشتهای
حافظه جزئی
آسانتر
میشود.
نشانی پایه
را میتوان
به صورت
دودویی
(باینری) با
[
-ab] ، دهدهی (دسیمال) با [-ad] ، شانزدهشانزدهی (هگزادسیمال) با [-ah] یا هشتهشتی (اکتال) با [-ao] مشخص کرد. -a1b-a1d-a1h-a1obase address 1-a2b-a2d-a2h-a2obase address 2- برای حالت
diff، میتوان
دو نشانی
پایه مختلف
تعیین کرد.
همانند
قبل، یک
نشانی
دودویی را
میتوان با
[
-a1b-a2b] ، دهدهی با [-a1d-a2d] ، شانزدهشانزدهی با [-a1h-a2h] یا هشتهشتی با [-a1o-a2o] مشخص کرد.این نشانی پایه در فایلهای نشانهگذار و همچنین گزارشهای جستجو (searchlogs) محاسبه میشود.
-cb-cl- فقط در حالت
diff: فایلهای
ورودی را
میتوان از
طریق خط
فرمان با
بهترین
تطابق
-cbیا طولانیترین تطابق-clهمبسته کرد. این کار بسیار کند است. -cdupper-limit- فقط در حالت diff: فایلهای ورودی را میتوان از خط فرمان با کمترین اختلاف همبسته کرد. برای بهبود سرعت همبستگی، میتوان یک حد بالا تعیین کرد.
-fconfigfile- معمولاً فایل .dhexrc از پوشه خانگی کاربر خوانده میشود. با این پارامتر، هر فایل پیکربندی دیگری را میتوان بارگذاری کرد. برای توضیحات مربوط به قالب فایل، dhexrc(5) را ببینید.
-g- نمایش مجوز برنامه
-x- راهاندازی ماشینحساب هگز (hexcal)
-h- نمایش صفحه راهنما
-k- راهاندازی
دستی
پیکربندی
صفحهکلید
پیش از
بارگذاری
هر فایلی.
این مورد
هنگام
فراخوانی
dhexاز یک ترمینال نامعمول بسیار مفید است. -mmarkerfile- در
dhexمیتوان نشانکها (bookmarks) را تنظیم کرده و برای استفادههای بعدی در یک markerfile ذخیره نمود. با این پارامتر، markerfile در زمان شروع خوانده میشود و نیاز به خواندن بعدی آنها از طریق رابط گرافیکی را برطرف میکند. قالب فایل آنها در dhex_markers(5) توصیف شده است. -ob-od-oh-oooffset- پس از
بارگذاری
فایل،
مکاننما
روی ۰ تنظیم
شده و صفحه
اول
بایتها
روی صفحه
نمایش داده
میشود. با
یکی از این
پارامترها
میتوان از
هر نقطه
دیگری در
فایل شروع
کرد. موقعیت
مکاننما
را میتوان
به صورت یک
عدد دودویی
با [
-ob] ، دهدهی با [-od] ، شانزدهشانزدهی با [-oh] یا هشتهشتی با [-oo] مشخص کرد. -o1b-o1d-o1h-o1ooffset1-o2b-o2d-o2h-o2ooffset2- برای حالت
diff، میتوان
دو موقعیت
مکاننمای
مختلف را در
زمان شروع
تعیین کرد.
باز هم
موقعیتهای
مکاننما
میتوانند
به صورت عدد
دودویی با
[
-o1b-o2b] ، دهدهی با [-o1d-o2d] ، شانزدهشانزدهی با [-o1h-o2h] یا هشتهشتی با [-o1o-o2o] داده شوند.بدین ترتیب، چند بایت اول فایل نادیده گرفته میشوند و تنها بقیه فایل مقایسه میگردد.
-rsearchlog- هنگام جستجو از خط فرمان، آفستها از این گزارش جستجو خوانده میشوند. قالب آن در dhex_searchlog(5) شرح داده شده است.
-r1searchlog1-r2searchlog2- هنگام جستجو در دو فایل به طور همزمان، آفستها را میتوان از دو گزارش جستجوی متفاوت خواند.
-sa-sab-sh-shbstring- به جای
تنظیم آفست
مکاننما
بر روی یک
مقدار
مطلق،
میتوان یک
رشته خاص را
از خط فرمان
جستجو کرد.
اگر یک [
-ob-od-oh-oooffset] اضافی وجود داشته باشد، جستجو از آنجا شروع خواهد شد. خواندن و نوشتن گزارشهای جستجو به ترتیب با [-rsearchlog] و [-wsearchlog] امکانپذیر است. با [-sastring] رشته به صورت ASCII تفسیر میشود. [-shstring] آن را به صورت hex تفسیر میکند. برای جستجوی رو به عقب، میتوان از [-sabstring] یا [-shbstring] استفاده کرد. -s1a-s1ab-s1h-s1hbstring1-s2a-s2ab-s2h-s2hbstring2- در حالت diff، امکان جستجوی همزمان برای دو رشته در دو فایل وجود دارد.
-v- چاپ نسخه
dhex. -wsearchlog- هنگام جستجو از خط فرمان، نتایج را در این گزارش جستجو بنویس و خارج شو. این گزارش در قالبی نوشته میشود که در dhex_searchlog(5) توصیف شده است.
-w1searchlog1-w2searchlog2- هنگام جستجو در دو فایل به طور همزمان، نتایج هر دو جستجو را در این فایلهای گزارش بنویس.
رابط کاربری (USER INTERFACE)
عمومی (General)
منوها دارای کلیدهای میانبر هستند و با رنگ متفاوتی نمایش داده میشوند. برای جابهجایی از یک آیتم منو به آیتم بعدی، میتوان از کلیدهای جهتنما یا کلید TAB استفاده کرد.
فیلدهای ورودی را میتوان با فشردن ESC، ENTER یا هر کلید جهتنما بست. تنها با فشردن ESC تغییرات اعمالشده در آنها ذخیره نخواهد شد.
پیکربندی صفحهکلید (The keyboard setup)
هنگام
اجرای dhex
برای
نخستین
بار، بدون
وجود
هرگونه
فایل
پیکربندی
یا با
پارامتر -k،
نخستین
صفحهای که
نمایش داده
میشود
صفحه
پیکربندی
صفحهکلید
است. در این
صفحه،
برنامه از
کاربر
میخواهد
کلیدهای
مشخصی را
فشار دهد؛
به ترتیب: ESCAPE،
F1، F2، F3، F4، F5، F6، F7،
F8، F9، F10، BACKSPACE، DEL،
ENTER، TAB، بالا،
پایین،
راست، چپ، PG
UP، PG DOWN، HOME و END.
همچنین به
کاربر
اطلاع
میدهد که
قصد دارد
بعداً چه
استفادهای
از این
کلیدها
داشته باشد
تا کاربر
بتواند در
مورد هر
جایگزینی
که ترجیح
میدهد
تصمیم
بگیرد. اگر
کاربر
نخواهد
عملکرد
خاصی را به
یک کلید
معین
اختصاص
دهد،
میتواند
به سادگی ESCAPE
را فشار
داده و به
پرسش بعدی
برود.
پس از فشردن تمامی کلیدها، کاربر میتواند انتخاب کند که آیا این کلیدها در فایل پیکربندی نوشته شوند یا خیر.
صفحه اصلی (The main screen)
صفحه اصلی به سه ستون تقسیم شده است: ستون نخست شامل آفست (موقعیت) درون فایل برای خط جاری است. ستون دوم حاوی بایتهای فایل در قالب hex است. در نهایت، ستون سوم همان بایتها را در قالب ascii نمایش میدهد. اگر بایتی قابل چاپ نباشد، با '.' جایگزین میشود. تعداد بایتهای نمایشدادهشده در هر خط به عرض ترمینال بستگی دارد. به عنوان مثال، اگر ترمینال ۸۰ کاراکتر عرض داشته باشد، ۱۶ بایت در هر خط نمایش داده میشود.
اگر هیچ
پارامتر
[-o] یا [-a]
دیگری در
زمان شروع
مشخص نشده
باشد،
مکاننما
روی آفست ۰
تنظیم
میشود و در
ستون hex نیز
نمایش داده
میشود. در
اینجا
میتوان آن
را با
کلیدهای
جهتنما
حرکت داد. با
وارد کردن
یک عدد
هگزادسیمال،
فایل
ویرایش
میشود.
فایل را
میتوان در
ستون ascii نیز
ویرایش
کرد، فقط با
فشردن کلید
TAB (یا هر
کلیدی که در
تنظیمات
صفحهکلید
جایگزین آن
شده است).
فشردن مجدد
TAB مکاننما
را به ستون hex
بازمیگرداند.
فشردن F9 (یا
جایگزین آن)
آخرین
تغییرات را
لغو (undo)
میکند.
تغییرات با
رنگ
متفاوتی
نمایش داده
میشوند.
ویرایش در حالت diff امکانپذیر نیست. در این حالت، فشردن کلیدهای جهتنما هر دو فایل را به طور همزمان حرکت میدهد.
صفحه رفتن به نشانی (The goto screen)
فشردن F1 (یا جایگزین آن) صفحه Goto... را باز میکند. در اینجا میتوان بدون نیاز به پیمایش با کلیدهای جهتنما، مستقیماً به یک نشانی مشخص پرش کرد. نشانی را میتوان در فیلد 'To' به صورت مطلق یا نسبی (برای جهش از روی مقدار مشخصی از بایتها) وارد کرد. یک نشانی مطلق با فشردن '=' و یک نشانی نسبی با فشردن '+' یا '-' به ترتیب برای جهش رو به جلو یا عقب انتخاب میشود. صرفنظر از حالت آدرسدهی، مقدار باید به صورت یک عدد هگزادسیمال وارد شود.
همچنین میتوان تا ده نشانک (bookmark) در این صفحه تنظیم کرد: فشردن '0'...'9' یکی از آنها را انتخاب میکند. حرکت مکاننما به "Set" و فشردن ENTER یکی از آن نشانکها را تغییر میدهد. فیلدهای "Diff:" تفاوت بین موقعیت فعلی مکاننما و نشانک را نشان میدهند.
نشانکها
را میتوان
ذخیره و
بارگذاری
کرد، برای
این منظور
گزینههای
"Save Markers" و "Load Markers" در
پایین صفحه
قرار دارند.
با انتخاب
یکی از
آنها، از
کاربر نام
فایل
درخواست
میشود.
میتوان در
زمان
راهاندازی
با ارائه
پارامتر
[-m markerfile]
یک فایل
نشانهگذار
را
بارگذاری
کرد.
dhex_markers(5)
قالب
فایلهای
نشانهگذار
را توصیف
میکند.
جستجو (Searching)
فشردن F2 (یا جایگزین آن) صفحه Search... را باز میکند. در اینجا میتوان یک رشته کوتاه وارد کرد (به صورت hex یا ascii). اگر فایل گزارشی انتخاب نشده باشد، مکاننما پس از انتخاب "Go" به رخداد بعدی این رشته جستجو پرش میکند. میتوان انتخاب کرد که جستجو رو به جلو انجام شود یا رو به عقب.
برای رفتن به رخداد بعدی باید F3 (یا جایگزین آن) فشرده شود. برای رفتن به رخداد قبلی باید F4 فشرده شود. خود جستجو در مرزهای فایل چرخش دارد، به این معنی که با رسیدن به انتهای فایل از ابتدا شروع میشود و بالعکس.
گزارشهای جستجو (searchlogs) روشی پیشرفته برای جستجو هستند: نوشتن در گزارش جستجو مکاننما را از یک رخداد به رخداد بعدی حرکت نمیدهد، بلکه در عوض، آفستهای تمامی آنها را در فایل گزارش مینویسد. قالب آنها در dhex_searchlog(5) توصیف شده است.
خواندن از این گزارش جستجو به این معنی است که جستجو تمام فایل را در بر نمیگیرد: تنها نشانیهایی که در این فایل ارائه شدهاند مورد جستجو قرار میگیرند. بدین ترتیب میتوان تغییرات خاصی را جستجو کرد؛ مانند تعداد جانهای ذخیرهشده در فایل ذخیره یک بازی. dhex_searchlog(5) قالب گزارش جستجو را توصیف میکند.
ماشینحساب هگز (HexCal)
فشردن F5 (یا
جایگزین آن)
یک
ماشینحساب
کوچک ۶۴
بیتی را باز
میکند. این
ماشینحساب
علاوه بر
انجام
محاسبات
حسابی (+, -, *, /,
باقیمانده)،
قادر به
انجام
عملیات
منطقی (and, or, xor, shift)
نیز
میباشد. سه
ستون برای
وارد کردن
اعداد به
صورت
هگزادسیمال،
دهدهی یا
دودویی
وجود دارد.
فشردن 'x' این
صفحه را
میبندد.
استفاده از
آرگومان خط
فرمان [-x]
آن را از خط
فرمان
راهاندازی
میکند.
همبستگی (Correlation)
هنگامی که dhex(1) در حالت diff اجرا میشود، فشردن F6 (یا جایگزین آن) کادر گفتگوی همبستگی فایل را باز میکند. این بخش تلاش میکند تا آفست بهینه بین دو فایل را پیدا کند. سه الگوریتم برای یافتن این آفست وجود دارد: جستجو برای بهترین تطابق (بیشترین تعداد بایتهای یکسان ممکن)، طولانیترین تطابق (بیشترین تعداد بایتهای متوالی یکسان ممکن)، یا کمترین اختلاف (کمترین اختلاف ممکن بین بایتها).
اگرچه در ابتدا ممکن است یکسان به نظر برسند، اما در عمل جستجو برای کمترین اختلاف سریعتر است. این سرعت حتی میتواند بیشتر شود اگر کاربر یک حد بالای اختلاف تعیین کند.
با انتخاب Go، برنامه به دنبال آفست بهینه خواهد گشت. این کار مقداری زمان خواهد برد.
ذخیره و خروج (Saving and quitting)
فشردن F10 (یا
جایگزین آن)
برنامه
dhex را
میبندد. در
صورتی که
تغییراتی
در فایل
اعمال شده
باشد، کادر
گفتگوی
ذخیره باز
میشود. در
اینجا
میتوان
انتخاب کرد
که آیا
تغییرات در
فایل
بازنویسی
شوند یا
خیر.
فایلها (FILES)
$HOME/.dhexrc: مسیر پیشفرض فایل پیکربندی. اگر متغیر $HOME تنظیم نشده باشد، مسیر آن باید به صورت دستی مشخص شود.
اشکالات (BUGS)
گزارش باگها به ⟨dettus@dettus.net⟩. حتماً عبارت DHEX را در عنوان ایمیل درج کنید.
نویسنده (AUTHOR)
نوشته شده توسط Thomas Dettbarn
همچنین ببینید (SEE ALSO)
| January 19, 2019 | Linux 6.12.107+deb13-amd64 |