Aide-mémoire terminal
Ce qu'on n'a jamais le réflexe de chercher : les panneaux, les archives qui ne tiennent pas en RAM, et les dix touches de vim qui remplacent une heure de clics.
Aucune commande ne correspond.
Deux modalités à ne pas confondre : les commandes shell se tapent hors de tmux, les raccourcis commencent par le préfixe C-b puis une touche — on relâche le préfixe avant d'appuyer sur la suivante.
tmux new -s infraCrée une session nomméetmux lsListe les sessions du serveurtmux a -t infraRejoint une session existantetmux aRejoint la dernière session utiliséetmux new -d -s job 'commande'Lance une commande dans une session détachée — elle survit à la fermeture du terminaltmux send-keys -t infra 'ls' EnterTape dans une session sans s'y attachertmux capture-pane -p -t infraRécupère le contenu affiché d'un panneau sur la sortie standardtmux kill-session -t jobTermine une sessiontmux kill-serverTermine toutes les sessions d'un couptmux show-bufferAffiche le tampon de copie dans le shell:setw synchronize-panes onAprès C-b : — ce qu'on tape part dans tous les panneaux à la fois. Deux hôtes, une seule frappe. off pour arrêterLe piège du détachement. C-b d détache, exit tue la session. Les deux ferment le terminal de la même façon — seul le premier laisse le travail tourner. C'est exactement ce qui distingue une session résidente d'une session perdue.
Moyen mnémotechnique pour tar : créer, extraire, lister — puis f qui annonce le nom du fichier, toujours en dernier. tar xf devine seul la compression : inutile de préciser z, j ou J pour extraire.
tar -czf a.tar.gz dossier/gzip — rapide, universeltar -cJf a.tar.xz dossier/xz — le plus compact, le plus lenttar --zstd -cf a.tar.zst dossier/zstd — presque aussi compact que xz, bien plus rapidetar -cf - d/ | pigz -p 4 > a.tgzgzip sur 4 cœurs — sur un gros dossier, le gain est nettar -czf a.tgz --exclude='*.log' d/Exclut un motif (répétable)tar -czf a.tgz -C /var/www freshrssSe place dans un dossier avant d'archiver — évite les chemins absolus dans l'archivetar xf a.tar.zstExtrait, quel que soit le compresseurtar xf a.tgz -C /tmp/cibleExtrait ailleurs que dans le dossier couranttar xf a.tgz chemin/du/fichierN'extrait qu'un seul fichiertar xf a.tgz --strip-components=1Retire le premier niveau de dossier — le classique des tarballs amonttar xf a.tgz --wildcards '*.conf'N'extrait que ce qui correspondtar tf a.tgz | headListe le contenu — à faire systématiquement avant d'extraire chez soitar tvf a.tgzListe avec droits, propriétaire et tailletar df a.tgz -C /Compare l'archive au système de fichiers et signale les écartstar cf - d/ | pv -s $(du -sb d/ | cut -f1) | gzip > a.tgzBarre de progression et estimation du temps restantzstd -T0 -19 gros.imgCompression maximale sur tous les cœurssplit -b 2G a.tgz a.tgz.part-Découpe en morceaux de 2 Gocat a.tgz.part-* > a.tgzRecolle les morceaux, dans l'ordresha256sum a.tgz > a.tgz.sha256Empreinte — sha256sum -c la vérifie plus tardzip -r a.zip dossier/Archive récursivezip -er a.zip dossier/Chiffré par mot de passe — chiffrement faible, bon pour un envoi, pas pour un secretunzip -l a.zipListe sans extraireunzip a.zip -d /tmp/cibleExtrait dans un dossier précisunzip -o a.zipÉcrase sans demanderLa zip-bomb de dossier courant. Un .zip ou un .tar mal fait déverse des dizaines de fichiers là où on se trouve, mélangés aux siens — et il n'y a pas d'annulation. tar tf ou unzip -l avant, ou extraction dans un dossier jetable. Deux secondes contre un ménage d'un quart d'heure.
Les commandes ci-dessous se tapent en mode normal (touche Échap d'abord). Celles qui commencent par : ouvrent la ligne de commande en bas de l'écran.
ca( l'emporte avec:%s/vieux/neuf/gPartout dans le fichier:%s/vieux/neuf/gcAvec confirmation à chaque occurrence:'<,'>s/a/b/gSeulement dans la sélection visuelle:g/motif/dSupprime toutes les lignes contenant le motif:v/motif/dSupprime toutes celles qui ne le contiennent pas:nohÉteint le surlignage de recherchea:vsp fichierOuvre à côté, en colonne:e!Recharge depuis le disque, en jetant les modifications:w !sudo tee % > /dev/nullEnregistre un fichier ouvert sans les droits — puis :e!:earlier 10mRamène le fichier tel qu'il était il y a 10 minutes — :later revient:%!python3 -m json.toolPasse tout le tampon dans une commande externe et garde le résultat:set number relativenumberNuméros relatifs — 7dd devient évidentColler casse l'indentation. Vim ré-indente ce qui arrive au clavier, et un collage lui parvient touche par touche : le texte part en escalier. :set paste avant de coller, :set nopaste après. Sans ça on passe dix minutes à réparer ce qu'on venait de coller proprement.