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 [2017/11/23 10:45] sebsauvagelinux-vrac [2018/12/06 12:46] 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.</note> 
 + 
 +  * **//apropos// est votre ami**: 
 +    * Voir les outils concernant pdf présents sur votre système ? <code bash>apropos pdf</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>
  
   * **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.
  
-  * Dans certaines distributions, vous pouvez customiser l'écran de connexion à votre convenance. Par exemple sous Linux Mintallez jeter un coup d'oeil dans ''/usr/share/mdm/html-themes/''Ouice sont juste des pages html !+  * **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''
 + 
 +  * **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 à 60mais 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 disqueje 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 19: Ligne 66:
     * 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**:
 +    * 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>   * **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).
  
-  * **Gestion des services par System-V et Upstart**: +  * **Savoir quelle application verrouille un fichier ou un répertoire**:<code bash>sudo lsof | grep NOMFICHIER</code> 
-    * Certains services sont gérés par System-V (scripts dans ''/etc/init.d''), d'autres par Upstart (scripts dans ''/etc/init'')+ 
 +  * **Gestion des services par System-VUpstart et systemd**: 
 +    * Certains services sont gérés par System-V (scripts dans ''/etc/init.d''), d'autres par Upstart (scripts dans ''/etc/init''et d'autres par systemd. La plupart des distributions récentes utilisent systemd.
     * System-V:     * System-V:
       * Lister les services: ''%%sudo service --status-all%%''  (+ démarré, - non démarré, ? status inconnu)       * Lister les services: ''%%sudo service --status-all%%''  (+ démarré, - non démarré, ? status inconnu)
Ligne 32: Ligne 90:
       * Démarrer/arrêter un service: ''sudo initctl stop <servicename>''  /  ''sudo initctl start <servicename>''        * Démarrer/arrêter un service: ''sudo initctl stop <servicename>''  /  ''sudo initctl start <servicename>'' 
       * Désactiver un service:  Créer un fichier ''<servicename>.override'' contenant le mot "manual". Exemple:  ''%%sudo bash -c 'echo "manual" > /etc/init/avahi-daemon.override'%%''       * Désactiver un service:  Créer un fichier ''<servicename>.override'' contenant le mot "manual". Exemple:  ''%%sudo bash -c 'echo "manual" > /etc/init/avahi-daemon.override'%%''
 +    * systemd:
 +      * Lister les services: ''%%sudo systemctl list-unit-files --type=service%%''
 +      * Démarrer/arrêter un service: ''sudo systemctl start <servicename>''  /  ''sudo systemctl stop <servicename>'' 
 +      * Activer/désactiver un service: ''sudo systemctl enable <servicename>''  /  ''sudo systemctl disable <servicename>''
 +
 +  * **Astuce rapide**:
 +    * Si vous n'utilisez que des comptes locaux (et pas de comptes réseau), vous pouvez demander à systemd de ne pas attendre que le réseau soit disponible pour afficher la fenêtre de connnexion. Ça permet de gagner quelques secondes sur le démarrage: ''sudo systemctl disable NetworkManager-wait-online.service''
  
   * **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 42: Ligne 108:
 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 71: Ligne 128:
     * 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''
  
-  * **Plus de réseau ?** Redémarrer le service réseau: ''sudo service NetworkManager 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''
-    * Sous d'anciennes versions de Linux Mint: ''sudo service network-manager restart''+
  
   * Ajouter des actions dans le **menu contextuel du gestionnaire de fichiers Caja** (ça marche avec la plupart des gestionnaires de fichiers):   * Ajouter des actions dans le **menu contextuel du gestionnaire de fichiers Caja** (ça marche avec la plupart des gestionnaires de fichiers):
Ligne 209: Ligne 253:
     * Centre de contrôle > Fenêtre de connexion > Options, cocher Activer NumLock.     * Centre de contrôle > Fenêtre de connexion > Options, cocher Activer NumLock.
  
