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
Prochaine révisionLes deux révisions suivantes
linux-vrac [2018/11/09 14:08] sebsauvagelinux-vrac [2019/04/18 09:39] sebsauvage
Ligne 1: Ligne 1:
 ====== Linux: Le gros bloc-note ====== ====== Linux: Le gros bloc-note ======
  
-Je note dans cette page, **en vrac**, diverses astuces pour Linux. Oui, //vraiment// en vrac. Certaines évidentes, d'autres un peu moins. Ça me sert de bloc-note. Et je le publie: On ne sait jamais, ça pourrait aider d'autres personnes. Certaines astuces peuvent être spécifiques à une distribution. Certaines de ces astuces sont reprises de ma page [[mint_customization|Linux Mint]].+Je note dans cette page, **en vrac**, diverses astuces pour Linux. Certaines évidentes, d'autres un peu moins. Ça me sert de bloc-note. Et je le publie: On ne sait jamais, ça pourrait aider d'autres personnes. Certaines astuces peuvent être spécifiques à une distribution.
  
-<note>Étant donnée la grande variété des distributions et environnements de bureau, il est possible que certaines astuces dans cette page ne fonctionnent pas avec votre distribution. J'utilise Linux Mint.</note>+<note>Étant donnée la grande variété des distributions et environnements de bureau, il est possible que certaines astuces dans cette page ne fonctionnent pas avec votre distribution.</note> 
 + 
 +  * **//apropos// est votre ami**: 
 +    * Voir les outils concernant pdf présents sur votre système ? <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. 
 + 
 + - 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> 
 + 
 +  * **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> 
 +    * //progress// fonctionne avec cp,mv,dd,tar,gzip,7z,rsync... 
 + 
 +  * **Créer des archives compressées** : Créer une archive compressée c'est simple, mais c'est toujours bon de se rappeler la syntaxe: 
 +    * Créer une archive: <code bash>tar cvfz archive.tgz dossier/</code> 
 +      * Mais si vous voulez un **tar survitaminé** qui va //beaucoup// plus vite, utilisez pigz:<code bash>tar cvf - dossier/ | pigz > archive.tgz</code> 
 +      * ou:<code bash>tar cvf archive.tgz -I pigz dossier/</code> 
 +      * //pigz// est comme //gzip//, mais qui fonctionne en multi-coeurs. 
 +      * Exemple pratique: 1,1 Go de données à compresser. Avec le tar/cvfz: 43,7 secondes. Avec le tar/pigz: 16,3 secondes (!). 
 +    * Décompresser:<code bash>tar xvf archive.tgz</code> 
 +    * Exclure des types de fichiers: <code bash>tar cvfz archive.tgz dossier/ --exclude=*.mp3</code> 
 +    * Exclure des répertoires: <code bash>tar cvfz archive.tgz dossier/ --exclude=chemin/relatif</code> 
 + 
 +  * **gzip/bzip2 //beaucoup plus rapides//** (multi-coeurs): 
 +    * ''sudo apt install pigz pbzip2'' 
 +    * pigz/pbzip2 ont une syntaxe compatible avec gzip/bzip2. 
 +    * Dans ''.bashrc'' mettre:<code bash>alias gzip='pigz' 
 +alias bzip2='pbzip2'</code> 
 + 
 +  * **Besoin de compresser un répertoire le plus rapidement possible ?** 
 +    * Au lieu d'utiliser tar avec gzip/pigz, prenez lzo. Il est //extrêmement// rapide. 
 +    * 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.
 +    * 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 points de montage**: C'est beaucoup plus lisible comme ça: ''mount |column -t''+  * **Voir les disques montés**: C'est beaucoup plus lisible comme ça: ''mount | column -t'' 
 +    * Encore plus lisible ? Essayez ''findmnt'' : il va tout afficher de manière hiérarchique. 
 +  * **Voir les disques/partitions montables**: Plusieurs possibilités:  
 +    * ''lsblk'' 
 +    * ''sudo fdisk -l'' 
 +    * ''sudo inxi -Po'' 
 +    * ''sudo gparted'' (outils graphique) 
 + 
 +  * **Réduction de l'utilisation du swap (1)** 
 +    * Faire:<code bash>sudo bash -c 'echo "vm.swappiness=10" >> /etc/sysctl.conf'</code> 
 +    * 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. 
 +  * **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''). 
 +    * C'est tellement efficace, que sur une machine avec 4 Go de RAM sur laquelle on lance plein de programmes au point d'atteindre 1,1 Go de swap utilisé, //aucun octet n'a commencé à être écrit dans le swap sur disque !// 
 +    * zram est utile quelle que soit la quantité de RAM que vous avez en réduisant à néant les lectures/écritures dans le swap disque. Le swap zram est infiniment plus rapide qu'un swap disque (quel que soit votre type de disque) et cela réduit l'usure des SSD. 
 + 
 +  * **/tmp en tmpfs**: 
 +    * Afin d'éviter les écritures inutiles sur disque, je vous recommande chaudement de mapper votre répertoire /tmp en tmpfs au lieu du disque //même si vous n'avez pas beaucoup de mémoire vive// (oui, même juste 1 Go). Si vous avez un disque dur c'est plus rapide et si vous avez un SSD, ça réduit son usure. Ajoutez à votre ''/etc/fstab'':<code>tmpfs /tmp tmpfs defaults,relatime,mode=1777,nosuid,size=4196M 0 0</code> 
 +      * N'hésitez pas à mettre une valeur importante pour //size//: tmpfs ne consomme pas de RAM tant qu'on ne met rien dedans.  
 +      * Si les applications ont vraiment besoin de plus de RAM, tmpfs leur laissera la place en swappant ses données. 
 + 
 +  * **Voir les ports ouverts** et quelles applications les ont ouverts: 
 +    * <code bash>sudo netstat -pntul</code> 
 +    * ou:<code bash>sudo ss -pntul</code>
  
   * **Partage rapide de fichiers par HTTP** : Un serveur web en 10 secondes.   * **Partage rapide de fichiers par HTTP** : Un serveur web en 10 secondes.
