====== Scripts bash sur linux ====== Petits trucs utiles notés au fil du temps ===== Commandes système utiles ===== **ldd** : Afficher les bibliothèques partagées nécessaires ldd /bin/ls which puredata # renvoie /usr/bin/puredata ldd /usr/bin/puredata # renvoie la liste des bib. utilisées par puredata **Commandes de base** : https://juliend.github.io/linux-cheatsheet/ (ls, cd, cp, mv, rm, mkdir, chmod, chown, ssh, grep, find, etc.) **Version du Shell** $SHELL --version ===== Dossiers et fichiers ===== **Renommer des fichiers de manière incrémentale** # 20211124 / debian 9.5 @ kirin / GNU bash, version 4.4.12 j=1;for i in *.png; do mv "$i" oa_"$j".png; let j=j+1;done Récupére tous les *.png pour donner oa_1.png, oa_2.png, oa_3.png, etc. **Effacer les fichiers .DS_Store dans un dossier et ses sous dossiers** \\ Ce sont des fichiers cachés utilisés par les systèmes Apple MacOS (Desktop Service Store) pour stocker des infos sur la configuration d'affichage d'un dossier ([[https://en.wikipedia.org/wiki/.DS_Store|détails]]) # 2022 / debian 9.5 @ kirin / GNU bash, version 4.4.12 find . -name '.DS_Store' -type f -delete # source : https://jonbellah.com/articles/recursively-remove-ds-store **Voir l'occupation du disque d'une partition** \\ # 20220316 / debian 9.5 @ kirin sudo apt install ncdu sudo ncdu -x / # pour la partition principale **Faire de la place dans les paquets snap** \\ snap list --all # puis supprimer les paquets en double qui sont disabled sudo snap remove --revision 145 gnome-3-28-1804 # exemple à adapter en fonction! **Ouvrir PCmanFM en root** # 20220316 / debian 9.5 + LXDE @ kirin sudo -i pcmanfm ===== Manipulations de texte ===== **ordonner un fichier par longueur de lignes (ou de mots)** # 20220908 / debian 9.5 + LXDE @ kirin # source : https://stackoverflow.com/a/5917762 cat testfile | awk '{ print length, $0 }' | sort -n -s | cut -d" " -f2- **ordonner un fichier par ordre alphabétique** # 20220908 / debian 9.5 + LXDE @ kirin sort fichier.txt sort -r fichier.txt # odre alpha. inverse ===== Notifications de batterie ===== Script pour indiquer l'état de la batterie avec notification sonore et notification sur le bureau. Installer les paquets nécessaires en root : sudo apt install acpi # installer les outils ACPI (Advanced Configuration and Power Interface) sudo apt install notification-deamon libnotify-bin # gestion des notifications # ajouter le daemon parmi les logiciels qu ise lancent au démarrage cp /usr/share/applications/notification-daemon.desktop ~/.config/autostart Il faut ensuite se délogguer, puis se relogguer, on peut alors tester notify-send "Test" "Hello world" Ensuite il faut créer le script ''battery-alert.sh'' dans le répertoire ''bin'' de l'utilisateur, avec le code ci-dessous, et le rendre exéctuable  chmod +x ~/bin/battery-alert.sh Puis éditer le fichier ''~/.profile'' et ajouter la ligne suivante qui active le script au démarrage sh ~/bin/battery-alert.sh & Et enfin redémarrer pour que le script devienne actif **Code du script battery-alert.sh** \\ #!/bin/bash # debian 9.5 Stretch + LXDE @ kirin 20220314 while true do export DISPLAY=:0.0 battery_level=`acpi -b | grep -P -o '[0-9]+(?=%)'` if on_ac_power; then if [ $battery_level -ge 95 ]; then notify-send "Battery Full" "Level: ${battery_level}% " paplay /usr/share/sounds/GNUstep/Tink.wav fi else if [ $battery_level -le 20 ]; then notify-send --urgency=CRITICAL "Battery Low" "Level: ${battery_level}%" paplay /usr/share/sounds/GNUstep/Submarine.wav fi fi sleep 60 done Sources : * https://www.debian-fr.org/t/comment-demarrer-notification-daemon-sous-strtech-lxde/75263/6 * https://memo-linux.com/notify-send-outil-de-notification/ * https://www.2daygeek.com/linux-low-full-charging-discharging-battery-notification/