--- title: Introduction à la l'interface en ligne de commande date: 2020-09-16 --- # Introduction ## Généralités * *Command line interface* (CLI) en anglais. * Interface textuelle vers l'ordinateur. * Peut s'appeler le *shell*, le *terminal*, la *console*, ... * Semble obscure, mais est très pratique (automatisation de tâches, copier-coller, ...). * Vous devrez l'utiliser tout au long de vos études. * Existe sous Linux, MacOS, et même Windows (les commandes peuvent varier!). * Ici on ne parlera que de *Linux*. # A quoi ça sert? ## Équivalent textuel d'un GUI Toutes les informations obtenues avec une interface graphique, peuvent être obtenues à l'aide de la ligne de commande (liste loin d'être exhaustive): * Changement d'un répertoire: `cd`{.bash} * Affichage du contenu d'un répertoire: `ls`{.bash} * Déplacement de fichier: `mv`{.bash} * Copie de fichier: `cp`{.bash} * Création de répertoire: `mkdir`{.bash} * Recherche de fichier: `find`{.bash} * Recherche de texte dans un fichier: `grep`{.bash} * Etc, etc, etc, etc, etc ## Mais aussi * Télécharger des documents, compiler, éditer des fichiers, ... # Ouvrir un terminal Dépendant de votre distribution de Linux l'ouverture d'un terminal peut varier. Ce qui marche *presque* tout le temps: 1. Appuyer sur le bouton `Super` (`Windows`) du clavier. 2. Commencer à taper "terminal". {width=100%} Raccourcis clavier: * `Ctrl+Alt+T`{.bash} * `Super+T`{.bash} * Vous pouvez customiser les raccourcis. # Une fois le terminal ouvert Vous pouvez taper des commandes puis `Entrée`. ```bash $ pwd /home/orestis ``` Exemple: `pwd`{.bash} affiche le répertoire courant (**p**rint **w**orking **d**irectory). **Attention: les commandes sont sensibles à la casse!** Exemple: `cd`{.bash} change de répertoire (**c**hange **d**irectory). :::::::::::::: {.columns} ::: {.column width="45%"} ```bash $ pwd /home/orestis $ cd .. $ pwd /home ``` ::: ::: {.column width="45%"} ```bash $ cd orestis $ pwd /home/orestis $ cd ../.. $ pwd / ``` ::: :::::::::::::: # Remarque: chemins relatifs ou absolus Un *chemin* est relatif à moins que le chemin commence par `/` ou `~`. ```bash $ pwd /home/orestis $ cd Downloads $ pwd /home/orestis/Downloads $ cd /tmp $ pwd /tmp $ cd ~/Downloads $ pwd /home/orestis/Downloads ``` # Quelques commandes utiles (1/3) ## `mkdir`, création de répertoire ```bash $ mkdir tmp $ cd tmp $ pwd /home/orestis/tmp ``` ## `ls`, affiche le contenu d'un répertoire ```bash $ ls Desktop Documents git Music Public tmp Docker Downloads go Pictures Templates Videos $ ls -ltr ... # des répertoires drwxr-xr-x 3 orestis orestis 4096 31 aoû 09:54 Documents drwxr-xr-x 11 orestis orestis 4096 7 sep 15:59 Downloads drwxr-xr-x 2 orestis orestis 4096 9 sep 11:14 Pictures drwxr-xr-x 2 orestis orestis 4096 9 sep 12:41 tmp -rw-r--r-- 1 orestis orestis 6 9 sep 12:52 cours.dat ``` # Quelques commandes utiles (2/3) ## `cp`{.bash}, copie de fichiers/répertoires ```bash $ cp cours.dat tmp/ # cp cours.dat -> tmp $ ls tmp # affiche le rép tmp cours.dat $ cp -r tmp tmp2 # option -r => recursive $ ls cours.dat Docker Downloads go Pictures Templates tmp2 Desktop Documents git Music Public tmp Videos ``` ## `mv`{.bash}, déplacement de fichiers/répertoires ```bash $ ls tmp $ mv cours.dat tmp # déplace cours.dat -> tmp $ ls tmp cours.dat ``` # Quelques commandes utiles (3/3) ## `rm`{.bash}, effacer des fichiers/répertoires ```bash $ ls tmp cours.dat $ rm tmp/cours.dat $ ls tmp $ rm -r tmp tmp2 $ ls Desktop Documents git Music Public Videos Docker Downloads go Pictures Templates ``` # La touche `tab`{.bash} Probablement la touche la plus utile du clavier: * permet la complétion d'une commande. * permet la complétion d'un nom de fichier. * permet d'afficher les complétions possibles. Fait gagner un temps considérable. # Éditeurs de texte Il existe différents éditeurs de texte qui pourraient être utiles: * `vscode`{.bash} ou `codium`{.bash} (la version sans l'espionnage MS) * `vim`{.bash} * `geany`{.bash} * `gedit`{.bash} * ... Ne vous reposez pas trop sur l'éditeur pour tout faire à votre place.