Bash - Vev

Bash

Un article de Vev.

Jump to: navigation, search
Linux: Le gros bloc-note

Je note dans cette page, **en vrac**, diverses astuces pour Linux. Certaines évidentes, d'autres un peu moins. Ça me sert de bloc-note. Et je le publie: On ne sait jamais, ça pourrait aider d'autres personnes. Certaines astuces peuvent être spécifiques à une distribution.

<note>Étant donnée la grande variété des distributions et environnements de bureau, il est possible que certaines astuces dans cette page ne fonctionnent pas avec votre distribution.</note>

 * **//apropos// est votre ami**:
   * Voir les outils concernant pdf présents sur votre système ? apropos pdf
 * Et **//tldr// aussi**:> tldr tar

tar Archiving utility. Often combined with a compression method, such as gzip or bzip.

- Create an archive from files:
  tar cf Modèle:Target.tar Modèle:File1 file2 file3
- Create a gzipped archive:
  tar czf Modèle:Target.tar.gz Modèle:File1 file2 file3
- Extract an archive in a target folder:
  tar xf Modèle:Source.tar -C Modèle:Folder
- Extract a gzipped archive in the current directory:
  tar xzf Modèle:Source.tar.gz
- Extract a bzipped archive in the current directory:
  tar xjf Modèle:Source.tar.bz2
- Create a compressed archive, using archive suffix to determine the compression program:
  tar caf Modèle:Target.tar.xz Modèle:File1 file2 file3
- List the contents of a tar file:
  tar tvf Modèle:Source.tar
- Extract files matching a pattern:
  tar xf Modèle:Source.tar --wildcards Modèle:"*.html"
 * **Votre Wifi ne fonctionne pas bien ?** Vous avez peut-être oublié de régler la région "France" pour les fréqences (du coup, les canaux 11/12/13 sont peu ou pas accessibles).
   * Vérifier la valeur: iw reg get. Si vous ne voyez pas Country: FR c'est que ce n'est pas correctement réglé.
   * Modifier le réglage à la volée: sudo iw reg set FR, mais cela ne persiste pas au redémarrage.
   * Pour que la valeur persiste, modifiez le paramètre REGDOMAIN dans le fichier /etc/default/crda. Mettez:REGDOMAIN=FR
 * **Voir la progression d'une longue commande en cours**:
   * Vous avez lancé un //dd// ou un //tar// très long, et vous ne savez pas où il en est ? Lancez:sudo progress -m
   * //progress// fonctionne avec cp,mv,dd,tar,gzip,7z,rsync...
   * Si vous utilisez -M, progress ne quittera pas et attendra un autre processus.
 * **Créer des archives compressées** : Créer une archive compressée c'est simple, mais c'est toujours bon de se rappeler la syntaxe:
   * Créer une archive: tar cvfz archive.tgz dossier/
     * Mais si vous voulez un **tar survitaminé** qui va //beaucoup// plus vite, utilisez pigz:tar cvf - dossier/ | pigz > archive.tgz
     * ou:tar cvf archive.tgz -I pigz dossier/
     * //pigz// est comme //gzip//, mais qui fonctionne en multi-coeurs.
     * Exemple pratique: 1,1 Go de données à compresser. Avec le tar/cvfz: 43,7 secondes. Avec le tar/pigz: 16,3 secondes (!).
   * Décompresser:tar xvf archive.tgz
   * Exclure des types de fichiers: tar cvfz archive.tgz dossier/ --exclude=*.mp3
   * Exclure des répertoires: tar cvfz archive.tgz dossier/ --exclude=chemin/relatif
 * **gzip/bzip2 //beaucoup plus rapides//** (multi-coeurs):
   * sudo apt install pigz pbzip2
   * pigz/pbzip2 ont une syntaxe compatible avec gzip/bzip2.
   * Dans .bashrc mettre:alias gzip='pigz'

