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 :
  • 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).
CLI (commande )
TUI (commande )
⚠ 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.
: supprime définitivement les fichiers.
💡 : place les fichiers dans la corbeille.
(CLI)
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é :
📂 /
└── 📂 tmp
    └── 📂 foo
        ├── 📄 faa
        ├── 📂 fee
        ├── 📄 fii
        └── 📄 fuu
💡 est le chemin absolu de .
💡 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.
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.