3 manières d'intéragir avec un ordinateur :
- CLI : interface en lignes de commande (Command Line Interface) ;
- GUI : interface graphique (Graphical User Interface) ;
- TUI : interface textuelle (Text-based User Interface).
Avantages des CLI par rapport GUI :
- possibilité de copier/coller des instructions (c'est du texte).
- automatisation avec des scripts (fichier contenant des lignes de commandes).
- langage de programmation (variables, conditions, boucles, etc).
- interface plus rapide/simple à concevoir.
- serveurs sans interfaces graphiques (réduit surface d'attaque, économise ressources).
L'invite de commande (ou prompt) :
- indique que l'utilisateur peut saisir une nouvelle ligne de commande.
- affiche des informations (personnalisable).
demigda@demigda-Latitude-5400:~$ echo "Hello" Hello demigda@demigda-Latitude-5400:~$
L'invite indique ainsi :
💡 se lit "at" en anglais et indique un lieu.
- le nom de l'utilisateur ()
- le nom de l'ordinateur ()
- le répertoire actuel (), cf CM2.
💡 se lit "at" en anglais et indique un lieu.
Ligne de commande = instruction à exécuter (≈ appel d'une fonction), avec :
- une commande (≈ une fonction) à exécuter ;
- des arguments passés en paramètres.
| Fonction python : | Ligne de commande : |
|---|---|
Différences syntaxiques :
- pas de parenthèses ;
- argument = valeur qu'on transmet (appel).
- arguments séparés par un espace.
- paramètre = variable manipulée (définition).
⚠ Si espaces dans l'argument : les échapper, ou de mettre entre guillemets simples :
- Shell : programme qui interpréte et exécute les commandes shell.
- Terminal (ou console) : interface graphique entre l'utilisateur et le Shell.
🕮 Les premiers ordinateurs avaient la taille d'une pièce (e.g. 160m²). Des consoles constituées d'un clavier et d'un écran (≈ terminal) permettaient d’interagir avec l'ordinateur mainframe (≈ shell).
- CLI (Command-Line Interface) : lignes de commande.
- TUI (Terminal User Interface) : interactif avec clavier et souris (pas standard, + ergonomique).
⚠ Recopies à la main ⇒ erreurs et fautes de frappe.
- Copier-coller : et ou clic-milieu/molette de la souris.
⚠ arrête la commande en cours d'exécution. - Auto-complétion des commandes et chemins : .
💡 pour affiches les possibilités. - Historique : ou pour naviguer dans l'historique des lignes de commandes (et les réexécuter) .
💡 ou pour modifier la ligne de commande.
La documentation :
- (manuel) : affiche la documentation de la commande .
- (too long : didn't read) : version simplifiée de .
- : affiche la liste des commandes internes de bash.
Le terminal :
- : replace l'invite de commande en haut de la fenêtre.
- : efface complètement le contenu du terminal.
- : quitte le terminal.
L'historique :
- : affiche l'historique des dernières lignes de commandes exécutées.
- : réexécuter la dernière commande entrée.
- : réexécute la dernière commande entrée.
Commandes standards pour manipuler les fichiers :
- (make directory) créer.
- créer un fichier vide.
- (remove) supprimer.
- (copy) copier.
- (move) déplacer.
- déplacer et renommer.
- rechercher (récursivement) dans les fichiers correspondant à .
💡 : copier/supprimer des dossiers récursivement.
💡 : créer les dossiers parents de s'ils n'existent pas.
💡 : créer les dossiers parents de s'ils n'existent pas.
⚠ : supprime définitivement les fichiers.
💡 : place les fichiers dans la corbeille.
💡 : place les fichiers dans la corbeille.
Raccourcis claviers indiqués en bas de la fenêtre.
Chemin absolu (absolute path) : en partant de la racine, chemin à emprunter pour atteindre le fichier.
Sous Linux tous les fichiers sont contenus dans le dossier racine (root directory), noté :
💡 est le chemin absolu de .
📂 /
└── 📂 tmp
└── 📂 foo
├── 📄 faa
├── 📂 fee
├── 📄 fii
└── 📄 fuu
💡 Par convention, on suffixe le nom des dossiers par , e.g. .
⚠ Évitez les chemins absolus dans les scripts : il n'est pas forcément le même d'un ordinateur à l'autre.
⚠ Évitez les chemins absolus dans les scripts : il n'est pas forcément le même d'un ordinateur à l'autre.
Chemin relatif (relative path) : en partant du dossier de travail, chemin pour atteindre le fichier.
- : chemin relatif de à partir de .
- : chemin relatif de à partir de , avec le dossier parent.
Dossier de travail (working directory), noté : dossier dans lequel on se trouve actuellement.
- (change directory) : se déplacer dans le dossier .
TODO: cd - & cd - (print working directory) : afficher le dossier de travail.
$ pwd /tmp/foo
💡 Ce dossier est indiqué dans l'invite de commande :
demigda@demigda-Latitude-5400:/tmp/foo$
💡 : liste le contenu d'un dossier.
$ ls foo 📄 faa 📂 fee 📄 fii 📄 fuu
⚠ fichiers cachés : fichiers dont le nom commence par , ne s'affiche qu'avec l'option (all).
- pour manipuler plusieurs fichiers ⇒ écrire leurs chemins uns à uns ☹.
- Représenter un ensemble de chemins avec les caractères de remplacements (wildcard) :
- : 0 à plusieurs caractères, e.g. : tous les fichiers d'extension ".txt".
- : 0 à plusieurs dossiers, e.g. : le fichier "a.txt" dans un des sous dossiers.
- : une alternative, e.g. : "./foo.txt" ou "./faa.txt".
💡 : alias représentant le chemin absolu du home de l'utilisateur (actuel si non précisé).
💡 Utilisez l'auto-complétion afin d'éviter les erreurs lors de la saisie d'un chemin.
💡 Utilisez l'auto-complétion afin d'éviter les erreurs lors de la saisie d'un chemin.