~/wiki

Cheatsheets — vue longue

retour à la liste

Toutes les pages concaténées sur un seul document, pour un Ctrl-F direct.

Bash & shell

page dédiée →

Les commandes qu'on tape sans réfléchir, et celles qu'on cherche à chaque fois.

Fichiers et dossiers

mkdir -p projet/src/utils    # -p : crée les parents, ne râle pas si ça existe
touch projet/src/main.py
ls -la projet
total 0
drwxr-xr-x  3 edouard  staff   96 Aug  7 14:02 .
drwxr-xr-x  8 edouard  staff  256 Aug  7 14:02 ..
drwxr-xr-x  4 edouard  staff  128 Aug  7 14:02 src
cp -r src/ backup/           # -r : récursif, indispensable pour un dossier
mv ancien.py nouveau.py
rm -rf build/                # -f : pas de confirmation. Vérifier le chemin AVANT

ls utile : -l long, -a cachés, -h tailles lisibles, -t tri par date, -S par taille.

Trouver

find . -name "*.py" -not -path "*/node_modules/*"
find . -type f -size +100M              # les gros fichiers
find . -name "*.log" -mtime +7 -delete  # modifiés il y a plus de 7 jours
rg "requests.post" --type py     # ripgrep : rapide, respecte .gitignore
rg -i "todo" -A 2                # -i insensible à la casse, -A 2 lignes après
rg -l "FastAPI"                  # -l : juste les noms de fichiers
rg -c "import"                   # -c : compte par fichier

rg bat grep sur tous les tableaux. Si grep est imposé : grep -rn "motif" .

Inspecter un fichier

head -20 gros.csv        # 20 premières lignes
tail -f app.log          # -f : suit le fichier en direct
wc -l data.csv           # compte les lignes
du -sh *                 # taille de chaque entrée du dossier
df -h                    # espace disque restant
du -sh * | sort -rh | head -5
1.2G	node_modules
340M	.venv
 12M	data
2.1M	src
 48K	README.md

Pipes et redirections

commande > fichier      # écrase
commande >> fichier     # ajoute
commande 2> erreurs.log # stderr seulement
commande &> tout.log    # stdout + stderr
commande 2>/dev/null    # jette les erreurs
commande | tee log.txt  # affiche ET écrit

curl -s ... | bash télécharge un script et l'exécute directement. Pratique pour les installeurs officiels, dangereux pour tout le reste : lire d'abord avec curl -s <url> | less.

Processus et ports

lsof -i :3000            # qui occupe le port 3000
kill <PID>               # demande poliment
kill -9 <PID>            # force, en dernier recours
kill -9 $(lsof -t -i :3000)
ps aux | rg python
lsof -i :3000
COMMAND   PID     USER   FD   TYPE DEVICE  NODE NAME
node    88008 edouard   24u  IPv6 0x9f2a   TCP *:hbci (LISTEN)

Variables d'environnement

export API_KEY="sk-..."     # pour cette session
echo $API_KEY
env | rg API                # lister
unset API_KEY

set -a; source .env; set +a  # charger un .env dans le shell

$VAR non défini vaut chaîne vide sans erreur. ${VAR:?message} échoue explicitement, ${VAR:-defaut} fournit une valeur de repli.

Enchaîner

a && b     # b seulement si a réussit  (exit code 0)
a || b     # b seulement si a échoue
a ; b      # b dans tous les cas
a &        # a en tâche de fond
echo $?    # code de sortie de la dernière commande

Boucles et substitution

for f in *.md; do echo "-- $f"; wc -l "$f"; done

for i in {1..5}; do curl -s "https://api.example.com/p/$i" > "p$i.json"; done

NOW=$(date +%Y-%m-%d)        # substitution de commande
echo "backup-$NOW.tar.gz"

Toujours guillemeter "$f" : sans guillemets, un nom de fichier avec un espace se découpe en deux arguments.

Archives et transferts

tar -czf archive.tar.gz dossier/    # c créer, z gzip, f fichier
tar -xzf archive.tar.gz             # x extraire
zip -r archive.zip dossier/
scp fichier user@host:/chemin/
rsync -avz --progress src/ user@host:/dest/

Raccourcis qui font gagner du temps

Touches Effet
Ctrl-R recherche dans l'historique
Ctrl-A / Ctrl-E début / fin de ligne
Ctrl-W supprime le mot précédent
Ctrl-U supprime jusqu'au début
Ctrl-C interrompt
Ctrl-D fin d'entrée / quitte le shell
!! dernière commande (sudo !!)
cd - dossier précédent

See also

Raccourcis Mac

page dédiée →

Le terminal et l'éditeur de code partagent des raccourcis proches, mais pas identiques. Le meilleur trio à mémoriser : Option pour les mots, Cmd pour les lignes/fichier, et Shift pour sélectionner pendant le déplacement.

Terminal (zsh / bash)

