กรุณาแนะนำ editor hex สำหรับ shell


64

คุณช่วยแนะนำ hex editor ที่สามารถรันจาก shell ได้หรือไม่? ฉันต้องสามารถแก้ไขไม่เพียง แต่ดูเนื้อหา


1
ฉันคิดว่าคุณสามารถทำได้โดยใช้เสียงเรียกเข้า
Deepal

คำตอบ:


24

emacs มีโหมด hexl สำหรับการแก้ไข hex


4
โหมด hexl ไม่เหมาะสำหรับไฟล์ขนาดใหญ่หรือพาร์ติชั่นดิสก์เนื่องจากมันโหลดไฟล์ทั้งหมดลงในบัฟเฟอร์ emacs เหมาะสำหรับไฟล์ขนาดเล็กหากคุณคุ้นเคยกับ emacs อยู่แล้ว
Peter Cordes

1
@PeterCordes สำหรับการแก้ไขดิสก์เพียงแค่ddภูมิภาคที่คุณต้องการแก้ไขเป็นไฟล์และเปิดใน emacs จากนั้นddก็กลับมา
psusi

6
@psusi ปัญหาคือฉันไม่ควรต้องไปที่ความพยายามในการแก้ไขไฟล์
โคลจอห์นสัน

1
@ColeJohnson เราไม่ได้พูดถึงการแก้ไขไฟล์ เรากำลังพูดถึงการแก้ไขฮาร์ดดิสก์ดิบทั้งหมด
psusi

2
@psusi บนเครื่อง Windows ของฉันฉันสามารถใช้ HxD และเปิดดิสก์ได้เหมือนกับไฟล์อื่น ๆ
โคลจอห์นสัน

76
xxd

เครื่องมือนี้เป็นเครื่องมือที่พบได้ทั่วไปสำหรับงานประเภทนี้ (มีให้ตามค่าเริ่มต้นทั้ง Ubuntu และ macOS ล่าสุด) คุณสามารถลบส่วนที่อ่านได้ของ ASCII ทางด้านขวาหากต้องการโดยใช้-pและคุณสามารถเปลี่ยนกลับได้ (เปลี่ยนการป้อนข้อมูล ASCII เป็นข้อมูลไบนารี) โดยใช้-rฟังก์ชัน นี่คือตัวอย่างง่ายๆที่ใช้:

การแปลงเป็น hex ด้วยมุมมอง ascii:

echo example | xxd

แปลงเป็น hexdump (ไม่มีมุมมอง ascii ทางด้านขวา):

echo example | xxd -p

การแปลงจาก hexdump กลับไปเป็นข้อมูลไบนารี:

echo 746573740a | xxd -p -r

คุณสามารถมีความซับซ้อนมากขึ้นด้วยสิ่งนี้ในเชลล์สคริปต์ ฉันได้ใช้จริงนี้และ "DD" เพื่อสแกนหาลำดับที่เฉพาะเจาะจงและแก้ไขได้ในแบบที่กำหนดไว้ล่วงหน้าทั้งหมดจากเชลล์สคริปต์ใช้อะไร แต่ทุบตีและdd xxdคุณไม่จำเป็นต้องใช้ dd จริงๆเพราะคุณสามารถ "ค้นหา" ไปยังตำแหน่งเฉพาะและเขียนไปยังตำแหน่งนั้นตามลำดับไบต์ที่คุณต้องการ ข้อได้เปรียบที่ใหญ่ที่สุดของวิธีนี้คือสามารถเขียนสคริปต์ได้ง่าย


2
xxd ดูเหมือนว่าจะติดตั้งบน Ubuntu 16.04 โดยค่าเริ่มต้นซึ่งก็คือ SWEET! ขอบคุณ!
GlenPeterson

มีให้ใช้งานตามค่าเริ่มต้นบน MacOS!
thom_nic

34

นอกจากนี้ยังมีDHEX

apt-cache show dhex

ncurses editor hex แบบอิงพร้อมโหมด diff

นี่เป็นมากกว่าตัวแก้ไข hex อื่น: มันมีโหมด diff ซึ่งสามารถใช้เพื่อเปรียบเทียบไบนารีไฟล์สองไฟล์ได้อย่างง่ายดายและสะดวก เนื่องจากมันขึ้นอยู่กับ ncurses และเป็นรูปแบบมันจึงสามารถทำงานได้กับระบบและสถานการณ์ต่างๆ ด้วยการใช้บันทึกการค้นหาทำให้สามารถติดตามการเปลี่ยนแปลงในการวนซ้ำของไฟล์ต่าง ๆ ได้อย่างง่ายดาย

หากคุณไม่คุ้นเคยกับเสียงเรียกเข้าหรือ emacs คนนี้ดูเหมือนจะไม่ได้เรียนรู้อะไรมากมาย


