S'il vous plaît recommander un éditeur hexadécimal pour shell


Réponses:


24

emacs a un mode hexl pour l'édition hexadécimale.


4
Le mode hexl ne convient pas aux fichiers volumineux ou aux partitions de disque, car il charge l'intégralité du fichier dans un tampon emacs. C'est bien pour les petits fichiers si vous êtes déjà à l'aise avec emacs.
Peter Cordes

1
@PeterCordes, pour éditer un disque, indiquez simplement ddla région que vous souhaitez éditer dans un fichier et ouvrez-la dans emacs, puis ddretournez.
psusi

6
@psusi Le problème, c'est que je ne devrais pas avoir à faire cet effort pour éditer un fichier
Cole Johnson

1
@ColeJohnson, nous ne parlons pas de l'édition d'un fichier; nous parlons de l'édition d'un disque dur brut entier.
Psusi

2
@ psusi Sur ma machine Windows, je peux utiliser HxD et ouvrir un disque comme n'importe quel autre fichier.
Cole Johnson

76
xxd

Cet outil est le plus couramment disponible que j'ai trouvé pour ce type de tâche (disponible par défaut sur les dernières Ubuntu et macOS). Vous pouvez supprimer la partie lisible en ASCII sur la droite si nécessaire en utilisant -pet vous pouvez rétablir (changer l'entrée ASCII en données binaires) en utilisant la -rfonction. Voici quelques exemples d'utilisations simples:

Conversion en hex avec vue ascii:

echo example | xxd

Conversion en hexdump (pas de vue ascii à droite):

echo example | xxd -p

Reconvertir d'un fichier hexadécimal en données binaires:

echo 746573740a | xxd -p -r

Cela peut devenir beaucoup plus complexe avec cela dans les scripts shell. En fait, j’ai utilisé cela et "dd" pour rechercher des séquences spécifiques et les modifier de manière prédéfinie, le tout à partir d’un script shell n’utilisant que bash dd, et xxd. Vous n'avez en fait pas besoin de dd pour cela, car vous pouvez "rechercher" un emplacement spécifique et écrire à cet emplacement la séquence d'octets dont vous avez besoin. Le principal avantage de cette approche est sa facilité de script.


2
xxd semble être installé par défaut sur Ubuntu 16.04, c'est-à-dire SWEET! Merci!
GlenPeterson

Aussi disponible par défaut sur MacOS!
thom_nic

34

Il y a aussi DHEX

apt-cache show dhex

éditeur hex basé sur ncurses avec mode diff

C’est plus qu’un autre éditeur hexadécimal: il comprend un mode diff, qui permet de comparer facilement et commodément deux fichiers binaires. Comme il est basé sur ncurses et qu'il est possible de les utiliser, il peut être exécuté sur un nombre quelconque de systèmes et de scénarios. Grâce à son utilisation des journaux de recherche, il est possible de suivre facilement les modifications apportées à différentes itérations de fichiers.

Si vous n'êtes pas familier avec vim ou emacs, celui-ci ne semble pas avoir beaucoup de courbe d'apprentissage.


3
Le seul inconvénient de dhex imho est qu’il ne peut pas insérer / supprimer des octets. Sinon, c'est un très bon éditeur hexadécimal de console
Nicholi

Quand je lance "dhex / path / to / big / file", je reçois une "erreur lors de l'ouverture du fichier input / file / path / to / big / file". J'aime dhex et je l’utilise tout le temps pour les fichiers de taille normale.
sondra.kinsey

@ sondra.kinsey: Je viens d'essayer un fichier de 20 Go sur ma machine à 8 Go de RAM et je n'ai pas eu de problème. Ceci est sur Ubuntu 16.04 64 bits, avec dhex 0.68-2build1 (amd64). Donc ça devrait marcher.
mardi

@mivk, j'ai essayé sans succès avec dhex avec un fichier de 44 Go utilisant dhex_0.68-2build1_i386 sur Ubuntu 17.04 avec 3 Go de RAM. hexedit et wxHexEditor ouvrent le même fichier sans se plaindre.
sondra.kinsey

@ sondra.kinsey: peut-être un problème / bug avec la version 32bit de dhex et les fichiers de plus de 4 Go?
mardi

26

Vous pourrez peut-être aussi utiliser vi / vim comme éditeur hexadécimal (il peut appeler xxd).

Entrer en mode hexadécimal:

:%!xxd

Quitter le mode hexadécimal:

:%!xxd -r

Source: Utiliser vi comme éditeur hexadécimal


1
Je ferais attention à ça. J'ai trouvé l' :%!xxdajout de nouveaux caractères (c.-à-d. Nouvelle ligne) au fichier.
Quazi Irfan

1
@iamcreasy ce n'est pas xxdqui fait cela: c'est plutôt Vim lui-même.
Ruslan