Action Raccourci
Début de la ligne Ctrl + A
Fin de la ligne Ctrl + E
Reculer / avancer d'un mot Option + ← / Option + →
Supprimer le mot précédent Option + Retour arrière
Supprimer jusqu'au début de ligne Ctrl + U
Supprimer jusqu'à la fin de ligne Ctrl + K
Effacer tout l'écran Ctrl + L
Historique des commandes ↑ / ↓
Rechercher une commande passée Ctrl + R, puis tape ta recherche
Annuler l'édition courante Ctrl + C

Le terminal ne permet généralement pas de sélectionner/manipuler des lignes comme un éditeur : on sélectionne à la souris, puis Cmd + C.

Éditeur de code

Déplacement et sélection

Action Raccourci
Déplacer le curseur d'un caractère ← / →
Déplacer le curseur d'un mot Option + ← / Option + →
Début / fin de ligne Cmd + ← / Cmd + →
Début / fin du fichier Cmd + ↑ / Cmd + ↓
Ligne suivante / précédente ↑ / ↓
Sélectionner caractère par caractère Shift + flèches
Sélectionner mot par mot Option + Shift + ← / →
Sélectionner jusqu'au début / à la fin de ligne Cmd + Shift + ← / →
Sélectionner jusqu'au début / à la fin du fichier Cmd + Shift + ↑ / ↓
Sélectionner tout Cmd + A
Sélectionner un mot Double-clic
Sélectionner une ligne Triple-clic

Édition de base

Action Raccourci
Copier / couper / coller Cmd + C / X / V
Annuler / refaire Cmd + Z / Cmd + Shift + Z
Indenter / désindenter les lignes sélectionnées Tab / Shift + Tab
Commenter les lignes sélectionnées Cmd + /

Manipulation de lignes (VS Code, Cursor)

Action Raccourci
Dupliquer la ligne / sélection Option + Shift + ↓ ou ↑
Déplacer la ligne / sélection Option + ↓ ou ↑
Supprimer une ligne Cmd + Shift + K
Ajouter un curseur sur la ligne suivante Option + Cmd + ↓
Ajouter un curseur sur la ligne précédente Option + Cmd + ↑

title: Raccourcis Mac category: cheatsheets created: 2025-01-XX updated: 2025-01-XX tags: [mac, shortcuts, terminal, zsh, vscode, cursor] confidence: high publish: true

Distinguer terminal et éditeur de code : les raccourcis de base sont proches, mais déplacer une ligne dépend de l'éditeur.

Terminal (zsh / bash)

Action Raccourci
Début de la ligne Ctrl + A
Fin de la ligne Ctrl + E
Reculer / avancer d'un mot Option + ← / Option + →
Supprimer le mot précédent Option + Retour arrière
Supprimer jusqu'au début de ligne Ctrl + U
Supprimer jusqu'à la fin de ligne Ctrl + K
Effacer tout l'écran Ctrl + L
Historique des commandes ↑ / ↓
Rechercher une commande passée Ctrl + R, puis tape ta recherche
Annuler l'édition courante Ctrl + C

Le terminal ne permet généralement pas de sélectionner/manipuler des lignes comme un éditeur : on sélectionne à la souris, puis Cmd + C.

Éditeur de code

Action Raccourci
Déplacer le curseur d'un caractère ← / →
Déplacer le curseur d'un mot Option + ← / Option + →
Début / fin de ligne Cmd + ← / Cmd + →
Début / fin du fichier Cmd + ↑ / Cmd + ↓
Ligne suivante / précédente ↑ / ↓
Sélectionner caractère par caractère Shift + flèches
Sélectionner mot par mot Option + Shift + ← / →
Sélectionner jusqu'au début / à la fin de ligne Cmd + Shift + ← / →
Sélectionner jusqu'au début / à la fin du fichier Cmd + Shift + ↑ / ↓
Sélectionner tout Cmd + A
Sélectionner un mot Double-clic
Sélectionner une ligne Triple-clic
Copier / couper / coller Cmd + C / X / V
Annuler / refaire Cmd + Z / Cmd + Shift + Z
Indenter / désindenter les lignes sélectionnées Tab / Shift + Tab
Commenter les lignes sélectionnées Cmd + /

Dans VS Code, Cursor et beaucoup d'éditeurs modernes :

Action Raccourci
Dupliquer la ligne / sélection Option + Shift + ↓ ou ↑
Déplacer la ligne / sélection Option + ↓ ou ↑
Supprimer une ligne Cmd + Shift + K
Ajouter un curseur sur la ligne suivante Option + Cmd + ↓
Ajouter un curseur sur la ligne précédente Option + Cmd + ↑

Le meilleur trio à mémoriser : Option pour les mots, Cmd pour les lignes/fichier, et Shift pour sélectionner pendant le déplacement.

Presse-papiers système

Copier la sortie d'une commande directement dans le presse-papiers :

pwd | pbcopy

Ensuite Cmd + V pour coller.

Lire le contenu du presse-papiers :

pbpaste

Copier le chemin absolu d'un fichier :

realpath mon_fichier.py | pbcopy

Pipe typique : copier le résultat d'un cat, d'un git log --oneline, etc.

See also

bash jupyter vscode

See also

bash jupyter vscode