Ceci est un billet rapide pour lister les commandes utiles sous Linux. Je l’enrichirai au fur et à mesure…

Lister l’ensemble des fichiers d’une archive tar.gz

$ gunzip -c archive.tar.gz | tar -tvf -
  • L’option -c de gunzip affiche le contenu de l’archive sur la sortie standard.
  • L’option -t de tar liste le contenu de archive.tar (équivalent à --list)
  • L’otpion -v de tar passe en mode verbeux, comme bien souvent
  • L’option -f de tar indique que le fichier à extraire est passé en argument
  • Enfin le - à la fin de la commande indique à tar que le fichier n’est pas en argument mais provient de l’entrée standard

Comparer la sortie de deux commandes

Une petite subtilité de bash que j’ai découverte récemment (merci Célestin Matte et son article paru dans GNU/Linux Pratique n°124) : il est possible de traiter le retour d’une commande en tant que fichier avec la syntaxe <(commande).

Par exemple, j’ai deux scripts python et je souhaite comparer leur sortie. Il me suffit de faire :

$ diff <(python script_1.py) <(python script_2.py)

Comparer ligne à ligne deux fichiers

L’option -y de diff est bien pratique quand on veut comparer rapidement deux fichiers côte à côte.

$ diff -y file_1 file_2

Créer un gif d’une suite d’images avec ffmpeg

Il faut commencer par créer une palette sinon le gif n’aura pas les bonnes couleurs !

$ ffmpeg -i "Image_%02d.png" -vf palettegen palette.png
$ ffmpeg -i 'Image_%02d.png' -i palette.png  -lavfi paletteuse output.gif

Mettre en pause et relancer un processus

Il m’est déjà arrivé de lancer un gros code scientifique (en Matlab) et souhaiter le “mettre en pause” afin de dégager rapidement du temps processeur pour exécuter une autre tâche plus courte. Cela se fait très bien avec la commande kill et aux jobs bash. Exemple ci-dessous.

$ matlab &
$ jobs # Liste les processus qui tournent en arrière-plan du shell actif
[1]+  En cours d'exécution   matlab &  (wd : /home/donut)
$ kill -s SIGSTOP %1 # SIGSTOP : pause d'un processus. Le %1 désigne le 1er job (tel que listé par la commande jobs)
$ jobs # On vérifie que le job est bien suspendu
[1]+  Stoppé                 matlab
$ kill -s SIGCONT %1 # SIGCONT : reprise du processus
$ jobs # On vérifie que le job a bien repris
[1]+  En cours d'exécution   matlab &  (wd : /home/donut)

Ajouter de nouvelles polices de caractères au système

Récupérer les fichiers ttf (True Type Fonts), par exemple la police d’écriture de Diablo et les installer soit dans /usr/local/share/fonts (répertoire par défaut du système) soit dans ~/.local/share/fonts ou ~/.fonts (pour une installation par utilisateur).

il suffit ensuite d’utiliser la commande fc-cache pour mettre à jour le cache des polices

$ fc-cache -v

On peut ensuite vérifier que notre nouvelle police est bien détectée par le système

$ fc-list | grep -i diablo
/home/donut/.local/share/fonts/DIABLO_L.TTF: Diablo:style=Light
/home/donut/.local/share/fonts/DIABLO_H.TTF: Diablo:style=Heavy

Cette police apparaîtra ensuite dans toutes les applications utilisant des caractères (Libre Office, Gimp etc…). Pour plus d’informations, se référer au wiki de debian.org