3
N'oubliez pas de :set binary! Sinon, VIM est susceptible de corrompre le fichier en ajoutant une fin de ligne (CR / LF / CRLF) à la fin du fichier (en fonction du format défini pour ( set ff=[mac/unix/dos])). Cela risquerait fort de casser les exécutables et les fichiers binaires de données. Et ça le fait. Beaucoup. S'assurer que VIM est en mode binaire empêchera que cela se produise.
Braden Best

8

Je sais que c’est une vieille question, mais j’étais insatisfait de toutes les réponses fournies. Je cherchais un éditeur hexadécimal qui me permettait de créer mes propres fichiers binaires (mode insertion) et pouvant gérer des fichiers très volumineux.

Je suis tombé sur tweak , qui répond à ces deux exigences, ainsi que les PO.

  • Tweak prend en charge le mode insertion (ce qui n'est pas particulièrement utile si vous modifiez un fichier exécutable ou une image de système de fichiers, mais il peut s'avérer extrêmement pratique dans d'autres formats de fichier tels que PNG).
  • Couper, copier et coller dans le fichier que vous éditez est extrêmement efficace. Quelle que soit la taille de la masse de données que vous déplacez, même s'il s'agit d'une section de 200 Mo d'une image de CD, Tweak effectuera toujours l'opération de manière efficace et instantanée.
  • Tweak prend en charge le chargement paresseux du fichier d'entrée: au lieu de tout enregistrer immédiatement en mémoire, il se souvient simplement des parties du tampon d'édition qui sont des copies des parties du fichier d'entrée et qui font référence au fichier sur le disque quand il le faut. Tweak doit seulement prendre beaucoup de temps lorsque vous en avez réellement besoin pour lire le fichier en entier. Les deux seules opérations avec cette propriété sont la recherche et l'enregistrement de la version modifiée du fichier sur le disque. Tout le reste est instantané.

Hmmm, un programme qui est prêt à modifier le tampon avec chaque frappe erronée, et ne demande pas à l'utilisateur comment (ou quitter!) Utiliser le programme. Beurk! Il s'avère que la commande "exit" est identique à celle d'emacs ... mais cela n'a pas fonctionné pour moi la première fois. J'ai donc essayé tout ce à quoi je pouvais penser avant de réessayer. J'ai abandonné emacs il y a plusieurs décennies, mais souvenez-vous de la commande la plus importante: Ctrl-X, Ctrl-C. Si vous aimez Emacs, vous aimerez peut-être tweak, mais pour moi c'était gênant. Je peux réessayer si j’ai vraiment besoin de retouche. Exécuter à man tweakpartir du terminal pour une vue d'ensemble et une liste de commandes.
Lambart

@Lambart L'intérêt du mode insertion de tweak est de modifier le tampon afin que votre argument ne soit pas vraiment valide. De plus, vous devriez lire la page de manuel avant de l’utiliser quand même. Ne pas le faire et se plaindre qu'il ne vous dit pas comment quitter est simplement paresseux.
Gogeta70

4

Bless Hex Editor est un éditeur binaire (hex) qui fournit actuellement les fonctionnalités suivantes:

  • Edition efficace de gros fichiers de données et de blocs de périphériques.
  • Annulation multiniveau - opérations répétées.
  • Vues de données personnalisables.
  • Rendu rapide des données à l'écran.
  • Plusieurs onglets.
  • Recherche rapide et remplacement des opérations.
  • Une table de conversion de données.
  • Fonctionnalités avancées de copier / coller.
  • La mise en surbrillance des motifs de sélection correspond dans le fichier.
  • Architecture à base de plugin.
  • Exportation de données en texte et en HTML (autres avec des plugins).
  • Opérations binaires sur les données.
  • Un manuel d'utilisation complet.

Vous pouvez le télécharger à partir d’ici: http://packages.debian.org/sid/all/bless/download .

Pour l'installer, voir Comment installer un fichier .deb via la ligne de commande?

Besoin de plus?


10
La question demande un éditeur de ligne de commande.
Psusi

1
@psusi Non, l'OP a posé une question sur un éditeur hexadécimal pouvant être exécuté à partir d'un shell , pas à l' intérieur d'un shell / terminal. Il peut être exécuté à partir de shell en utilisant la blesscommande after est installée.
Radu Rădeanu

33
Il n'y a rien que vous ne pouvez pas courir de la coquille; il ne l'aurait pas mentionné à moins qu'il ne parle de ligne de commande.
Psusi

En fait, je cherchais "ubuntu hex viewer", ce qui signifie spectateur basé sur une fenêtre et le site de recherche m'a amené ici. Donc, cette réponse était ce que je cherchais.
kinORnirvana

2

Essayez Hexed , il est fait pour être utilisé dans les scripts et créer des fichiers.



2

Il y a aussi ht. Installez-le en tant que

sudo apt-get install ht

puis exécutez-le en tapant hte.

Je n'ai pas essayé avec de très gros fichiers / partitions, cependant.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.