←⌂

Notes Linux

Created: 16 Jan 2026, Modified: 07 Feb 2026

Basique mais j’oublie

Pipes

Redirection

Expansion / substitution

Boucles

Pas POSIX

Tableaux, exposants, modulo, certaines substitutions de variables (syntaxe :1:2 [slicing], / [remplacement], ^ [conversion en majuscules], , [.. miniscules], ! [expansion indirecte])

Pas de regex, mais il y a les motifs de globbing * ? [abc] [!abc].

Il y a heredocs (<<) mais pas de herestrings (<<<)

Débogage

Xorg

Gestion des processus

Fichiers

Termes

Pas spécifique à Linux

Recettes

Utilisateur

Faire fonctionner le bouton d’alimentation

  1. sudo nano /etc/systemd/logind.conf
  2. Décommenter HandlePowerKey=poweroff
    • Ctrl F HandlePowerKey
    • Supprimer le # au début de la ligne
  3. Sauvegarder (Ctrl O)

Le bouton d’alimentation n’est pas traité sur Arch Linux par défaut et il est important de le configurer, car un arrêt brutal peut corrompre des données. Ça arrive de devoir appuyer sur le bouton à cause d’un blocage autrement irrécupérable.

C’est systemd qui le gère.

Dans /etc/systemd/logind.conf tout est commenté par défaut. Décommente HandlePowerKey=poweroff. Tu y peux aussi configurer ce qui arrive avec d’autres boutons de contrôle système (Reboot, Suspend, Hibernate) et LidSwitch.

cf ArchWiki : Power managemnt : ACPI events

Déplacer une fenêtre avec précision

# la fenêtre active
xdotool getwindowfocus windowmove 635 339
# ou :
wmctrl -r :ACTIVE: -e 0,500,500,-1,-1
# (les -1 veulent dire ne pas changer la taille)

# fenêtre par classe ou nom, où Peek est le nom de ma fenêtre
xdotool search --class Peek windowmove %@ 635 339 windowsize %@ 657 377
# ou :
wmctrl -r Peek -e 0,635,339,657,377

# liste des fenêtres avec IDs, classes, titres
wmctrl -lx

et avec -lG il y a aussi la géometrie de fenêtres, mais ce n’est pas exactes sous bspwm, cf bspwm: La position d’une fenêtre

Voici quelques symlinks que j’utiliser pour pouvoir syncer facilement des données importantes avec onedrive :

# Dossier Dropbox sur un dual boot (changes nom d'utilisateur `pm`)
sudo ln -s /media/Windows/Users/pm/Dropbox/Apps ~/OneDrive/pnotes

# Backups de favoris firefox (change le chemin avec ton propre que tu peux voir dans `about:profiles` sur firefox)
sudo ln -s /home/pm/.mozilla/firefox/4afxl8gu.default-release/bookmarkbackups/ ~/OneDrive/backups/bookmarkbackups

# Site, pour ne pas perdre des changements en cours
sudo ln -s /media/Windows/Users/pm/dev/reps/plu5.github.io ~/OneDrive/backups/reps/plu5.github.io

Note

Je garde pas mal de mes données sur une partition ntfs pour pouvoir les accéder depuis n’importe quel système d’exploitation, car Linux supporte ntfs mais Windows ne supporte pas ext4.

Il faut aussi noter que ça pourrait arriver qu’un dossier créé sous Windows ne soit pas accessible sous Linux. Ça arrive quand il y a une étiquette particulière [TODO: écrire davantage, cf log 4e]. ça m’a arrivé avec mon dossier Dropbox après une mise à jour de ce dernier. Ma solution était de déconnecter et réconnecter et le laisser renommer le dossier et en créer un nouveau, puis quitter avant que ça ne sync, déplacer le contenu du vieux dossier dans le nouveau, et relancer. Il se rend compte assez rapidement que tout est là et revient en mode veille. Il y a aussi un plugin pour pouvoir accéder des dossiers avec cette étiquette quand même [TODO mettre un lien] mais il n’est pas maintenu.

bspwm

La position d’une fenêtre

flottante :

# où "Peek" est le nom de ma fenêtre
wid=$(wmctrl -l | grep Peek | awk '{print $1}'); bspc query --node $wid --tree | jq .client.floatingRectangle

si non flottante, juste .rectangle

Script

Faire quelque chose seulement si l’utilisateur a la commande

has_paplay=$(command -v paplay >/dev/null 2>&1 && echo true)
[ $has_paplay = true ] && paplay "/usr/share/sounds/freedesktop/stereo/complete.oga"

Parcourir les lignes d’un fichier

while read line; do
  echo $line
done < .bashrc  # ou n'importe quel fichier après le <

Parcourir les lignes de sortie d’une commande

ls -a | while read line; do   # ou n'importe quelle commande avant le |
  echo $line
done

Parcourir les noms de fichiers

for f in *; do
  echo $f
done

exclure les sous dossiers en testant la condition [ -f "$f" ]

Pour le faire recursivement, utiliser find :

find . | while read f; do
  echo $f
done

Problèmes avec mon système

X

Références

Améliorer cette page / Laisser un message.

←⌂ / ←Idées en vrac / Notes Firefox→