Table des matières

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 (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 :