Outils pour utilisateurs

Outils du site


linux-vrac

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 Linux Mint.

  • 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
  • Déplacer une fenêtre: Faites Alt+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 Mint, allez jeter un coup d'oeil dans /usr/share/mdm/html-themes/. Oui, ce sont juste des pages html !
  • 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/
  • 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
  • Gestion des services par System-V et Upstart:
    • Certains services sont gérés par System-V (scripts dans /etc/init.d), d'autres par Upstart (scripts dans /etc/init)
    • 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'
  • 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).
    • 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.
    • 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:
      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
  • gzip/bzip2 beaucoup plus rapides (multi-coeurs):
    • sudo apt install pigz pbzip2
    • Dans mon .bashrc, mettre:
      alias gzip='pigz'
      alias bzip2='pbzip2'
  • 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):
      partclone.ext4 -c -d -s /dev/sda1 | gzip -c1 > sda1.SYSTEM.partclone.ext4.gz
    • Restaurer une image:
      zcat sda1.SYSTEM.partclone.ext4.gz | partclone.ext4 -d -r -o /dev/sda1
    • 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 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
    • 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):
    • 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.
  • Installation d'Oracle Java 8 (JRE/JDK): Si vous voulez utiliser la version d'Oracle de Java au lieu d'OpenJDK:
    • Installation:
      sudo add-apt-repository ppa:webupd8team/java
      sudo apt update
      sudo apt install oracle-java8-installer
    • Définition comme JRE par défaut:
      sudo apt-get install oracle-java8-set-default
    • Vérification de version:
      java -version
    • et
      javac -version
  • Taille occupée par les dossiers, en comptant les sous-dossiers mais sans les afficher:
    du --max-depth=1 -h
  • 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 17.3:
      DISTRIB_ID=LinuxMint
      DISTRIB_RELEASE=17.3
      DISTRIB_CODENAME=rosa
      DISTRIB_DESCRIPTION="Linux Mint 17.3 Rosa"
      NAME="Ubuntu"
      VERSION="14.04.3 LTS, Trusty Tahr"
      ID=ubuntu
      ID_LIKE=debian
      PRETTY_NAME="Ubuntu 14.04.3 LTS"
      VERSION_ID="14.04"
      HOME_URL="http://www.ubuntu.com/"
      SUPPORT_URL="http://help.ubuntu.com/"
      BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/"

      (On voit que c'est Linux Mint 17.3 basé sur Ubuntu 14.04)

  • 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
  • Réduction de l'utilisation du swap
    • Faire:
      sudo bash -c 'echo "vm.swappiness=10" >> /etc/sysctl.conf'
    • Rebooter pour prendre en compte, ou faire sudo sysctl -p
  • 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)
    • 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.
1)
Le script qui a servi à pomper le site est ou .
linux-vrac.txt · Dernière modification: 2017/03/24 04:21 par sebsauvage