Ligne 21: Ligne 106:
     * 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>
 +    * ''-e nomDuProgramme'' ou ''-P cheminCompletDuProgramme''
 +    * ''-l 25'' pour 25% de CPU
 +    * ''-b'' pour mettre cpulimit en tâche de fond. Sans ça, il tourne en avant-plan et vous pouvez l'arrêter avec <key>Ctrl-c</key> (pratique pour limiter temporairement un programme)
  
   * **Lancer un script au démarrage du système**:   * **Lancer un script au démarrage du système**:
Ligne 26: Ligne 116:
  
   * **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>   * **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).
 +
 +  * **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**:   * **Gestion des services par System-V, Upstart et systemd**:
Ligne 44: Ligne 137:
   * **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:   * **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]]).
-    * Je créé un répertoire pour cette application dans lequel je met le script shell lanceur (qui utilise firejail):<code bash>#!/bin/bash+    * 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 l'accès à mon répertoire perso: Je créé un répertoire pour cette application dans lequel je met le script shell lanceur (qui utilise firejail):<code bash>#!/bin/bash
 SCRIPT=$(readlink -f "$0") SCRIPT=$(readlink -f "$0")
 DIR=$(dirname "$SCRIPT") DIR=$(dirname "$SCRIPT")
Ligne 54: Ligne 150:
 firejail --noprofile --private=. bash -c "/usr/bin/skype"</code> firejail --noprofile --private=. bash -c "/usr/bin/skype"</code>
     * 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.
-    * Si je veux interdire au programme d'aller sur le net, j'ajoute ''%%--net=none%%'' à la ligne de commande firejail. 
- 
-  * **Mini-mémo tar** (bah oui, quoi !) 
-    * Créer une archive: ''tar cvfz archive.tar.gz répertoire/'' 
-    * Créer une archive //beaucoup plus vite// : ''tar cv répertoire/ | pigz > archive.tar.gz'' 
-      * Pensez à installer: ''sudo apt intall pigz'' 
-    * Décompresser: ''tar xvf archive.tar.gz'' 
-    * Exclure des types de fichiers: ''%%tar cvfz archive.tar.gz répertoire/ --exclude=*.mp3%%'' 
-    * Exclure des répertoires: ''%%tar cvfz archive.tar.gz répertoire/ --exclude=chemin/relatif%%'' 
  
   * **Calculer la MD5 de fichiers avec sous-répertoires**   * **Calculer la MD5 de fichiers avec sous-répertoires**
Ligne 83: Ligne 170:
     * Copier dans ''~/.fonts''     * Copier dans ''~/.fonts''
     * Faire: ''fc-cache -fv''     * Faire: ''fc-cache -fv''
