Harap sarankan editor hex untuk shell

Jawaban:

24

emacs memiliki mode hexl untuk mengedit hex.

psusi
sumber
4
hexl-mode tidak cocok untuk file besar atau partisi disk, karena ini memuat seluruh file ke dalam buffer emacs. Ini bagus untuk file kecil jika Anda sudah nyaman dengan emacs.
Peter Cordes
1
@PeterCordes, untuk mengedit disk, cukup ddwilayah yang ingin Anda edit menjadi file dan buka di emacs, lalu ddkembali.
psusi
6
@psusi Masalahnya adalah, saya tidak harus pergi ke upaya untuk mengedit file
Cole Johnson
1
@ColeJohnson, kami tidak berbicara tentang mengedit file; kita sedang berbicara tentang mengedit seluruh hard disk mentah.
psusi
2
@psusi Di mesin Windows saya, saya bisa menggunakan HxD dan membuka disk sama seperti file lainnya.
Cole Johnson
76
xxd

Alat ini adalah yang paling umum tersedia yang saya temukan untuk jenis tugas ini (tersedia secara default pada Ubuntu terbaru dan macOS). Anda dapat menghapus bagian yang dapat dibaca ascii di sebelah kanan jika perlu menggunakan -pdan Anda dapat mengembalikan (mengubah input ascii ke data biner) menggunakan -rfungsi. Berikut adalah beberapa contoh penggunaan sederhana:

Konversi ke hex dengan tampilan ascii:

echo example | xxd

Konversi ke hexdump (tidak ada tampilan ascii di sebelah kanan):

echo example | xxd -p

Mengonversi dari hexdump kembali ke data biner:

echo 746573740a | xxd -p -r

Anda bisa menjadi jauh lebih kompleks dengan skrip shell ini. Saya sebenarnya telah menggunakan ini dan "dd" untuk memindai urutan tertentu dan memodifikasinya dengan cara yang telah ditentukan semua dari skrip shell menggunakan apa pun kecuali bash dd,, dan xxd. Anda sebenarnya tidak memerlukan dd untuk ini karena Anda dapat "mencari" ke lokasi tertentu dan menulis ke lokasi itu urutan byte yang Anda butuhkan. Keuntungan terbesar dari pendekatan ini adalah mudahnya skrip.

Goblinlord
sumber
2
xxd tampaknya diinstal pada Ubuntu 16.04 secara default, yaitu MANIS! Terima kasih!
GlenPeterson
Juga tersedia secara default di MacOS!
thom_nic
34

Ada juga DHEX

apt-cache show dhex

editor hex berbasis ncurses dengan mode diff

Ini lebih dari sekadar hex editor lain: Ini termasuk mode diff, yang dapat digunakan untuk membandingkan dua file biner dengan mudah dan nyaman. Karena didasarkan pada ncurses dan dapat disesuaikan, ia dapat berjalan pada sejumlah sistem dan skenario. Dengan pemanfaatan log pencarian, dimungkinkan untuk melacak perubahan di berbagai iterasi file dengan mudah.

Jika Anda tidak terbiasa dengan vim atau emacs, ini sepertinya tidak memiliki banyak kurva pembelajaran.

mivk
sumber
3
Satunya downside ke dhex imho adalah tidak dapat memasukkan / menghapus byte. Kalau tidak, itu adalah editor hex konsol yang sangat bagus.
Nicholi
Ketika saya menjalankan "dhex / path / ke / big / file", saya mendapatkan "kesalahan membuka inputfile / path / ke / big / file". Saya suka dhex dan menggunakannya sepanjang waktu untuk file berukuran normal.
sondra.kinsey
@ sondra.kinsey: Saya baru saja mencoba file 20GB pada mesin RAM 8GB saya, dan tidak punya masalah. Ini ada di Ubuntu 16.04 64 bit, dengan dhex 0.68-2build1 (amd64). Jadi harusnya berhasil.
mivk
@mivk, saya mencoba dhex tidak berhasil dengan file 44GB menggunakan dhex_0.68-2build1_i386 di Ubuntu 17.04 dengan RAM 3GB. hexedit dan wxHexEditor membuka file yang sama tanpa keluhan.
sondra.kinsey
@ sondra.kinsey: mungkin masalah / bug dengan versi 32bit dhex dan file lebih dari 4GB?
mivk
26

Anda mungkin bisa menggunakan vi / vim sebagai hex editor (bisa memanggil xxd).

Masuk ke mode hex:

:%!xxd

Keluar dari mode hex:

:%!xxd -r

Sumber: Menggunakan vi sebagai hex editor

Klcant
sumber
1
Saya akan berhati-hati dengan itu. Saya menemukan :%!xxdmenambahkan karakter baru (yaitu baris baru) ke file.
Quazi Irfan
1
@iamreasy bukan xxdsiapa yang melakukan ini: melainkan Vim sendiri.
Ruslan
3
Jangan lupa untuk :set binary! Kalau tidak, VIM kemungkinan akan merusak file dengan menambahkan line-end (CR / LF / CRLF) di akhir file (tergantung pada apa Anda mengatur format ke ( set ff=[mac/unix/dos])). Ini sangat mungkin untuk menghancurkan file biner yang dapat dieksekusi dan data. Dan itu benar. Banyak. Memastikan VIM dalam mode biner akan mencegah hal itu terjadi.
Braden Best
8

