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édentes Révision précédente
Prochaine révision
Révision précédente
linux-vrac [2017/11/23 20:27]
sebsauvage
linux-vrac [2018/12/10 08:49] (Version actuelle)
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>​ 
 + 
 +  * **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 21: 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 34: 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 44: 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 73: 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 211: 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 230: 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 264: 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 280: 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 289: 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 309: 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>​
 +    * **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>​
  
   * D'​autres astuces ? Voir [[mint_customization|cette page]].   * D'​autres astuces ? Voir [[mint_customization|cette page]].
 +
 +
  
linux-vrac.1511468851.txt.gz · Dernière modification: 2017/11/23 20:27 par sebsauvage