wsl -l -v
Affiche chaque distribution avec son état et sa version WSL. L'astérisque marque la distribution par défaut — celle qui démarre quand on tape wsl sans rien préciser.
// aide-mémoire
Tape ce que tu cherches en français — « chercher texte », « monter clé usb », « annuler commit » — la commande remonte.
wsl -l -v
Affiche chaque distribution avec son état et sa version WSL. L'astérisque marque la distribution par défaut — celle qui démarre quand on tape wsl sans rien préciser.
wsl -d Ubuntu
Démarre la distribution demandée sans toucher au réglage par défaut. Utile quand un simple wsl ouvre docker-desktop, une distribution technique interne à Docker Desktop où l'on ne retrouve ni ses projets ni sa configuration de terminal.
wsl --set-default Ubuntu
Après ça, un simple wsl ouvre directement la bonne distribution. Le correctif durable au piège de docker-desktop.
wsl --shutdown
Coupe la machine virtuelle WSL entière. Le redémarrage propre à tenter quand une distribution se comporte mal ou qu'un montage reste bloqué.
explorer.exe .
Depuis un terminal WSL, ouvre l'emplacement courant dans l'explorateur de fichiers Windows. Le point final désigne le dossier courant.
ls -lah
Affiche tous les fichiers, y compris les cachés, avec les permissions et des tailles lisibles.
cd -
Bascule vers le dernier dossier visité. Pratique pour faire des allers-retours entre deux emplacements.
cp -r source/ destination/
Copie récursive. Sans l'option -r, les dossiers sont ignorés.
mv ancien nouveau
La même commande sert aux deux usages : renommer, c'est déplacer vers un autre nom dans le même dossier.
ln -s /chemin/cible nom_du_lien
Crée un raccourci vers un fichier ou un dossier. Utilise toujours un chemin absolu pour la cible, sinon le lien casse dès qu'on le déplace.
tree -L 2
Vue hiérarchique du dossier, limitée à deux niveaux de profondeur. Le paquet tree n'est pas toujours installé par défaut.
grep -rn "motif" .
Parcourt récursivement le dossier courant et affiche chaque ligne correspondante avec son numéro.
grep -v "motif" fichier
Inverse la sélection : affiche tout sauf ce qui correspond. Très utile pour filtrer du bruit dans des logs.
find . -name "*.log"
Recherche par motif de nom depuis le dossier courant. Les guillemets évitent que le shell interprète l'astérisque avant find.
find . -mtime +7 -type f
Liste les fichiers modifiés il y a plus de sept jours. Avec -7, on obtient l'inverse : modifiés dans les sept derniers jours.
which python3
Affiche le chemin de la commande qui sera réellement exécutée. Indispensable pour vérifier quel Python est actif dans un environnement virtuel.
chmod 644 fichier
Lecture et écriture pour le propriétaire, lecture seule pour les autres. Valeur habituelle pour un fichier de contenu.
chmod +x script.sh
Ajoute le droit d'exécution sans toucher aux autres permissions.
chown utilisateur:groupe fichier
Réattribue un fichier à un utilisateur et un groupe. Nécessite les droits administrateur.
ls -ld dossier
Sans -d, la commande liste le contenu du dossier au lieu d'afficher le dossier lui-même.
lsblk -f
Affiche les périphériques de stockage avec leur système de fichiers et leur point de montage. Le premier réflexe avant de monter quoi que ce soit.
sudo mount /dev/sdb1 /mnt/usb
Rend le contenu d'une partition accessible dans un dossier. Le dossier de destination doit exister au préalable.
sudo umount /mnt/usb
À faire avant de débrancher un support. Si la commande refuse, c'est qu'un processus utilise encore le montage — souvent un terminal ouvert dans le dossier.
df -h
Espace utilisé et libre par système de fichiers, en unités lisibles.
du -sh *
Taille totale de chaque élément du dossier courant. Le moyen le plus direct de trouver ce qui remplit un disque.
ps aux | grep nom_du_processus
Liste tous les processus et filtre sur un nom. La colonne de gauche donne le PID nécessaire pour l'arrêter.
kill -9 PID
Terminaison immédiate, sans laisser au programme le temps de se fermer proprement. À réserver aux cas où un kill simple ne suffit pas.
sudo systemctl status nginx
Affiche si le service tourne, depuis quand, et les dernières lignes de son journal.
journalctl -u nginx -f
Affiche le journal d'un service et continue à l'afficher au fil de l'eau. La commande à lancer quand on cherche pourquoi quelque chose échoue.
ssh utilisateur@serveur
Ouvre une session distante. Avec -p, on précise un port différent du 22 par défaut.
scp fichier utilisateur@serveur:/chemin/
Transfert via SSH. Pour récupérer un fichier depuis le serveur, on inverse simplement les deux arguments.
ss -tulpn
Liste les ports en écoute avec le processus associé. Remplace netstat, désormais obsolète sur la plupart des distributions.
curl -I https://exemple.ch
Récupère uniquement les en-têtes HTTP. Le moyen le plus rapide de vérifier un code de réponse ou une redirection.
sudo apt update && sudo apt upgrade
La première commande rafraîchit la liste des paquets disponibles, la seconde installe les mises à jour. L'une sans l'autre ne sert à rien.
sudo apt install nom_du_paquet
Installe le paquet et ses dépendances depuis les dépôts configurés.
apt search motif
Recherche dans les noms et descriptions des paquets des dépôts.
apt list --installed | grep motif
Filtre la liste des paquets installés sur un motif.
tar -czf archive.tar.gz dossier/
Crée une archive gzip d'un dossier. Moyen mnémotechnique : c pour créer, z pour compresser, f pour fichier.
tar -xzf archive.tar.gz
Décompresse dans le dossier courant. Avec -C, on choisit une destination différente.
tar -tzf archive.tar.gz
Affiche ce que contient l'archive sans rien extraire. Le réflexe à avoir avant de décompresser une archive inconnue.
unzip archive.zip -d destination/
Décompresse une archive ZIP dans un dossier donné.
python3 -m venv .venv
Crée un environnement isolé dans un dossier .venv à la racine du projet. À exclure du dépôt Git.
source .venv/bin/activate
Le nom de l'environnement apparaît alors entre parenthèses dans l'invite. Sous Windows, la commande est .venv\Scripts\activate.
deactivate
Revient à l'interpréteur système. Aucun chemin à préciser.
pip install -r requirements.txt
Installe toutes les bibliothèques listées dans le fichier. À lancer après avoir activé l'environnement virtuel.
pip freeze > requirements.txt
Écrit la liste des bibliothèques et leurs versions exactes dans le fichier. À refaire à chaque ajout de dépendance.
python3 -m http.server 8000
Sert le dossier courant sur le port 8000. Pratique pour tester rapidement des fichiers statiques.
git stash
Range les changements en cours pour retrouver un dossier propre. On les récupère ensuite avec git stash pop.
git log --oneline --graph --all
Historique compact sous forme de graphe, toutes branches confondues. La façon la plus lisible de comprendre où on en est.
git restore fichier
Rétablit le fichier tel qu'il était au dernier commit. Les modifications non validées sont perdues définitivement.
git reset --soft HEAD~1
Supprime le commit mais conserve les modifications dans le dossier de travail. Avec --hard, les modifications sont perdues.
git diff --staged
Affiche les différences déjà ajoutées à l'index. Sans l'option, on voit au contraire ce qui n'y est pas encore.
git remote -v
Affiche les URL de récupération et d'envoi configurées.
date('d.m.Y')
Renvoie la date courante selon le format donné. Les lettres du format sont sensibles à la casse : d n'est pas D.
date('Y-m-d H:i:s')
Le format attendu par les colonnes DATETIME de MySQL et MariaDB. À utiliser tel quel, sans inverser l'ordre.
$date = new DateTime('2026-08-05'); echo $date->format('d.m.Y');
DateTime accepte une date au format ISO, puis format() applique les mêmes lettres que date(). C'est l'approche à préférer dès qu'on manipule autre chose que l'instant présent.
$date = DateTime::createFromFormat('d.m.Y', '05.08.2026');
Indispensable quand la date vient d'un formulaire ou d'un fichier : sans cette méthode, PHP interprète 05.08.2026 de travers ou échoue.
$debut = new DateTime('2026-01-15'); $fin = new DateTime('2026-08-05'); $jours = $debut->diff($fin)->days;
diff() renvoie un DateInterval. La propriété days donne le total absolu ; d ne donnerait que le reste après les mois entiers.
$date = new DateTime(); $date->modify('+3 months');
modify() accepte une expression en anglais. Attention : ajouter un mois au 31 janvier donne le 3 mars, PHP ne ramène pas au dernier jour du mois.
strtotime('+3 days')
Renvoie un entier Unix, pas un objet. Pratique pour un calcul rapide, mais DateTime reste plus lisible dès que le code grandit.
if ($date1 < $date2) { // date1 est antérieure }
Les objets DateTime se comparent directement avec les opérateurs habituels. Inutile de passer par des timestamps.
number_format($n, 2, '.', "'")
Les séparateurs suisses : apostrophe pour les milliers, point pour les décimales. Donne 12'345.60 pour 12345.6.
htmlspecialchars($texte, ENT_QUOTES, 'UTF-8')
À appliquer à toute donnée venant de l'extérieur avant de l'insérer dans du HTML. ENT_QUOTES traite aussi les apostrophes, ce que le réglage par défaut ne fait pas.
$noms = array_map(function ($ligne) { return $ligne['nom']; }, $lignes);
array_map applique la fonction à chaque élément et renvoie le tableau des résultats. Pour ce cas précis, array_column($lignes, 'nom') fait la même chose en plus court.
usort($lignes, function ($a, $b) { return $a['date'] <=> $b['date']; });
usort trie sur place et renumérote les clés. L'opérateur <=> renvoie -1, 0 ou 1 selon l'ordre — il évite d'écrire la comparaison à la main.
json_encode($data, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT)
Sans ces options, les accents sortent en séquences d'échappement et tout tient sur une seule ligne — illisible dès qu'on doit relire le fichier.
Aucune commande ne correspond. Essaie un autre mot.