Proszę polecić edytor szesnastkowy dla powłoki


Odpowiedzi:


24

emacs ma tryb hexl do edycji szesnastkowej.


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.


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ę.


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


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.

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?


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

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.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.