====== Raspberry : utiliser le terminal et les commandes en ligne Unix ====== ===== Présentation ===== Le Raspberry est configuré avec la **distribution logicielle Raspbian**. Cette distribution Raspbian est basée sur le **système d'exploitation Debian**, un des systèmes d'exploitation utilisant le **noyau Linux** inspiré du système d'exploitation **Unix**. L'**interface graphique** (GUI - Graphical user interfaces) du bureau du Raspberry permet d'utiliser les logiciels avec la souris. Il est cependant utile de savoir utiliser le **terminal et les commandes en ligne** (CLI - Command ligne interface) pour des **tâches d'administration** qui seront alors réalisées plus rapidement et de manière plus efficace. ===== CLI ===== ==== Lancer le terminal ==== Il y a deux manières d'accéder au terminal : * à **distance en SSH** avec un logiciel comme **Putty**, * depuis le **bureau** en lançant le **Terminal**. C'est cette manière qui est utilisée ci-après. Choisissez **Menu** puis **Accessoires** puis LXTerminal : L'invite de commandes (prompt) apparait : pi@rapsberrypi:~ $ **Explications** : * **avant l'@** est indiqué le **nom du compte** qui a lancé le session, * **après l'@** est indiqué le **nom d'hôte** du Raspberry, c'est à dire son nom d'ordinateur, * **après le :** est indiqué le **répertoire** (dossier) de l'arborescence où vous êtes positionné. le **caractère ~** (tilde) signifie qu'il s'agit du **dossier personnel** de l'utilisateur **pi**. Le **chemin complet** d'accès à ce dossier est **/home/pi**. * le **caractère $** signifie que **le compte pas les droits** du superutilisateur root et donc que ses possibilités d'administration sont **très réduites**. ==== Visualiser les dossiers et les fichiers ==== La commande **ls** permet de lister les dossiers et fichiers contenus dans le dossier courant : pi@raspberrypi:~ $ ls Desktop Downloads oldconffiles Public Templates Documents Music Pictures python_games Videos pi@raspberrypi:~ $ * lister le contenu d'un dossier comme le dossier Documents pi@raspberrypi:~ $ ls Documents/ BlueJ Projects CharlesTecher Greenfoot Projects Scratch Projects pi@raspberrypi:~ $ * même commande avec le chemin complet d'accès au dossier Documents pi@raspberrypi:~ $ ls /home/pi/Documents/ * lister le contenu d'un dossier dont le nom contient un espace en utilisant le caractère d’échappement **\** : pi@raspberrypi:~ $ ls Documents/Scratch\ Projects/ * obtenir davantage d'information avec les option de la commande ls pi@raspberrypi:~ $ ls -l Documents/ total 24 drwxr-xr-x 6 pi pi 4096 avril 2 19:34 . drwxr-xr-x 20 pi pi 4096 avril 5 16:55 .. drwxr-xr-x 11 pi pi 4096 nov. 29 03:12 BlueJ Projects drwxr-xr-x 3 pi pi 4096 avril 4 17:12 CharlesTecher drwxr-xr-x 5 pi pi 4096 avril 2 19:34 Greenfoot Projects drwxr-xr-x 2 pi pi 4096 nov. 29 03:09 Scratch Projects pi@raspberrypi:~ $ **Explications** : * les paramètres sont précédés du **caractère -**, * on peut ensuite préciser un ou plusieurs paramètres, * le **paramètre l** permet de lister davantage d'information comme les **droits** sur le dossiers et fichiers, la taille et l'heure de la dernière modification, * la **paramètre a** permet de visualiser tous les fichiers c'est à dire ceux qui sont **cachés**. Ici . et .. * visualiser le contenu du dossier parent : pi@raspberrypi:~ $ ls .. * visualiser le contenu des dossiers et fichiers situés à la racine de l'arborescence, c'est à dire au plus haut de cette arborescence pi@raspberrypi:~ $ ls / ==== les droits des dossiers et fichiers ==== * voici un exemple d'information renvoyés par la commande ls -l -rw-r--r-- 1 pi pi 901 avril 2 19:50 voiture.py drwxr-xr-x 2 pi pi 4096 avril 5 15:39 websowket **Explications** : * le premier caractère indique s'il s'agit d'un dossier ou d'un fichier : * **-** indique qu'il s'agit d'un fichier, * **d** indique qu'il s'agit d'un dossier (directory). * les **droits d'accès** sont représentés par groupe de 3 caractères : * **r** signifie que le droit de **lecture** est donné : en décimal cela correspond à **4**, * **w** signifier que le droit **d'écriture** est donné: en décimal cela correspond à **2**, * **x** signifie que le droit **d'exécution** est donné: en décimal cela correspond à **1**. * représentation des droits d'accès : rwxr-xr-- pi pi \ /\ /\ / \ / \ / v v v v v | | | | nom du groupe | | | nom du propriétaire | | | | | droits des autres utilisateurs (o) | droits des utilisateurs appartenant au groupe (g) | droits du propriétaire (u) ==== Exécuter une commande en tant que superutilisateur ==== Pour exécuter une commande qui nécessite les droits superutilisateur, demander une **élévation de privilèges** en faisant précéder la commande par **sudo** : pi@raspberrypi:~ $ sudo ls / ==== Se déplacer dans l'arborescence des fichiers ==== * la commande **cd**(Change directory) permet de changer de dossier courant pi@raspberrypi:~ $ cd Documents pi@raspberrypi:~/Documents $ L'invite de commande a changé et indique que l'on est positionné dans le dossier Documents. * se positionner dans le dossier de l'utilisateur (ici pi) pi@raspberrypi:~/Documents $ cd ~ pi@raspberrypi:~ $ Il est possible aussi d'indiquer le chemin absolu du dossier : pi@raspberrypi:~/Documents $ cd /home/pi pi@raspberrypi:~ $ ==== Créer un dossier ==== * la commande **mkdir**(Make directory) permet de créer un dossier pi@raspberrypi:~/Documents $ mkdir nouveaudossier ==== Créer un fichier et l'éditer ==== * la commande **touch** permet de créer un fichier * l'éditeur nano permet de modifier le contenu d'un fichier pi@raspberrypi:~/Documents $ touch nouveaufichier pi@raspberrypi:~/Documents $ nano nouveaufichier Dans nano utiliser les **combinaisons de touches** suivantes : * pour **enregistrer** les modifications : CTRL + O * pour **quitter** nano : CTRL + X ==== Visualiser le contenu d'un fichier sans le modifier==== pi@raspberrypi:~/Documents $ less nouveaufichier Pour **quitter** less il suffit de taper **q**. ==== Copier un fichier ou un dossier ==== * la commande **cp**(Copy) permet de copier un fichier ou un dossier avec un nom différent pi@raspberrypi:~/Documents $ cp nouveaufichier copiedunouveaufichier pi@raspberrypi:~/Documents $ cp -R dossier copiedudossier Utilisez le paramètre **R** (Récursif) pour les dossiers afin de copier de manière récursive le contenu du dossier et des sou-dossier déventuels. ==== Supprimer un fichier ou un dossier ==== * la commande **rm**(Remove) permet de supprimer un fichier ou un dossier pi@raspberrypi:~/Documents $ rm nouveaufichier pi@raspberrypi:~/Documents $ rm -R nouveaudossier Utilisez le paramètre **R** (Récursif) pour les dossiers afin de supprimer de manière récursive leur contenu. ==== Les activités ... ==== [[.:accueil|Je reviens à la liste des activités.]]