Proszę polecić edytor szesnastkowy dla powłoki

Odpowiedzi:

24

emacs ma tryb hexl do edycji szesnastkowej.

psusi
źródło
4
Tryb hexl nie nadaje się do dużych plików lub partycji dysku, ponieważ ładuje cały plik do bufora emacs. Świetnie nadaje się do małych plików, jeśli już znasz się na emacsie.
Peter Cordes
1
@PeterCordes, do edycji dysku, po prostu ddregion, który chcesz edytować w pliku i otwórz go w emacsie, a następnie z ddpowrotem.
psusi
6
@psusi Problem polega na tym, że nie powinienem zmuszać się do edycji pliku
Cole Johnson
1
@ColeJohnson, nie mówimy o edycji pliku; mówimy o edycji całego surowego dysku twardego.
psusi
2
@psusi Na moim komputerze z systemem Windows mogę korzystać z HxD i otwierać dysk tak jak każdy inny plik.
Cole Johnson
76
xxd

To narzędzie jest najczęściej dostępne, jakie znalazłem dla tego typu zadań (domyślnie dostępne zarówno w najnowszym Ubuntu, jak i macOS). W razie potrzeby możesz usunąć część czytelną ascii po prawej stronie -pi możesz przywrócić (zmienić dane ascii na dane binarne) za pomocą tej -rfunkcji. Oto kilka prostych przykładowych zastosowań:

Konwersja na hex w widoku ascii:

echo example | xxd

Konwertowanie na zrzut heksowy (brak widoku ascii po prawej):

echo example | xxd -p

Konwertowanie z zrzutu heksadecymalnego z powrotem na dane binarne:

echo 746573740a | xxd -p -r

Możesz stać się o wiele bardziej skomplikowany w skryptach powłoki. Użyłem tego i „dd” do skanowania w poszukiwaniu określonych sekwencji i modyfikowania ich w predefiniowany sposób, wszystko ze skryptu powłoki, używając tylko bash dd, i xxd. Tak naprawdę nie potrzebujesz do tego dd, ponieważ możesz „szukać” do określonej lokalizacji i zapisać w tej lokalizacji potrzebną sekwencję bajtów. Największą zaletą tego podejścia jest łatwość pisania skryptów.

Władca Goblinów
źródło
2
Wygląda na to, że xxd jest domyślnie zainstalowany na Ubuntu 16.04, który jest SŁODKI! Dzięki!
GlenPeterson
Dostępne również domyślnie w systemie MacOS!
thom_nic
34

Istnieje również DHEX

apt-cache show dhex

Edytor hex oparty na ncurses z trybem różnicowym

To więcej niż kolejny edytor szesnastkowy: zawiera tryb różnicowy, którego można użyć do łatwego i wygodnego porównania dwóch plików binarnych. Ponieważ jest oparty na ncurses i jest tematyczny, może działać na dowolnej liczbie systemów i scenariuszy. Dzięki wykorzystaniu dzienników wyszukiwania możliwe jest łatwe śledzenie zmian w różnych iteracjach plików.

Jeśli nie znasz Vima ani Emacsa, ten nie wydaje się mieć dużej krzywej uczenia się.

mivk
źródło
3
Jedynym minusem dhex imho jest to, że nie może wstawiać / usuwać bajtów. W przeciwnym razie jest to bardzo ładny edytor szesnastkowy konsoli.
Nicholi,
Kiedy uruchamiam „dhex / path / to / big / file”, pojawia się „błąd otwierania pliku wejściowego / path / to / big / file”. Lubię dhex i używam go cały czas do plików normalnej wielkości.
sondra.kinsey
@ sondra.kinsey: Właśnie wypróbowałem plik 20 GB na mojej 8 GB pamięci RAM i nie miałem problemu. To jest na Ubuntu 16.04 64 bit, z dhex 0.68-2build1 (amd64). Więc powinno działać.
mivk,
@mivk, próbowałem dhex bezskutecznie z plikiem 44 GB, używając dhex_0.68-2build1_i386 na Ubuntu 17.04 z 3 GB pamięci RAM. hexedit i wxHexEditor otwierają ten sam plik bez reklamacji.
sondra.kinsey,
@ sondra.kinsey: może problem / błąd w 32-bitowej wersji dhex i plików powyżej 4 GB?
mivk,
26

Możesz także używać vi / vim jako edytora szesnastkowego (może wywoływać xxd).

Wejdź w tryb szesnastkowy:

:%!xxd

Wyjdź z trybu hex:

:%!xxd -r

Źródło: Używanie vi jako edytora szesnastkowego

klcant
źródło
1
Byłbym ostrożny z tym. Znalazłem :%!xxddodawanie nowych znaków (tj. Nowej linii) do pliku.
Quazi Irfan,
1
@iamcreasy to nie xxdkto to robi: raczej sam Vim.
Ruslan
3
Nie zapomnij :set binary! W przeciwnym razie VIM może uszkodzić plik, dodając koniec linii (CR / LF / CRLF) na końcu pliku (w zależności od tego, jaki format ma ustawiony na ( set ff=[mac/unix/dos])). Jest bardzo prawdopodobne, że spowoduje to uszkodzenie plików wykonywalnych i plików binarnych danych. I tak jest. Dużo. Upewnij się, że VIM jest w trybie binarnym, aby temu zapobiec.
Braden Best
8

