===== 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 : |R|W|X| |4|2|1| 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. - Renommer tous les dossiers récursivement, uniquement les dossiers find . -depth -type d -exec mv {} {}.sbd \; - Idem, fichiers uniquement find . -depth -type f -exec mv {} {}.sbd \; - 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|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 [[https://superuser.com/questions/961401/mounting-hfs-partition-on-arch-linux/1088110#1088110|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) ==== - Installer **readpst** (pour les Debian, si Arch installer **libpst** qui contient l'outil readpst) - 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 {} \; - Ouvrir Thunderbird - Créer un dossier **outlook** dans **Dossiers locaux** et fermer Thunderbird - 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. - 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. - Placer le fichier ci dessous dans /usr/share/X11/xkb/symbols/ [[:doku|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 to in the FOUR_LEVEL_ALPHABETIC key type. partial alphanumeric_keys xkb_symbols "basic" { key { type= "FOUR_LEVEL_ALPHABETIC", [ ampersand, 1, bar, exclamdown ] }; key { type= "FOUR_LEVEL_ALPHABETIC", [ eacute, 2, at, oneeighth ] }; key { type= "FOUR_LEVEL_ALPHABETIC", [ quotedbl, 3, numbersign, sterling ] }; key { type= "FOUR_LEVEL_ALPHABETIC", [apostrophe, 4, onequarter, dollar ] }; key { type= "FOUR_LEVEL_ALPHABETIC", [ parenleft, 5, onehalf, threeeighths ] }; key { type= "FOUR_LEVEL_ALPHABETIC", [ section, 6, asciicircum, fiveeighths ] }; key { type= "FOUR_LEVEL_ALPHABETIC", [ egrave, 7, braceleft, seveneighths ] }; key { type= "FOUR_LEVEL_ALPHABETIC", [ exclam, 8, bracketleft, trademark ] }; key { type= "FOUR_LEVEL_ALPHABETIC", [ ccedilla, 9, braceleft, plusminus ] }; key { type= "FOUR_LEVEL_ALPHABETIC", [ agrave, 0, braceright, degree ] }; }; - 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”;** - 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** - Ouvrir ce fichier **fr** et trouver la ligne **name[group1]=“France - Alternative”;** - Insérer juste au dessus de cette ligne, celle ci **include “mswindows-capslock”** - Il faut fermer/rouvrir le serveur d'affichage, vous pouvez aussi redémarrer. [[http://www.mobidyc.net/2011/06/le-clavier-a-chiffre-sous-linux/#comment-106071|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 | ==== Trousseau de mot de passe ==== Il peut arriver, surtout si vous utilisez un WM (i3 ou Openbox par exemple), que le gestionnaire de trousseau de mot de passe ne se lance pas au lancement du WM. Une petite solution que j'ai trouvé récemment et qui a fonctionné sur mon Archlinux+Openbox, est d'ajouter ceci en tête du ~/.xinitrc : eval $(/usr/bin/gnome-keyring-daemon --start --components=gpg,pkcs11,secrets,ssh) export $(gnome-keyring-daemon --start --components=pkcs11,secrets,ssh,gpg) dbus-update-activation-environment --systemd DISPLAY gnome-keyring doit bien entendu être installé au préalable. [[https://bbs.archlinux.org/viewtopic.php?pid=1701978#p1701978|source]]