← Tous les articles
Technique

15 Commandes Unix vraiment utiles au quotidien (du diagnostic réseau aux astuces sed)

4 juillet 2026 · par Romain RICHER

Que vous soyez développeur, administrateur système ou simplement à l’aise avec un terminal, quelques commandes Unix bien maîtrisées font gagner un temps considérable. Voici une sélection de commandes que j’utilise régulièrement dans mon travail, classées de la plus simple à la plus avancée. Chacune est accompagnée d’un exemple concret et d’une explication de ce qu’elle fait réellement.

Diagnostic réseau : le serveur répond-il ?

Vérifier qu’un serveur est joignable

La première question quand quelque chose ne fonctionne plus : la machine est-elle accessible ? La commande ping envoie des paquets et mesure le temps de réponse.

ping exemple.com

Vous pouvez indiquer un nom de domaine ou une adresse IP. Si les réponses arrivent, la machine est joignable sur le réseau. Si tout se perd, le problème est en amont (réseau, pare-feu, machine éteinte).

Retrouver le nom de domaine associé à une adresse IP

L’inverse d’une résolution DNS classique : vous avez une IP et vous voulez savoir à quel nom elle correspond. nslookup interroge le DNS pour vous.

nslookup 93.184.216.34

Pratique pour identifier à quel service appartient une adresse qui apparaît dans vos logs.

Rechercher des fichiers et fouiller leur contenu

Chercher dans le résultat d’un find

Trouver tous les fichiers d’un type donné, c’est le rôle de find. Mais on veut souvent aller plus loin : chercher un mot à l’intérieur de ces fichiers. La combinaison find + xargs + grep fait exactement cela.

find . -name '*.py' -print0 | xargs -0 grep 'ma_recherche'

Ici, on cherche la chaîne ma_recherche dans tous les fichiers .py du répertoire courant et de ses sous-dossiers. L’option -print0 associée à -0 gère correctement les noms de fichiers contenant des espaces — un détail qui évite bien des surprises.

Localiser les gros fichiers qui saturent un disque

Quand un disque se remplit, la question est : qu’est-ce qui prend toute la place ? Plusieurs approches selon le besoin.

Pour repérer rapidement les dossiers volumineux (ceux qui pèsent en gigaoctets) :

du -sh * | grep G

Pour un classement des plus gros au plus petit :

du -hms /chemin/* | sort -nr | head

Et pour traquer les fichiers individuels dépassant une certaine taille (ici environ 500 Mo) :

find / -type f -size +500000k -exec ls -lh {} \; | awk '{ print $9 ": " $5 }'

Cette dernière affiche le chemin de chaque gros fichier suivi de sa taille, ce qui rend le résultat immédiatement lisible.

Gérer l’encodage des fichiers

L’encodage est une source classique de bugs : un fichier qui affiche des caractères bizarres (é devient é…) est presque toujours un problème d’encodage. Trois commandes suffisent à diagnostiquer et corriger.

Afficher l’encodage d’un fichier

file -bi mon_fichier.txt

La commande vous dit dans quel format le fichier est encodé (UTF-8, ISO-8859-1, etc.).

Lister les encodages disponibles

iconv -l

Utile pour connaître le nom exact de l’encodage cible à utiliser.

Convertir un fichier en UTF-8

iconv -t UTF-8 mon_fichier.txt

Cela convertit le fichier vers UTF-8, l’encodage universel recommandé aujourd’hui. Pensez à rediriger la sortie vers un nouveau fichier si vous voulez conserver le résultat.

Le couteau suisse : sed pour les remplacements en masse

sed permet de modifier du texte automatiquement. Sa vraie puissance apparaît quand il faut effectuer plusieurs remplacements d’un coup, directement dans un fichier.

Enchaîner plusieurs remplacements

L’option -i modifie le fichier sur place, et on enchaîne les substitutions avec -e :

sed -i -e 's/ancien1/nouveau1/g' -e 's/ancien2/nouveau2/g' fichier.conf

Chaque -e 's/.../.../g' est un remplacement, le g signifiant « toutes les occurrences de la ligne ».

Aller plus loin avec les expressions régulières

Quand les remplacements suivent un motif, on peut factoriser avec une expression régulière et une référence arrière. Par exemple, pour retirer un appel de fonction trim(...) en ne gardant que son contenu :

sed -i "s/trim(\([a-zA-Z0-9_\.]*\))/\1/g" fichier.conf

Le \(...\) capture ce qui est entre les parenthèses, et \1 le réinjecte. Une seule commande remplace ainsi ce qui aurait demandé une dizaine de substitutions écrites à la main. C’est le genre d’astuce qui transforme une corvée en une ligne.

Chiffrer un fichier avec OpenSSL

Besoin de protéger un fichier sensible ? openssl chiffre en une commande, sans installer d’outil supplémentaire.

Chiffrement symétrique (AES-256)

openssl enc -aes-256-cbc -a -salt -in secret.txt -out secret.txt.enc

Le fichier secret.txt est chiffré vers secret.txt.enc. L’option -salt renforce la sécurité, et -a produit une sortie en base64 (texte), pratique pour transmettre le fichier. Le déchiffrement se fait avec la même commande en ajoutant -d.

Chiffrement avec une clé RSA

Pour un chiffrement asymétrique (avec une paire de clés) :

openssl rsautl -encrypt -in fichier_entree -inkey cle_publique -out fichier_sortie

Cette approche est adaptée quand l’expéditeur et le destinataire ne partagent pas de mot de passe commun.

Astuces avancées : fouiller dans les archives et les binaires

Voici deux techniques moins connues, très utiles quand on cherche l’origine d’un message d’erreur sans savoir dans quel fichier il se cache.

Trouver quel fichier .jar contient une chaîne

Dans un projet Java avec de nombreuses archives, zipgrep cherche directement à l’intérieur des .jar sans les décompresser :

find . -name "*.jar" | xargs -I{} zipgrep "message.d.erreur" {}

Identifier un fichier .class à partir d’un texte qu’il contient

Les fichiers compilés (.class) sont binaires, mais strings en extrait les chaînes lisibles. Combiné à grep, on retrouve le fichier responsable :

find . -name "*.class" | xargs strings --print-file-name | grep "message.d.erreur$"

Ces deux commandes m’ont fait gagner des heures de recherche à l’aveugle dans des applications volumineuses.

En résumé

Ces commandes couvrent l’essentiel du quotidien technique : diagnostiquer un réseau (ping, nslookup), retrouver et fouiller des fichiers (find, xargs, grep, du), gérer l’encodage (file, iconv), automatiser des modifications (sed), sécuriser des données (openssl) et traquer une erreur jusque dans les archives et les binaires (zipgrep, strings).

Aucune n’est compliquée en soi ; c’est leur combinaison et le réflexe de les utiliser au bon moment qui font la différence. Mon conseil : gardez cette liste sous la main, et essayez-en une nouvelle dès que vous vous surprenez à faire manuellement quelque chose que le terminal pourrait automatiser.

Vous avez une commande fétiche qui n’est pas dans la liste ? Le terminal Unix est un puits sans fond de petites astuces qui changent la vie — n’hésitez pas à partager la vôtre.