Outils pour utilisateurs

Outils du site


linux-vrac

Linux: Le gros bloc-note

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

É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.
  • apropos est votre ami:
    • Voir les outils concernant pdf présents sur votre système ?
      apropos pdf
  • Voir la progression d'une longue commande en cours:
    • Vous avez lancé un dd ou un tar très long, et vous ne savez pas où il en est ? Lancez:
      sudo progress -m
    • progress fonctionne avec cp,mv,dd,tar,gzip,7z,rsync…
  • Créer des archives compressées : Créer une archive compressée c'est simple, mais c'est toujours bon de se rappeler la syntaxe:
    • Créer une archive:
      tar cvfz archive.tgz dossier/
      • Mais si vous voulez un tar survitaminé qui va beaucoup plus vite, utilisez pigz:
        tar cvf - dossier/ | pigz > archive.tgz
      • ou:
        tar cvf archive.tgz -I pigz dossier/
      • pigz est comme gzip, mais qui fonctionne en multi-coeurs.
      • Exemple pratique: 1,1 Go de données à compresser. Avec le tar/cvfz: 43,7 secondes. Avec le tar/pigz: 16,3 secondes (!).
    • Décompresser:
      tar xvf archive.tgz
    • Exclure des types de fichiers:
      tar cvfz archive.tgz dossier/ --exclude=*.mp3
    • Exclure des répertoires:
      tar cvfz archive.tgz dossier/ --exclude=chemin/relatif
  • gzip/bzip2 beaucoup plus rapides (multi-coeurs):
    • sudo apt install pigz pbzip2
    • pigz/pbzip2 ont une syntaxe compatible avec gzip/bzip2.
    • Dans .bashrc mettre:
      alias gzip='pigz'
      alias bzip2='pbzip2'
  • Taper un É majuscule ? : Appuyez sur CapsLock puis é. Ben oui c'est tout con. Même chose pour Ç, À, Ê, È, Ô… : pensez juste à activer CapsLock.
    • Pour « et », c'est AltGr+Z et AltGr+X
  • Entrer des caractères Unicode: Ctrl+⇧ Maj+U et tapez la valeur Unicode en héxadécimal.
    • Essayez ! Ctrl+⇧ Maj+U+2705+ESPACE : ✅
  • Déplacer une fenêtre: Faites Alt+clic gauche pour déplacer une fenêtre en cliquant n'importe où à l'intérieur.
  • Voir les disques montés: C'est beaucoup plus lisible comme ça: mount | column -t
  • 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:
      sudo bash -c 'echo "vm.swappiness=10" >> /etc/sysctl.conf'
    • Rebooter pour prendre en compte, ou faire sudo sysctl -p
    • Cela va réduire la propension du système à swapper. Par défaut ce paramètre est souvent à 60, mais en 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:
      tmpfs /tmp tmpfs defaults,relatime,mode=1777,nosuid,size=4196M 0 0
      • N'hésitez pas à mettre une valeur importante pour size: tmpfs ne consomme pas de RAM tant qu'on ne met rien dedans.
      • Si les applications ont vraiment besoin de plus de RAM, tmpfs leur laissera la place en swappant ses données.
  • Voir les ports ouverts et quelles applications les ont ouverts:
    • sudo netstat -pntul
    • ou:
      sudo ss -pntul
  • Partage rapide de fichiers par HTTP : Un serveur web en 10 secondes.
    • Ouvrez un terminal dans le répertoire à partager.
    • Tapez:
      python -m SimpleHTTPServer 9988
    • Et c'est tout. Le répertoire sera accessible par http://adresseip:9988/
    • Pressez Ctrl+C pour arrêter le partage.
  • Lancer une tâche de fond avec la priorité CPU et disque minimale (afin qu'elle ralentisse le moins possible les autres programmes):
    • Ajoutez à votre .bashrc:
      alias ni='nice -n 19 ionice -c3'
    • Puis lancez n'importe quel programme en le préfixant par ni:
      ni tar cvfz monarchive.tgz monrepertoire/
  • Un programme prend trop de CPU ? Vous voulez lui limiter le pourcentage de CPU qu'il consomme ? Utilisez cpulimit:
    cpulimit -e nomDuProgramme -l 25 -b
    • -e nomDuProgramme ou -P cheminCompletDuProgramme
    • -l 25 pour 25% de CPU
    • -b pour mettre cpulimit en tâche de fond. Sans ça, il tourne en avant-plan et vous pouvez l'arrêter avec Ctrl+C (pratique pour limiter temporairement un programme)
  • Lancer un script au démarrage du système:
    • Si vous êtes sous systemd, /etc/rc.local n'est plus utilisé, donc pour que votre script shell soit lancé au démarrage du système, mettez-le par exemple dans /opt/scripts/monscript.sh, puis faites sudo crontab -e et ajoutez la ligne:
      @reboot /opt/scripts/monscript.sh
  • Tracer tous les accès d'une application à mes fichiers perso (remplacez LEPROGRAMME par votre programme):
    strace -e trace=file LEPROGRAMME 2>&1 | grep "/home" > trace.log
  • Plus puissant que strace ? sysdig (sudo apt install sysdig sysdig-dkms ; essayez: sudo sysdig proc.name=cat et de faire un cat dans une autre fenêtre).
  • Savoir quelle application verrouille un fichier ou un répertoire:
    sudo lsof | grep NOMFICHIER
  • Gestion des services par System-V, Upstart et systemd:
    • Certains services sont gérés par System-V (scripts dans /etc/init.d), d'autres par Upstart (scripts dans /etc/init) et d'autres par systemd. La plupart des distributions récentes utilisent systemd.
    • System-V:
      • Lister les services: sudo service --status-all (+ démarré, - non démarré, ? status inconnu)
      • Démarrer/arrêter un service: sudo service <servicename> start / sudo service <servicename> stop
      • Activer/désactiver un service: sudo update-rc.d <servicename> enable / sudo update-rc.d <servicename> disable
    • Upstart:
      • Lister les services: sudo initctl list
      • Démarrer/arrêter un service: sudo initctl stop <servicename> / sudo initctl start <servicename>
      • Désactiver un service: Créer un fichier <servicename>.override contenant le mot “manual”. Exemple: sudo bash -c 'echo "manual" > /etc/init/avahi-daemon.override'
    • systemd:
      • Lister les services: sudo systemctl list-unit-files --type=service
      • Démarrer/arrêter un service: sudo systemctl start <servicename> / sudo systemctl stop <servicename>
      • Activer/désactiver un service: sudo systemctl enable <servicename> / sudo systemctl disable <servicename>
  • Astuce rapide:
    • Si vous n'utilisez que des comptes locaux (et pas de comptes réseau), vous pouvez demander à systemd de ne pas attendre que le réseau soit disponible pour afficher la fenêtre de connnexion. Ça permet de gagner quelques secondes sur le démarrage: sudo systemctl disable NetworkManager-wait-online.service
  • 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 site officiel).
    • Si je veux lancer un programme en lui interdisant d'aller sur internet, je fais:
      firejail --net=none monprogramme
    • Si je veux lancer un programme en lui interdisant l'accès à mon répertoire perso: Je créé un répertoire pour cette application dans lequel je met le script shell lanceur (qui utilise firejail):
      #!/bin/bash
      SCRIPT=$(readlink -f "$0")
      DIR=$(dirname "$SCRIPT")
      cd "$DIR"
      notify-send -i info -t 5000 "Skype" "Lancement par firejail..."
      firejail --noprofile --private=. bash -c "/usr/bin/skype"
    • Le programme enregistrera ses fichiers de config dans ce répertoire, sans pouvoir accéder à mon vrai répertoire perso.
  • Calculer la MD5 de fichiers avec sous-répertoires
    • Calculer:
      nice find . -type f -print0 | xargs -0 md5sum | sort -k2 > md5sums
    • Vérifier:
      md5sum -c md5sums
  • Emporter une application sur clé USB (pour ma clé “Live” de Linux Mint que j'utilise comme clé de dépannage):
    • Booter sur la clé et se connecter au net (afin d'être dans la même configuration de paquets installés/non-installés).
    • sudo apt download filezilla par exemple: Cela va créer un fichier .tar .gz contenant tous les .deb nécessaires, ainsi que le fichier install.sh.
    • Pratique pour embarquer des logiciels comme partclone sur clé USB afin de faire des images de mes partitions.
    • A noter qu'une fois booté sur la clé, le contenu de la clé USB est accessible en lecture seule dans /cdrom (copier sur le bureau pour pouvoir utiliser).
  • Supprimer les paquets inutiles: sudo apt autoremove
  • Cache des paquets:
    • Tous les paquets installés sont en copie dans /var/cache/apt/archives/
    • Pour vider ce cache pour gagner de la place: sudo apt clean
  • Installer de nouvelles polices de caractères:
    • Copier dans ~/.fonts
    • Faire: fc-cache -fv
  • Plus de son ? Relancer pulseaudio: pulseaudio -k
  • Plus de réseau ? Redémarrer le service réseau: sudo service network-manager restart ou plus simplement (sans sudo): nmcli networking off && sleep 5 && nmcli networking on
  • Ajouter des actions dans le menu contextuel du gestionnaire de fichiers Caja (ça marche avec la plupart des gestionnaires de fichiers):
    • Déposer votre script dans ~/.config/caja/scripts/ et le rendre exécutable.
    • Faites un clic-droit sur n'importe quel fichier ou dossier > Scripts > Nom de votre script
    • Exemple:
      Compresser RAPIDEMENT en tar-gzip
      #!/bin/bash
      # Créer rapidement une archive .tar.gz
      IFS=$'\n'
       
      for FILENAME in $CAJA_SCRIPT_SELECTED_FILE_PATHS; do
       if [ -d "$FILENAME" ]; then
        tar -c "$FILENAME" | pigz -c > "$FILENAME.tar.gz"
       fi
       if [ -f "$FILENAME" ]; then
        cat "$FILENAME" | pigz -c > "$FILENAME.gz"
       fi
      done

Version un peu plus évoluée du script

Version un peu plus évoluée du script

En affichant la progression dans un terminal (sudo apt install pv xterm) et une notification de fin de compression.

Créer rapidement une archive tar-gzip
#!/bin/bash
# Créer rapidement une archive .tar.gz
IFS=$'\n'
 
for FILENAME in $CAJA_SCRIPT_SELECTED_FILE_PATHS; do
    if [ -d "$FILENAME" ]; then
        cmd="tar -c \"`basename \"$FILENAME\"`\" | pv | nice pigz -c > \"$FILENAME.tar.gz\""
        xterm -T "Compression de `basename $FILENAME`" -e /bin/bash -l -c "$cmd"
        notify-send -i info -t 20000 "Compression terminée." "`basename $FILENAME`.tar.gz"
    fi
    if [ -f "$FILENAME" ]; then
        cmd="pv \"$FILENAME\" | nice pigz -c > \"$FILENAME.gz\""
        xterm -T "Compression de `basename $FILENAME`" -e /bin/bash -l -c "$cmd"
        notify-send -i info -t 20000 "Compression terminée." "`basename $FILENAME`.gz"
    fi
done


  • Faire un backup de tout (/) en conservant les droits (vers mon disque dur externe en ext4 également):
    sudo rsync -av --owner --progress --delete --exclude-from='excludes-backup.txt' / /destination
    • Fichiers/répertoires exclus du backup:
      excludes-backup.txt
      /proc
      /sys
      /dev
      /media
      /mnt
      /cdrom
      /tmp
      /run
      /var/tmp
      /var/run
      /home/sebsauvage/.steam/steam/steamapps
      /home/sebsauvage/.local/share/Trash
      *.!qB
  • Vérifier le système de fichiers: sudo touch /forcefsck et redémarrez.
  • Vérifier (fsck) une partition VeraCrypt:
    • Monter normalement votre partition (avec le mot de passe), puis:
    • sudo umount /media/veracrypt1
      sudo fsck /dev/mapper/veracrypt1
  • Passer en clavier en QWERTY juste le temps d'un jeu (remplacez monprogramme par le nom de votre jeu ; Ce script repasse en clavier français à la fin du jeu):
    #!/bin/bash
    monprogramme &
    echo $! >/tmp/monprogramme.pid &
    /usr/bin/setxkbmap -layout us &
    pid=`cat /tmp/monprogramme.pid` &
    if wait $pid
    then
        /usr/bin/setxkbmap -layout fr
    else
        /usr/bin/setxkbmap -layout fr
    fi
  • Quelques astuces pour les jeux, voir dans cette page.
  • Traiter les images en lot ou en automatique:
    • XNViewMP a une jolie interface graphique et possède des fonctions de manipulation et conversion en masse. (à télécharger du site et installer manuellement)
    • En ligne de commande GraphickMagick est le roi (il est plus moderne et efficace qu'ImageMagick). (sudo apt install graphicsmagick ; site officiel)
  • Réinitialiser le mot de passe: Si vous avez perdu votre mot de passe utilisateur ou root et que vous voulez le réinitialiser:
    • En bootant sur la machine elle-même:
      • Accédez au menu Grub (ESC ou ⇧ Maj au démarrage).
      • Prenez le premier élément du menu, pressez E pour le modifier.
      • Entrez votre login/mot de passe Grub (si Grub est protégé par mot de passe)
      • Repérez la ligne contenant ro quiet splash et remplacez par ro quiet splash rw init=/bin/bash
      • Pressez F10 pour booter dessus.
      • Vous accédez au login root.
      • Changez votre mot de passe: passwd monlogin
    • En bootant sur un LiveCD ou clé USB:
      • Démarrez sur le LiveCD/clé USB.
      • Tapez sudo fdisk -l (ou lancez gparted) pour repérer votre partition système (Pour l'exemple, ce sera /dev/sda1).
        sudo mkdir /media/sda1
        sudo mount /dev/sda1 /media/sda1
        sudo chroot /media/sda1
        passwd monlogin
        exit
    • Corollaire: Pour plus de sécurité, protégez toujours Grub et votre BIOS par mot de passe et configurez-le pour interdire de booter ailleurs que sur le disque dur interne.
  • Réinitialiser le mot de passe Windows:
    • Cette astuce fonctionne de Windows XP jusqu'à Windows 10.
    • :!: ATTENTION: Manipulation à ne PAS effectuer si vous utilisez le chiffrement de fichiers Windows, sinon vous risquez de perdre vos fichiers !
    • Eteignez proprement Windows (pas de mode veille ou hibernation).
    • Démarrez sur une clé USB Linux (par exemple Linux Mint).
    • Montez la partition Windows, puis
      cd "/media/mint/Windows 10/Windows/System32/"
      cp Utilman.exe Utilman.exe.original
      cp cmd.exe Utilman.exe

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

    • Redémarrez sous Windows, attendez la fenêtre de login.
    • Selon les versions de Windows:
      • Cliquez sur le petit logo
      • ou pressez 5 fois la touche ⇧ Maj gauche.
      • ou pressez Win+U
    • Oh pouf ! Regardez le joli terminal qui s'affiche. Maintenant vous pouvez taper:
      • net user pour voir la liste des utilisateurs de la machine.
      • net user toto /ADD pour ajouter l'utilisateur toto.
      • net user toto * pour changer le mot de passe de toto (ou de n'importe quel autre utilisateur)
      • net localgroup pour lister les groups locaux.
      • net localgroup Administrators /ADD toto pour donner à l'utilisateur toto les droits admin.
  • NumLock activé sur l'écran de login:
    • sudo apt install numlockx
    • Centre de contrôle > Fenêtre de connexion > Options, cocher Activer NumLock.
  • Taille occupée par les dossiers:
    • En comptant les sous-dossiers mais sans les afficher:
      du --max-depth=1 -h
    • Et utilisez l'excellent ncdu !
  • Remplir l'espace vide par des zéros pour empêcher la récupération des fichiers (ou alléger une machine virtuelle):
    • Installer:
      sudo apt install secure-delete
    • Nettoyer:
      sfill -fllvz /lerépertoire
    • Pour le swap:
      sudo swapoff -a
      sudo sswap -fllvz /dev/sda5
    • Note: Le système se réservant par sécurité une partie du disque, il n'y a pas de garantie que la totalité soit effacée.
    • Autre option de nettoyage: le paquet zerofree. Notez que zerofree ne fonctionne que sur ext2/ext3/ext4 et qu'il ne travaille que sur des partitions démontées (sfill fonctionne sur une partition en cours d'utilisation).
  • Savoir quelle est votre distribution Linux:
    cat /etc/*-release
    • Exemple pour Linux Mint 19:
      DISTRIB_ID=LinuxMint
      DISTRIB_RELEASE=19
      DISTRIB_CODENAME=tara
      DISTRIB_DESCRIPTION="Linux Mint 19 Tara"
      NAME="Linux Mint"
      VERSION="19 (Tara)"
      ID=linuxmint
      ID_LIKE=ubuntu
      PRETTY_NAME="Linux Mint 19"
      VERSION_ID="19"
      HOME_URL="https://www.linuxmint.com/"
      SUPPORT_URL="https://forums.ubuntu.com/"
      BUG_REPORT_URL="http://linuxmint-troubleshooting-guide.readthedocs.io/en/latest/"
      PRIVACY_POLICY_URL="https://www.linuxmint.com/"
      VERSION_CODENAME=tara
      UBUNTU_CODENAME=bionic

      (On voit que c'est Linux Mint 19 basé sur Ubuntu Bionic Beaver, donc 18.04)

  • Informations système:
    • inxi est fantastique.
    • inxi -F vous donnera une vue d'ensemble de votre système.
    • -G pour la carte graphique, -A pour l'audio, etc. Faites un man inxi pour voir toutes les options.
    • Certaines informations (comme les numéros de série) ne remonteront qu'en lançant inxi en sudo. Exemple: numéro de série de votre ordinateur: sudo inxi -M ou encore les barettes de RAM avec leur numéro de série: sudo inxi -m -xx.
  • Pour lister tout le matériel présent dans la machine (avec numéros de série): sudo lshw
    • Et spécifiquement pour la partie réseau: sudo lshw -C network
  • Monter un répertoire distant par ssh
    • Installation:
      sudo apt install sshfs
    • Montage:
      mkdir pointdemontage
      sshfs utilisateur@machine.com: pointdemontage
      • Si vous voulez monter un répertoire distant précis:
        sshfs utilisateur@machine.com:/repertoire/distant pointdemontage
      • Si votre serveur ssh n'est pas sur un port standard:
        sshfs utilisateur@machine.com: pointdemontage -p 33000
    • Démontage:
      fusermount -u pointdemontage
  • Mise à jour de fortune (citations): fortune est un programme qui affiche des citations. Mais il n'a que de vieilles citations (2004), et la majorité en anglais. Voici comment les mettre à jour:
    • Supprimez les citations existantes: sudo rm -rf /usr/share/games/fortunes/*
    • Récupérez le fichier citation-celebre.7z (2 Mo, md5 4bf707f4d4a1af8457834d8578699a52), décompressez-le. (Il contient plus de 69000 citations, de Confucius à Les Nulls.) 1)
    • Copiez ces 2 fichiers: sudo cp citation-celebre.com* /usr/share/games/fortunes
    • Testez: fortune
    • Pour afficher une citation quand vous ouvrez un nouveau shell, vous pouvez mettre fortune directement dans votre ~/.bashrc (ou si vous préférez:fortune | cowsay)
  • Du mal à lire une clé USB, un disque externe ou une carte mémoire ? Elle est peut-être en 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
  • Faire du ménage dans vos fichiers:
    • En recherchant les fichiers en double.
      • Installez fslint: sudo apt install fslint
      • Lancez l'application: Par défaut, c'est l'onget “Duplicata” qui est sélectionné, avec votre répertoire perso.
      • Cliquez sur le bouton Rechercher en bas à gauche: Cela va rechercher les fichiers en double dans votre répertoire perso.
      • Il va vous afficher ceux qui prennent le plus de place en premier.
      • Vous pouvez sélectionner manuellement les fichiers, ou utiliser le bouton Sélectionné > Dans les groupes > Tout saut le plus récent pour sélectionner directement les fichiers redondants. Vous pouvez ensuite les supprimer.
      • Utilisez aussi l'onglet “Fichiers temporaires”.
    • En recherchant les fichiers volumineux:
      • Installez gdmap: sudo apt install gdmap et lancez-le.
      • Il permet de repérer visuellement les fichiers les plus volumineux: À l'écran, chaque rectangle représente un fichier. Plus le rectangle est grand, plus le fichier est gros. (screenshots)
      • Dans le même genre: qdirstat.
      • Vous pouvez aussi utiliser (en terminal) l'excellent ncdu.
    • En recherchant les répertoires volumineux:
      • Avec mate-disk-usage-analyzer (fourni avec Linux Mint sous le nom de “Analyseur d'utilisation des disques”).
      • Cliquez sur le bouton Analyser le dossier personnel
      • Les répertoires les plus volumineux sont affichés en premier. Vous pouvez les développer.
    • Jetez un coup d'oeil dans les répertoires suivants: Il y a peut-être des restes de fichiers de configuration de logiciels que vous avez dé-installés:
      • ~/.local/share/
      • ~/.config/
    • Je ne suis pas fan du logiciel BleachBit. Faites très attention à ce que vous faites dans ce logiciel.
  • Voir les entrées/sorties (accès disque):
    • Liste des processus actuellement en train de faire des I/O: sudo iotop -o (Notez la différence entre 'Total disk write' et 'Actual disk write': Total correspond aux demandes d'écriture effectuées par les applications (qui atterrissent alors dans le cache), et le 'Actual' qui correspond aux écritures réelles sur disque (cache vers disque).
    • En cas de gros blocage, pour voir les processus en sont en attente des I/O:
      sudo watch -n 1 "(ps aux | awk '\$8 ~ /D/  { print \$0 }')"
    • Voir aussi: iostat -d
  • Installer le logiciel Captvty sous Linux ? C'est possible !
  • Convertir un dossier de *.flac (et ses sous-répertoires) en mp3:
    find -name "*.flac" -exec ffmpeg -i {} -acodec libmp3lame -ab 128k {}.mp3 \;
  • Changer la luminosité au clavier:
    • Installez XBackLight: sudo apt install xbacklight
    • Ajoutez les raccourcis clavier:
      • Ctrl ⇧ Maj + : lancer la commande: xbacklight -inc 10
      • Ctrl ⇧ Maj - : lancer la commande: xbacklight -dec 10
  • Avoir de superbes fonds d'écran ? Prendre le logiciel Variety qui peut aller chercher des images chez Unsplash.: sudo apt install variety ou installer à la main les paquets “variety-slideshow” et “variety” (Site officiel, Paquets sur Launchpad).
  • BackInTime est une bonne solution pour faire des backups automatisés des fichiers utilisateurs. Il possède une interface graphique qui permet aux utilisateur de récupérer facilement les anciennes versions des fichiers. (sudo apt install backintime-gnome).
  • Swap sous forme de fichier:
    • À la place d'utiliser une partition de swap, on peut utiliser un fichier de swap. L'avantage est qu'on peut changer sa taille facilement sans avoir à retailler les partitions.
    • Désactiver le swap actuel: sudo swapoff -a
    • Créer un fichier de swap de 2 Go: sudo dd if=/dev/zero of=/swapfile bs=1024 count=2000000
    • Mettre les droits: sudo chmod 0600 /swapfile
    • S'assurer qu'il n'est pas fragmenté: sudo e4defrag -v /swapfile
    • Préparer le swap: sudo mkswap /swapfile
    • Activer le swap: sudo swapon /swapfile
    • Mettre dans /etc/fstab:
      /swapfile none swap sw 0 0
    • Note:
      • Si vous voulez supprimer votre partition de swap:
        • Pensez à commenter la ligne dans votre /etc/fstab.
        • Vous pouvez booter sur clé USB pour supprimer la partition avec gparted.
        • Pensez à retirer la partition du système d'hibernation pour éviter des attentes inutiles au boot:
          • Si vous voyez Gave up waiting for suspend/resume device dans /var/log/boot.log alors modifiez le fichier /etc/initramfs-tools/conf.d/resume:
            • 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:
      >fdisk -l recalbox.img
      Disque recalbox.img : 2,4 GiB, 2579489280 octets, 5038065 secteurs
      Unités : secteur de 1 × 512 = 512 octets
      Taille de secteur (logique / physique) : 512 octets / 512 octets
      taille d'E/S (minimale / optimale) : 512 octets / 512 octets
      Type d'étiquette de disque : dos
      Identifiant de disque : 0x00000000
      
      Périphérique  Amorçage  Début     Fin Secteurs Taille Id Type
      recalbox.img1            1263  132334   131072    64M  c W95 FAT32 (LBA)
      recalbox.img2          132335 5038064  4905730   2,3G 83 Linux
    • On voit qu'il y a 2 partition. La partition Linux commence à 132335. Le blocksize est de 512. La partition commence donc à 132335*512=67755520. On peut la monter en indiquant l'offset:
      mkdir temp
      sudo mount -o loop,offset=67755520 recalbox.img temp/
  • Si vous avez un disque *.img (par exemple une image destinée à cette saloperie d'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:
    VBoxManage convertdd image.img image.vdi
  • Monter un disque .vdi dans votre système : Il est possible de monter dans votre système un disque VirtualBox (*.vdi):
    • Installer les outils: sudo apt install qemu-kvm qemu-utils
    • Activer le module: sudo modprobe nbd
    • Monter le device: sudo qemu-nbd -c /dev/nbd0 disk.vdi
    • Vous pouvez voir les partitions du disque (/dev/nbd0p1, /dev/nbd0p2…):
      >sudo fdisk -l /dev/nbd0
      [...]
      Périphérique Amorçage  Début     Fin Secteurs Taille Id Type
      /dev/nbd0p1             1263  132334   131072    64M  c W95 FAT32 (LBA)
      /dev/nbd0p2           132335 4326782  4194448     2G 83 Linux
    • Vous pouvez monter une partition:
      mkdir part
      sudo mount /dev/nbd0p2 part/
    • Quand vous avez terminé:
      sudo umount /dev/nbd0p2
      qemu-nbd -d /dev/nbd0
  • Faire des images de partitions ou de disque (pour garder une copie d'une partition ou d'un disque complet: disque dur, clé USB, carte MicroSD…)
    • Si votre disque est /dev/sda, les partitions seront /dev/sda1, /dev/sda2, etc. Pour voir les partitions: sudo fdisk -l ou inxi -Po
    • Avec dd: Vous pouvez sauvegarder partitions ou disques complets.
      • dd copie “bêtement” tous les octets (y compris les secteurs où il n'y a pas de fichiers). pigz compresse comme gzip mais plus rapidement. pv permet de voir la progression.
      • Sauvegarder une partition ou un disque (en compressant):
        sudo dd if=/dev/sda2 | pv | pigz > image.dd.gz
      • (mettre /dev/sda pour sauvegarder TOUTES les partitions, y compris le MBR).
      • Restaurer:
        zcat image.dd.gz | pv | sudo dd of=/dev/sda2
    • Avec partclone: Vous pouvez sauvegarder des partitions.
      • partclone est un peu plus intelligent que dd: Il “comprend” le système de fichier et n'ira pas sauvegarder les secteurs vides. Il sera donc a priori plus rapide que dd, et générera des images plus compactes.
      • sudo apt install partclone pour installer.
      • Vous devez utiliser le partclone correspondant au système de fichier de la partition que vous voulez sauvegarder (ext4 –> partclone.ext4).
        • Voir man partclone ou apropos partclone.
        • Pour FAT (fat12/fat16/fat32), ne vous embêtez pas: Prenez partclone.vfat. Par contre pour exfat, il faut prendre partclone.exfat.
      • Sauvegarder une partition ext4 (en compressant):
        sudo partclone.ext4 -c -d -s /dev/sda2 | pigz > image.partclone.gz
      • Restaurer:
        zcat image.partclone.gz | sudo partclone.restore -d -o /dev/sda2
      • Voir les informations d'une image partclone:
        zcat image.partclone.gz | sudo partclone.info -s -
      • Vérifier une image partclone:
        zcat image.partclone.gz | sudo partclone.chkimg -s -
      • Conseil: Nommez le fichier pour vous y retrouver. Moi j'utilise NomDevice.Utilisation.partclone.TypeDeSystèmeDeFichier.gz. Exemple: sda2.HOME.partclone.ext4.gz. Je sais ainsi que c'est l'image partclone de ma partition sda2 en ext4, utilisée pour /home.
    • N'utilisez plus partimage. Il n'est pas compatible ext4.
    • Si vous avez sauvegardé les partitions individuellement, vous voudrez peut-être aussi sauvegarder le MBR (qui contient le logiciel amorce et la table de partitions):
      • Sauvegarder:
        sudo dd if=/dev/sda of=mbr.bin bs=512 count=1
      • Restaurer:
        sudo dd if=mbr.bin of=/dev/sda
    • Astuce: Pour sauvegarder sur un disque FAT32 (dont la taille limite de fichier est 4 Go), on peut découper par fichiers de 4 Go:
      • Sauvegarde:
        partclone.ext4 -c -d -s /dev/sda2 | pigz | split -d -b 4000M - image.partclone.gz.

        Cela va créer des fichiers image.partclone.gz.00, image.partclone.gz.01, etc.

      • Pour restaurer:
        cat image.partclone.gz.* | pigz -d | sudo partclone.restore -d -o /dev/sda2
  • 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, evtest-qt n'est sans doute pas dispo pour votre distribution. Vous devrez la compiler ou prendre les packages 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 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):
      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/
  • Je n'ai pas encore pris le temps de mettre le nez dedans, mais zsh a vraiment l'air d'être une tuerie ! (pour remplacer bash).
    • Autre alternative à explorer: 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:
      flock /tmp/abcd555 -c "sleep 30"
      flock /tmp/abcd555 -c "echo coucou"
1)
Le script qui a servi à pomper le site est ou .
linux-vrac.txt · Dernière modification: 2018/12/10 08:49 par sebsauvage