====== 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.]]