- 
-  * **gzip/bzip2 //beaucoup plus rapides//** (multi-coeurs): 
-    * ''sudo apt install pigz pbzip2'' 
-    * Dans mon .bashrc, mettre:<code bash>alias gzip='pigz' 
-alias bzip2='pbzip2'</code> 
- 
-  * **Image/clonage d'une partition ext4** (en bootant sur clé USB): 
-    * ''sudo apt install partclone'' (ou ''sudo apt download partclone'' pour l'emporter sur clé USB). partclone est plus intelligent que ''dd'' car il comprendre la structure des systèmes de fichiers (il ne sauvegardera pas les secteurs vides, ce qui le rend bien plus rapide). 
-    * Créer une image (compressée): <code bash>partclone.ext4 -c -d -s /dev/sda1 | gzip -c1 > sda1.SYSTEM.partclone.ext4.gz</code> 
-    * Restaurer une image: <code bash>zcat sda1.SYSTEM.partclone.ext4.gz | partclone.ext4 -d -r -o /dev/sda1</code> 
-    * Et partclone supporte aussi ext2, ext3, ntfs, etc.: Faire ''apropos partclone'' 
-    * ''gzip -c1'' pour compresser le plus vite possible, ''-c9'' pour compresser mieux. Ne pas hésiter à remplacer ''gzip'' par ''pigz'' (nettement plus rapide). 
  
   * **Plus de son ?** Relancer pulseaudio: ''pulseaudio -k''   * **Plus de son ?** Relancer pulseaudio: ''pulseaudio -k''
Ligne 277: Ligne 352:
   * **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).   * **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''
- 
-  * **Réduction de l'utilisation du swap (1)** 
-    * Faire:<code bash>sudo bash -c 'echo "vm.swappiness=10" >> /etc/sysctl.conf'</code> 
-    * Rebooter pour prendre en compte, ou faire ''sudo sysctl -p'' 
-  * **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. 
  
   * **Faire du ménage dans vos fichiers**:   * **Faire du ménage dans vos fichiers**:
Ligne 295: Ligne 364:
       * Installez //gdmap//: ''sudo apt install gdmap'' et lancez-le.       * Installez //gdmap//: ''sudo apt install gdmap'' et lancez-le.
       * Il permet de repérer visuellement les fichiers les plus volumineux: À l'écran, chaque rectangle représente un fichier. Plus le rectangle est grand, plus le fichier est gros. ([[http://gdmap.sourceforge.net/|screenshots]])       * Il permet de repérer visuellement les fichiers les plus volumineux: À l'écran, chaque rectangle représente un fichier. Plus le rectangle est grand, plus le fichier est gros. ([[http://gdmap.sourceforge.net/|screenshots]])
 +      * Dans le même genre: //qdirstat//.
       * Vous pouvez aussi utiliser (en terminal) l'excellent ''ncdu''.       * Vous pouvez aussi utiliser (en terminal) l'excellent ''ncdu''.
     * En recherchant les **répertoires volumineux**:     * En recherchant les **répertoires volumineux**:
Ligne 314: Ligne 384:
     * 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).     * 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).
     * 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>   * 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 362: Ligne 435:
     * 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'').
- 
-  * 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'' 
-    * ''-l 25'' pour 25% de CPU 
-    * ''-b'' pour mettre cpulimit en tâche de fond. Sans ça, il tourne en avant-plan et vous pouvez l'arrêter avec <key>Ctrl-c</key> (pratique pour limiter temporairement un programme) 
- 
-  * 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 VirtuaBox, vous pouvez le convertir en *.vdi:<code>VBoxManage convertdd image.img image.vdi</code> 
  
   * **Monter un fichier *.img** (comme, par exemple, un fichier img de RecalBox)   * **Monter un fichier *.img** (comme, par exemple, un fichier img de RecalBox)
 +    * Dans l'explorateur de fichier de certaines distributions, pour pouvez faire un clic-droit sur un fichier .img pour le monter, mais il sera monté en lecture seule. Pour le monter en lecture/écriture:
     * Un fichier img peut contenir plusieurs partitions. Pour connaître les partitions faites: ''fdisk -l fichier.img''. Par exemple pour RecalBox:<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
 Disque recalbox.img : 2,4 GiB, 2579489280 octets, 5038065 secteurs Disque recalbox.img : 2,4 GiB, 2579489280 octets, 5038065 secteurs