Saya tahu ini adalah pertanyaan lama, tetapi saya tidak puas dengan semua jawaban di sini. Saya sedang mencari hex editor yang memungkinkan saya untuk membuat file biner saya sendiri (alias mode insert) dan dapat menangani file yang sangat besar.

Saya menemukan tweak , yang memenuhi kedua persyaratan ini, serta OP.

  • Tweak mendukung mode penyisipan (tidak terlalu berguna jika Anda mengedit file yang dapat dieksekusi atau gambar sistem file, tetapi dapat sangat berguna dalam format file lain seperti PNG).
  • Memotong, menyalin, dan menempel dalam file yang sedang Anda edit sangat efisien. Tidak peduli seberapa besar potongan data yang Anda pindahkan - bahkan jika itu adalah bagian 200 MB dari gambar CD - Tweak akan selalu melakukan operasi secara efektif secara instan.
  • Tweak mendukung pemuatan file input yang malas: alih-alih langsung menghisap semuanya ke dalam memori, ia hanya mengingat bagian mana dari buffer pengeditan yang merupakan salinan dari bagian mana dari file input dan merujuk ke file pada disk saat dibutuhkan. Tweak hanya perlu mengambil waktu yang signifikan ketika Anda benar-benar membutuhkannya untuk membaca seluruh file. Hanya dua operasi dengan properti ini yang mencari, dan menyimpan versi file yang dimodifikasi ke disk. Yang lainnya instan.
Gogeta70
sumber
Hmmm, sebuah program yang siap untuk memodifikasi buffer dengan setiap keystroke yang salah, dan tidak menginstruksikan pengguna bagaimana (atau keluar!) Untuk menggunakan program. Huek! Ternyata perintah "keluar" sama dengan emacs ... tapi itu tidak bekerja untuk saya pertama kali, jadi saya mencoba semua hal lain yang dapat saya pikirkan sebelum mencobanya lagi. Saya menyerah pada emacs beberapa dekade yang lalu, tetapi ingat perintah yang paling penting: Ctrl-X, Ctrl-C. Jika Anda suka emacs, Anda mungkin suka tweak, tetapi bagi saya itu canggung. Saya dapat mencobanya lagi jika saya benar-benar perlu diedit. Jalankan man tweakdari terminal untuk tinjauan umum dan daftar perintah.
Lambart
@Lambart Inti dari mode penyisipan tweak adalah untuk memodifikasi buffer, jadi poin Anda tidak benar-benar valid di sana. Anda juga harus membaca halaman manual sebelum menggunakannya. Tidak melakukannya dan kemudian mengeluh bahwa itu tidak memberi tahu Anda bagaimana keluar hanya malas.
Gogeta70
4

Bless Hex Editor adalah editor biner (hex) dan saat ini menyediakan fitur-fitur berikut:

  • Pengeditan efisien file data besar dan blokir perangkat.
  • Multilevel batalkan - ulang operasi.
  • Tampilan data yang dapat disesuaikan.
  • Render data cepat di layar.
  • Banyak tab.
  • Temukan dan ganti operasi dengan cepat.
  • Tabel konversi data.
  • Kemampuan salin / tempel yang canggih.
  • Menyoroti kecocokan pola seleksi dalam file.
  • Arsitektur berbasis plugin.
  • Ekspor data ke teks dan html (lainnya dengan plugin).
  • Operasi bitwise pada data.
  • Panduan pengguna yang komprehensif.

Anda dapat melakukan unload dari sini: http://packages.debian.org/sid/all/bless/download .

Untuk menginstalnya, lihat Bagaimana cara saya menginstal file deb melalui baris perintah?

Perlu lebih banyak?

Radu Rădeanu
sumber
10
Pertanyaannya adalah meminta editor baris perintah.
psusi
1
@psusi Tidak, OP bertanya tentang hex editor yang dapat dijalankan dari shell , bukan di dalam shell / terminal. Itu dapat dijalankan dari shell menggunakan blessperintah setelah diinstal.
Radu Rădeanu
33
Tidak ada yang Anda tidak bisa lari dari shell; dia tidak akan menyebutkannya kecuali maksudnya baris perintah.
psusi
Sebenarnya saya sedang mencari "ubuntu hex viewer" yang berarti penampil berbasis jendela dalam pikiran dan situs pencarian membawa saya ke sini. Jadi jawaban ini adalah apa yang saya cari.
kinORnirvana
2

Coba hexed , ini dibuat untuk digunakan dalam skrip dan membuat file.

bzaar
sumber
2

Ini sudah mati mudah digunakan:

sudo apt-get install hexcurse
HenryRootTwo
sumber
2

Ada juga ht. Instal sebagai

sudo apt-get install ht

dan kemudian jalankan dengan mengetik hte.

Saya belum mencobanya dengan file / partisi yang sangat besar.

fjflores
sumber