Corrigez-moi si je me trompe, mais un des répertoires dans lequel les commandes sont stockées dans Ubuntu est /usr/bin
. J'ai essayé de visualiser un des fichiers exécutables ELF 64-bit LSB (synergy) avec nano
mais tout ce que je vois est un mélange de symboles/lettres aléatoires. Puis-je visualiser ces fichiers ? Si oui, comment dois-je m'y prendre ?
Réponses
Trop de publicités?La plupart des fichiers (si ce n'est tous) de /usr/bin
sont binaire des fichiers exécutables. Maintenant, Un fichier binaire est un fichier informatique qui n'est pas un fichier texte. il peut contenir tout type de données, codées sous forme binaire à des fins de stockage et de traitement informatique (pour en savoir plus ) : Fichier binaire ).
Ainsi, si un fichier binaire n'est pas un fichier texte, vous ne pouvez pas utiliser nano
(ou un autre éditeur de texte) pour le modifier (enfin, vous pouvez, mais vous ne saurez certainement pas ce que vous faites).
Dans Ubuntu (et les systèmes d'exploitation de type Linux en général), il existe des applications appelées hexeditors comme GHex qui permet de visualiser et d'éditer les fichiers de deux manières, hex ou ascii :
En outre, vous pouvez transformer vim
dans un éditeur hexadécimal en tapant :%!xxd
à l'intérieur de celui-ci ( :%!xxd -r
pour revenir au mode normal).
Dossiers sous /usr/bin
qui ne sont pas des Shell Shell sont normalement de "vrais" exécutables, c'est-à-dire qu'ils contiennent du code machine qui est exécuté directement par le CPU (mélangé avec quelques en-têtes/structures utilisés par le chargeur et le linker dynamique pour faire leur travail).
Vous peut les ouvrir avec un éditeur hexadécimal, mais normalement vous ne pouvez pas faire grand-chose avec ; si vous connaissez le format ELF, l'outil classique pour vérifier les propriétés des exécutables est objdump
; objdump -x filename
imprimera beaucoup d'informations sur les en-têtes ELF, tandis que la commande -d
produira le désassemblage de tous les segments exécutables de l'exécutable donné. Mais encore une fois, soit vous êtes vraiment expert et vous faites des choses très spécifiques, soit c'est vraiment inutile. Les exécutables sont destinés à être exécutés par un ordinateur, pas à être lus par un humain.
Ce qui est plus intéressant, si vous êtes programmeur, c'est d'obtenir le code source (c'est-à-dire le code réellement écrit par un humain et ensuite compilé en un exécutable binaire) d'un programme que vous avez installé, pour le vérifier, appliquer des correctifs, le modifier, ... Si votre sources.list est configuré de manière appropriée et que le paquet source est disponible (c'est normalement le cas pour tous les paquets fournis dans les dépôts de "main" à "universe"), vous pouvez obtenir les sources en utilisant la commande apt-get source name_of_the_package
.