Outils pour utilisateurs

Outils du site


linux-vrac

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
linux-vrac [2018/12/06 12:46] sebsauvagelinux-vrac [2024/01/30 14:32] (Version actuelle) sebsauvage
Ligne 7: Ligne 7:
   * **//apropos// est votre ami**:   * **//apropos// est votre ami**:
     * Voir les outils concernant pdf présents sur votre système ? <code bash>apropos pdf</code>     * Voir les outils concernant pdf présents sur votre système ? <code bash>apropos pdf</code>
 +  * Et **//tldr// aussi**:<code>> tldr tar
 +tar
 +Archiving utility.
 +Often combined with a compression method, such as gzip or bzip.
  
-  * **Voir la progression d'une longue commande en cours**:+ - Create an archive from files: 
 +   tar cf {{target.tar}} {{file1 file2 file3}} 
 + 
 + - Create a gzipped archive: 
 +   tar czf {{target.tar.gz}} {{file1 file2 file3}} 
 + 
 + - Extract an archive in a target folder: 
 +   tar xf {{source.tar}} -C {{folder}} 
 + 
 + - Extract a gzipped archive in the current directory: 
 +   tar xzf {{source.tar.gz}} 
 + 
 + - Extract a bzipped archive in the current directory: 
 +   tar xjf {{source.tar.bz2}} 
 + 
 + - Create a compressed archive, using archive suffix to determine the compression program: 
 +   tar caf {{target.tar.xz}} {{file1 file2 file3}} 
 + 
 + - List the contents of a tar file: 
 +   tar tvf {{source.tar}} 
 + 
 + - Extract files matching a pattern: 
 +   tar xf {{source.tar}} --wildcards {{"*.html"}}</code> 
 + 
 +  * {{anchor:wifi-region}}**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:<code>REGDOMAIN=FR</code> 
 + 
 +  {{anchor:progress}}**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:<code bash>sudo progress -m</code>     * Vous avez lancé un //dd// ou un //tar// très long, et vous ne savez pas où il en est ? Lancez:<code bash>sudo progress -m</code>
     * //progress// fonctionne avec cp,mv,dd,tar,gzip,7z,rsync...     * //progress// fonctionne avec cp,mv,dd,tar,gzip,7z,rsync...
 +    * Si vous utilisez ''-M'', progress ne quittera pas et attendra un autre processus.
 +    * Dans rsync, en plus de l'option ''%%--progress%%'' (qui vous donne la progression //par fichier//), vous pouvez utiliser ''%%--info=progress2 --no-inc-recursive%%'' qui vous donnera la progression totale de votre transfer.
  
   * **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 des archives compressées** : Créer une archive compressée c'est simple, mais c'est toujours bon de se rappeler la syntaxe:
Ligne 22: Ligne 57:
     * Exclure des répertoires: <code bash>tar cvfz archive.tgz dossier/ --exclude=chemin/relatif</code>     * Exclure des répertoires: <code bash>tar cvfz archive.tgz dossier/ --exclude=chemin/relatif</code>
  
-  * **gzip/bzip2 //beaucoup plus rapides//** (multi-coeurs):+  * {{anchor:pigz}}**gzip/bzip2 //beaucoup plus rapides//** (multi-coeurs):
     * ''sudo apt install pigz pbzip2''     * ''sudo apt install pigz pbzip2''
     * pigz/pbzip2 ont une syntaxe compatible avec gzip/bzip2.     * pigz/pbzip2 ont une syntaxe compatible avec gzip/bzip2.
     * Dans ''.bashrc'' mettre:<code bash>alias gzip='pigz'     * Dans ''.bashrc'' mettre:<code bash>alias gzip='pigz'
 alias bzip2='pbzip2'</code> alias bzip2='pbzip2'</code>
 +
 +  * {{anchor:lzo}}**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:<code>tar --lzop -cvf archive.tar.lzo dossier/</code>
 +    * Décompresser:<code>tar xvf archive.tar.lzo</code>
 +    * 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>.   * **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>     * 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.+  * {{anchor:unicode}}**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> : ✅     * 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.   * **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'' +  * {{anchor:findmnt}}**Voir les disques montés**: C'est beaucoup plus lisible comme ça: ''mount | column -t'' 
-  * **Voir les disques/partitions montables**: Plusieurs possibilités: ''sudo fdisk -l'' ou ''sudo inxi -Po'' ou graphiquement avec ''sudo gparted''.+    * 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)**+  * {{anchor:moins-swap}}**Réduction de l'utilisation du swap (1)**
     * Faire:<code bash>sudo bash -c 'echo "vm.swappiness=10" >> /etc/sysctl.conf'</code>     * Faire:<code bash>sudo bash -c 'echo "vm.swappiness=10" >> /etc/sysctl.conf'</code>
     * Rebooter pour prendre en compte, ou faire ''sudo sysctl -p''     * 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 la passant à 10 le système attendra d'avoir 90% de RAM utilisée avant de commencer à swapper.+    * 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)**   * **Réduction de l'utilisation du swap (2)**
-    * ''sudo apt install zram-config'' 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'').+    * ''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 !//     * 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.     * 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.
Ligne 53: Ligne 101:
       * Si les applications ont vraiment besoin de plus de RAM, tmpfs leur laissera la place en swappant ses données.       * 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:+  * {{anchor:ports-ouverts}}**Voir les ports ouverts** et quelles applications les ont ouverts:
     * <code bash>sudo netstat -pntul</code>     * <code bash>sudo netstat -pntul</code>
     * ou:<code bash>sudo ss -pntul</code>     * ou:<code bash>sudo ss -pntul</code>
  
-  * **Partage rapide de fichiers par HTTP** : Un serveur web en 10 secondes.+  * {{anchor:serveur-web-python}}**Partage rapide de fichiers par HTTP** : Un serveur web en 10 secondes.
     * Ouvrez un terminal dans le répertoire à partager.     * Ouvrez un terminal dans le répertoire à partager.
-    * Tapez:<code bash>python -m SimpleHTTPServer 9988</code> +    * Tapez (pour Python3) :<code bash>python3 -m http.server 5555</code> 
-    * Et c'est tout. Le répertoire sera accessible par ''http://adresseip:9988/''+      * 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.     * 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):+  * {{anchor:priorite-minimale}}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'':<code bash>alias ni='nice -n 19 ionice -c3'</code>     * Ajoutez à votre ''.bashrc'':<code bash>alias ni='nice -n 19 ionice -c3'</code>
     * Puis lancez n'importe quel programme en le préfixant par ''ni'':<code bash>ni tar cvfz monarchive.tgz monrepertoire/</code>     * Puis lancez n'importe quel programme en le préfixant par ''ni'':<code bash>ni tar cvfz monarchive.tgz monrepertoire/</code>
  
-  * Un programme prend trop de CPU ? Vous voulez lui limiter le pourcentage de CPU qu'il consomme ? Utilisez **cpulimit**: <code>cpulimit -e nomDuProgramme -l 25 -b</code>+  * 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:<code>watch "renice 19 -p $(pgrep 7z)"</code> 
 + 
 + 
 +  * {{anchor:cpulimit}}Un programme prend trop de CPU ? Vous voulez lui limiter le pourcentage de CPU qu'il consomme ? Utilisez **cpulimit**: <code>cpulimit -e nomDuProgramme -l 25 -b</code>
     * ''-e nomDuProgramme'' ou ''-P cheminCompletDuProgramme''     * ''-e nomDuProgramme'' ou ''-P cheminCompletDuProgramme''
     * ''-l 25'' pour 25% de CPU     * ''-l 25'' pour 25% de CPU
Ligne 75: Ligne 127:
     * 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:<code>@reboot /opt/scripts/monscript.sh</code>     * 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:<code>@reboot /opt/scripts/monscript.sh</code>
  
-  * **Tracer tous les accès d'une application à mes fichiers perso** (remplacez //LEPROGRAMME// par votre programme):<code bash>strace -e trace=file LEPROGRAMME 2>&1 | grep "/home" > trace.log</code>+  * {{anchor:strace}}**Tracer tous les accès d'une application à mes fichiers perso** (remplacez //LEPROGRAMME// par votre programme):<code bash>strace -e trace=file LEPROGRAMME 2>&1 | grep "/home" > trace.log</code>
   * 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).   * 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**:<code bash>sudo lsof | grep NOMFICHIER</code>+  * {{anchor:lsof}}**Savoir quelle application verrouille un fichier ou un répertoire**:<code bash>sudo lsof | grep NOMFICHIER</code>
  
-  * **Gestion des services par System-V, Upstart et systemd**:+  * {{anchor:services}}**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.     * 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:     * System-V:
Ligne 97: Ligne 149:
   * **Astuce rapide**:   * **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 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:<code>sudo apt purge btrfs-tools
 +sudo update-initramfs -ukall</code>
  