alias bzip2='pbzip2'

 * **Besoin de compresser un répertoire le plus rapidement possible ?**
   * Au lieu d'utiliser tar avec gzip, prenez lzo. Il est //extrêmement// rapide. À titre d'exemple, avec 1,1 Go de données sur un core-i7: tar/gzip prend 40 secondes, tar/lzo prend 3,7 secondes. (Pour une taille finale: tar/gz:754 Mo, tar/lzo:849 Mo)
   * sudo apt install lzop
   * Compresser:tar --lzop -cvf archive.tar.lzo dossier/
   * Décompresser:tar xvf archive.tar.lzo
   * lzo compresse un peu moins bien que gzip, mais il est **5 fois plus rapide** (à tel point que le goulot d'étranglement n'est plus votre processeur, mais l'I/O disque).
   * (lz4 est en théorie un peu plus rapide que lzo, mais pas forcément disponibles partout.)
 * **Taper un É majuscule ?** : Appuyez sur <key>CapsLock</key> puis <key>é</key>. Ben oui c'est tout con. Même chose pour Ç, À, Ê, È, Ô... : pensez juste à activer <key>CapsLock</key>.
   * Pour **«** et **»**, c'est <key>AltGr-z</key> et <key>AltGr-x</key>
 * **Entrer des caractères Unicode**: <key>C</key>+<key>⇧ Maj</key>+<key>'U'</key> et tapez la valeur Unicode en héxadécimal.
   * Essayez ! <key>C</key>+<key>⇧ Maj</key>+<key>u</key>+2705+<key>ESPACE</key> : ✅
 * **Déplacer une fenêtre**: Faites <key>Alt</key>+clic gauche pour déplacer une fenêtre en cliquant n'importe où à l'intérieur.
 * **Voir les disques montés**: C'est beaucoup plus lisible comme ça: mount | column -t
   * Encore plus lisible ? Essayez findmnt : il va tout afficher de manière hiérarchique.
 * **Voir les disques/partitions montables**: Plusieurs possibilités: 
   * lsblk
   * sudo fdisk -l
   * sudo inxi -Po
   * sudo gparted (outils graphique)
 * **Réduction de l'utilisation du swap (1)**
   * Faire:sudo bash -c 'echo "vm.swappiness=10" >> /etc/sysctl.conf'
   * Rebooter pour prendre en compte, ou faire sudo sysctl -p
   * Cela va réduire la propension du système à swapper. Par défaut ce paramètre est souvent à 60, mais en le passant à 10 le système attendra beaucoup plus avant de commencer à swapper.
 * **Réduction de l'utilisation du swap (2)**
   * sudo apt install zram-config, rebootez, et c'est tout. Les segments de mémoire compressés seront utilisés en priorité sur le swap disque. (Vous pouvez voir les /dev/zramX quand vous faites cat /proc/swaps).
   * C'est tellement efficace, que sur une machine avec 4 Go de RAM sur laquelle on lance plein de programmes au point d'atteindre 1,1 Go de swap utilisé, //aucun octet n'a commencé à être écrit dans le swap sur disque !//
   * zram est utile quelle que soit la quantité de RAM que vous avez en réduisant à néant les lectures/écritures dans le swap disque. Le swap zram est infiniment plus rapide qu'un swap disque (quel que soit votre type de disque) et cela réduit l'usure des SSD.
 * **/tmp en tmpfs**:
   * Afin d'éviter les écritures inutiles sur disque, je vous recommande chaudement de mapper votre répertoire /tmp en tmpfs au lieu du disque //même si vous n'avez pas beaucoup de mémoire vive// (oui, même juste 1 Go). Si vous avez un disque dur c'est plus rapide et si vous avez un SSD, ça réduit son usure. Ajoutez à votre /etc/fstab:tmpfs /tmp tmpfs defaults,relatime,mode=1777,nosuid,size=4196M 0 0
     * N'hésitez pas à mettre une valeur importante pour //size//: tmpfs ne consomme pas de RAM tant qu'on ne met rien dedans. 
     * Si les applications ont vraiment besoin de plus de RAM, tmpfs leur laissera la place en swappant ses données.
 * **Voir les ports ouverts** et quelles applications les ont ouverts:
   * sudo netstat -pntul
   * ou:sudo ss -pntul
 * **Partage rapide de fichiers par HTTP** : Un serveur web en 10 secondes.
   * Ouvrez un terminal dans le répertoire à partager.
   * Tapez (pour Python3) :python3 -m http.server 5555
     * Si vous n'avez que Python2, c'est python -m SimpleHTTPServer 5555
   * Et c'est tout. Le répertoire sera accessible par http://adresseip:5555/
   * Pressez <key>Ctrl-c</key> pour arrêter le partage.
 * Lancer une **tâche de fond** avec la priorité CPU et disque minimale (afin qu'elle ralentisse le moins possible les autres programmes):
   * Ajoutez à votre .bashrc:alias ni='nice -n 19 ionice -c3'
   * Puis lancez n'importe quel programme en le préfixant par ni:ni tar cvfz monarchive.tgz monrepertoire/
 * Mettre automatiquement un programme en arrière plan quand il est lancé: Par exemple pour 7z ouvrez un terminal, lancez cette commande et laissez le terminal ouvert:watch "renice 19 -p $(pgrep 7z)"


 * Un programme prend trop de CPU ? Vous voulez lui limiter le pourcentage de CPU qu'il consomme ? Utilisez **cpulimit**: cpulimit -e nomDuProgramme -l 25 -b
   * -e nomDuProgramme ou -P cheminCompletDuProgramme
   * -l 25 pour 25% de CPU
   * -b pour mettre cpulimit en tâche de fond. Sans ça, il tourne en avant-plan et vous pouvez l'arrêter avec <key>Ctrl-c</key> (pratique pour limiter temporairement un programme)
 * **Lancer un script au démarrage du système**:
   * Si vous êtes sous systemd, /etc/rc.local n'est plus utilisé, donc pour que votre script shell soit lancé au démarrage du système, mettez-le par exemple dans /opt/scripts/monscript.sh, puis faites sudo crontab -e et ajoutez la ligne:@reboot /opt/scripts/monscript.sh
 * **Tracer tous les accès d'une application à mes fichiers perso** (remplacez //LEPROGRAMME// par votre programme):strace -e trace=file LEPROGRAMME 2>&1 | grep "/home" > trace.log
 * Plus puissant que strace ?  **sysdig** (sudo apt install sysdig sysdig-dkms ; essayez: sudo sysdig proc.name=cat et de faire un cat dans une autre fenêtre).
 * **Savoir quelle application verrouille un fichier ou un répertoire**:sudo lsof | grep NOMFICHIER
 * **Gestion des services par System-V, Upstart et systemd**:
   * Certains services sont gérés par System-V (scripts dans /etc/init.d), d'autres par Upstart (scripts dans /etc/init) et d'autres par systemd. La plupart des distributions récentes utilisent systemd.
   * System-V:
     * Lister les services: %%sudo service --status-all%%  (+ démarré, - non démarré, ? status inconnu)
     * Démarrer/arrêter un service: sudo service <servicename> start  /  sudo service <servicename> stop
     * Activer/désactiver un service: sudo update-rc.d <servicename> enable  /  sudo update-rc.d <servicename> disable
   * Upstart:
     * Lister les services: sudo initctl list
     * Démarrer/arrêter un service: sudo initctl stop <servicename>  /  sudo initctl start <servicename> 
     * Désactiver un service:  Créer un fichier <servicename>.override contenant le mot "manual". Exemple:  %%sudo bash -c 'echo "manual" > /etc/init/avahi-daemon.override'%%
   * systemd:
     * Lister les services: %%sudo systemctl list-unit-files --type=service%%
     * Démarrer/arrêter un service: sudo systemctl start <servicename>  /  sudo systemctl stop <servicename> 
     * Activer/désactiver un service: sudo systemctl enable <servicename>  /  sudo systemctl disable <servicename>
 * **Astuce rapide**:
   * Si vous n'utilisez que des comptes locaux (et pas de comptes réseau), vous pouvez demander à systemd de ne pas attendre que le réseau soit disponible pour afficher la fenêtre de connnexion. Ça permet de gagner quelques secondes sur le démarrage: sudo systemctl disable NetworkManager-wait-online.service
   * Si au démarrage vous avez un long message "Scanning for Btrfs filesystems..." alors que vous n'utilisez pas Btrfs, vous pouvez le désactiver:sudo apt purge btrfs-tools

sudo update-initramfs -ukall

 * **Isoler un logiciel** : Pour lancer une application en laquelle je n'ai pas confiance, en ne lui laissant **pas** accès à mon répertoire perso:
   * J'installe d'abord firejail: sudo apt install firejail (ou voir [officiel]).
   * Si je veux lancer un programme en lui interdisant d'aller sur internet, je fais:firejail --net=none monprogramme
   * Si je veux lancer un programme en lui interdisant l'accès à mon répertoire perso: Je créé un répertoire pour cette application dans lequel je met le script shell lanceur (qui utilise firejail):#!/bin/bash

SCRIPT=$(readlink -f "$0") DIR=$(dirname "$SCRIPT") cd "$DIR" notify-send -i info -t 5000 "Skype" "Lancement par firejail..." firejail --noprofile --private=. bash -c "/usr/bin/skype"

   * Le programme enregistrera ses fichiers de config dans ce répertoire, sans pouvoir accéder à mon vrai répertoire perso.
 * **Calculer la MD5 de fichiers avec sous-répertoires**
   * Calculer: find . -type f -print0 | xargs -0 md5sum | sort -k2 > md5sums
     * Cela va créer un fichier md5sums qui permettra de vérifier l'intégrité des fichiers.
     * Le sort -k2 permet de trier par les noms de fichier.
     * Si vous ne voulez pas aller dans les sous-répertoires, faites juste md5sum * | sort -k2 > md5sums
   * Vérifier: md5sum -c md5sums
     * Si un fichier manque ou a été endommagé, cette commande vous le signalera.
   * Si votre disque est très rapide (SSD), vous pouvez même utiliser xargs pour lancer des calculs de md5 en parallèle sur plusieurs fichiers pour aller plus vite:find . -type f -print0 | xargs -0 -L1 -P4 md5sum | sort -k2 > md5sums
     * Le -P4 permet de lancer 4 calculs de md5 en parallèle.
     * Et pour calcul cette même md5 seulement dans le répertoire courant sans aller dans les sous-répertoire, ajoutez -maxdepth 1 juste avant -type f.
 * **Emporter une application sur clé USB** (pour ma clé "Live" de Linux Mint que j'utilise comme clé de dépannage):
   * Booter sur la clé et se connecter au net (afin d'être dans la même configuration de paquets installés/non-installés).
   * sudo apt download filezilla par exemple: Cela va créer un fichier .tar .gz contenant tous les .deb nécessaires, ainsi que le fichier install.sh.
   * Pratique pour embarquer des logiciels comme partclone sur clé USB afin de faire des images de mes partitions.
   * A noter qu'une fois booté sur la clé, le contenu de la clé USB est accessible en lecture seule dans /cdrom (copier sur le bureau pour pouvoir utiliser).
 * **Supprimer les paquets inutiles**: sudo apt autoremove
   * Cela va dé-installer les paquets qui ne sont plus utilisés par d'autres paquets mais qui auraient pu être laissés.
 * **Cache des paquets** (debian et dérivés (Ubuntu, LinuxMint...)):
   * Tous les paquets installés sont en copie dans /var/cache/apt/archives/.
   * La copie locale de ces paquets peut être parfois utile en cas de paquet foireux (rare) ou pour réinstaller un paquet sans connexion internet. Vous pouvez le vider pour gagner de la place, c'est sans risque pour le système.
   * Retirer les anciens paquets (retire les anciennes versions des paquets, mais laisse celles actuellement installées): sudo apt autoclean.
   * Vider complètement le cache des paquets: sudo apt clean
   * Forcer le re-téléchargement de tous les paquets:dpkg -l | grep "^ii" | awk ' {print $2} ' | xargs sudo apt-get -y --force-yes install --reinstall --download-only
     * Note: Cela ne va bien sur pas re-télécharger les .deb que vous avez manuellement téléchargés, mais seulement ceux présents dans les dépôts.
 * **Installer de nouvelles polices de caractères**:
   * Copier dans ~/.fonts
   * Faire: fc-cache -fv
 * **Plus de son ?** Relancer pulseaudio: pulseaudio -k
 * **Plus de réseau ?** Redémarrer le service réseau: sudo service network-manager restart ou plus simplement (sans sudo): nmcli networking off && sleep 5 && nmcli networking on
 * Ajouter des actions dans le **menu contextuel du gestionnaire de fichiers Caja** (ça marche avec la plupart des gestionnaires de fichiers):
   * Déposer votre script dans ~/.config/caja/scripts/ et le rendre exécutable.
   * Faites un clic-droit sur n'importe quel fichier ou dossier > Scripts > //Nom de votre script//
   * Exemple:<file bash Compresser RAPIDEMENT en tar-gzip>#!/bin/bash
  1. Créer rapidement une archive .tar.gz

IFS=$'\n'

for FILENAME in $CAJA_SCRIPT_SELECTED_FILE_PATHS; do

if [ -d "$FILENAME" ]; then
 tar -c "$FILENAME" | pigz -c > "$FILENAME.tar.gz"
fi
if [ -f "$FILENAME" ]; then
 cat "$FILENAME" | pigz -c > "$FILENAME.gz"
fi

done</file> <hidden Version un peu plus évoluée du script> En affichant la progression dans un terminal (sudo apt install pv xterm) et une notification de fin de compression. <file bash Créer rapidement une archive tar-gzip>#!/bin/bash

  1. Créer rapidement une archive .tar.gz

IFS=$'\n'

for FILENAME in $CAJA_SCRIPT_SELECTED_FILE_PATHS; do

   if [ -d "$FILENAME" ]; then
       cmd="tar -c \"`basename \"$FILENAME\"`\" | pv | nice pigz -c > \"$FILENAME.tar.gz\""
       xterm -T "Compression de `basename $FILENAME`" -e /bin/bash -l -c "$cmd"
       notify-send -i info -t 20000 "Compression terminée." "`basename $FILENAME`.tar.gz"
   fi
   if [ -f "$FILENAME" ]; then
       cmd="pv \"$FILENAME\" | nice pigz -c > \"$FILENAME.gz\""
       xterm -T "Compression de `basename $FILENAME`" -e /bin/bash -l -c "$cmd"
       notify-send -i info -t 20000 "Compression terminée." "`basename $FILENAME`.gz"
   fi

done</file> </hidden>

\\

 * **Faire un backup** de tout (/) en conservant les droits (vers mon disque dur externe en ext4 également):sudo rsync -av --owner --progress --delete --exclude-from='excludes-backup.txt' / /destination
   * Fichiers/répertoires exclus du backup:<file text excludes-backup.txt>/proc

/sys /dev /media /mnt /cdrom /tmp /run /var/tmp /var/run /home/sebsauvage/.steam/steam/steamapps /home/sebsauvage/.local/share/Trash

  • .!qB</file>
 * **Vérifier le système de fichiers**: sudo touch /forcefsck et redémarrez.
 * **Vérifier (fsck) une partition VeraCrypt**:
   * Monter normalement votre partition (avec le mot de passe), puis:
   * sudo umount /media/veracrypt1

sudo fsck /dev/mapper/veracrypt1

 * **Passer en clavier en QWERTY** juste le temps d'un jeu (remplacez //monprogramme// par le nom de votre jeu ; Ce script repasse en clavier français à la fin du jeu):#!/bin/bash

monprogramme & echo $! >/tmp/monprogramme.pid & /usr/bin/setxkbmap -layout us & pid=`cat /tmp/monprogramme.pid` & if wait $pid then

   /usr/bin/setxkbmap -layout fr

else

   /usr/bin/setxkbmap -layout fr

fi

 * Quelques astuces **pour les jeux**, voir dans [[=trine#problemes_et_solutions|cette page]].
 * **Traiter les images en lot ou en automatique**:
   * XNViewMP a une jolie interface graphique et possède des fonctions de manipulation et conversion en masse. (à télécharger du [[1]] et installer manuellement)
   * En ligne de commande //GraphickMagick// est le roi (il est plus moderne et efficace qu'//ImageMagick//). (sudo apt install graphicsmagick ; [officiel])
 * **Réinitialiser le mot de passe**: Si vous avez perdu votre mot de passe utilisateur ou root et que vous voulez le réinitialiser:
   * **En bootant sur la machine elle-même:**
     * Accédez au menu Grub (<key>ESC</key> ou <key>⇧ Maj</key> au démarrage).
     * Prenez le premier élément du menu, pressez <key>e</key> pour le modifier.
     * Entrez votre login/mot de passe Grub (si Grub est protégé par mot de passe)
     * Repérez la ligne contenant ro quiet splash et remplacez par ro quiet splash rw init=/bin/bash
     * Pressez <key>F10</key> pour booter dessus.
     * Vous accédez au login root.
     * Changez votre mot de passe: passwd monlogin
   * **En bootant sur un LiveCD ou clé USB:**
     * Démarrez sur le LiveCD/clé USB.
     * Tapez sudo fdisk -l (ou lancez gparted) pour repérer votre partition système (Pour l'exemple, ce sera /dev/sda1).

sudo mkdir /media/sda1 sudo mount /dev/sda1 /media/sda1 sudo chroot /media/sda1 passwd monlogin exit

   * Corollaire: Pour plus de sécurité, protégez toujours Grub et votre BIOS par mot de passe et configurez-le pour interdire de booter ailleurs que sur le disque dur interne.
 * **Réinitialiser le mot de passe Windows**:
   * Cette astuce fonctionne de Windows XP jusqu'à Windows 10.
   * Image:Exclamation.gif **ATTENTION**: Manipulation à ne **PAS** effectuer si vous utilisez le chiffrement de fichiers Windows, sinon vous risquez de perdre vos fichiers !
   * Eteignez proprement Windows (pas de mode veille ou hibernation).
   * Démarrez sur une clé USB Linux (par exemple Linux Mint).
   * Montez la partition Windows, puis cd "/media/mint/Windows 10/Windows/System32/"

cp Utilman.exe Utilman.exe.original cp cmd.exe Utilman.exe(selon les versions de Windows, c'est sethc.exe qu'il faut manipuler, pas Utilman.exe).

   * Redémarrez sous Windows, attendez la fenêtre de login.
   * Selon les versions de Windows:
     * Cliquez sur le petit logo Linux:windows10-ease-of-access.png?direct&32
     * ou pressez 5 fois la touche <key>⇧ Maj</key> gauche.
     * ou pressez <key>Win-U</key>
   * Oh pouf ! Regardez le joli terminal qui s'affiche. Maintenant vous pouvez taper:
     * net user pour voir la liste des utilisateurs de la machine.
     * net user toto /ADD pour ajouter l'utilisateur toto.
     * net user toto * pour changer le mot de passe de toto (ou de n'importe quel autre utilisateur)
     * net localgroup pour lister les groups locaux.
     * net localgroup Administrators /ADD toto pour donner à l'utilisateur toto les droits admin.
 * **NumLock activé sur l'écran de login**:
   * sudo apt install numlockx
   * Centre de contrôle > Fenêtre de connexion > Options, cocher Activer NumLock.
 * **Taille occupée par les dossiers**:
   * En comptant les sous-dossiers mais sans les afficher:du --max-depth=1 -h
   * Et utilisez l'excellent ncdu !
 * **Remplir l'espace vide par des zéros** pour empêcher la récupération des fichiers (ou alléger une machine virtuelle):
   * Installer:sudo apt install secure-delete
   * Nettoyer:sfill -fllvz /lerépertoire
   * Pour le swap:sudo swapoff -a

sudo sswap -fllvz /dev/sda5

   * Note: Le système se réservant par sécurité une partie du disque, il n'y a pas de garantie que la totalité soit effacée.
   * Autre option de nettoyage: le paquet //zerofree//. Notez que zerofree ne fonctionne que sur ext2/ext3/ext4 et qu'il ne travaille que sur des partitions démontées (//sfill// fonctionne sur une partition en cours d'utilisation).
 * **Savoir quelle est votre distribution Linux**:cat /etc/*-release
   * Exemple pour Linux Mint 19:DISTRIB_ID=LinuxMint

DISTRIB_RELEASE=19 DISTRIB_CODENAME=tara DISTRIB_DESCRIPTION="Linux Mint 19 Tara" NAME="Linux Mint" VERSION="19 (Tara)" ID=linuxmint ID_LIKE=ubuntu PRETTY_NAME="Linux Mint 19" VERSION_ID="19" HOME_URL="https://www.linuxmint.com/" SUPPORT_URL="https://forums.ubuntu.com/" BUG_REPORT_URL="http://linuxmint-troubleshooting-guide.readthedocs.io/en/latest/" PRIVACY_POLICY_URL="https://www.linuxmint.com/" VERSION_CODENAME=tara UBUNTU_CODENAME=bionic (On voit que c'est Linux Mint 19 basé sur Ubuntu Bionic Beaver, donc 18.04)

 * **Informations système**:
   * inxi est fantastique.
   * inxi -F vous donnera une vue d'ensemble de votre système.
   * -G pour la carte graphique, -A pour l'audio, etc.  Faites un man inxi pour voir toutes les options.
   * Certaines informations (comme les numéros de série) ne remonteront qu'en lançant inxi en //sudo//. Exemple: numéro de série de votre ordinateur: sudo inxi -M ou encore les barettes de RAM avec leur numéro de série: sudo inxi -m -xx.
 * Pour **lister tout le matériel présent** dans la machine (avec numéros de série): sudo lshw
   * Et spécifiquement pour la partie réseau: sudo lshw -C network
 * **Monter un répertoire distant par ssh**
   * Installation:sudo apt install sshfs
   * Montage:mkdir pointdemontage

sshfs utilisateur@machine.com: pointdemontage

     * Si vous voulez monter un répertoire distant précis:sshfs utilisateur@machine.com:/repertoire/distant pointdemontage
     * Si votre serveur ssh n'est pas sur un port standard:sshfs utilisateur@machine.com: pointdemontage -p 33000
   * Démontage:fusermount -u pointdemontage
 * **Mise à jour de //fortune// (citations)**: fortune est un programme qui affiche des citations. Mais il n'a que de vieilles citations (2004), et la majorité en anglais. Voici comment les mettre à jour: 
   * Supprimez les citations existantes: sudo rm -rf /usr/share/games/fortunes/*
   * Récupérez le fichier [[2]] (2 Mo, md5 b0e056e0f78434c35659b9889061286f), décompressez-le. (Il contient plus de 80000 citations, de Confucius à Les Nulls.)
   * Copiez ces 2 fichiers: sudo cp citation-celebre.com* /usr/share/games/fortunes
   * Testez: fortune
   * Pour afficher une citation quand vous ouvrez un nouveau shell, vous pouvez mettre fortune directement dans votre ~/.bashrc (ou si vous préférez:fortune | cowsay)
   * Plus d'informations dans cette page.
 * **Du mal à lire une clé USB, un disque externe ou une carte mémoire ?** Elle est peut-être en [[3]] (système de fichiers de Microsoft différent de FAT32, sans la limite des 4 Go par fichier).
   * Faites: sudo apt-get install exfat-fuse exfat-utils
 * **Faire du ménage dans vos fichiers**:
   * En recherchant les **fichiers en double**.
     * Installez //fslint//: sudo apt install fslint Cette application n'existe plus, mais quelqu'un la ré-implémentée sous le nom de [[4]].
     * Lancez l'application: Par défaut, c'est l'onget "**Duplicate files**" qui est sélectionné, avec votre répertoire perso. 
     * Cliquez sur le bouton //Rechercher// en bas à gauche: Cela va rechercher les fichiers en double dans votre répertoire perso.
     * Il va vous afficher ceux qui prennent le plus de place en premier.
     * Vous pouvez sélectionner manuellement les fichiers, ou utiliser le bouton //Sélectionné > Dans les groupes > Tout saut le plus récent// pour sélectionner directement les fichiers redondants. Vous pouvez ensuite les supprimer.
     * Utilisez aussi l'onglet "**Fichiers temporaires**".
   * En recherchant les **fichiers volumineux**:
     * Installez //gdmap//: sudo apt install gdmap et lancez-le.
     * Il permet de repérer visuellement les fichiers les plus volumineux: À l'écran, chaque rectangle représente un fichier. Plus le rectangle est grand, plus le fichier est gros. ([[5]])
     * Dans le même genre: //qdirstat//.
     * Vous pouvez aussi utiliser (en terminal) l'excellent ncdu.
   * En recherchant les **répertoires volumineux**:
     * Avec //mate-disk-usage-analyzer// (fourni avec Linux Mint sous le nom de "//Analyseur d'utilisation des disques//").
     * Cliquez sur le bouton //Analyser le dossier personnel//
     * Les répertoires les plus volumineux sont affichés en premier. Vous pouvez les développer.
   * Jetez un coup d'oeil dans les répertoires suivants: Il y a peut-être des restes de fichiers de configuration de logiciels que vous avez dé-installés:
     * ~/.local/share/
     * ~/.config/
   * Je ne suis pas fan du logiciel //BleachBit//. Faites très attention à ce que vous faites dans ce logiciel.
 * Des éditeurs de crontab:
   * http://corntab.com/
   * http://www.crontabgenerator.com/
   * https://crontab.guru/
   * https://blog.shevarezo.fr/post/2018/08/28/gerer-taches-cron-interface-graphique-crontab-ui
 * **Voir les entrées/sorties (accès disque)**:
   * Liste des processus qui font des des I/O: sudo iotop -b -o | grep \%
   * Sans le //grep//, notez la différence entre 'Total disk write' et 'Actual disk write': Total correspond aux demandes d'écriture effectuées par les applications (qui atterrissent alors dans le cache), et le 'Actual' qui correspond aux écritures réelles sur disque (cache vers disque).
   * En cas de gros blocage, pour voir les processus en sont en attente des I/O: sudo watch -n 1 "(ps aux | awk '\$8 ~ /D/  { print \$0 }')"
   * Si vous faites:watch "egrep '(Dirty|^Cached:)' /proc/meminfo"vous pouvez voir en temps reél:
     * //Cached// : La quantité de mémoire vive utilisée pour le cache disque (pris dans l'espace mémoire libre, celui non utilisé par les applications).
     * //Dirty// : La quantité de données en cache en attente d'être écrite sur disque (Cela peut être utile quand vous copiez des fichiers sur clé USB pour voir où il en est).
 * Installer le logiciel Captvty sous Linux ?  C'est possible !
 * Convertir un dossier de *.flac (et ses sous-répertoires) en mp3:find -name "*.flac" -exec ffmpeg -i {} -acodec libmp3lame -ab 128k {}.mp3 \;
   * Il y a plein d'autres astuces pour ffmpeg dans cette page.
 * Changer la luminosité au clavier:
   * Installez XBackLight: sudo apt install xbacklight
   * Ajoutez les raccourcis clavier:
     * <key>C</key> <key>⇧ Maj</key> <key>+</key> : lancer la commande: xbacklight -inc 10
     * <key>C</key> <key>⇧ Maj</key> <key>-</key> : lancer la commande: xbacklight -dec 10
 * Avoir de superbes fonds d'écran ? Prendre le logiciel //Variety// qui peut aller chercher des images chez [[6]]: sudo apt install variety ou installer à la main les paquets "variety-slideshow" et "variety" ([officiel], [sur Launchpad]).
 * //BackInTime// est une bonne solution pour faire des backups automatisés des fichiers utilisateurs. Il possède une interface graphique qui permet aux utilisateur de récupérer facilement les anciennes versions des fichiers. (sudo apt install backintime-gnome).
 * **Swap sous forme de fichier**:
   * À la place d'utiliser une partition de swap, on peut utiliser un fichier de swap. L'avantage est qu'on peut changer sa taille facilement sans avoir à retailler les partitions.
   * Désactiver le swap actuel: sudo swapoff -a
   * Créer un fichier de swap de 2 Go: sudo dd if=/dev/zero of=/swapfile bs=1024 count=2000000
   * Mettre les droits: sudo chmod 0600 /swapfile
   * S'assurer qu'il n'est pas fragmenté: sudo e4defrag -v /swapfile
   * Préparer le swap: sudo mkswap /swapfile
   * Activer le swap: sudo swapon /swapfile
   * Mettre dans /etc/fstab:/swapfile none swap sw 0 0
   * Note:
     * Si vous voulez supprimer votre partition de swap:
       * Pensez à commenter la ligne dans votre /etc/fstab.
       * Vous pouvez booter sur clé USB pour supprimer la partition avec gparted.
       * Pensez à retirer la partition du système d'hibernation pour éviter des attentes inutiles au boot:
         * Si vous voyez Gave up waiting for suspend/resume device dans /var/log/boot.log alors modifiez le fichier /etc/initramfs-tools/conf.d/resume (créez ce fichier s'il n'existe pas):
           * Là où il y a RESUME=UUID=388a79ac-27b7-42f5-ac13-... remplacez par RESUME=none
           * puis faites: sudo update-initramfs -u
 * **Désactiver l'hibernation** (c'est à dire suspend-to-disk et suspend-to-ram):
   * Désactiver:sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target

sudo systemctl restart systemd-logind.service

   * Réactiver:sudo systemctl unmask sleep.target suspend.target hibernate.target hybrid-sleep.target
   * Et pour empêcher l'hibernation quand l'écran est rabattu, dans le fichier /etc/systemd/logind.conf, décommenter les deux lignes suivantes:HandleLidSwitch=ignore

HandleLidSwitchDocked=ignore

 * **Allonger l'autonomie**
   * sudo apt install tlp
   * tlp va changer des réglages système quand vous passez de secteur à batterie (et inversement). Les réglages par défaut sont excellents.
   * man tlp ou voir le fichier /etc/default/tlp pour changer les réglages.
   * Si vous utilisez //tlp//, //powertop// n'est plus utile.
 * Besoin de **capturer une vidéo de l'écran ?**
   * Kazam marche très bien, même pour capturer un jeu vidéo en plein écran. sudo apt install kazam
   * Capture de tout ou partie de l'écran au format MP4(h264)/WebM(VPImage:Cool.gif/AVI, avec ou sans le son (source: sortie audio et/ou micro).
 * **Gestion des sessions utilisateur**:
   * Voir qui est logué: w
   * Désactiver temporairement un utilisateur: sudo vipw et mettre un # devant son login.
   * Déloguer de force un utilisateur: sudo pkill -u utilisateur mate-session (mate-session ou le processus visible quand vous faites w).
 * **Monter un fichier *.img** (comme, par exemple, un fichier img de RecalBox)
   * Dans l'explorateur de fichier de certaines distributions, pour pouvez faire un clic-droit sur un fichier .img pour le monter, mais il sera monté en lecture seule. Pour le monter en lecture/écriture:
   * Un fichier img peut contenir plusieurs partitions. Pour connaître les partitions faites: fdisk -l fichier.img. Par exemple pour RecalBox:>fdisk -l recalbox.img

Disque recalbox.img : 2,4 GiB, 2579489280 octets, 5038065 secteurs Unités : secteur de 1 × 512 = 512 octets Taille de secteur (logique / physique) : 512 octets / 512 octets taille d'E/S (minimale / optimale) : 512 octets / 512 octets Type d'étiquette de disque : dos Identifiant de disque : 0x00000000

Périphérique Amorçage Début Fin Secteurs Taille Id Type recalbox.img1 1263 132334 131072 64M c W95 FAT32 (LBA) recalbox.img2 132335 5038064 4905730 2,3G 83 Linux

   * On voit qu'il y a 2 partition. La partition Linux commence à 132335. Le blocksize est de 512. La partition commence donc à 132335*512=67755520. On peut la monter en indiquant l'offset:mkdir temp

sudo mount -o loop,offset=67755520 recalbox.img temp/

 * Si vous avez un disque *.img (par exemple une image destinée à cette saloperie d'[[7]]) et que vous voulez l'utiliser directement dans VirtualBox, vous pouvez (après l'avoir décompressée avec unxz %%--%%keep image.img.xz) le convertir en *.vdi:VBoxManage convertdd image.img image.vdi
 * **Monter un disque .vdi dans votre système** : Il est possible de monter dans votre système un disque VirtualBox (*.vdi):
   * Installer les outils: sudo apt install qemu-kvm qemu-utils
   * Activer le module: sudo modprobe nbd
   * Monter le device: sudo qemu-nbd -c /dev/nbd0 disk.vdi
   * Vous pouvez voir les partitions du disque (/dev/nbd0p1, /dev/nbd0p2...): >sudo fdisk -l /dev/nbd0

[...] Périphérique Amorçage Début Fin Secteurs Taille Id Type /dev/nbd0p1 1263 132334 131072 64M c W95 FAT32 (LBA) /dev/nbd0p2 132335 4326782 4194448 2G 83 Linux

   * Vous pouvez monter une partition: mkdir part

sudo mount /dev/nbd0p2 part/

   * Quand vous avez terminé:sudo umount /dev/nbd0p2

qemu-nbd -d /dev/nbd0


 * **Faire des images de partitions ou de disque** (pour garder une copie d'une partition ou d'un disque complet: disque dur, clé USB, carte MicroSD...)
   * Si votre disque est /dev/sda, les partitions seront /dev/sda1, /dev/sda2, etc. Pour voir les partitions: sudo fdisk -l ou inxi -Po
   * **Avec dd**: Vous pouvez sauvegarder partitions ou disques complets.
     * dd copie "bêtement" tous les octets (y compris les secteurs où il n'y a pas de fichiers). pigz compresse comme gzip mais plus rapidement. pv permet de voir la progression.
     * Sauvegarder une partition ou un disque (en compressant): sudo dd if=/dev/sda2 | pv | pigz > image.dd.gz
     * (mettre /dev/sda pour sauvegarder TOUTES les partitions, y compris le MBR).
     * Restaurer: zcat image.dd.gz | pv | sudo dd of=/dev/sda2
   * **Avec partclone**: Vous pouvez sauvegarder des partitions.
     * partclone est un peu plus intelligent que dd: Il "comprend" le système de fichier et n'ira pas sauvegarder les secteurs vides. Il sera donc a priori plus rapide que dd, et générera des images plus compactes.
     * sudo apt install partclone pour installer.
     * Vous devez utiliser le partclone correspondant au système de fichier de la partition que vous voulez sauvegarder (ext4 --> partclone.ext4).
       * Voir man partclone ou apropos partclone.
       * Pour FAT (fat12/fat16/fat32), ne vous embêtez pas: Prenez partclone.vfat. Par contre pour exfat, il faut prendre partclone.exfat.
     * Sauvegarder une partition ext4 (en compressant): sudo partclone.ext4 -c -d -s /dev/sda2 | pigz > image.partclone.gz
     * Restaurer: zcat image.partclone.gz | sudo partclone.restore -d -o /dev/sda2
     * Voir les informations d'une image partclone:zcat image.partclone.gz | sudo partclone.info -s -
     * Vérifier une image partclone:zcat image.partclone.gz | sudo partclone.chkimg -s -
     * Conseil: Nommez le fichier pour vous y retrouver. Moi j'utilise //NomDevice.Utilisation.partclone.TypeDeSystèmeDeFichier.gz//. Exemple: //sda2.HOME.partclone.ext4.gz//. Je sais ainsi que c'est l'image partclone de ma partition sda2 en ext4, utilisée pour ///home//.
   * N'utilisez plus partimage. Il n'est pas compatible ext4.
   * Si vous avez sauvegardé les partitions individuellement, vous voudrez peut-être aussi sauvegarder le MBR (qui contient le logiciel amorce et la table de partitions):
     * Sauvegarder:sudo dd if=/dev/sda of=mbr.bin bs=512 count=1
     * Restaurer:sudo dd if=mbr.bin of=/dev/sda
   * **Astuce**: Pour sauvegarder sur un disque FAT32 (dont la taille limite de fichier est 4 Go), on peut découper par fichiers de 4 Go:
     * Sauvegarde:partclone.ext4 -c -d -s /dev/sda2 | pigz | split -d -b 4000M - image.partclone.gz.Cela va créer des fichiers image.partclone.gz.00, image.partclone.gz.01, etc.
     * Pour restaurer:cat image.partclone.gz.* | pigz -d | sudo partclone.restore -d -o /dev/sda2
   * **Avec fsarchiver**
     * dd et partclone ne peuvent travailler que sur des partitions démontées. fsarchiver peut travailler sur des fs montés, et (tout comme partimage) il garde tous les fichiers avec leurs attributs. Voici les différences:
       * Tout comme partimage, il garde tous les attributs des fichiers, mais il travaille au niveau //fichiers//, ce qui lui permet de restaurer les fichiers vers une partition d'un type différent (alors que, par exemple, partimage ne peut restaurer une sauvegarde ext4 que dans un partition ext4).
       * Il est beaucoup plus rapide.
       * La compression est intégrée (compression zstd très rapide)
       * Les archives ainsi créées peuvent être transférées vers des disque plus gros ou plus petits.
       * Si une archive fsarchiver est corrompue, vous ne perdez que les fichiers endommagés de l'archive, pas toute l'archive.
       * De par sa vitesse, **fsarchiver est un excellent choix pour faire un backup préventif sur un disque externe** avant une réinstallation du système, par exemple.
 * Besoin de voir si votre joystick ou manette fonctionne bien ? Utilisez **jstest-gtk** (sudo apt install jstest-gtk)
   * PS: Même si //jstest// fonctionne, il se base sur /dev/input/jsX qui sont en principe obsolètes. Vous pouvez passer à //evtest// qui se base sur /dev/input/eventXX. La version graphique, //[[8]]// n'est sans doute pas dispo pour votre distribution. Vous devrez la compiler ou prendre les packages [Launchpad].
 * Besoin d'exécuter un script shell qui se trouve sur un disque FAT/NTFS, mais impossible de faire un chmod +x justement parce que vous êtes sur FAT/NTFS ?  Lancez-le simplement en faisant: bash ./script.sh
 * **Faire un backup de votre smartphone Android par ssh+rsync**:
   * À partir du moment où votre smartphone et votre ordinateur sont sur le même réseau local, //rsync// est très efficace pour synchroniser des répertoires. Heureusement pour nous, il existe sous Android des serveurs ssh incluant un serveur rsync, comme [[9]].
   * Voici un exemple de script de sauvegarde (avec dans l'exemple: Login automatique par mot de passe, utilisation d'un port ssh non standard et liste de types de fichiers et répertoires à exclure):<file bash backup-smartphone.sh>#!/bin/bash
  1. Backup de la mémoire interne du téléphone:

sshpass -p 'motdepasse' rsync -av --no-p -zz --progress --delete login@192.168.0.3:/sdcard/ -e "ssh -p 2222" ~/backup-smartphone/internal/

  1. Backup de la carte MicroSD

sshpass -p 'motdepasse' rsync -av --no-p -zz --progress --delete login@192.168.0.3:/storage/0000-0000/ -e "ssh -p 2222" --exclude={'.android_secure','*.obf','*.mwm',Music,Android/data/com.earthflare.android.radioparadisewidget.gpv2/cache/} ~/backup-smartphone/sdcard/ </file>

 * Il est assez facile de partager une connexion Ethernet en WiFi ou se créé un hotspot WiFi (par exemple juste entre votre smartphone et votre ordinateur).
 * Vous êtes chez FreeMobile ? Voici comment envoyer automatiquement (et gratuitement) des SMS lors de certains événements dans les logs.
 * **Backup ?** BorgBackup est un logiciel de backup remarquablement efficace. Je l'utilise dans ma procédure de backup personnelle.
 * Je n'ai pas encore pris le temps de mettre le nez dedans, mais //[[10]]// a vraiment l'air d'être une tuerie ! (pour remplacer //bash//).
   * Autre alternative à explorer: //[[11]]//
 * **flock** permet de vous assurer qu'un programme n'est pas lancé plusieurs fois en même temps, ou que deux tâches ne sont pas lancées simultanément.
   * Exemple: Si vous lancez séparément ces deux commandes (par exemple dans des terminaux différents), flock s'assurera qu'elles ne sont pas exécutées simultanément:flock /tmp/abcd555 -c "sleep 30"

flock /tmp/abcd555 -c "echo coucou"

 * Lancer une application graphique en tant qu'un autre utilisateur ?> xhost +

> su autrecompte > gimp

   * Penser à faire xhost - pour refermer les droits de connexion au serveur X.
 * **Connaître la qualité d'un JPEG.**
   * Malheureusement, la qualité d'un JPEG n'est pas une donnée obligatoire dans un JPEG. L'information n'est donc généralement pas fournie dans les informations image (EXIF). Cependant, si vous avez ImageMagick installé, vous pouvez lui demander d'estimer la qualité à partir des données de l'image elle-même:identify -verbose votreimage.jpg | grep Quality
 * **Convertir un PDF en images**:
   * pdftocairo -png fichier.pdf
   * Pour sortir dans un autre format: -jpeg, -tiff...
   * Par défaut la résolution en sortie est 150dpi. Vous pouvez la changer avec -r, par exemplepdftocairo -r 600 -tiff fichier.pdf
 * **Coloriser les logs.**
   * ccze sait coloriser divers logs pour les rendre plus lisibles. Essayez : cat /var/log/syslog | ccze -A | less -R
   * ccze supporte syslog, vsftpd, php... tapez ccze -l pour voir les types de logs supportés.
 * Compter combien vous avez d'ebook dans votre liseuse:find .  | egrep "\.(cbz|cbr|pdf|epub)$" | wc -l
 * **Youtube-dl** est un fantastique logiciel pour télécharger une vidéo qui vous intéresse. Il supporte YouTube, Vimeo et des centaines de sites (arte.tv, etc.).
   * Exemple: Mettez juste l'URL de la page, et il vous télécharge la vidéo dans la meilleure qualité: youtube-dl https://www.youtube.com/watch?v=dQw4w9WgXcQ
   * Mais souvent, les distributions Linux n'ont que de vieilles versions, donc je vous recommande d'installer à la main la dernière version:
     * Dé-installez celle fournie avec votre distribution (sudo apt purge youtube-dl)
     * Installez la dernière version:sudo curl -L https://yt-dl.org/downloads/latest/youtube-dl -o /usr/local/bin/youtube-dl

sudo chmod a+rx /usr/local/bin/youtube-dl

   * De temps en temps, pensez à la mettre à jour:sudo youtube-dl -U
 * Récupérer l'audio d'une vidéo YouTube en mp3:youtube-dl --extract-audio --audio-format mp3 https://www.youtube.com/watch?v=dQw4w9WgXcQ
 * Si au démarrage vous préférez voir les logs de démarrage plutôt que le logo animé, modifiez le fichier /etc/default/grub:
   * Changez la ligne GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
   * en: GRUB_CMDLINE_LINUX_DEFAULT=""
   * puis faites: sudo update-grub
 * Quel programme sur votre ordinateur est en train de vous bouffer la bande passante ?
   * sudo nethogs
 * Quel machine sur votre réseau est en train de bouffer la bande passante ? Utilisez //iptraf//:
   * Installation: sudo apt install iptraf-ng
   * Utilisation:
     * sudo iptraf-ng
     * Sélectionnez //LAN Station Monitor// : Vous verrez alors le traffic réseau (ce sont les adresses MAC qui sont affichées).
 * Couper automatiquement les applications de P2P si vous coupez votre VPN ou qu'il tombe:<file bash surveillance-vpn.sh>#!/bin/bash

echo "Surveillance du VPN." while true do

 CHECKDATA=`ifconfig`
 if  $CHECKDATA == *'tun0:'*  ; then
     echo "`date` : VPN ok. Attente 1 seconde."
 else
     echo "`date` : Le VPN est désactivé. Terminaison des logiciels de P2P."
     killall --signal SIGKILL --wait qbittorrent transmission-gtk amule
     echo "Pressez ENTREE"
     read
     exit 1
 fi
 sleep 1s

done</file>

 * **Trouver les machines sur une plage d'IP**:nmap -sP 192.168.0.1-255
   * ou plus rapide avec arp-scan (sudo apt install arp-scan): sudo arp-scan 192.168.0.0/24
   * ou lister rapidement les machines du LAN: arp -an
 * **Capturer une image avec la webcam**:ffmpeg -f video4linux2 -s 640x480 -i /dev/video0 -ss 0:0:2 -frames 1 -y "/tmp/`date -Iseconds`.jpg"
 * **Optimiser un GIF animé**:
   * Le format mp4 est généralement une meilleure solution que le format GIF animé (voir cette page), mais si vous tenez absolument au format GIF, on peut les optimiser:
   * Vous pouvez réduire sa taille avec //ImageMagick//:convert -limit memory 1 -limit map 1 -fuzz 5% -layers Optimize input.gif output.gif
   * ou avec //[[12]]// (attention, nécessite gifscicle 1.92 ou supérieur ; les dépôts n'ont souvent que la 1.91):gifsicle -O3 --lossy=80 -o output.gif input.gif
   * Selon la nature des images, l'un ou l'autre sera plus efficace.
   * Notez que ces deux méthodes réduisent un peu la qualité d'image.
   * Avec gifsicle, vous pouvez monter la valeur du paramètre %%--%%lossy (par exemple %%--%%lossy=200 ou %%--%%lossy=800) : Cela compressera encore mieux, au détriment de la qualité d'image.
 * **Tracer toutes les commandes lancées sur un système** avec les options de la ligne de commande:
   * Installez: sudo apt install snoopy
   * Et pouf, vous n'avez plus qu'à regarder dans /var/log/auth.log. Exemple de sortie:Jul 16 10:33:22 mycomputer snoopy[11483]: [login:sebsauvage ssh:((undefined)) sid:12137 tty:/dev/pts/3 (1005/sebsauvage) uid:sebsauvage(1005)/sebsauvage(1005) cwd:/home/sebsauvage]: nmap -sP 192.168.0.1-255
   * Exemple de script de filtrage:#!/bin/bash

reg_snoopy="(.+?) (.+?) (.+?) (.+?) snoopy.+?login:([a-z]+)\s.+?cwd.+?\]: (.*)" tail -fn0 /var/log/auth.log | \ while read line ; do

  if  $line =~ $reg_snoopy  ; then

echo "Date: ${BASH_REMATCH[1]} ${BASH_REMATCH[2]} ${BASH_REMATCH[3]}, utilisateur: ${BASH_REMATCH[5]}, commande: ${BASH_REMATCH[6]}"

  fi

done

 * ** Qui est connecté ?** : w
 * **Date de dernière connexion** de chaque utilisateur:lslogins -u
 * **Liste des connexions et déconnexions utilisateur, et temps de connexion**:last
 * **Synchroniser un répertoire local vers un répertoire distant par FTP**:
   * lftp ftp://login:password@votreserveurftp.com -e "mirror -e -c -R --ignore-time --verbose=1 /répertoirelocal /répertoiredistant/ ; quit"

   * **-e** supprimera les fichiers distants s'ils ont été supprimés en local.
   * **-c** essaiera de faire de son mieux pour reprendre en cas d'interruption.
   * **-R** sert à synchroniser //local vers distant// (sans -R, c'est //distant vers local//)
   * **%%--%%ignore-time** ne tranfèrera les fichiers que si la taille est différente. Vous pouvez retirer cette option pour transférer les fichiers dont la date a changé localement.
   * **%%--%%verbose=1** affichera les opérations effectuées (fichiers supprimés, transférés...)
   * Si vous voulez limiter lftp pour les serveurs FTP qui n'aiment pas trop les multiples connexions simultanées, dans ~/.lftp/rc, mettez:set cmd:parallel 1

set net:connection-limit 1 set xfer:parallel 1 set ftp:sync-mode true

 * **Accéder au contenu de votre téléphone par USB (MTP)** : La plupart des téléphones actuels permettent l'accès aux fichiers par MTP. C'est horriblement lent, mais on a pas trop le choix. Si certains explorateurs de fichiers (Gnome) sont capable d'accéder aux fichiers (par exemple avec gvfs), ce n'est pas accessible du système de fichier. Pour monter réellement les répertoires dans votre système de fichiers:
   * D'abord installer le paquet qui va bien:sudo apt install jmtpfs
   * Ajoutez-vous dans le goupe "plugdev" et "fuse":sudo usermod -a -G plugdev monlogin

sudo usermod -a -G fuse monlogin

   * Ensuite "éjecter" le périphérique de l'explorateur de fichiers, puis créer un répertoire, et enfin monter votre téléphone dans ce répertoire:sudo jmtpfs -o allow_other répertoire
   * Pour démonter:sudo umount répertoire
   * Alternativement, vous pouvez essayer //mtpfs// et //mtp-tools//.
 * Tapez export TMOUT=30 et votre terminal se fermera au bout de 30 secondes (sauf si un processus est en cours. Dans ce cas, il attendra la fin du processus).
 * Voir tous les mots de passe stockés dans le trousseau de clés Gnome (mots de passe de partages, Wifi, Vpn...): sudo apt install seahorse et lancez-le.
 * **flatpak**:
   * FIXME Section à compléter
   * Voir la liste des pack installés:flatpak list
   * Retirer les packs inutilisés:flatpak uninstall --unused
 * **snap**
   * FIXME Section à compléter
   * Retirer les snaps inutilisés:
     * créer le script suivant ([[13]]):<file bash remove-old-snaps>#!/bin/bash
  1. Removes old revisions of snaps
  2. CLOSE ALL SNAPS BEFORE RUNNING THIS

set -eu

LANG=en_US.UTF-8 snap list --all | awk '/disabled/{print $1, $3}' |

   while read snapname revision; do
       snap remove "$snapname" --revision="$revision"
   done</file>
     * rendre le script exécutable chmod +x remove-old-snaps
     * lancer: sudo ./remove-old-snaps
 * S'installer rapidement un serveur web avec apache:sudo apt install apache2 php7.2 libapache2-mod-php7.2
   * Le répertoire du serveur web est /var/www/html/.
 * Pour NextCloud, //pour tester en local, pas pour une prod//, ajoutez:sudo apt install php7.2-zip php7.2-xml php7.2-gd php7.2-curl php7.2-mbstring php7.2-sqlite3 php7.2-imagick php7.2-intl 

sudo phpenmod intl sudo a2enmod rewrite sudo service apache2 restart

   * Dans /etc/apache2/apache2.conf, dans la section <Directory /var/www/>, remplacez AllowOverride None par AllowOverride All.
   * Dans le répertoire racine de votre serveur web, créez un fichier .htaccess contenant: php_value memory_limit 2048M
 * Votre répertoire de fichiers temporaires (/tmp) se vide tout seul à chaque redémarrage, mais pas le cache d'impression de cups: Tout ce que vous avez imprimé s'accumule dans /var/cache/cups. Pour le vider faites:sudo service cups stop

sudo rm -r /var/cache/cups/ sudo service cups start

 * Si vous avez des problèmes dépendance pour installer un paquet, il arrive souvent que **aptitude** trouve des solutions un peu plus poussées qui résoudront les problèmes.sudo apt install aptitude

sudo apt install MonPaquet

 * Des soucis pour installer, configuer ou utiliser Wine ?  Voir cette page.
 * **Réparer des fichiers**
   * par2 permet de réparer des fichiers. (Version courte de l'explication: Imaginez que vous ayez 10 Go de fichiers. Si vous préparez à l'avance 1 Go de fichiers //par2//, vous pourrez réparer/reconstituer (au plus) 1 Go de données endommagées ou perdues dans ces 10 Go, quel que soit l'endroit où les données sont endommagées dans ces 10 Go).
   * **Créer** des fichiers //par2// sur un groupe de fichiers, avec 10% de redondance (Donc 10 Go de données créera 1 Go de fichiers par2):par2 c -r10 protection *
     * Cela va créer le fichier //protection.par2//, ainsi que des fichiers //protection.volxxx+xx.par2//. 
       * Le fichier //protection.par2// seul est utile pour **vérifier** l'intégrité de vos fichiers.
       * Les fichiers //protection.volxxx+xx.par2// servent à **réparer** les données. Un fichier //.par2// de 2,3 Mo permettra de réparer jusqu'à 2,3 Mo de données perdues/endommagées.
     * Ajoutez l'option -R si vous voulez aussi prendre en compte les sous-répertoires.
   * **Vérifier** des fichiers: par2 v protection.par2
     * Message affiché à la fin:
       * //All files are correct, repair is not required.// : Tout va bien, vos données sont saines.
       * //Repair is required. / Repair is possible. // : Vos fichiers sont endommagés, mais vous pouvez les réparer. Passez à l'étape suivante.
       * //Repair is required. / Repair is not possible. // : Vos fichiers sont endommagés, mais mauvaise nouvelle, ce n'est pas réparable (vous n'avez pas assez de blocs de réparation pour tout réparer.)
   * **Réparer** les fichiers:par2 r protection.par2
     * Et attendez (cela peut être assez long).
     * Si vous voyez //Repair complete.//, c'est tout bon. Vos données sont réparées.
 * Dans **LibreOffice**, vous voulez une barre d'outils comme dans Microsoft Office ?
   * Allez dans le menu //Outils// > //Options...// > //LibreOffice// > //Avancé// > Cochez //Activer les fonctions expérimentales//
   * Redémarrez LibreOffice.
   * Allez dans le menu //Affichage// > //Dispositio des barres d'outils// > //Métabarre//
 * **Savoir à quel paquet appartient un fichier**
   * Par exemple vous lancez un programme qui se plaint qui lui manque un fichier:error while loading shared libraries: libcrypto.so.1.0.0: cannot open shared object file: No such file or directory
   * Comment savoir dans quel paquet aller chercher ce fichier ? Commencez par installer apt-file:sudo apt install apt-file
   * sudo apt-file update
   * Ensuite cherchez votre fichier>apt-file search libcrypto.so.1.0.0

google-earth-pro-stable: /opt/google/earth/pro/libcrypto.so.1.0.0 libssl1.0.0: /usr/lib/x86_64-linux-gnu/libcrypto.so.1.0.0

   * Voilà, vous savez qu'il ne vous reste plus qu'à installer le paquet manquant: sudo apt install libssl1.0.0
 * La clé USB live d'Ubuntu Mate 20.04 a la sale manie de vérifier tout le média avant de booter. Pour éviter ça, dans le fichier /boot/grub/grub.cfg, ajouter l'option fsck.mode=skip.
   * Et pour avoir le clavier français, ajouter locales=fr_FR.UTF-8 keyboard-layouts=fr
 * Votre Ubuntu n'en a rien à foutre du délai GRUB_TIMEOUT que vous avez mis dans /etc/default/grub ? Essayez GRUB_RECORDFAIL_TIMEOUT à la place (suivi d'un sudo update-grub).
 * Besoin de désactiver le clavier interne ou le touchpad de votre ordinateur portable ?
   * Pour lister les périphériques:xinput list
   * Pour désactiver le clavier:xinput disable "AT Translated Set 2 keyboard"
   * Pour réactiver le clavier:xinput enable "AT Translated Set 2 keyboard"
 * Si quand vous lancez un jeu ou programme vous avez l'erreur System.Exception: Magic number is wrong: 542, lancez le programme comme suit:export 'TERM=roxterm' && ./LeProgramme.bin
 * Voir les taux de transfers USB en temps réel.
   * Installer:sudo apt install usbtop
   * Activer le module de capture:sudo modprobe usbmon
   * Afficher les débits:sudo usbtop
 * Comparer deux répertoires (y compris le contenu des fichiers):
   * avec **diff** : diff -qr /répertoire1 /répertoire2
     * -q pour n'afficher que les différences.
     * -r pour traiter les sous-répertoires.
   * avec **rsync**: On fait comme si on démarrait une synchro, mais en mode "test seul" (donc sans rien faire):rsync -rvnc --delete /répertoire1 /répertoire2
     * -r : traiter les sous-répertoires.
     * -v : verbose (affiche le détail)
     * -n : ne touche pas aux fichiers
     * -c : compare le contenu des fichiers (checksum) au lieu de juste date/heure/taille.
     * --delete : Rassurez-vous, il ne va rien effacer (car on a utilisé -n), mais cela permet d'afficher les fichiers présents dans la destination mais pas dans la source.
   * L'avantage de rsync sur diff est qu'on peut le suivre avec un sudo progress -M.
   * Ou avec une interface graphique avec //meld// (sudo apt install meld).
 * Vous avez un Raspberry Pi ? cette page pourra vous être utile.
 * D'autres astuces ? Voir cette page.
 * Vous avez des soucis pour faire reconnaître votre imprimante sous Ubuntu/Linux Mint ?  Il faut savoir que par défaut tous les pilotes ne sont pas installés. Jetez un coup d'oeil dans les paquets printer-driver-*.  Par exemple, installez le paquet printer-driver-escpr pour les imprimantes Epson (qui n'est pas installé par défaut).