Linux : terminal et navigation
Se déplacer
Section intitulée « Se déplacer »pwd # où suis-je ?ls # contenu du dossier courantcd /var/log # aller dans un dossier (chemin absolu)cd .. # dossier parentcd # retour au dossier personnel (idem : cd ~)cd - # retour au dossier précédentChemins absolus et relatifs
Section intitulée « Chemins absolus et relatifs »| Type | Commence par | Exemple |
|---|---|---|
| Absolu | / |
/home/alice/documents/rapport.txt |
| Relatif | Autre chose | documents/rapport.txt (depuis /home/alice) |
| Raccourci | Signification |
|---|---|
. |
Le dossier courant |
.. |
Le dossier parent |
~ |
Le dossier personnel (/home/alice) |
~bob |
Le dossier personnel de bob |
- |
Le dossier précédent (avec cd -) |
cd ~/documentscd ../images # frère du dossier courantls ~/documents/../imagesLister avec ls
Section intitulée « Lister avec ls »ls -l # format long : droits, propriétaire, taille, datels -a # inclut les fichiers cachés (commençant par un point)ls -lh # tailles lisibles (Ko, Mo)ls -lt # triés par date (récents d'abord)ls -lS # triés par taillels -R # récursifls -ld /etc # le dossier lui-même, pas son contenuls -1 # un fichier par ligneLecture d’une ligne de ls -l :
-rw-r--r-- 1 alice alice 4096 janv. 15 10:30 rapport.txt│└┬┘└┬┘└┬┘ │ │ │ │ │ └─ nom│ │ │ │ │ │ │ │ └─ date de modification│ │ │ │ │ │ │ └─ taille (octets)│ │ │ │ │ │ └─ groupe│ │ │ │ │ └─ propriétaire│ │ │ │ └─ nombre de liens│ │ │ └─ droits des autres│ │ └─ droits du groupe│ └─ droits du propriétaire└─ type (- fichier, d dossier, l lien)Les fichiers dont le nom commence par un point (.bashrc, .ssh) sont cachés : ls -a les montre. Ils contiennent souvent la configuration de l’utilisateur.
Jokers (globbing)
Section intitulée « Jokers (globbing) »Le shell développe les motifs avant d’appeler la commande :
| Motif | Correspond à |
|---|---|
* |
N’importe quelle suite de caractères (même vide) |
? |
Exactement un caractère |
[abc] |
Un des caractères listés |
[0-9] |
Un caractère dans l’intervalle |
{a,b,c} |
Chacune des alternatives (développement d’accolades) |
ls *.txt # tous les fichiers .txtls rapport-?.pdf # rapport-1.pdf, rapport-a.pdf…ls fichier[0-9]*.logmkdir -p projet/{src,docs,tests} # crée trois sous-dossiers d'un coupcp rapport.{txt,bak} # équivaut à : cp rapport.txt rapport.bakPrécautions : rm * supprime tout le dossier courant. Toujours tester avec ls d’abord (ls *.tmp, puis rm *.tmp).
Guillemets et espaces
Section intitulée « Guillemets et espaces »cd Mes\ Documents # espace échappécd "Mes Documents" # guillemets doubles (les variables sont développées)cd 'Mes Documents' # guillemets simples (texte littéral)echo "Je suis $USER" # Je suis aliceecho 'Je suis $USER' # Je suis $USERÉviter les espaces dans les noms de fichiers et de dossiers : ils compliquent beaucoup de commandes. Préférer des tirets ou des soulignés.
Raccourcis clavier du terminal
Section intitulée « Raccourcis clavier du terminal »| Raccourci | Effet |
|---|---|
Tab |
Complétion (noms de commandes, de fichiers) : à utiliser tout le temps |
Tab Tab |
Liste les possibilités |
↑ / ↓ |
Commandes précédentes / suivantes |
Ctrl+R |
Rechercher dans l’historique (taper quelques lettres) |
Ctrl+C |
Interrompre la commande en cours |
Ctrl+D |
Fin de saisie / fermer la session |
Ctrl+L |
Effacer l’écran (ou clear) |
Ctrl+A / Ctrl+E |
Début / fin de ligne |
Ctrl+U / Ctrl+K |
Effacer avant / après le curseur |
Ctrl+W |
Effacer le mot précédent |
Alt+. |
Insérer le dernier argument de la commande précédente |
Ctrl+Z |
Suspendre (reprise avec fg) |
La complétion par Tab évite les fautes de frappe : taper cd /va puis Tab donne cd /var/.
Historique
Section intitulée « Historique »history | tail -20!! # relancer la dernière commandesudo !! # la relancer avec sudo!ssh # dernière commande commençant par « ssh »!42 # commande numéro 42 de l'historiquehistory -c # effacer l'historique de la sessionL’historique est enregistré dans ~/.bash_history. Ne pas saisir de mots de passe dans les commandes : ils se retrouveraient dans l’historique. Une commande précédée d’une espace n’est généralement pas enregistrée (selon la configuration de HISTCONTROL).
Obtenir de l’aide
Section intitulée « Obtenir de l’aide »man ls # manuel (navigation : espace, /motif pour chercher, q pour quitter)man -k copier # chercher un manuel par mot-clé (équivaut à apropos)ls --help # aide courteinfo coreutils # documentation GNU détailléetype ls # nature de la commande (alias, fonction, programme)which python3 # emplacement du programmewhatis grep # description en une lignetldr tar # exemples pratiques (paquet tldr, facultatif)| Section du manuel | Contenu |
|---|---|
| 1 | Commandes utilisateur (man 1 ls) |
| 5 | Formats de fichiers (man 5 fstab) |
| 8 | Administration (man 8 mount) |
Un manuel se lit par ses sections : NAME (résumé), SYNOPSIS (syntaxe), DESCRIPTION, OPTIONS, EXAMPLES, SEE ALSO. Les crochets [ ] signalent le facultatif.
Pour lire les manuels en français : sudo apt install manpages-fr, puis LANG=fr_FR.UTF-8 man ls ; la couverture est partielle, les pages en anglais sont plus complètes.
Enchaîner des commandes
Section intitulée « Enchaîner des commandes »cd /var/log && ls -lh # la 2e seulement si la 1re réussitmake ; echo "terminé" # les deux, quoi qu'il arrivetest -f config.txt || echo "absent" # la 2e seulement si la 1re échouels -l | less # envoyer la sortie à un autre programme (tube)long-calcul & # lancer en arrière-planChaque commande renvoie un code de sortie : 0 = succès, autre = erreur (echo $? pour le lire). Les enchaînements && et || s’appuient dessus. Voir Texte, éditeurs et redirections et Bash : conditions et boucles.
Variables d’environnement
Section intitulée « Variables d’environnement »echo $HOME $USER $SHELLecho $PATH # dossiers où le shell cherche les commandesprintenv | sort | headexport EDITOR=nano # variable visible des programmes lancés ensuiteUne variable définie dans le terminal disparaît à sa fermeture : pour la rendre permanente, l’ajouter à ~/.bashrc (puis source ~/.bashrc).
alias ll='ls -lah'alias gs='git status -sb'alias # liste des aliasunalias llPour les garder : les ajouter à ~/.bashrc. Éviter un alias qui masque une commande avec une option dangereuse (alias rm='rm -rf') ; au contraire, alias rm='rm -I' demande une confirmation pour les suppressions massives.
Travailler à distance : sessions persistantes
Section intitulée « Travailler à distance : sessions persistantes »Sur un serveur, une connexion SSH qui se coupe interrompt les commandes en cours. Un multiplexeur de terminal garde la session :
sudo apt install tmuxtmux new -s travail # nouvelle session nommée# Ctrl+B puis D : se détacher ; la session continuetmux attach -t travail # se rattachertmux lsDépannage
Section intitulée « Dépannage »| Symptôme | Piste |
|---|---|
bash: cd: …: No such file or directory |
Chemin incorrect ou casse différente : ls pour vérifier, Tab pour compléter |
ls: cannot access '*.txt': No such file or directory |
Aucun fichier ne correspond au motif |
-bash: commande: command not found |
Faute de frappe, programme absent ou hors du PATH |
Le terminal affiche des caractères étranges après cat d’un fichier binaire |
reset (ou Ctrl+L puis reset) |
Ctrl+C ne fait rien |
Programme qui ignore le signal : Ctrl+Z puis kill %1 |
Les flèches affichent ^[[A |
Programme sans édition de ligne : relancer dans bash |
| Le terminal se fige | Gel par Ctrl+S : Ctrl+Q pour reprendre |
Ubuntu 24.04 et 26.04 : différences à connaître
Section intitulée « Ubuntu 24.04 et 26.04 : différences à connaître »Le shell par défaut est bash sur les deux versions. Sur 26.04, certains outils de base peuvent être des réécritures : les options courantes (ls -lah, cp -r) sont identiques ; en cas de doute, commande --help.
Pour aller plus loin
Section intitulée « Pour aller plus loin »- Manuels :
man bash,man ls, Bash : premiers scripts - Suite : Fichiers et dossiers