-  * **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:+  * {{anchor:firejail}}**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 [[https://firejail.wordpress.com/|site officiel]]).     * J'installe d'abord firejail: ''sudo apt install firejail'' (ou voir [[https://firejail.wordpress.com/|site officiel]]).
     * Si je veux lancer un programme en lui interdisant d'aller sur internet, je fais:<code bash>firejail --net=none monprogramme</code>     * Si je veux lancer un programme en lui interdisant d'aller sur internet, je fais:<code bash>firejail --net=none monprogramme</code>
Ligne 109: Ligne 163:
     * Le programme enregistrera ses fichiers de config dans ce répertoire, sans pouvoir accéder à mon vrai répertoire perso.     * 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** +  * {{anchor:md5}}**Calculer la MD5 de fichiers avec sous-répertoires** 
-    * Calculer: <code bash>nice find . -type f -print0 | xargs -0 md5sum | sort -k2 > md5sums</code>+    * Calculer: <code bash>find . -type f -print0 | xargs -0 md5sum | grep -v "./md5sums" | sort -k2 > md5sums</code> 
 +      * Cela va créer un fichier ''md5sums'' qui permettra de vérifier l'intégrité des fichiers. 
 +      * ''grep -v "./md5sums"'' permet d'éviter que le fichier md5sums essaie de se contrôller lui-même (puisqu'on est en train de le calculer) 
 +      * 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: <code bash>md5sum -c md5sums</code>     * Vérifier: <code bash>md5sum -c md5sums</code>
 +      * 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:<code bash>find . -type f -print0 | xargs -0 -L1 -P4 md5sum | sort -k2 | grep -v "./md5sums" | sort -k2 > md5sums</code>
 +      * 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):   * **Emporter une application sur clé USB** (pour ma clé "Live" de Linux Mint que j'utilise comme clé de dépannage):
Ligne 120: Ligne 182:
  
   * **Supprimer les paquets inutiles**: ''sudo apt autoremove''   * **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**: +  * **Cache des paquets** (debian et dérivés (Ubuntu, LinuxMint...))
-    * Tous les paquets installés sont en copie dans ''/var/cache/apt/archives/'' +    * Tous les paquets installés sont en copie dans ''/var/cache/apt/archives/''. 
-    * Pour vider ce cache pour gagner de la place: ''sudo apt clean''+    * 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:<code>dpkg -l | grep "^ii" | awk ' {print $2} ' | xargs sudo apt-get -y --force-yes install --reinstall --download-only</code> 
 +      * 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**:+  * {{anchor:installer-polices}}**Installer de nouvelles polices de caractères**:
     * Copier dans ''~/.fonts''     * Copier dans ''~/.fonts''
     * Faire: ''fc-cache -fv''     * Faire: ''fc-cache -fv''
Ligne 133: Ligne 200:
   * **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''   * **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):+  * {{anchor:menu-contextuel}}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.     * 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//     * Faites un clic-droit sur n'importe quel fichier ou dossier > Scripts > //Nom de votre script//
Ligne 187: Ligne 254:
   * **Vérifier le système de fichiers**: ''sudo touch /forcefsck'' et redémarrez.   * **Vérifier le système de fichiers**: ''sudo touch /forcefsck'' et redémarrez.
  
-  * **Vérifier (fsck) une partition VeraCrypt**:+  * {{anchor:fsck-veracrypt}}**Vérifier (fsck) une partition VeraCrypt**:
     * Monter normalement votre partition (avec le mot de passe), puis:     * Monter normalement votre partition (avec le mot de passe), puis:
     * <code bash>sudo umount /media/veracrypt1     * <code bash>sudo umount /media/veracrypt1
 sudo fsck /dev/mapper/veracrypt1</code> sudo fsck /dev/mapper/veracrypt1</code>
  
-  * **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):<code bash>#!/bin/bash+  * {{anchor:qwerty}}**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):<code bash>#!/bin/bash
 monprogramme & monprogramme &
 echo $! >/tmp/monprogramme.pid & echo $! >/tmp/monprogramme.pid &