3
ข้อเสียของ dhex imho เท่านั้นคือมันไม่สามารถแทรก / ลบไบต์ได้ มิฉะนั้นจะเป็นตัวแก้ไข hex console ที่ดีมาก
Nicholi

เมื่อฉันเรียกใช้ "dhex / path / to / big / file" ฉันได้รับ "ข้อผิดพลาดในการเปิด inputfile / path / to / big / file" ฉันชอบ dhex และใช้มันตลอดเวลาสำหรับไฟล์ขนาดปกติ
sondra.kinsey

@ sondra.kinsey: ฉันเพิ่งลองไฟล์ 20GB บนเครื่อง 8GB RAM ของฉันและไม่มีปัญหา นี่คือ Ubuntu 16.04 64 บิตโดยมี dhex 0.68-2build1 (amd64) ดังนั้นควรทำงาน
mivk

@mivk ฉันลอง dhex ไม่สำเร็จด้วยไฟล์ 44GB โดยใช้ dhex_0.68-2build1_i386 บน Ubuntu 17.04 กับ RAM 3GB hexedit และ wxHexEditor เปิดไฟล์เดียวกันโดยไม่มีการร้องเรียน
sondra.kinsey

@ sondra.kinsey: อาจมีปัญหา / ข้อผิดพลาดกับรุ่น 32 บิตของ dhex และไฟล์มากกว่า 4GB?
mivk

26

คุณอาจใช้ vi / vim เป็นตัวแก้ไข hex ได้เช่นกัน (สามารถเรียก xxd)

เข้าสู่โหมด hex:

:%!xxd

ออกจากโหมด hex:

:%!xxd -r

ที่มา: การใช้ vi เป็นตัวแก้ไขฐานสิบหก


1
ฉันจะระวังให้ดี ฉันพบ:%!xxdการเพิ่มตัวละครใหม่ (เช่นบรรทัดใหม่) ลงในไฟล์
Quazi Irfan

1
@iamcreasy มันไม่ใช่xxdคนที่ทำสิ่งนี้: ค่อนข้างเป็นกลุ่มตัวเอง
Ruslan

3
อย่าลืม:set binary! มิฉะนั้น VIM มีแนวโน้มที่จะทำให้ไฟล์เสียหายโดยการเพิ่ม line-end (CR / LF / CRLF) ที่ส่วนท้ายของไฟล์ (ขึ้นอยู่กับสิ่งที่คุณมีรูปแบบที่กำหนดเป็น ( set ff=[mac/unix/dos])) นี่เป็นโอกาสสูงที่จะทำลายไฟล์เรียกทำงานและไบนารีข้อมูล และมันก็เป็นเช่นนั้น มาก. ตรวจสอบให้แน่ใจว่า VIM อยู่ในโหมดไบนารีจะป้องกันไม่ให้เกิดขึ้น
Braden สุดยอด

8

ฉันรู้ว่านี่เป็นคำถามเก่า แต่ฉันไม่พอใจกับคำตอบทั้งหมดที่นี่ ฉันกำลังมองหาโปรแกรมแก้ไขเลขฐานสิบหกที่อนุญาตให้ฉันสร้างไฟล์ไบนารีของตัวเอง (โหมดแทรก aka) และสามารถจัดการไฟล์ที่มีขนาดใหญ่มาก

ฉันเจอการปรับแต่งซึ่งตอบสนองความต้องการทั้งสองนี้และ OPs

  • Tweak รองรับโหมดการแทรก (ไม่มีประโยชน์อย่างยิ่งหากคุณกำลังแก้ไขไฟล์ที่เรียกใช้งานได้หรืออิมเมจระบบไฟล์ แต่สามารถมีประโยชน์อย่างยิ่งในรูปแบบไฟล์อื่นเช่น PNG)
  • การตัดการคัดลอกและการวางภายในไฟล์ที่คุณแก้ไขนั้นมีประสิทธิภาพอย่างมาก ไม่ว่าข้อมูลของคุณจะเคลื่อนไหวไปมากขนาดไหน - แม้ว่าจะเป็นส่วน 200Mb ของอิมเมจซีดี - Tweak จะทำงานได้อย่างมีประสิทธิภาพทันที
  • Tweak รองรับการโหลดไฟล์อินพุตที่ขี้เกียจ: แทนที่จะดูดมันทั้งหมดลงในหน่วยความจำทันทีมันจะจำได้ว่าส่วนใดของบัฟเฟอร์การแก้ไขคือสำเนาซึ่งส่วนใดส่วนหนึ่งของไฟล์อินพุตและอ้างถึงไฟล์บนดิสก์เมื่อต้องการ ปรับแต่งจะต้องใช้เวลาอย่างมีนัยสำคัญเมื่อคุณต้องการอ่านไฟล์ทั้งหมดอย่างแท้จริง การดำเนินการสองอย่างเท่านั้นที่มีคุณสมบัตินี้กำลังค้นหาและบันทึกเวอร์ชันที่แก้ไขของไฟล์ลงในดิสก์ ทุกสิ่งทุกอย่างเป็นเรื่องทันที

