Outils pour utilisateurs

Outils du site


linux:cmd

Fichiers

Trier les fichiers .CHK

Quand Windows fait une réparation d'un système de fichier (notamment FAT) on peut y trouver à sa racine un ou plusieurs dossiers FOUND.000 FOUND.001 etc… J'ai alors mis au point une petite syntaxe pour trier les fichiers en fonction du type MIME détecté avec file sous linux :

# Accéder à la racine du volume et copier le dossier en lieu sur (disque interne/externe autre que le disque source)
cp -r /media/volume_réparé/FOUND.000 /media/disk/
cd /media/disk/FOUND.000
 
# Création du dossier de destination pour le tri
mkdir RECUP
 
# Récup ASF
for file in ./*.CHK; do type=$(file -b $file | cut -d\  -f2); if [[ "$type" = "ASF" ]]; then mv "$file" "./RECUP/${file%.*}.ASF"; echo "$file --> ./RECUP/${file%.*}.ASF"; fi; done
 
# Récup FLV
for file in ./*.CHK; do type=$(file -b -i $file | cut -d\; -f1); if [[ "$type" = "video/x-flv" ]]; then mv "$file" "./RECUP/${file%.*}.FLV"; echo "$file --> ./RECUP/${file%.*}.FLV"; fi; done
 
# Récup JPG
for file in ./*.CHK; do type=$(file -b $file | cut -d\  -f1); if [[ "$type" = "JPEG" ]]; then mv "$file" "./RECUP/${file%.*}.JPG"; echo "$file --> ./RECUP/${file%.*}.JPG"; fi; done
 
# Récup MP4
for file in ./*.CHK; do type=$(file -b $file | cut -d\  -f3); if [[ "$type" = "MP4" ]]; then mv "$file" "./RECUP/${file%.*}.MP4"; echo "$file --> ./RECUP/${file%.*}.MP4"; fi; done
 
# Récup MS DOC
for file in ./*.CHK; do file -b $file | grep "Name of Creating Application: Microsoft Office Word"; if [[ "$?" -eq "0" ]]; then mv "$file" "./RECUP/${file%.*}.DOC"; echo "$file --> ./RECUP/${file%.*}.DOC"; fi; done
 
# Récup MS DOCX
for file in ./*.CHK; do type=$(file -b $file); if [[ "$type" = "Microsoft Word 2007+" ]]; then mv "$file" "./RECUP/${file%.*}.DOCX"; echo "$file --> ./RECUP/${file%.*}.DOCX"; fi; done
 
# Récup MS PPT
for file in ./*.CHK; do file -b $file | grep "Name of Creating Application: Microsoft Office PowerPoint"; if [[ "$?" -eq "0" ]]; then mv "$file" "./RECUP/${file%.*}.PPT"; echo "$file --> ./RECUP/${file%.*}.PPT"; fi; done
 
# Récup MS PPTX
for file in ./*.CHK; do type=$(file -b $file); if [[ "$type" = "Microsoft PowerPoint 2007+" ]]; then mv "$file" "./RECUP/${file%.*}.PPTX"; echo "$file --> ./RECUP/${file%.*}.PPTX"; fi; done
 
# Récup MS XLS
for file in ./*.CHK; do file -b $file | grep "Name of Creating Application: Microsoft Excel"; if [[ "$?" -eq "0" ]]; then mv "$file" "./RECUP/${file%.*}.XLS"; echo "$file --> ./RECUP/${file%.*}.XLS"; fi; done
 
# Récup MS XLSX
for file in ./*.CHK; do type=$(file -b $file); if [[ "$type" = "Microsoft Excel 2007+" ]]; then mv "$file" "./RECUP/${file%.*}.XLSX"; echo "$file --> ./RECUP/${file%.*}.XLSX"; fi; done
 
# Récup ODP
for file in ./*.CHK; do type=$(file -b $file); if [[ "$type" = "OpenDocument Presentation" ]]; then mv "$file" "./RECUP/${file%.*}.ODP"; echo "$file --> ./RECUP/${file%.*}.ODP"; fi; done
 
# Récup ODS
for file in ./*.CHK; do type=$(file -b $file); if [[ "$type" = "OpenDocument Spreadsheet" ]]; then mv "$file" "./RECUP/${file%.*}.ODS"; echo "$file --> ./RECUP/${file%.*}.ODS"; fi; done
 
# Récup ODT
for file in ./*.CHK; do type=$(file -b $file); if [[ "$type" = "OpenDocument Text" ]]; then mv "$file" "./RECUP/${file%.*}.ODT"; echo "$file --> ./RECUP/${file%.*}.ODT"; fi; done
 
# Récup PDF
for file in ./*.CHK; do type=$(file -b $file | cut -d\  -f1); if [[ "$type" = "PDF" ]]; then mv "$file" "./RECUP/${file%.*}.PDF"; echo "$file --> ./RECUP/${file%.*}.PDF"; fi; done
 
# Récup ZIP
for file in ./*.CHK; do type=$(file -b $file | cut -d\  -f1); if [[ "$type" = "Zip" ]]; then mv "$file" "./RECUP/${file%.*}.ZIP"; echo "$file --> ./RECUP/${file%.*}.ZIP"; fi; done

Find (recherche)

Find est un petit outil assez puissant qui permet de chercher à peu près tout et n'importe quoi dans votre système ou point de montage.

Syntaxe

Avec le commutateur -exec on peut exécuter toutes sortes d'opérations sur les fichiers, les déplacer, les supprimer, les renommer, etc… dans l'exemple ci-dessous on les déplace.

# rechercher tous les fichiers .jpg (dossier courant)
find . -name "*.jpg"
 
# rechercher tous les fichiers .jpg dans /usr/bin/
find /usr/bin/ -name "*.jpg"
 
# rechercher tous les fichiers .jpg et .png dans /usr/bin/
find /usr/bin/ \( -name "*.jpg" -o -name "*.png" \)
 
# déplacer tous les fichiers .jpg présents dans /usr/bin dans /media/storage/
find /usr/bin/ -name "*.jpg" -exec mv "{}" /media/storage/ \;

Droits

Les droits sous linux fonctionnent selon 2 notions : le propriétaire, et les droits d'accès. Le propriétaire s'exprime sous la forme user:group. Par exemple atelier:users ou root:root. les droits d'accès s'expriment avec un nombre ou avec des lettres, comme ceci : 755 ou rwxr-xr-x. Le 1er chiffre correspond au niveau d'accès de l'utilisateur propriétaire. Le 2nd chiffre correspond au niveau d'accès de du groupe propriétaire. Et le 3eme correspond au niveau d'accès de tous les autres, ou invités. Chaque chiffre a une valeur correspondant à un bête codage binaire des lettres RWX selon le tableau suivant :

RWX
421

Un niveau d'accès “full”, soit RWX en même temps, correspond donc au chiffre 7.

Définir les droits 755 sur tous les fichiers contenus dans /dossier/test
find /dossier/test -type d -exec chmod 755 {} +
Définir les droits 755 sur tous les dossiers contenus dans /dossier/test
find /dossier/test -type d -exec chmod 755 {} +
Définir root:root proprio de tous les fichiers contenus dans /dossier/test
find /dossier/test -type d -exec chown root:root {} +
Définir root:root proprio de tous les dossiers contenus dans /dossier/test
find /dossier/test -type d -exec chown root:root {} +

Renommage en masse

Avec la commande find

l'option -depth doit être spécifiée en premier et permet de tenir compte de la profondeur de l'arborescence. Cela évite les bugs liés au renommage récursif.

  1. Renommer tous les dossiers récursivement, uniquement les dossiers
    find . -depth -type d -exec mv {} {}.sbd \;
  2. Idem, fichiers uniquement
    find . -depth -type f -exec mv {} {}.sbd \;
  3. Idem, fichiers et dossiers
    find . -depth -exec mv {} {}.sbd \;

Avec la commande brename

brename est un outil avancé de renommage de masse.

  • Installation sous Archlinux / Manjaro (utilisation d'un AUR Helper Yay/Yaourt ou autre) : yay -Sy brename
  • Installation sur les autres distributions le télécharger ici : https://github.com/shenwei356/brename
  • Remplacer un caractère par un autre : brename -p “\|” -r “-” -R -D (dans cet exemple je remplace le caractère “|” par “-”)

Système

Date et heure

Plusieurs façon de les définir :

date +%T -s "11:14:00"
date +%Y%m%d -s "20120418"
date -s "19 APR 2012 11:14:00"

Pour synchroniser ponctuellement par NTP (ntpdate)

sudo ntpdate 1.fr.pool.ntp.org

Pour synchroniser l'horloge du bios avec celle du système fraichement mise à jour

sudo hwclock -w

Manjaro (peut etre Archlinux)

On peut aussi activer le service systemd-timesyncd

sudo systemctl enable --now systemd-timesyncd

Système de fichier

Lire une partition HFS/HFS+ (macOS)

  • Installer le paquet hfsutils
  • La commande mount devrait suffire
sudo mount /dev/sdd2 /media/disk
  • Si cela ne suffit pas, il faut donner à mount la taille exacte (en octets). Pour la trouver, tout d'abord récupérer la taille des secteurs avec fdisk
sudo fdisk -l /dev/sdd
  • Puis récupérer la taille (en secteur) de la partition avec testdisk
sudo testdisk /dev/sdd

Choisir Intel for MBR or EFI GPT pour les partitions GPT, ensuite Analyse puis Quick Search. La taille apparait dans la colonne Size in sectors.

  • Multiplier Size in sectors (taille en secteurs) avec la taille du secteur. Exemple : 512 x 974438592 = N
  • Monter la partition avec le paramètre suivant
sudo mount /dev/sdd2 /media/disk -o ro,sizelimit=N

source

NFS

Explorer montages distants
showmount -e 192.168.0.10

Mails

Récupérer les adresses mails dans un fichier

Cette commande peut servir à extraire les adresses mails de n'importe quel type de ficher (page web, email, fichier texte entre autres)

grep -E -o "\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,6}\b" file.txt

Outlook PST vers Thunderbird (Linux)

  1. Installer readpst (pour les Debian, si Arch installer libpst qui contient l'outil readpst)
  2. Ouvrir un terminal puis saisir les commande suivante pour lancer la convertion :
    mkdir ./outlook
    readpst -o ./outlook -r outlook.pst
    find ./outlook -depth -type d -exec mv {} {}.sbd \;
    find ./outlook.sbd -name mbox -type f | xargs -d '\n' -I{} echo '"{}" "{}"' | sed -e 's/\.sbd\/mbox"$/"/' | xargs -L 1 mv
    find ./outlook.sbd -depth -type d -empty -exec rm -r {} \;
  3. Ouvrir Thunderbird
  4. Créer un dossier outlook dans Dossiers locaux et fermer Thunderbird
  5. Copier le dossier outlook.sbd ou bien, son sous-dossier s'il il n'en a qu'un seul (Dossiers personnels.sbd par exemple), dans .thunderbird/user.default/Mail/Localfolders à la place du vide que l'on vient de créer. Le renommer si nécessaire, il doit avoir le même nom.
  6. Relancer Thunderbird et tadam ! On peut renommer pour faire plus esthétique Importés d'Outlook par exemple :)

Périphériques

Clavier

Astuce "clavier windowsien"

Sur Linux quand on vérrouille la majuscule, les touches numériques au dessus des lettres font des lettres accentuées en majuscule. C'est très pratique quand on fait pas mal de bureautique, cela dit dans certains cas cela peut coincer. Un de ces cas est l'utilisation d'une douchette pour les codes barres.

Exemple : j'ai un code barre avec une valeur de 3594794123
Si je scan sur Windows ça donne 3594794123
Si je scan sur Linux ça donne “(Ç'ÈÇ'&É” ce n'est donc pas pratique.

  1. Placer le fichier ci dessous dans /usr/share/X11/xkb/symbols/
    mswindows-capslock
    // $XKeyboardConfig$
     
    // Replicate a "feature" of MS Windows on AZERTY keyboards 
    // where Caps Lock also acts as a Shift Lock on number keys.
    // Include keys <AE01> to <AE10> in the FOUR_LEVEL_ALPHABETIC key type.
     
    partial alphanumeric_keys
    xkb_symbols "basic" {
        key <AE01>   { type= "FOUR_LEVEL_ALPHABETIC", [ ampersand,          1,          bar,   exclamdown ]   };
        key <AE02>   { type= "FOUR_LEVEL_ALPHABETIC", [    eacute,          2,           at,    oneeighth ]   };
        key <AE03>   { type= "FOUR_LEVEL_ALPHABETIC", [  quotedbl,          3,   numbersign,     sterling ]   };
        key <AE04>   { type= "FOUR_LEVEL_ALPHABETIC", [apostrophe,          4,   onequarter,       dollar ]   };
        key <AE05>   { type= "FOUR_LEVEL_ALPHABETIC", [ parenleft,          5,      onehalf, threeeighths ]   };
        key <AE06>   { type= "FOUR_LEVEL_ALPHABETIC", [   section,          6,  asciicircum,  fiveeighths ]   };
        key <AE07>   { type= "FOUR_LEVEL_ALPHABETIC", [    egrave,          7,    braceleft, seveneighths ]   };
        key <AE08>   { type= "FOUR_LEVEL_ALPHABETIC", [    exclam,          8,  bracketleft,    trademark ]   };
        key <AE09>   { type= "FOUR_LEVEL_ALPHABETIC", [  ccedilla,          9,    braceleft,    plusminus ]   };
        key <AE10>   { type= "FOUR_LEVEL_ALPHABETIC", [    agrave,          0,   braceright,       degree ]   };
    };
  2. trouver la variante en cours d'utilisation
    xkbcomp -xkb :0 - 2>/dev/null |grep 'name\[group'

    ça devrait renvoyer un truc du genre name[group1]=“France - Alternative”;

  3. Ensuite on cherche quel fichier contient cette ligne
    grep "France - Alternative" /usr/share/X11/xkb/symbols/*

    Il y a des chances que le fichier soit /usr/share/X11/xkb/symbols/fr

  4. Ouvrir ce fichier fr et trouver la ligne name[group1]=“France - Alternative”;
  5. Insérer juste au dessus de cette ligne, celle ci include “mswindows-capslock”
  6. Il faut fermer/rouvrir le serveur d'affichage, vous pouvez aussi redémarrer.

Source

Écran

Résolution

Définir la résolution depuis la ligne de commande avec xrandr.

  • Pour voir le mode de résolution actuel, exécuter simplement xrandr
  • Dual screen
    xrandr --auto --output DVI-0 --mode 1440x900 --right-of DVI-1

Extinction

xset dpms force off

Bluetooth

Renommer le nom

sudo hciconfig hci0 name [new name]

Touchpad

Activer le tap to clic

xinput list # Lister les périphériques
xinput list-props 16 # Lister les propriétés du périphérique id=16
xinput set-prop 16 297 1 # Mets à "1" (active) la propriété 297 du périphérique 16

Autre

TMUX (multiplexeur)

tmux new -s [session] # Créer une session
tmux a -t [session] # Rejoindre une session
tmux a -dt [session] # Rejoindre une session en détachant tous les autres clients

Convert, traitement image

redimentionner à 500px de haut
convert meh.jpg -resize x500 meh-dest.jpg
redimentionner tous les JPG à 500px de haut
for file in *.jpg; do convert $file -resize x500 dest/$file; done
linux/cmd.txt · Dernière modification: 2020/02/24 13:38 par T0MuX