Ligne 384: Ligne 451:
     * On voit qu'il y a 2 partition. La partition Linux commence à 132335. Le blocksize est de 512. La partition commence donc à 132335*512=67755520. On peut la monter en indiquant l'offset:<code>mkdir temp     * On voit qu'il y a 2 partition. La partition Linux commence à 132335. Le blocksize est de 512. La partition commence donc à 132335*512=67755520. On peut la monter en indiquant l'offset:<code>mkdir temp
 sudo mount -o loop,offset=67755520 recalbox.img temp/</code> sudo mount -o loop,offset=67755520 recalbox.img temp/</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):
 +    * Installer les outils: ''sudo apt install qemu-kvm qemu-utils''
 +    * Activer le module: ''sudo modprobe nbd''
 +    * Monter le device: ''sudo qemu-nbd -c /dev/nbd0 disk.vdi''
 +    * Vous pouvez voir les partitions du disque (/dev/nbd0p1, /dev/nbd0p2...): <code>>sudo fdisk -l /dev/nbd0
 +[...]
 +Périphérique Amorçage  Début     Fin Secteurs Taille Id Type
 +/dev/nbd0p1             1263  132334   131072    64M  c W95 FAT32 (LBA)
 +/dev/nbd0p2           132335 4326782  4194448     2G 83 Linux</code>
 +    * Vous pouvez monter une partition: <code>mkdir part
 +sudo mount /dev/nbd0p2 part/</code>
 +    * Quand vous avez terminé:<code>sudo umount /dev/nbd0p2
 +qemu-nbd -d /dev/nbd0</code>
 +
 +
 +  * **Faire des images de partitions ou de disque** (pour garder une copie d'une partition ou d'un disque complet: disque dur, clé USB, carte MicroSD...)
 +    * Si votre disque est /dev/sda, les partitions seront /dev/sda1, /dev/sda2, etc. Pour voir les partitions: ''sudo fdisk -l'' ou ''inxi -Po''
 +    * **Avec dd**: Vous pouvez sauvegarder partitions ou disques complets.
 +      * ''dd'' copie "bêtement" tous les octets (y compris les secteurs où il n'y a pas de fichiers). ''pigz'' compresse comme ''gzip'' mais plus rapidement. ''pv'' permet de voir la progression.
 +      * Sauvegarder une partition ou un disque (en compressant): <code bash>sudo dd if=/dev/sda2 | pv | pigz > image.dd.gz</code>
 +      * (mettre /dev/sda pour sauvegarder TOUTES les partitions, y compris le MBR).
 +      * Restaurer: <code bash>zcat image.dd.gz | pv | sudo dd of=/dev/sda2</code>
 +    * **Avec partclone**: Vous pouvez sauvegarder des partitions.
 +      * ''partclone'' est un peu plus intelligent que ''dd'': Il "comprend" le système de fichier et n'ira pas sauvegarder les secteurs vides. Il sera donc a priori plus rapide que dd, et générera des images plus compactes.
 +      * ''sudo apt install partclone'' pour installer.
 +      * Vous devez utiliser le partclone correspondant au système de fichier de la partition que vous voulez sauvegarder (ext4 --> partclone.ext4).
 +        * Voir ''man partclone'' ou ''apropos partclone''.
 +        * Pour FAT (fat12/fat16/fat32), ne vous embêtez pas: Prenez ''partclone.vfat''. Par contre pour exfat, il faut prendre partclone.exfat.
 +      * Sauvegarder une partition ext4 (en compressant): <code bash>sudo partclone.ext4 -c -d -s /dev/sda2 | pigz > image.partclone.gz</code>
 +      * Restaurer: <code bash>zcat image.partclone.gz | sudo partclone.restore -d -o /dev/sda2</code>
 +      * Voir les informations d'une image partclone:<code bash>zcat image.partclone.gz | sudo partclone.info -s -</code>
 +      * Vérifier une image partclone:<code bash>zcat image.partclone.gz | sudo partclone.chkimg -s -</code>
 +      * Conseil: Nommez le fichier pour vous y retrouver. Moi j'utilise //NomDevice.Utilisation.partclone.TypeDeSystèmeDeFichier.gz//. Exemple: //sda2.HOME.partclone.ext4.gz//. Je sais ainsi que c'est l'image partclone de ma partition sda2 en ext4, utilisée pour ///home//.
 +    * N'utilisez plus ''partimage''. Il n'est pas compatible ext4.
 +    * Si vous avez sauvegardé les partitions individuellement, vous voudrez peut-être aussi sauvegarder le MBR (qui contient le logiciel amorce et la table de partitions):
 +      * Sauvegarder:<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>
 +    * **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>
 +
 +  * 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]].
 +
 +  * Besoin d'exécuter un script shell qui se trouve sur un disque FAT/NTFS, mais impossible de faire un ''chmod +x'' justement parce que vous êtes sur FAT/NTFS ?  Lancez-le simplement en faisant: ''bash ./script.sh''
 +
 +  * **Faire un backup de votre smartphone Android par ssh+rsync**:
 +    * À partir du moment où votre smartphone et votre ordinateur sont sur le même réseau local, //rsync// est très efficace pour synchroniser des répertoires. Heureusement pour nous, il existe sous Android des serveurs ssh incluant un serveur rsync, comme [[https://play.google.com/store/apps/details?id=com.arachnoid.sshelper|SSHelper]].
 +    * Voici un exemple de script de sauvegarde (avec dans l'exemple: Login automatique par mot de passe, utilisation d'un port ssh non standard et liste de types de fichiers et répertoires à exclure):<file bash backup-smartphone.sh>#!/bin/bash
 +# Backup de la mémoire interne du téléphone:
 +sshpass -p 'motdepasse' rsync -av --no-p -zz --progress --delete login@192.168.0.3:/sdcard/ -e "ssh -p 2222" ~/backup-smartphone/internal/
 +# Backup de la carte MicroSD
 +sshpass -p 'motdepasse' rsync -av --no-p -zz --progress --delete login@192.168.0.3:/storage/0000-0000/ -e "ssh -p 2222" --exclude={'.android_secure','*.obf','*.mwm',Music,Android/data/com.earthflare.android.radioparadisewidget.gpv2/cache/} ~/backup-smartphone/sdcard/
 +</file>
 +
 +  * Il est assez facile de [[linux-partage-ethernet|partager une connexion Ethernet en WiFi]] ou se créé un hotspot WiFi (par exemple juste entre votre smartphone et votre ordinateur).
 +
 +  * Vous êtes chez FreeMobile ? Voici comment [[linux-sms|envoyer automatiquement (et gratuitement) des SMS lors de certains événements dans les logs]].
 +
 +  * **Backup ?** [[borgbackup|BorgBackup]] est un logiciel de backup remarquablement efficace. Je l'utilise dans [[disque_externe|ma procédure de backup personnelle]].
 +
 +  * Je n'ai pas encore pris le temps de mettre le nez dedans, mais //[[https://www.synbioz.com/blog/astuces_zsh_installer_et_comprendre_oh_my_zsh|zsh]]// a vraiment l'air d'être une tuerie ! (pour remplacer //bash//).
 +    * 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.
 +    * 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>
 +
 +  * 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.
 +
 +  * **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>
 +
 +  * **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>
 +
 +  * **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>
 +
 +  * **Youtube-dl** est un fantastique logiciel pour télécharger une vidéo qui vous intéresse. Il supporte YouTube, Vimeo et des centaines de sites (arte.tv, etc.).
 +    * Exemple: Mettez juste l'URL de la page, et il vous télécharge la vidéo dans la meilleure qualité: <code>youtube-dl https://www.youtube.com/watch?v=dQw4w9WgXcQ</code>
 +    * Mais souvent, les distributions Linux n'ont que de vieilles versions, donc je vous recommande d'installer à la main la dernière version:
 +      * Dé-installez celle fournie avec votre distribution (''sudo apt purge youtube-dl'')
 +      * Installez la dernière version:<code>sudo curl -L https://yt-dl.org/downloads/latest/youtube-dl -o /usr/local/bin/youtube-dl
 +sudo chmod a+rx /usr/local/bin/youtube-dl</code>
 +    * De temps en temps, pensez à la mettre à jour:<code>sudo youtube-dl -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>
  
   * D'autres astuces ? Voir [[mint_customization|cette page]].   * D'autres astuces ? Voir [[mint_customization|cette page]].
linux-vrac.txt · Dernière modification : 2024/01/30 14:32 de sebsauvage