Ligne 206: Ligne 273:
   * Quelques astuces **pour les jeux**, voir dans [[http://sebsauvage.net/wiki/doku.php?id=jeux&s[]=trine#problemes_et_solutions|cette page]].   * Quelques astuces **pour les jeux**, voir dans [[http://sebsauvage.net/wiki/doku.php?id=jeux&s[]=trine#problemes_et_solutions|cette page]].
  
-  * **Traiter les images en lot ou en automatique**:+  * {{anchor:xnview}}**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 [[http://www.xnview.com/fr/xnviewmp/#downloads|site]] et installer manuellement)     * XNViewMP a une jolie interface graphique et possède des fonctions de manipulation et conversion en masse. (à télécharger du [[http://www.xnview.com/fr/xnviewmp/#downloads|site]] et installer manuellement)
     * En ligne de commande //GraphickMagick// est le roi (il est plus moderne et efficace qu'//ImageMagick//). (''sudo apt install graphicsmagick'' ; [[http://www.graphicsmagick.org/|site officiel]])     * En ligne de commande //GraphickMagick// est le roi (il est plus moderne et efficace qu'//ImageMagick//). (''sudo apt install graphicsmagick'' ; [[http://www.graphicsmagick.org/|site 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:+  * {{anchor:mdp-linux}}**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:**     * **En bootant sur la machine elle-même:**
       * Accédez au menu Grub (<key>ESC</key> ou <key>⇧ Maj</key> au démarrage).       * Accédez au menu Grub (<key>ESC</key> ou <key>⇧ Maj</key> au démarrage).
Ligne 229: Ligne 296:
     * 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.     * 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**:+  * {{anchor:mdp-windows}}**Réinitialiser le mot de passe Windows**:
     * Cette astuce fonctionne de Windows XP jusqu'à Windows 10.     * Cette astuce fonctionne de Windows XP jusqu'à Windows 10.
     * :!: **ATTENTION**: Manipulation à ne **PAS** effectuer si vous utilisez le chiffrement de fichiers Windows, sinon vous risquez de perdre vos fichiers !     * :!: **ATTENTION**: Manipulation à ne **PAS** effectuer si vous utilisez le chiffrement de fichiers Windows, sinon vous risquez de perdre vos fichiers !
Ligne 249: Ligne 316:
       * ''net localgroup Administrators /ADD toto'' pour donner à l'utilisateur toto les droits admin.       * ''net localgroup Administrators /ADD toto'' pour donner à l'utilisateur toto les droits admin.
  
-  * **NumLock activé sur l'écran de login**:+  * {{anchor:numlockx}}**NumLock activé sur l'écran de login**:
     * ''sudo apt install numlockx''     * ''sudo apt install numlockx''
     * Centre de contrôle > Fenêtre de connexion > Options, cocher Activer NumLock.     * Centre de contrôle > Fenêtre de connexion > Options, cocher Activer NumLock.
  
-  * **Taille occupée par les dossiers**:+  * {{anchor:ncdu}}**Taille occupée par les dossiers**:
     * En comptant les sous-dossiers mais sans les afficher:<code bash>du --max-depth=1 -h</code>     * En comptant les sous-dossiers mais sans les afficher:<code bash>du --max-depth=1 -h</code>
     * Et utilisez l'excellent ''ncdu'' !     * 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):+  * {{anchor:sfill}}**Remplir l'espace vide par des zéros** pour empêcher la récupération des fichiers (ou alléger une machine virtuelle):
     * Installer:<code bash>sudo apt install secure-delete</code>     * Installer:<code bash>sudo apt install secure-delete</code>
     * Nettoyer:<code bash>sfill -fllvz /lerépertoire</code>     * Nettoyer:<code bash>sfill -fllvz /lerépertoire</code>
Ligne 284: Ligne 351:
 </code>(On voit que c'est Linux Mint 19 basé sur Ubuntu Bionic Beaver, donc 18.04) </code>(On voit que c'est Linux Mint 19 basé sur Ubuntu Bionic Beaver, donc 18.04)
  
-  * **Informations système**:+  * {{anchor:inxi}}**Informations système**:
     * ''inxi'' est fantastique.     * ''inxi'' est fantastique.
     * ''inxi -F'' vous donnera une vue d'ensemble de votre système.     * ''inxi -F'' vous donnera une vue d'ensemble de votre système.
Ligne 290: Ligne 357:
     * 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''.     * 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''+  * {{anchor:lshw}}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''     * Et spécifiquement pour la partie réseau: ''sudo lshw -C network''
  
-  * **Monter un répertoire distant par ssh**+  * {{anchor:sshfs}}**Monter un répertoire distant par ssh**
     * Installation:<code bash>sudo apt install sshfs</code>     * Installation:<code bash>sudo apt install sshfs</code>
     * Montage:<code bash>mkdir pointdemontage     * Montage:<code bash>mkdir pointdemontage
Ligne 301: Ligne 368:
     * Démontage:<code bash>fusermount -u pointdemontage</code>     * Démontage:<code bash>fusermount -u pointdemontage</code>
  
-  * **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:+  * {{anchor:fortunes}}**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/*''     * Supprimez les citations existantes: ''sudo rm -rf /usr/share/games/fortunes/*''
-    * Récupérez le fichier [[http://sebsauvage.net/files/fortune/citation-celebre.7z|citation-celebre.7z]] (2 Mo, md5 4bf707f4d4a1af8457834d8578699a52), décompressez-le. (Il contient plus de 69000 citations, de Confucius à Les Nulls.) ((Le script qui a servi à pomper le site est [[http://sebsauvage.net/files/fortune/scraper-citation-celebre.py|là]] ou [[http://sebsauvage.net/paste/?12bf3badbd066925#24uaJVn4zDNKymWTEYzOIAdInksekhSyCJYvWqw7/Qw|là]].))+    * Récupérez le fichier [[http://sebsauvage.net/files/fortune/citation-celebre.7z|citation-celebre.7z]] (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''     * Copiez ces 2 fichiers: ''sudo cp citation-celebre.com* /usr/share/games/fortunes''
     * Testez: ''fortune''     * 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'')     * 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 [[fortunes-fr|cette page]].
  
-  * **Du mal à lire une clé USB, un disque externe ou une carte mémoire ?** Elle est peut-être en [[https://fr.wikipedia.org/wiki/ExFAT|exFAT]] (système de fichiers de Microsoft différent de FAT32, sans la limite des 4 Go par fichier).+  * {{anchor:exfat}}**Du mal à lire une clé USB, un disque externe ou une carte mémoire ?** Elle est peut-être en [[https://fr.wikipedia.org/wiki/ExFAT|exFAT]] (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''     * Faites: ''sudo apt-get install exfat-fuse exfat-utils''
  
-  * **Faire du ménage dans vos fichiers**:+  * {{anchor:czkawka}}**Faire du ménage dans vos fichiers**:
     * En recherchant les **fichiers en double**.     * En recherchant les **fichiers en double**.
-      * Installez //fslint//: ''sudo apt install fslint'' +      * <del>Installez //fslint//: ''sudo apt install fslint''</del> Cette application n'existe plus, mais quelqu'un la ré-implémentée sous le nom de [[https://github.com/qarmin/czkawka|Czkawka]]. 
-      * Lancez l'application: Par défaut, c'est l'onget "**Duplicata**" qui est sélectionné, avec votre répertoire perso. +      * 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.       * 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.       * Il va vous afficher ceux qui prennent le plus de place en premier.
Ligne 333: Ligne 401:
     * Je ne suis pas fan du logiciel //BleachBit//. Faites très attention à ce que vous faites dans ce logiciel.     * Je ne suis pas fan du logiciel //BleachBit//. Faites très attention à ce que vous faites dans ce logiciel.
  
-  * Des éditeurs de crontab:+  * {{anchor:crontab-editors}}Des éditeurs de crontab:
     * http://corntab.com/     * http://corntab.com/
     * http://www.crontabgenerator.com/     * http://www.crontabgenerator.com/
Ligne 339: Ligne 407:
     * https://blog.shevarezo.fr/post/2018/08/28/gerer-taches-cron-interface-graphique-crontab-ui     * https://blog.shevarezo.fr/post/2018/08/28/gerer-taches-cron-interface-graphique-crontab-ui
  
-  * **Voir les entrées/sorties (accès disque)**: +  * {{anchor:iotop}}**Voir les entrées/sorties (accès disque)**: 
-    * Liste des processus actuellement en train de faire des I/O: ''sudo iotop -o'' (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).+    * Affichage en temps réel des processus consommant de l'I/O disque: ''sudo iotop'' 
 +    * 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: <code>sudo watch -n 1 "(ps aux | awk '\$8 ~ /D/  { print \$0 }')"</code>     * En cas de gros blocage, pour voir les processus en sont en attente des I/O: <code>sudo watch -n 1 "(ps aux | awk '\$8 ~ /D/  { print \$0 }')"</code>
-    * Voir aussi: ''iostat -d''+    * Si vous faites:<code bash>watch "egrep '(Dirty|^Cached:)/proc/meminfo"</code>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 [[captvty_linux|possible]] !   * Installer le logiciel Captvty sous Linux ?  C'est [[captvty_linux|possible]] !
  
-  * Convertir un dossier de *.flac (et ses sous-répertoires) en mp3:<code bash>find -name "*.flac" -exec ffmpeg -i {} -acodec libmp3lame -ab 128k {}.mp3 \;</code>+  * {{anchor:flac-vers-mp3}}Convertir un dossier de *.flac (et ses sous-répertoires) en mp3:<code bash>find -name "*.flac" -exec ffmpeg -i {} -acodec libmp3lame -ab 128k {}.mp3 \;</code> 
 +    * Il y a plein d'autres astuces pour ffmpeg dans [[ffmpeg|cette page]].
  
   * Changer la luminosité au clavier:   * Changer la luminosité au clavier:
Ligne 358: Ligne 431:
   * //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'').   * //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**:+  * {{anchor:swap-fichier}}**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.     * À 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''     * Désactiver le swap actuel: ''sudo swapoff -a''
Ligne 372: Ligne 445:
         * Vous pouvez booter sur clé USB pour supprimer la partition avec gparted.         * 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:         * 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'':+          * 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''             * Là où il y a ''RESUME=UUID=388a79ac-27b7-42f5-ac13-...'' remplacez par ''RESUME=none''
             * puis faites: ''sudo update-initramfs -u''             * puis faites: ''sudo update-initramfs -u''
  
-  * **Allonger l'autonomie**+  * {{anchor:desactiver-hibernation}}**Désactiver l'hibernation** (c'est à dire suspend-to-disk et suspend-to-ram): 
 +    * Désactiver:<code bash>sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target 
 +sudo systemctl restart systemd-logind.service</code> 
 +    * Réactiver:<code bash>sudo systemctl unmask sleep.target suspend.target hibernate.target hybrid-sleep.target</code> 
 +    * Et pour empêcher l'hibernation quand l'écran est rabattu, dans le fichier ''/etc/systemd/logind.conf'', décommenter les deux lignes suivantes:<code>HandleLidSwitch=lock 
 +HandleLidSwitchDocked=lock</code> 
 + 
 +  * {{anchor:tlp}}**Allonger l'autonomie**
     * ''sudo apt install tlp''     * ''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.     * tlp va changer des réglages système quand vous passez de secteur à batterie (et inversement). Les réglages par défaut sont excellents.
Ligne 382: Ligne 462:
     * Si vous utilisez //tlp//, //powertop// n'est plus utile.     * Si vous utilisez //tlp//, //powertop// n'est plus utile.
  
-  * Besoin de **capturer une vidéo de l'écran ?**+  * {{anchor:kazam}}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''     * 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(VP8)/AVI, avec ou sans le son (source: sortie audio et/ou micro).     * Capture de tout ou partie de l'écran au format MP4(h264)/WebM(VP8)/AVI, avec ou sans le son (source: sortie audio et/ou micro).
  
-  * **Gestion des sessions utilisateur**:+  * {{anchor:sessions}}**Gestion des sessions utilisateur**:
     * Voir qui est logué: ''w''     * Voir qui est logué: ''w''
     * Désactiver temporairement un utilisateur: ''sudo vipw'' et mettre un ''#'' devant son login.     * 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'').     * 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)+  * {{anchor:monter-img}}**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:     * 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:<code>>fdisk -l recalbox.img     * Un fichier img peut contenir plusieurs partitions. Pour connaître les partitions faites: ''fdisk -l fichier.img''. Par exemple pour RecalBox:<code>>fdisk -l recalbox.img
Ligne 409: Ligne 489:
   * Si vous avez un disque *.img (par exemple une image destinée à cette saloperie d'[[https://etcher.io/|Etcher]]) 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:<code>VBoxManage convertdd image.img image.vdi</code>   * Si vous avez un disque *.img (par exemple une image destinée à cette saloperie d'[[https://etcher.io/|Etcher]]) 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:<code>VBoxManage convertdd image.img image.vdi</code>
  
-  * **Monter un disque .vdi dans votre système** : Il est possible de monter dans votre système un disque VirtualBox (*.vdi):+  * {{anchor:monter-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''     * Installer les outils: ''sudo apt install qemu-kvm qemu-utils''
     * Activer le module: ''sudo modprobe nbd''     * Activer le module: ''sudo modprobe nbd''
Ligne 424: Ligne 504:
  
  
-  * **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...)+  * {{anchor:dd-partclone}}**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''     * 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.     * **Avec dd**: Vous pouvez sauvegarder partitions ou disques complets.
Ligne 446: Ligne 526:
       * Sauvegarder:<code bash>sudo dd if=/dev/sda of=mbr.bin bs=512 count=1</code>       * Sauvegarder:<code bash>sudo dd if=/dev/sda of=mbr.bin bs=512 count=1</code>
       * Restaurer:<code bash>sudo dd if=mbr.bin of=/dev/sda</code>       * Restaurer:<code bash>sudo dd if=mbr.bin of=/dev/sda</code>
 +    * **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:<code bash>partclone.ext4 -c -d -s /dev/sda2 | pigz | split -d -b 4000M - image.partclone.gz.</code>Cela va créer des fichiers ''image.partclone.gz.00'', ''image.partclone.gz.01'', etc.
 +      * Pour restaurer:<code bash>cat image.partclone.gz.* | pigz -d | sudo partclone.restore -d -o /dev/sda2</code>
 +    * {{anchor:fsarchiver}}**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.
 +        * Exemple: 
 +          * Sauvegarder un répertoire:<code bash>sudo fsarchiver savedir -v --zstd=3 archive.fsa /monRépertoireÀSauvegarder/</code>
 +          * Restaurer : <code bash>sudo fsarchiver restdir -v archive.fsa destination/</code>
 +          * Vous pouvez changer la valeur de ''%%--%%zstd'' pour varier la compression (1=la plus rapide, jusqu'à 22, mais consomme beaucoup de mémoire et de CPU. 7 est déjà pas mal.)
 +          * Ajoutez ''%%--%%jobs=4'' pour utiliser 4 coeurs de votre CPU (par défaut fsarchiver n'utilise qu'un seul coeur). Cela va accelérer l'archivage (et le désarchivage).
  
-  * Besoin de voir si votre joystick ou manette fonctionne bien ? Utilisez **jstest-gtk** (''sudo apt install jstest-gtk'')+  * {{anchor:joystick}}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, //[[https://gitlab.com/evtest-qt/evtest-qt|evtest-qt]]// n'est sans doute pas dispo pour votre distribution. Vous devrez la compiler ou prendre les packages [[https://launchpad.net/~grumbel/+archive/ubuntu/ppa/+packages?field.name_filter=evtest-qt&field.status_filter=published|sur Launchpad]].     * 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, //[[https://gitlab.com/evtest-qt/evtest-qt|evtest-qt]]// n'est sans doute pas dispo pour votre distribution. Vous devrez la compiler ou prendre les packages [[https://launchpad.net/~grumbel/+archive/ubuntu/ppa/+packages?field.name_filter=evtest-qt&field.status_filter=published|sur 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''+  * {{anchor:exec-no-x}}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**:   * **Faire un backup de votre smartphone Android par ssh+rsync**:
Ligne 470: Ligne 566:
     * Autre alternative à explorer: //[[https://fishshell.com/|Fish]]//     * Autre alternative à explorer: //[[https://fishshell.com/|Fish]]//
  
-  * **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.+  * {{anchor:flock}}**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:<code bash>flock /tmp/abcd555 -c "sleep 30"     * 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:<code bash>flock /tmp/abcd555 -c "sleep 30"
 flock /tmp/abcd555 -c "echo coucou"</code> flock /tmp/abcd555 -c "echo coucou"</code>
 +
 +  * {{anchor:x-autre-session}}Lancer une application graphique en tant qu'un autre utilisateur ?<code>> xhost +
 +> su autrecompte
 +> gimp</code>
 +    * Penser à faire ''xhost -'' pour refermer les droits de connexion au serveur X.
 +
 +  * {{anchor:qualite-jpeg}}**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:<code>identify -verbose votreimage.jpg | grep Quality</code>
 +
 +  * {{anchor:pdf-en-images}}**Convertir un PDF en images**:
 +    * <code>pdftocairo -png fichier.pdf</code>
 +    * 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 exemple<code>pdftocairo -r 600 -tiff fichier.pdf</code>
 +
 +  * {{anchor:images-pdf-en}}**Convertir des images en PDF**:
 +    * <code>img2pdf *.jp* --output fichier.pdf</code>
 +
 +  * {{anchor:joindre-pdf}}**Joindre plusieurs PDF en un seul**:
 +    * <code>pdfunite fichier1.pdf fichier2.pdf fichier3.pdf sortie.pdf</code>
 +
 +  * {{anchor:extraire-images-pdf}}**Extraire toutes les images d'un PDF**:
 +    * (Cela ne convertit pas les pages en images comme avec pdftocairo, mais au contraire extrait les images utilisées dans le PDF).
 +    * <code>pdfimages -all fichier.pdf images</code>
 +    * Cela va créer des fichiers ''images-000'', ''images-001'', etc. contenant toutes les images du pdf.
 +
 +  * {{anchor:ccze}}**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:<code>find .  | egrep "\.(cbz|cbr|pdf|epub)$" | wc -l</code>
 +
 +  * {{anchor:yt-dlp}}**yt-dlp** (successeur de //youtube-dl//, pour télécharger des vidéos de centaines de sites web):<code>sudo curl -L https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp -o /usr/local/bin/yt-dlp
 +sudo chmod a+rx /usr/local/bin/yt-dlp</code>
 +    * Liste les extracteurs (sites) supportés:<code>yt-dlp --list-extractors</code>
 +    * Télécharger une vidéo:<code>yt-dlp https://youtube.com/watch?v=dQw4w9WgXcQ</code>
 +    * Voir dans quels formats est disponible une vidéo:<code>yt-dlp -F https://youtube.com/watch?v=dQw4w9WgXcQ</code>
 +      * Regardez la colonne //ID// et téléchargez le format qui vous intéresse avec:<code>yt-dlp -f ID https://youtube.com/watch?v=dQw4w9WgXcQ</code>
 +    * Pour le mettre à jour, faire de temps en temps:<code>sudo yt-dlp -U</code>
 +
 +  * Récupérer l'audio d'une vidéo YouTube en mp3:<code>youtube-dl --extract-audio --audio-format mp3 https://www.youtube.com/watch?v=dQw4w9WgXcQ</code>
 +
 +  * Télécharger de préférence une vidéo en mp4:<code>yt-dlp -S ext:mp4:m4a https://www.youtube.com/watch?v=dQw4w9WgXcQ</code>
 +
 +  * {{anchor:nosplash}}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 <code>GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"</code>
 +    * en: <code>GRUB_CMDLINE_LINUX_DEFAULT=""</code>
 +    * puis faites: ''sudo update-grub''
 +
 +  * {{anchor:grub-timeout}}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'').
 +
 +  * {{anchor:nethogs}}Quel programme sur votre ordinateur est en train de vous bouffer la bande passante ?
 +    * ''sudo nethogs''
 +
 +  * {{anchor:iptraf}}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).
 +
 +  * {{anchor:couper-p2p}}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>
 +
 +  * {{anchor:scan-plage-ip}}**Trouver les machines sur une plage d'IP**:<code>nmap -sP 192.168.0.1-255</code>
 +    * ou plus rapide avec ''arp-scan'' (''sudo apt install arp-scan''): <code>sudo arp-scan 192.168.0.0/24</code>
 +    * ou lister rapidement les machines du LAN: <code>arp -an</code>
 +
 +  * {{anchor:capture-webcam}}**Capturer une image avec la webcam**:<code>ffmpeg -f video4linux2 -s 640x480 -i /dev/video0 -ss 0:0:2 -frames 1 -y "/tmp/`date -Iseconds`.jpg"</code>
 +
 +  * {{anchor:optimiser-gif}}**Optimiser un GIF animé**:
 +    * Le format mp4 est généralement une meilleure solution que le format GIF animé (voir [[video-web|cette page]]), mais si vous tenez absolument au format GIF, on peut les optimiser:
 +    * Vous pouvez réduire sa taille avec //ImageMagick//:<code>convert -limit memory 1 -limit map 1 -fuzz 5% -layers Optimize input.gif output.gif</code>
 +    * ou avec //[[https://github.com/kohler/gifsicle|gifsicle]]// (attention, nécessite gifscicle 1.92 ou supérieur ; les dépôts n'ont souvent que la 1.91):<code>gifsicle -O3 --lossy=80 -o output.gif input.gif</code>
 +    * 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.
 +
 +  * {{anchor:snoopy}}**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:<code>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</code>
 +    * Exemple de script de filtrage:<code bash>#!/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</code>
 +
 +  * {{anchor:connexions}}** Qui est connecté ?** : <code>w</code>
 +  * **Date de dernière connexion** de chaque utilisateur:<code>lslogins -u</code>
 +  * **Liste des connexions et déconnexions utilisateur, et temps de connexion**:<code>last</code>
 +
 +  * {{anchor:synchro-ftp}}**Synchroniser un répertoire local vers un répertoire distant par FTP**:
 +    * <code>lftp ftp://login:password@votreserveurftp.com -e "mirror -e -c -R --ignore-time --verbose=1 /répertoirelocal /répertoiredistant/ ; quit"
 +</code>
 +    * **-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:<code>set cmd:parallel 1
 +set net:connection-limit 1
 +set xfer:parallel 1
 +set ftp:sync-mode true</code>
 +    * [[https://rclone.org/|rclone]] sait aussi synchroniser par ftp, mais aussi par sftp/ssh/smb/webdav/etc.
 +
 +  * {{anchor:mtp}}**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:<code>sudo apt install jmtpfs</code>
 +    * Ajoutez-vous dans le goupe "plugdev" et "fuse":<code>sudo usermod -a -G plugdev monlogin
 +sudo usermod -a -G fuse monlogin</code>
 +    * 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:<code>sudo jmtpfs -o allow_other répertoire</code>
 +    * Pour démonter:<code>sudo umount répertoire</code>
 +    * Alternativement, vous pouvez essayer //mtpfs// et //mtp-tools//.
 +
 +  * {{anchor:tmout}}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.
 +
 +  * {{anchor:flatpak}}**flatpak**:
 +    * FIXME Section à compléter
 +    * Voir la liste des pack installés:<code>flatpak list</code>
 +    * Retirer les packs inutilisés:<code>flatpak uninstall --unused</code>
 +
 +  * {{anchor:snap}}**snap**
 +    * FIXME Section à compléter
 +    * Retirer les snaps inutilisés:
 +      * créer le script suivant ([[https://www.linuxuprising.com/2019/04/how-to-remove-old-snap-versions-to-free.html|source]]):<file bash remove-old-snaps>#!/bin/bash
 +# Removes old revisions of snaps
 +# 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''
 +
 +  * {{anchor:lamp}}S'installer rapidement un serveur web avec apache:<code>sudo apt install apache2 php7.2 libapache2-mod-php7.2</code>
 +    * Le répertoire du serveur web est ''/var/www/html/''.
 +
 +  * {{anchor:lamp-nextcloud}}Pour NextCloud, //pour tester en local, pas pour une prod//, ajoutez:<code>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</code>    
 +    * 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''
 +
 +  * {{anchor:cache-cups}}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:<code bash>sudo service cups stop
 +sudo rm -r /var/cache/cups/
 +sudo service cups start</code>
 +
 +  * {{anchor:aptitude}}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.<code bash>sudo apt install aptitude
 +sudo apt install MonPaquet</code>
 +
 +  * Des soucis pour installer, configuer ou utiliser Wine ?  Voir [[wine|cette page]].
 +
 +  * {{anchor:par2}}**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):<code>par2 c -r10 protection *</code>
 +      * 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: <code>par2 v protection.par2</code>
 +      * 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:<code>par2 r protection.par2</code>
 +      * Et attendez (cela peut être assez long).
 +      * Si vous voyez //Repair complete.//, c'est tout bon. Vos données sont réparées.
 +
 +  * {{anchor:ruban-libreoffice}}Dans **LibreOffice**, vous voulez le ruban comme dans Microsoft Office ?
 +    * Allez dans le menu //Affichage// > //Interface utilisateur// > //Onglets//
 +    * et voilà: {{ :linux:linuxvrac-libreoffice-barre.png?direct&1553 |}}
 +
 +  * {{anchor:fichier-paquet}}**Savoir à quel paquet appartient un fichier**
 +    * Par exemple vous lancez un programme qui se plaint qui lui manque un fichier:<code>error while loading shared libraries: libcrypto.so.1.0.0: cannot open shared object file: No such file or directory</code>
 +    * Comment savoir dans quel paquet aller chercher ce fichier ? Commencez par installer ''apt-file'':<code>sudo apt install apt-file</code>
 +    * <code>sudo apt-file update</code>
 +    * Ensuite cherchez votre fichier<code>>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</code>
 +    * Voilà, vous savez qu'il ne vous reste plus qu'à installer le paquet manquant: ''sudo apt install libssl1.0.0''
 +
 +  * {{anchor:live-ubuntu-nocheck-keyboard}}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''
 +
 +  * {{anchor:disable-touchpad}}Besoin de désactiver le clavier interne ou le touchpad de votre ordinateur portable ?
 +    * Pour lister les périphériques:<code>xinput list</code>
 +    * Pour désactiver le clavier:<code>xinput disable "AT Translated Set 2 keyboard"</code>
 +    * Pour réactiver le clavier:<code>xinput enable "AT Translated Set 2 keyboard"</code>
 +
 +  * {{anchor:magic-number-is-wrong-542}}Si quand vous lancez un jeu ou programme vous avez l'erreur ''System.Exception: Magic number is wrong: 542'', lancez le programme comme suit:<code>export 'TERM=roxterm' && ./LeProgramme.bin</code>
 +
 +  * {{anchor:usbtop}}Voir les taux de transfers USB en temps réel.
 +    * Installer:<code>sudo apt install usbtop</code>
 +    * Activer le module de capture:<code>sudo modprobe usbmon</code>
 +    * Afficher les débits:<code>sudo usbtop</code>
 +
 +  * {{anchor:diff-dir}}Comparer deux répertoires (y compris le contenu des fichiers):
 +    * avec **diff** : <code>diff -qr /répertoire1 /répertoire2</code>
 +      * ''-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):<code>rsync -rvnc --delete /répertoire1 /répertoire2</code>
 +      * ''-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'').
 +
 +  * Besoin de travailler temporairement sur des fichiers que vous allez jeter après ? Ne les enregistrez pas dans votre répertoire perso, mais dans ''/dev/shm''. Ce répertoire réside en mémoire, et ne sera jamais écrit sur disque. Le contenu sera automatiquement effacé au prochain redémarrage.
 +
 +  * {{anchor:noindex}}Malheureusement, des développeurs de Gnome on cru bon de ré-implémenter l'équivalent du service d'indexation des fichiers de Windows. Ça bouffe du CPU, de l'I/O disque et aussi de l'espace disque (''~/.cache/tracker/''). Voici comment le désactiver (à faire pour chaque utilisateur):<code>systemctl --user mask tracker-store.service tracker-miner-fs.service tracker-miner-rss.service tracker-extract.service tracker-miner-apps.service tracker-writeback.service
 +tracker reset --hard</code>
 +
 +  * {{anchor:vider-cache}}Le répertoire ''~/.cache'' peut grossir. Beaucoup. On peut sans problème l'effacer (les applications vont re-créer ce dont elles ont besoin) mais si vous n'êtes pas à l'aise avec ça, on peut supprimer juste tous les fichiers qui ont plus d'un an. Cela devrait déjà vous faire gagner de la place:
 +    * Voir ce qui va être supprimé:<code>find ~/.cache/ -depth -type f -mtime +365</code>
 +    * Ou les supprimer directement:<code>find ~/.cache/ -type f -mtime +365 -delete</code>
 +    * Attention: Si vous utilisez ''borg'', en effaçant sont cache vous risquez de rallonger la durée de votre prochain backup car borg n'aura plus en cache le status des fichiers (il va devoir reconstruire son cache).
 +
 +  * {{anchor:date-installation-paquets}}La liste et date/heure d'installation de tous les paquets: <code>zgrep -h " installed " /var/log/dpkg.log* | sort | uniq</code>
 +
 +  * {{anchor:charge-batterie}}Voir la charge de la batterie en ligne de commande (si vous avez ''tlp'' installé): <code>sudo tlp-stat -b</code>
 +    * alternativement, vous pouvez aussi faire:<code>cat /sys/class/power_supply/BAT*/status</code>
 +
 +  * {{anchor:timeshift}}Si vous aviez proprement installé //Timeshift// pour faire des sauvegardes de votre système et que votre système de démarre plus, redémarrez l'ordinateur en laissant la touche <key>MAJ</key> enfoncée pour afficher le menu de Grub, choisissez le mode "recovery", puis dans le menu qui s'affiche la console "root" et tapez ''timeshift %%--%%restore'': Il vous proposera l'un de vos backup timeshift précédents. Suivez les instructions. (<key>Entrée</key> validera automatiquement tous les choix par défaut, sauf le dernier où il faudra répondre ''y'' pour confirmer la restauration.) Timeshift est même capable de restaurer grub. Pratique quand le système ne démarre plus parcequ'on a bidouillé le système ou suite à une mauvaise mise à jour.
 +
 +  * {{anchor:uuid-partition}}Changer l'UUID d'une partition (utile si par exemple vous copiez des partitions d'un disque à l'autre avec dd. Chaque partition doit avoir un UUID différent.)
 +    * D'abord, générer un nouvel UUID: ''cat /proc/sys/kernel/random/uuid''
 +    * Changer l'UUID du disque: <code>sudo tune2fs /dev/sdb1 -U 5ace2c0b-fc93-4481-a983-d1ed9fa2e523</code> ou <code>sudo tune2fs /dev/sdb1 -U random</code>
 +    * Vérifier: ''sudo blkid /dev/sdb1''
 +    * Note: tune2fs est spécifique aux systèmes de fichiers ext2/ext3/ext4. Les autres types de partition ont besoin d'outils spécifiques.
 +
 +  * {{anchor:changer-label-partition}}Changer le label d'un disque (le nom sous lequel il apparaît dans le gestionnaire de fichiers): ''sudo tune2fs /dev/sdb1 -L NouveauLabel''
 +
 +  * {{anchor:virer-snap}}Sous Ubuntu et vous voulez virer le système des snaps ?
 +    * Voir les snaps installés: ''snap list''
 +    * Retirer un snap (par exemple celui de Blender): ''snap remove blender''
 +    * Supprimez chacun des snaps un par un avec la commande précédente.
 +    * Notez que ''core18'' doit être supprimé en avant-dernier, et ''snapd'' en dernier.
 +    * Une fois que ''snap list'' ne renvoie plus rien, faire:<code>sudo apt purge snapd  # Retirer le service et ses fichiers de config
 +sudo apt autoremove   # supprimer les paquets liés désormais inutiles
 +rm -rf ~/snap         # supprimer le répertoire snap dans votre dossier perso.
 +</code>
 +
 +  * {{anchor:geany-probleme-polices}}Si dans l'éditeur de texte //Geany// vous avez (avec certaines polices et tailles de caractères) les underscores (_) qui disparaissent, allez dans le menu //Tools > Configuration Files > filetypes.common// et dans la section ''[styling]'' mettez ''line_height=1;1;''. ([[https://www.geany.org/documentation/faq/#geany-does-not-display-underscores-anymore|source]])
 +
 +  * Vous avez un Raspberry Pi ? [[raspi3|cette page]] pourra vous être utile (Raspbian, Ubuntu, DietPi)
  
   * D'autres astuces ? Voir [[mint_customization|cette page]].   * D'autres astuces ? Voir [[mint_customization|cette page]].
  
 +  * {{anchor:imprimantes}}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).
 +
 +  * {{anchor:jdupes}}Besoin d'une version récente de jdupes ?
 +    * Télécharger la release la plus récente (//Source code .tar.gz//) sur https://github.com/jbruchon/jdupes/releases et décompresser
 +    * Dans le répertoire, lancer: ''make CFLAGS_EXTRA=-DENABLE_DEDUPE'' (ce flag active la compilation avec l'option déduplication, utile pour l'option ''-B'' avec btrfs).
 +    * Et utiliser l'exécutable produit (''./jdupes'').
 +    * Cela permet d'éliminer le bug "Not enough memory" quand il y a plus de 128 fichiers similaires. 
 +
 +  * {{anchor:repertoire-courant-script}}Quand vous faites un raccourcis sur votre bureau pour lancer un script shell, le répertoire par défaut ne sera pas celui du script. Cela peut être gênant. Pour que le script se place d'abord dans son propre répertoire, mettez au début du script:<code>cd "$(dirname "$(readlink -f "${BASH_SOURCE[0]}")")"</code>
 +
 +  * {{anchor:astuce-fichier-vide}}**L'astuce du fichier vide**: Quand un disque est plein, ce n'est pas bon. Vraiment pas bon. Quand on en arrive là, les logiciels se mettent à très mal se comporter, et il est peu tard pour faire de la place. Même compresser des fichiers temporairement est impossible, puisque vous n'avez plus d'espace disque. Oups. Certains admninistrateurs ont une astuce: Créer un fichier vide de 8 Go. Si par malheur un disque est plein, il suffit de supprimer ce fichier de 8 Go pour avoir assez d'espace pour réparer les choses et rétablir la situation. ([[https://brianschrader.com/archive/why-all-my-servers-have-an-8gb-empty-file/|source]]). Pour créer ce genre de fichier, faire:<code bash>sudo fallocate -l 8G /spacer.bin</code>
 +
 +  * {{anchor:systemd-analyze}}**Savoir ce qui ralentit le démarrage de votre ordinateur** avec //systemd-analyze//
 +    * Voir un graphe complet des unités chargées au démarrage, leur temps d'initialisation et leurs dépendances:<code>systemd-analyze plot > boot.svg</code> et ouvrez le fichier .svg
 +    * Voir le temps de démarrage de chaque unité:<code>systemd-analyze blame</code>
 +    * Mais certaines unités dépendent les unes des autres. Par exemple une base de données ne sera lancée que quand le réseau sera disponible, donc:
 +    * Avec //critical-chain//, vous pouvez voir la chaîne de démarrage la plus longue avec les dépendances. 
 +    * Si vous êtes sur une machine de bureau, //graphical.target// correspond au démarrage de l'environnement graphique.
 +    * Prenons un exemple: <code>>systemd-analyze critical-chain
 +The time when unit became active or started is printed after the "@" character.
 +The time the unit took to start is printed after the "+" character.
 +
 +graphical.target @3.727s
 +└─multi-user.target @3.727s
 +  └─postgresql.service @3.724s +1ms
 +    └─postgresql@12-main.service @1.077s +2.646s
 +      └─network.target @1.058s
 +        └─NetworkManager.service @866ms +192ms
 +          └─dbus.service @862ms
 +            └─basic.target @852ms
 +              └─sockets.target @852ms
 +                └─uuidd.socket @852ms
 +                  └─sysinit.target @837ms
 +                    └─systemd-timesyncd.service @772ms +65ms
 +                      └─systemd-tmpfiles-setup.service @744ms +24ms
 +                        └─local-fs.target @739ms
 +                          └─run-user-1002.mount @1.387s
 +                            └─swap.target @654ms
 +                              └─dev-zram7.swap @1.294s
 +                                └─dev-zram7.device @1.293s +494ms</code>
 +    * Ici:
 +      * L'interface graphique (''graphical.target'') a démarré en 3.727s (on voit le ''@3.727s'').
 +      * Dans la chaîne de dépendance, si on prend par exemple la base de données Postegres (''postgresql@12-main.service''), on voit:
 +        * Qu'elle a mis 2.646s à démarrer (''+2.646s'') et elle a été lancée 1.077s après le démarrage du système (''@1.077s'')
 +
 +  * {{anchor:wayland-ou-x11}}Savoir si vous êtes sous Wayland ou X11:<code>loginctl show-session $(loginctl | grep $(whoami) | awk '{print $1}') -p Type</code>
 +
 +  * {{anchor:reinitialiser-bureau}}Vous avez changé de distribution en gardant votre /home et votre bureau part un peu en couille ?
 +    * Si vous êtes sous Gnome ou dérivés (Mate, Cinnamon...), faites: ''dconf reset -f /org/gnome/'' (cela va réinitialiser les réglages du bureau stockés dans ''~/.config/dconf/user'')
 +    * Retirez également éventuellement quelques applications lancées au démarrage de la session graphique qui pourraient entrer en conflit (//Applications au démarrage//).
 +    * Vous devrez sans doute aussi réinitialiser votre barre des tâches (Clic-droit > Réinitialiser tous les tableaux de bord).
 +    * Les fenêtres ont un drôle de look ? Pensez à choisir un thème (celui que vous utilisiez n'existe peut-être plus).
 +
 +  * {{anchor:no-suspend}}Le comportement par défaut de la plupart des distributions est de mettre l'ordinateur en "suspend" quand l'écran est rabattu. Du coup si vous démarrez ou redémarrez votre PC alors que l'écran est rabattu, il ne sera pas actif (pas de réseau, etc.). Pour changer ce comportement, modifiez le fichier ''/etc/systemd/logind.conf'' et ajoutez les lignes:<code>HandleLidSwitch=lock
 +HandleLidSwitchExternalPower=lock</code>
 +
 +  * {{anchor:xdg-autostart}}''/etc/xdg/autostart/'' contient des raccourcis (''*.desktop'') qui seront lancés par défaut dans toutes les sessions graphiques utilisateur. C'est complété par ce qu'il y a dans ''~/.config/autostart/''
 +
 +  * {{anchor:xsuspender}}**Allonger l'autonomie de votre PC en "gelant" les applications en arrière-plan**: En plus de **tlp** (voir plus haut dans cette page), vous pouvez ajouter XSuspender. Ce logiciel permet de "geler" les applications qui ne sont pas en avant-plan (elles restent en mémoire mais ne consomment alors plus de CPU, donc plus de batterie):
 +    * Site officiel : https://kernc.github.io/xsuspender/
 +    * Télécharger et installer : https://github.com/kernc/xsuspender/#installation (Il y a des .deb pour Debian/Ubuntu/Mint)
 +    * Configurez votre session graphique pour lancer XSuspender à chaque ouverture de session.
 +    * Créer le fichier de configuration : ~/.config/xsuspender.conf
 +    * Il y a un fichier d'exemple de configuration que vous pouvez récupérer:<code>cp /usr/share/doc/xsuspender/examples/xsuspender.conf ~/.config/xsuspender.conf</code>
 +    * Modifiez ce fichier ''~/.config/xsuspender.conf'' pour geler les applications de votre choix.
 +    * Personnellement, j'active le "gel" même quand je suis sur secteur: ''only_on_battery = false''
 +    * Exemples:
 +      * Exemple 1: Arrêter totalement //Metro Exodus// quand il est en arrière-plan:<code>[MetroExodus]
 +match_wm_name_contains=Metro: Exodus
 +suspend_delay = 1
 +resume_every = 0</code>
 +        * ''suspend_delay=1'' : L'application sera gelée 1 seconde après avoir perdu le focus.
 +        * ''resume_every=0'' : Elle sera gelée indéfiniement (jusqu'à ce qu'elle revienne en avant-plan).
 +      * Exemple 2 : Vous pouvez faire des choses plus complexes, par exemple pour l'application de messagerie //Pigdin//:<code>[Pidgin]
 +match_wm_class_contains = Pidgin
 +resume_every = 1
 +resume_for = 1
 +downclock_on_battery = 2</code>
 +        * ''resume_every=1'' et ''resume_for=1'' : Quand Pigdin est en arrière-plan, il réveille l'application au bout d'une seconde, la laisse travailler une seconde, puis la regèle. Et ainsi de suite. Cela permet de continuer à recevoir les messages, mais en gelant l'application la moitié du temps.
 +        * Et en plus de cela, il ne va laisser Pidgin n'utiliser que 50% d'un CPU avec ''downclock_on_battery=2'' (pas besoin de beaucoup de puissance CPU pour faire fonctionner cette application).
 +        * Cela permet donc de continuer à profiter des fonctionnalités de Pidgin même quand elle est en arrière-plan, tout en limitant au maximum sa consommation CPU (et donc la consommation batterie).
 +      * Exemple 3 : Pour éviter qu'Eclipse me bouffe 100% du CPU quand il build en arrière-plan, je ne lui laisse que de petites tranches de CPU:<code>[Eclipse]
 +match_wm_class_contains=Eclipse
 +suspend_delay = 1
 +resume_every=3
 +resume_for=2
 +suspend_subtree_pattern=.*</code>
 +        * Toutes les 3 secondes (''resume_every=3''), je le laisse travailler pendant 2 secondes (''resume_for=2'').
 +        * Comme Eclipse lance lui-même d'autres processus, ''suspend_subtree_pattern=.*'' permet de geler aussi tous les processus fils issus d'Eclipse.
 +      * Vous pouvez détecter les applications soit par le titre de la fenêtre (''match_wm_name_contains''), soit par sa classe (''match_wm_class_contains''). Quand possible, utilisez la classe (car par exemple le titre de la fenêtre de Firefox change selon les sites visités, mais classe reste Firefox).
 +        * Pour trouver la classe d'une fenêtre, taper dans un terminal: ''xprop -notype WM_NAME WM_CLASS'' et cliquer sur la fenêtre de l'application. Utilisez une des valeurs de ''WM_CLASS''.
 +        * Lister toutes les fenêtres: ''wmctrl -l''
 +      * Vérifier les déclenchements: lancer XSuspend de la manière suivante dans un terminal:<code bash>G_MESSAGES_DEBUG=xsuspender xsuspender</code>
 +
 +  * {{anchor:moniteurs-precedents}}Problème quand vous connectez un moniteur ? La configuration des moniteurs précédemment branchés est stockée (sous Gnome) dans ''~/.config/monitors.xml''
 +
 +  * Entendre ce qui est dit au micro sur les haut-parleurs ou écouteurs:
 +    * Si pas installé, faire ''sudo apt install pavucontrol''
 +    * Activer : ''pactl load-module module-loopback latency_msec=1''
 +    * Désactiver : ''pactl unload-module module-loopback''
 +
 +  * {{anchor:temperature}}**Limiter la température du processeur.** Vous avez des problèmes de refroidissement ou plus simplement vous voulez allonger la durée de vie de votre ordinateur ? Il est possible de limiter la température du CPU. Le principe est de réduire la fréquence du CPU de manière à maintenir la température en dessous du seuil que vous lui aurez fixé.
 +    * **Si vous avez un processeur Intel**, le contrôle de température est accessible via ''/sys'':
 +      * Afficher le seuil actuel : ''cat /sys/bus/pci/drivers/proc_thermal/0000:00:04.0/tcc_offset_degree_celsius''
 +        * La valeur retournée est le nombre de degrés en //dessous// de la valeur critique à partir de laquelle il va commencer à réduire la fréquence (//throttling//).
 +        * Chez moi, elle affiche 2. La température max est généralement 100° sur les processeurs. Il se limitera donc à 100-2 = 98° C.
 +      * Changer la valeur : Si on veut le limiter à 70°, il faut donc faire: ''sudo bash -c "echo 30 >| /sys/bus/pci/drivers/proc_thermal/0000:00:04.0/tcc_offset_degree_celsius"''
 +      * Voir la température actuelle : ''sensors'' mais les environnements de bureau ont bien souvent des applets pour afficher la température.
 +    * **Si vous avez un processeur AMD (ou tout autre CPU)**, vous pouvez utiliser ce script qui va effectuer grosso-modo la même chose:
 +      * Page du logiciel : https://github.com/Sepero/temp-throttle
 +      * Page de l'auteur : http://seperohacker.blogspot.com/2012/10/linux-keep-your-cpu-cool-with-frequency.html
 +      * Script à télécharger : https://github.com/Sepero/temp-throttle/blob/stable/temp_throttle.sh
 +      * Penser à faire un petit ''sudo apt install cpufrequtils'' avant d'utiliser le script (il utilise //cpufreq-set//).
 +      * Lancez-le en root en spécifiant la température. Exemple:<code>sudo ./temp_throttle.sh 70</code>
 +      * Notez que l'ajustement de la température n'est pas immédiat. Le script commence par mettre le processeur à sa fréquence max puis la descend progressivement jusqu'à atteindre la température désirée. Il remontera aussi progressivement la fréquence si la température est 5° en dessous de la température que vous avez fixée.
 +    * En complément de ces deux astuces, passez le //governor// de votre CPU en mode "Conservative" au lieu de "Schedutil" ou "Performance". Le CPU aura moins tendance à monter en fréquence à la moindre sollicitation (Utilisez les applets de contrôle de fréquence de votre environnement de bureau).
 +    * Notez que d'autres facteurs peuvent provoquer la chauffe de votre ordinateur, comme le GPU. Conseil: Dans les jeux, activez la synchronisation verticale et limitez à 60 fps (images par seconde). C'est généralement largement suffisant pour les jeux et évite de faire tourner le GPU à fond pour calculer 160 fps ou plus.
 +
 +  * {{anchor:governor}}**Changer le //governor// de votre CPU** : Le //governor// est un algorithme qui va adapter la fréquence de vos CPU à la demande. Faire monter la fréquence des CPU est utile pour calculer plus vite, mais consomme plus de courant et fait plus chauffer les CPU. Il est donc utile de monter en fréquence pour avoir de bonnes performances, mais redescendre vite quand le CPU ne fait pas grand chose afin de ne pas consommer inutilement.
 +    * Il en existe plusieurs. Voici les principaux:
 +      * //On-demand// : Va faire monter rapidement la fréquence du CPU si des processus l'exigent. Re-descend assez vite aussi.
 +      * //Schedutil// : Ce //governor// est plus près du CPU et répondra plus vite que //On-demand// au sollicitations très brèves. Il montera et descendra plus vite en fréquence que //On-demand// (C'est souvent le governor par défaut.)
 +      * //Performance// fera tourner le CPU au max de ses performances. Ce mode est peu utile étant donné que Schedutil fera aussi bien, mais sans gaspiller d'énergie.
 +      * //Powersave// le fera tourner à sa vitesse minimale pour économiser de la batterie.
 +      * //Conservative// va essayer de ne pas monter inutilement en fréquence au moindre pic. Cela permet quand même d'avoir les performances max, mais de revenir à des fréquences minimales dès que possible. C'est le governor à utiliser si vous voulez limiter la chauffe inutile de votre CPU sans être gêné pour les performances.
 +    * Les environnements de bureau ont généralement une applet qui permet de changer facilement le governor.
 +    * Vous pouvez aussi le faire en ligne de commande:
 +      * Voir la liste des governors disponibles pour votre CPU/noyau : ''cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors''
 +      * Voir le governor actuellement utilisé: ''cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor''
 +      * Choisir un autre governor: ''echo "conservative" | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor''
 +    * Pour choisir quel governor avoir au démarrage de la machine:
 +      * Installez cpufrequtils : ''sudo apt install cpufrequtils''
 +      * Créez le fichier ''/etc/default/cpufrequtils'' contenant:<code># valid values: userspace conservative powersave ondemand performance
 +# get them from cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors 
 +GOVERNOR="conservative"</code>
 +
 +  * {{anchor:ddcci}}**Piloter les réglages de votre moniteur externe depuis Linux** : La plupart des moniteurs externe fabriqués ces 10 dernières années supportent la norme DDC/CI. Il est donc possible de piloter leur réglages (luminosité, contraste, source...) depuis Linux sans avoir à manipuler les boutons de votre moniteur.
 +    * Installation:<code>sudo apt install ddcutil</code>
 +    * Lister les réglages accessibles:<code>sudo ddcutil capabilities</code>
 +      * Par exemple pour la luminosité, c'est le réglage numéro 10 : <code>sudo ddcutil capabilities | grep "Feature: 10"</code>
 +    * Prenons pour exemple la luminosité (réglage n°10):
 +      * Lire la valeur (cela vous affichera également les valeurs acceptées): <code>sudo ddcutil getvcp 10</code>
 +      * Changer la luminosité à 70%:<code>sudo ddcutil setvcp 10 70</code>
 +    * Vous avez bien entendu accès potentiellement à d'autres réglages, selon votre moniteur. Exemples (bien sûr cela dépend des moniteurs):<code>Feature: 12 (Contrast)   (Contraste)
 +Feature: 14 (Select color preset)  (Température de couleur)
 +Feature: 60 (Input Source)
 +...
 +</code>
 +    * Il existe une interface graphique qui marche plus ou moins bien pour y accéder aussi : https://github.com/digitaltrails/vdu_controls ou encore le paquet **gddccontrol** (''sudo apt install gddccontrol'').
 +
 +  * {{anchor:f3}}**Tester vos supports (clés USB, microSD, SSD, etc.)** : Il peut être utile de tester vos supports USB pour être sûr qu'ils ne sont pas défectueux ou qu'ils ne mentent pas sur leur capacité (Certains supports annoncent une grande capacité, mais ont en réalité une capacité plus faible et les écritures bouclent. Vous ne le verrez pas au début.)
 +    * Pour réaliser ce test, votre support doit être vide.
 +    * Vous aurez besoin des outils f3 : <code>sudo apt install f3</code>
 +    * **Pour tester votre support**, dans l'ordre:
 +      * Formattez votre support (de préférence en FAT, car ext3/ext4 conservent une zone réservée, ce qui empêche de tester le support en intégralité).
 +      * Lancez f3write : <code>f3write /media/utilisateur/VotreSupport</code> et attendez. Il va créer plusieurs fichiers de 1 Go jusqu'à remplir le support. (Cela peut durer longtemps).
 +      * Une fois terminé, la ligne //Average writing speed// vous donnera une idée réaliste de la vitesse d'écriture de votre support. (Notez que la valeur n'est pas forcément exacte et peut être influencée par l'activité sur votre ordinateur durant l'écriture, ainsi que par les limites du hub/controlleur USB sur lequel vous avez branché votre clé).
 +      * Débranchez la clé et rebranchez-la. (Certaine clés frauduleuses comptent sur le cache du système d'exploitation pour masquer leur vraie nature).
 +      * Maintenant testez la lecture : <code>f3read /media/utilisateur/VotreSupport</code>
 +        * La ligne **//Data LOST//** **doit** être à zéro. Si ce n'est pas le cas, alors votre support n'est pas fiable. Vous ne devriez pas l'utiliser pour stocker des données.
 +        * La ligne //Average Reading speed// vous donnera une idée réaliste de la vitesse de lecture de votre support.
 +    * Documentation officielle des outils f3 (avec des exemples) : https://fight-flash-fraud.readthedocs.io/en/latest/usage.html
 +
 +  * {{anchor:serveur-tor}}**Un serveur web TOR facilement pour servir du contenu statique** :
 +    * Les avantages ? Un serveur web sans avoir besoin d'ouvrir un port dans votre firewall/routeur, sans avoir besoin de révéler votre véritable adresse IP, sans avoir de nom de domaine à vous, non censurable (ni par IP, ni par nom de domaine), et accessible même si vous êtes derrière un NAT/routeur. Bien sûr ceux qui consultent la page doivent utiliser le navigateur TOR.
 +    * Installer le nécessaire:<code>sudo apt install tor
 +pip3 install --user onionshare-cli</code>
 +    * Placer votre contenu dans ''~/www'' (Un fichier ''index.html'' n'est pas obligatoire. Si vous n'en avez pas, il présentera la liste des fichiers.)
 +    * Lancer le serveur:<code>onionshare-cli --public --persistent ~/tor-website.json  --website ~/www</code>
 +    * L'adresse en .onion du serveur va s'afficher : Vous pouvez la partager.
 +    * Si vous changez des fichiers dans ''~/www'', vous devrez redémarrer le serveur (<key>CTRL-c</key> pour l'arrêter).
 +    * Le serveur n'est pas super-véloce, mais c'est suffisant pour distribuer quelques fichiers.
 +    * Explication des options:
 +      * ''%%--%%website'' : Demande à OnionShare de fonctionner comme un serveur web pour partager le répertoire que vous lui indiquez.
 +      * ''%%--%%public'' pour autoriser une connexion sans clé (comme un simple serveur web).
 +      * ''%%--%%persistent'' : Permet de spécifier un fichier de configuration de manière à ce que votre serveur ait toujours la même adresse (il va créer le fichier s'il n'existe pas).
 +    * Si vous voulez loguer les accès dans un fichier, ajoutez ceci en fin de ligne de commande : ''2>&1 | tee access.log''
 +    * Pour changer l'adresse de votre serveur TOR, arrêtez-le et supprimez le fichier ''~/tor-website.json''
 +    * En utilisant plusieurs fichiers de config json différents, vous pouvez sans problème lancer plusieurs serveurs TOR sur votre ordinateur, chaucun servant un répertoire différent avec sa propre adresse en .onion.
 +    * Si vous n'êtes pas à l'aise avec la ligne de commande, vous pouvez bien sûr passer par l'interface graphique : https://onionshare.org/
 +
 +  * Forcer le lancement d'un programme sur un écran ou un autre (pratique par exemple si vous lancez des jeux avec Wine qui se mettent en plein écran) : ''DISPLAY=:0.0 nomDuProgramme''
 +
 +  * {{anchor:s-tui}}Voir d'un coup d'oeil **Charge CPU, fréquences, températures et ventilateurs**: **s-tui** est très bien:
 +    * Installation : ''sudo apt install s-tui''
 +    * Pensez à cocher la case "UTF-8" pour avoir des graphiques plus précis.
 +    * Cela marche dans un terminal, donc même à distance via une connexion ssh ou sur un RaspberryPi.
 +    * Si vous voulez charger un peu votre CPU pour voir jusqu'où monte la température, installez le paquet "stress" (''sudo apt install stress'') et dans s-tui cochez la case "Stress"
 +
 +  * N'oubliez pas [[https://www.commandlinefu.com/commands/browse|CommandLineFu.com]] qui est une intarissable source d'astuces pour Linux.
 +
 +  * {{anchor:bat}}**bat** ([[https://github.com/sharkdp/bat#syntax-highlighting|page officielle]]) est un ''cat'' amélioré, avec coloration syntaxique et même support Git. Il utilise aussi ''less'' pour faire la pagination.
 +    * Installation : ''sudo apt install bat'' sur les distributions récentes, ou bien téléchargez le package pour votre distribution (recommandé) : https://github.com/sharkdp/bat/releases
 +    * Note: Sous Ubuntu et dérivés, à cause d'un conflit, l'exécutable d'appelle ''batcat''. Pour éviter cela, installez directement le .deb comme indiqué ci-dessus.
 +
 +  * {{anchor:fzf}}**fzf** ([[https://github.com/junegunn/fzf|page officielle]]) est un fantastique outils de recherche qui fait gagner un temps considérable. Il permet de faire une recherche approximative.
 +    * Installation:<code>git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf
 +~/.fzf/install</code>
 +    * Utilisation:
 +      * Recherche de répertoires (à partir du répertoire actuel):  <key>alt-c</key>, choisissez, pressez <key>Entrée</key>. Vous êtes dedans.
 +      * Recherche dans votre historique bash : <key>ctrl-r</key>
 +      * Recherche de fichier: Commencez à taper une commande en terminal (''cat'' ou autre) puis <key>ctrl-t</key> pour rechercher un fichier à partir du répertoire actuel.
 +        * Vous pouvez aussi faire, par exemple ''cat %%**%%'' puis presser la touche <key>TAB</key>.
 +        * Ça marche bien sûr également avec ''xdg-open'' pour ouvrir des pdf, fichiers LibreOffice, etc.
 +      * Vous pouvez également piper n'importe quoi dans fzf pour rechercher dedans (''cat *.txt | fzf'')
 +      * Par défaut fzf affichera en premier les résultats qui correspondent exactement à ce que vous avez tapé, puis les résultats proches.
  
 +  * {{anchor:nmcli-dns}}**Voir et modifier la config DNS** si votre réseau est géré par //NetworkManager//:
 +    * Voir la liste des connexion : ''nmcli con show''
 +    * Voir la config DNS d'une connexion : ''nmcli con show NOMCONNEXION | grep dns''
 +    * Changer les DNS : ''nmcli connection modify NOMCONNEXION ipv4.dns "185.222.222.222,45.11.45.11"''
  
 +  * **Les bonnes pratique pour écrire des scripts shell** pour éviter des catastrophes:
 +    * Squelette : <code bash>#!/usr/bin/env bash
 +cd "$(dirname "$(readlink -f "${BASH_SOURCE[0]}")")"
 +set -o errexit
 +set -o nounset
 +set -o pipefail</code>
 +    * Explications : <code bash>#!/usr/bin/env bash
 +cd "$(dirname "$(readlink -f "${BASH_SOURCE[0]}")")"  # Se placer dans le répertoire du script avant exécution.
 +set -o errexit      # Arrêter l'exécution du script si une commande fait une erreur.
 +set -o nounset      # Arrêter l'exécution du script si on utilise une variable non définie.
 +set -o pipefail     # Arrêter l'exécution du script si une commande dans un pipe fait une erreur.</code>
 +    * Plus de détails : https://sharats.me/posts/shell-script-best-practices/
linux-vrac.1544100361.txt.gz · Dernière modification : 2018/12/06 12:46 de sebsauvage