Wiem, że to stare pytanie, ale nie byłem zadowolony z wszystkich odpowiedzi tutaj. Szukałem edytora szesnastkowego, który pozwoliłby mi tworzyć własne pliki binarne (inaczej tryb wstawiania) i mógł obsługiwać bardzo duże pliki.

Natknąłem się na poprawki , które spełniają oba te wymagania, a także PO.

  • Tweak obsługuje tryb wstawiania (nie jest to szczególnie przydatne, jeśli edytujesz plik wykonywalny lub obraz systemu plików, ale może być bardzo przydatne w innych formatach plików, takich jak PNG).
  • Wycinanie, kopiowanie i wklejanie w edytowanym pliku jest niezwykle wydajne. Bez względu na to, jak duża część danych się porusza - nawet jeśli jest to fragment obrazu CD o wielkości 200 Mb - Tweak zawsze wykona operację skutecznie natychmiast.
  • Tweak obsługuje leniwe ładowanie pliku wejściowego: zamiast od razu wsysać wszystko do pamięci, po prostu zapamiętuje, które części bufora edycji są kopiami, które części pliku wejściowego i odwołuje się do pliku na dysku, kiedy jest to konieczne. Ulepszenie zajmuje dużo czasu tylko wtedy, gdy naprawdę potrzebujesz go do odczytania całego pliku. Jedyne dwie operacje z tą właściwością to wyszukiwanie i zapisywanie zmodyfikowanej wersji pliku na dysku. Wszystko inne jest natychmiastowe.
Gogeta70
źródło
Hmmm, program, który jest gotowy do modyfikowania bufora przy każdym pomyłkowym naciśnięciu klawisza i nie instruuje użytkownika, jak (lub wyjść!) Z używania programu. Fuj! Okazuje się, że polecenie „exit” jest takie samo jak emacs ... ale nie zadziałało dla mnie po raz pierwszy, więc wypróbowałem wszystko, o czym mogłem pomyśleć, zanim spróbowałem ponownie. Zrezygnowałem z emacsa kilkadziesiąt lat temu, ale pamiętam najważniejsze polecenie: Ctrl-X, Ctrl-C. Jeśli lubisz emacsa, możesz polubić tweak, ale dla mnie było to niezręczne. Mogę spróbować ponownie, jeśli naprawdę potrzebuję edycji. Uruchom man tweakz terminala, aby wyświetlić przegląd i listę poleceń.
Lambart
@Lambart Cały punkt trybu wstawiania poprawek polega na modyfikacji bufora, więc twój punkt nie jest tak naprawdę ważny. Ponadto powinieneś przeczytać stronę podręcznika przed użyciem. Nie robienie tego, a następnie narzekanie, że nie mówi ci, jak wyjść, jest po prostu leniwy.
Gogeta70,
4

Bless Hex Editor to edytor binarny (hex) i obecnie oferuje następujące funkcje:

  • Wydajna edycja dużych plików danych i urządzeń blokowych.
  • Wielopoziomowe cofanie - ponawianie operacji.
  • Konfigurowalne widoki danych.
  • Szybkie renderowanie danych na ekranie.
  • Wiele kart.
  • Szybkie znajdowanie i zastępowanie operacji.
  • Tabela konwersji danych.
  • Zaawansowane możliwości kopiowania / wklejania.
  • Podświetlanie dopasowania wzorca wyboru w pliku.
  • Architektura oparta na wtyczkach.
  • Eksport danych do tekstu i HTML (inne z wtyczkami).
  • Bitowe operacje na danych.
  • Kompleksowa instrukcja obsługi.

Możesz to zrobić stąd: http://packages.debian.org/sid/all/bless/download .

Aby go zainstalować, zobacz Jak zainstalować plik .deb za pomocą wiersza polecenia?

Potrzeba więcej?

Radu Rădeanu
źródło
10
Pytanie dotyczy edytora wiersza poleceń.
psusi
1
@psusi Nie, PO pytani o edytor szesnastkowy, który można uruchomić z muszli , a nie wewnątrz skorupy / terminala. Można go uruchomić z powłoki za pomocą blesspolecenia po zainstalowaniu.
Radu Rădeanu
33
Nic nie można uruchomić z powłoki; nie wspomniałby o tym, gdyby nie miał na myśli wiersza poleceń.
psusi
Właściwie przeszukiwałem „Ubuntu hex viewer”, co oznacza przeglądarkę okienkową, a strona wyszukiwania mnie tu przywiodła. Tak więc szukałem tej odpowiedzi.
kinORnirvana
2

Spróbuj hexed , jest przeznaczony do użycia w skryptach i tworzenia plików.

b.zaar
źródło
2

Ten jest bardzo prosty w użyciu:

sudo apt-get install hexcurse
HenryRootTwo
źródło
2

Jest też ht. Zainstaluj jako

sudo apt-get install ht

a następnie uruchom go, wpisując hte.

Jednak nie próbowałem tego z naprawdę dużymi plikami / partycjami.

fjflores
źródło