-  * **Installation d'Oracle Java 8 (JRE/JDK)**: Si vous voulez utiliser la version d'Oracle de Java au lieu d'OpenJDK: +  * **Taille occupée par les dossiers**
-    * Installation:<code bash>sudo add-apt-repository ppa:webupd8team/java +    * En comptant les sous-dossiers mais sans les afficher:<code bash>du --max-depth=1 -h</code> 
-sudo apt update +    * Et utilisez l'excellent ''ncdu'' !
-sudo apt install oracle-java8-installer</code> +
-    * Définition comme JRE par défaut:<code bash>sudo apt-get install oracle-java8-set-default</code> +
-    * Vérification de version:<code bashcode>java -version</code> +
-    * et <code bash>javac -version</code> +
- +
-  * **Taille occupée par les dossiers**, en comptant les sous-dossiers mais sans les afficher:<code bash>du --max-depth=1 -h</code>+
  
   * **Remplir l'espace vide par des zéros** pour empêcher la récupération des fichiers (ou alléger une machine virtuelle):   * **Remplir l'espace vide par des zéros** pour empêcher la récupération des fichiers (ou alléger une machine virtuelle):
Ligne 228: Ligne 266:
  
   * **Savoir quelle est votre distribution Linux**:<code bash>cat /etc/*-release</code>   * **Savoir quelle est votre distribution Linux**:<code bash>cat /etc/*-release</code>
-    * Exemple pour Linux Mint 17.3:<code>DISTRIB_ID=LinuxMint +    * Exemple pour Linux Mint 19:<code>DISTRIB_ID=LinuxMint 
-DISTRIB_RELEASE=17.3 +DISTRIB_RELEASE=19 
-DISTRIB_CODENAME=rosa +DISTRIB_CODENAME=tara 
-DISTRIB_DESCRIPTION="Linux Mint 17.3 Rosa+DISTRIB_DESCRIPTION="Linux Mint 19 Tara
-NAME="Ubuntu+NAME="Linux Mint
-VERSION="14.04.3 LTS, Trusty Tahr+VERSION="19 (Tara)
-ID=ubuntu +ID=linuxmint 
-ID_LIKE=debian +ID_LIKE=ubuntu 
-PRETTY_NAME="Ubuntu 14.04.3 LTS+PRETTY_NAME="Linux Mint 19
-VERSION_ID="14.04+VERSION_ID="19
-HOME_URL="http://www.ubuntu.com/" +HOME_URL="https://www.linuxmint.com/" 
-SUPPORT_URL="http://help.ubuntu.com/" +SUPPORT_URL="https://forums.ubuntu.com/" 
-BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/"</code>(On voit que c'est Linux Mint 17.3 basé sur Ubuntu 14.04)+BUG_REPORT_URL="http://linuxmint-troubleshooting-guide.readthedocs.io/en/latest/" 
 +PRIVACY_POLICY_URL="https://www.linuxmint.com/" 
 +VERSION_CODENAME=tara 
 +UBUNTU_CODENAME=bionic 
 +</code>(On voit que c'est Linux Mint 19 basé sur Ubuntu Bionic Beaver, donc 18.04) 
 + 
 +  * **Informations système**: 
 +    * ''inxi'' est fantastique. 
 +    * ''inxi -F'' vous donnera une vue d'ensemble de votre système. 
 +    * ''-G'' pour la carte graphique, ''-A'' pour l'audio, etc.  Faites un ''man inxi'' pour voir toutes les options. 
 +    * Certaines informations (comme les numéros de série) ne remonteront qu'en lançant inxi en //sudo//. Exemple: numéro de série de votre ordinateur: ''sudo inxi -M'' ou encore les barettes de RAM avec leur numéro de série: ''sudo inxi -m -xx''.
  
   * Pour **lister tout le matériel présent** dans la machine (avec numéros de série): ''sudo lshw''   * Pour **lister tout le matériel présent** dans la machine (avec numéros de série): ''sudo lshw''
Ligne 262: Ligne 310:
   * **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** 
-    * Faire:<code bash>sudo bash -c 'echo "vm.swappiness=10" >> /etc/sysctl.conf'</code> 
-    * Rebooter pour prendre en compte, ou faire ''sudo sysctl -p'' 
  
   * **Faire du ménage dans vos fichiers**:   * **Faire du ménage dans vos fichiers**:
Ligne 278: Ligne 322:
       * 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''.
     * En recherchant les **répertoires volumineux**:     * En recherchant les **répertoires volumineux**:
       * Avec //mate-disk-usage-analyzer// (fourni avec Linux Mint sous le nom de "//Analyseur d'utilisation des disques//").       * Avec //mate-disk-usage-analyzer// (fourni avec Linux Mint sous le nom de "//Analyseur d'utilisation des disques//").
Ligne 287: Ligne 333:
     * 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.
  
-  * Un éditeur visuel de crontab: http://corntab.com/+  * Des éditeurs de crontab: 
 +    * http://corntab.com/ 
 +    * http://www.crontabgenerator.com/ 
 +    * https://crontab.guru/ 
 +    * https://blog.shevarezo.fr/post/2018/08/28/gerer-taches-cron-interface-graphique-crontab-ui
  
   * **Voir les entrées/sorties (accès disque)**:   * **Voir les entrées/sorties (accès disque)**:
Ligne 307: Ligne 357:
  
   * //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**:
 +    * À la place d'utiliser une partition de swap, on peut utiliser un fichier de swap. L'avantage est qu'on peut changer sa taille facilement sans avoir à retailler les partitions.
 +    * Désactiver le swap actuel: ''sudo swapoff -a''
 +    * Créer un fichier de swap de 2 Go: ''sudo dd if=/dev/zero of=/swapfile bs=1024 count=2000000''
 +    * Mettre les droits: ''sudo chmod 0600 /swapfile''
 +    * S'assurer qu'il n'est pas fragmenté: ''sudo e4defrag -v /swapfile''
 +    * Préparer le swap: ''sudo mkswap /swapfile''
 +    * Activer le swap: ''sudo swapon /swapfile''
 +    * Mettre dans ''/etc/fstab'':<code>/swapfile none swap sw 0 0</code>
 +    * Note:
 +      * Si vous voulez supprimer votre partition de swap:
 +        * Pensez à commenter la ligne dans votre /etc/fstab.
 +        * Vous pouvez booter sur clé USB pour supprimer la partition avec gparted.
 +        * Pensez à retirer la partition du système d'hibernation pour éviter des attentes inutiles au boot:
 +          * Si vous voyez ''Gave up waiting for suspend/resume device'' dans ''/var/log/boot.log'' alors modifiez le fichier ''/etc/initramfs-tools/conf.d/resume'':
 +            * Là où il y a ''RESUME=UUID=388a79ac-27b7-42f5-ac13-...'' remplacez par ''RESUME=none''
 +            * puis faites: ''sudo update-initramfs -u''
 +
 +  * **Allonger l'autonomie**
 +    * ''sudo apt install tlp''
 +    * tlp va changer des réglages système quand vous passez de secteur à batterie (et inversement). Les réglages par défaut sont excellents.
 +    * ''man tlp'' ou voir le fichier ''/etc/default/tlp'' pour changer les réglages.
 +    * Si vous utilisez //tlp//, //powertop// n'est plus utile.
 +
 +  * Besoin de **capturer une vidéo de l'écran ?**
 +    * Kazam marche très bien, même pour capturer un jeu vidéo en plein écran. ''sudo apt install kazam''
 +    * Capture de tout ou partie de l'écran au format MP4(h264)/WebM(VP8)/AVI, avec ou sans le son (source: sortie audio et/ou micro).
 +
 +  * **Gestion des sessions utilisateur**:
 +    * Voir qui est logué: ''w''
 +    * Désactiver temporairement un utilisateur: ''sudo vipw'' et mettre un ''#'' devant son login.
 +    * Déloguer de force un utilisateur: ''sudo pkill -u utilisateur mate-session'' (mate-session ou le processus visible quand vous faites ''w'').
 +
 +  * **Monter un fichier *.img** (comme, par exemple, un fichier img de RecalBox)
 +    * Dans l'explorateur de fichier de certaines distributions, pour pouvez faire un clic-droit sur un fichier .img pour le monter, mais il sera monté en lecture seule. Pour le monter en lecture/écriture:
 +    * Un fichier img peut contenir plusieurs partitions. Pour connaître les partitions faites: ''fdisk -l fichier.img''. Par exemple pour RecalBox:<code>>fdisk -l recalbox.img
 +Disque recalbox.img : 2,4 GiB, 2579489280 octets, 5038065 secteurs
 +Unités : secteur de 1 × 512 = 512 octets
 +Taille de secteur (logique / physique) : 512 octets / 512 octets
 +taille d'E/S (minimale / optimale) : 512 octets / 512 octets
 +Type d'étiquette de disque : dos
 +Identifiant de disque : 0x00000000
 +
 +Périphérique  Amorçage  Début     Fin Secteurs Taille Id Type
 +recalbox.img1            1263  132334   131072    64M  c W95 FAT32 (LBA)
 +recalbox.img2          132335 5038064  4905730   2,3G 83 Linux</code>
 +    * 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>
 +
 +  * 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>
 +
 +  * 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>
  
   * 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