Memo ligne de commande Linux
Gestion des paquets
apt list –installed | grep <indice>apt-cache search <keyword>sudo apt-get autoremove –purge <paquet>(désinstalle les paquets indiqués, les dépendances logicielles et leurs fichiers de configuration)sudo apt-get clean(libère de l’espace disque en supprimant les copies des paquets conservées dans le dossier /var/cache/apt/archives)sudo apt-get install <packet>(penser à utiliser la complétion)sudo apt update(met à jour la liste des mises à jour à effectuer)sudo apt upgrade(effectue les mises à jour)sudo snap refresh(met à jour les paquets snap, penser à fermer firefox avant)
Divers
- dans un navigateur:
http://localhost:631/jobs/Gestion des imprimantes (Cups) du -h --max-depth=1Trouve où on a stocké trop de cochonneries inutileshtpasswd .htpasswd totoModifie / ajoute une ligne pour toto dans le .htpasswdservice --status-allListe les services dispo et indique leur état.sudo usermod -aG sudo totoFait de l’utilisateur toto un administrateur du système. Après ça, il appartiendra au groupe « sudo » et aux autres groupes qui vont bien avec.- (Exemple): Retrouver tous les paquets Teamviewer, vérifier leur nom exact, puis tout supprimer
apt-cache pkgnames | grep teamsudo apt-get autoremove --purge teamviewersudo apt-get cleansudo reboot
Commandes « Find »
find -perm -u=x Les fichiers qui sont exécutables par l’utilisateur
find -perm u=x Sans le petit signe moins, ce seraient les fichiers qui n’auraient comme seul droit que celui-ci (mod 100) regexp: Elles sont par défaut sur le modèle de celles de Emacs
find /var/lib/motion/*avi -mtime +7 -exec rm -f {} \; Trouve toutes les vidéos de « motion » de plus d’une semaine et les supprime sans avertissement.
Manipulation de fichiers
sed -i '$!d' nomdufichier Supprime toutes les lignes sauf la dernière. (L’utilisation de la commande tail, genre « tail nomdufichier > nomdufichier » ne fonctionne pas à ma connaissance pour ce genre de choses à cause de questions de buffers et de EOF.) Sans le paramètre -i, le résultat va sur la sortie standard sans modification du fichier.
stat nomdufichier Donne plein d’infos sur le fichier que «ls -l» ne donne pas. Par exemple la date de dernier accès avec «stat -c %x».
P=200
for X in *\.png
do
Y=`echo $X|cut -c1-4 `
Y=`expr $Y - $P `
echo mv $X $Y.png # (pour tester)
# mv $X $Y.png Quand tout est OK
done
Ce petit script qui m’a été bien utile pour faire des vidéos enlève une certaine quantité P dans tous une série de noms de fichiers numérotés du genre « 458.png » (ici il devient 258.png)
Vidéo
- Faire une animation mp4 au ralenti (12 images par seconde)à partir d’images png.
ffmpeg -framerate 12 -i %02d.png -c:v libx264 -profile:v high -crf 20 -pix_fmt yuv420p ralenti.mp4
NB: les images sont numérotées de 00.png à 48.png, attention à ne pas avoir de numéro manquant dans la série. Pour plus d’infos:
https://askubuntu.com/questions/610903/how-can-i-create-a-video-file-from-a-set-of-jpg-images
- Convertir une vidéo
ffmpeg -i input.mp4 output.webm
- Faire un gif animé à partir d’images png.
convert -loop 0 -page +0+0 ./*.png output.gif
Nécessite l’installation d’imagemagik. Mêmes conditions de numérotation des images fixes que précédemment
- Inverser une vidéo
ffmpeg -i output.mp4 -vf reverse reversed.mp4
- Découper une vidéo
ffmpeg -i input.mp4 -ss 00:00:05 -to 00:08:55 -c:v copy -c:a copy output2.mp4
NB: Il existe aussi le paramètre -t à la place de -to. Il prend en compte une durée à partir de -ss
- Coller / concaténer des vidéos
C’est un poil plus compliqué. La méthode la moins piégeuse que j’ai trouvé consiste à commencer par créer un petit fichier texte nommé inputs.txt et contenant les noms des vidéos à assembler, dans l’ordre où on veut les assembler.
- file '1.mp4'
- file '2.mp4'
- file '3.mp4'
Ensuite la commande qui va bien est:
ffmpeg -f concat -i inputs.txt -c copy output.mp4
- Lancer la visualisation d’une vidéo depuis la ligne de commande
ffmpeg -f concat -i inputs.txt -c copy output.mp4
Manipulation d’images
- Convertir un paquet d’images png en jpg
mogrify -format jpg *.png
Rechercher la cause d’un plantage
sudo journalctl -r -p err