อืมโปรแกรมที่พร้อมจะแก้ไขบัฟเฟอร์ด้วยการกดแป้นผิดพลาดทุกครั้งและไม่ได้บอกผู้ใช้ว่า (หรือออก!) เพื่อใช้โปรแกรม yuck! เปลี่ยนคำสั่ง "exit" เหมือนกับ emacs ... แต่มันไม่ได้ผลสำหรับฉันในครั้งแรกดังนั้นฉันจึงลองทุกอย่างที่ฉันคิดก่อนที่จะลองอีกครั้ง ฉันเลิกใช้ emacs เมื่อหลายสิบปีก่อน แต่จำคำสั่งที่สำคัญที่สุด: Ctrl-X, Ctrl-C ถ้าคุณชอบ emacs คุณอาจจะชอบtweakแต่สำหรับฉันมันช่างน่าอึดอัดใจ ฉันอาจลองอีกครั้งถ้าต้องการแก้ไขจริงๆ เรียกใช้man tweakจากเทอร์มินัลเพื่อดูภาพรวมและรายการคำสั่ง
Lambart

@ Lambart จุดรวมของโหมดการปรับแต่งของ tweak คือการแก้ไขบัฟเฟอร์ดังนั้นจุดของคุณไม่ถูกต้องที่นั่น นอกจากนี้คุณควรอ่าน man page ก่อนใช้งานต่อไป ไม่ทำเช่นนั้นแล้วบ่นว่ามันไม่ได้บอกคุณว่าทางออกเป็นเพียงแค่ขี้เกียจ
Gogeta70

4

Bless Hex Editorเป็นตัวแก้ไขไบนารี (ฐานสิบหก) และในปัจจุบันมีคุณสมบัติดังต่อไปนี้:

  • การแก้ไขไฟล์ข้อมูลขนาดใหญ่และอุปกรณ์บล็อกอย่างมีประสิทธิภาพ
  • การเลิกทำหลายระดับ - ทำซ้ำ
  • มุมมองข้อมูลที่ปรับแต่งได้
  • การแสดงผลข้อมูลที่รวดเร็วบนหน้าจอ
  • หลายแท็บ
  • ค้นหาและแทนที่การดำเนินการอย่างรวดเร็ว
  • ตารางการแปลงข้อมูล
  • ความสามารถในการคัดลอก / วางขั้นสูง
  • ไฮไลต์ของรูปแบบการเลือกที่ตรงกันในไฟล์
  • สถาปัตยกรรมที่ใช้ปลั๊กอิน
  • ส่งออกข้อมูลไปยังข้อความและ html (อื่น ๆ ที่มีปลั๊กอิน)
  • การใช้งานข้อมูลระดับบิต
  • คู่มือผู้ใช้ที่ครอบคลุม

คุณสามารถ dounload ได้จากที่นี่: http://packages.debian.org/sid/all/bless/download

หากต้องการติดตั้งให้ดูที่ฉันจะติดตั้งไฟล์. deb ผ่านบรรทัดคำสั่งได้อย่างไร

ต้องการมาก?


10
คำถามกำลังถามตัวแก้ไขบรรทัดคำสั่ง
psusi

1
@psusi ไม่มีที่ OP ถามเกี่ยวกับโปรแกรมแก้ไขฐานสิบหกที่สามารถทำงานจากกะลา , ไม่ได้ อยู่ภายในเปลือก / สถานี มันสามารถเรียกใช้จากเชลล์โดยใช้blessคำสั่งหลังจากติดตั้ง
Radu Rădeanu

33
ไม่มีอะไรที่คุณไม่สามารถเรียกใช้ได้จากเปลือก เขาจะไม่พูดถึงมันเว้นแต่เขาจะหมายถึงบรรทัดคำสั่ง
psusi

ที่จริงแล้วฉันกำลังค้นหา "โปรแกรมดู hex ubuntu" หมายถึงโปรแกรมดูที่อิงกับหน้าต่างในใจและเว็บไซต์ค้นหานำฉันมาที่นี่ ดังนั้นคำตอบนี้คือสิ่งที่ฉันค้นหา
kinORnirvana



2

htนอกจากนี้ยังมี ติดตั้งเป็น

sudo apt-get install ht

hteแล้วเรียกใช้โดยการพิมพ์

ฉันไม่ได้ลองกับไฟล์ / พาร์ติชั่นขนาดใหญ่จริงๆ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.