Table des matières
Linux sur Raspberry Pi : un kit de survie
Bases de l'environnement du Raspi
Configuration
Lorsqu'on démarre pour la première fois un Raspberry Pi, avec un OS correctement installé sur la carte mémoire, on accède au programme de configuration. Si l'on souhaite relancer ce programme ultérieurement dans un terminal :
raspi-config
Paramètres à configurer dans ce menu :
- Étendre le système de fichier (pour disposer de tout l'espace libre sur la carte mémoire)
- Changer le mot de passe de l'utilisateur par défaut pi (il vaut mieux configurer d'abord le clavier !)
- Choisir le mode de démarrage (interface graphique ou terminal, auto-login ou non)
- Choisir les options internationales
- paramètres régionaux (locale) : fr_FR.UTF-8 (ou fr_FR ISO-8859-1 ou fr_FR@euro ISO-8859-15)
Sélectionner un ou plusieurs paramètres (barre espace puis entrée pour valider) - timezone : Europe - Paris
- clavier : PC générique 105 touches - français
- Activer la webcam si besoin (il ne s'agit pas de webcam USB mais de la nappe interne du Raspi)
- Choisir un overclocking éventuel
- Choisir des options avancées
- Hostname : nom de la machine
- Mémoire allouée à la carte graphique
- Activer ou pas : SSH, VNC, SPI et I2C (interfaces sur le GPIO)
- Paramètres audio (sortie sur HDMI ou jack)
- Activer ou pas 1-Wire (autre interface sur le GPIO)
L'interface graphique peut être lancée par défaut (voir ci-dessus) ou manuellement avec la commande :
startx
Utilisateurs et privilèges
Par défaut, un utilisateur pi est créé avec le mot de passe raspberry. Cet utilisateur dispose des privilèges d'un utilisateur standard mais fait partie du fichier sudoers ce qui signifie qu'il est autorisé à utiliser la commande sudo.
La commande sudo est utilisée pour donner les privilèges du super-utilisateur (root) dans l'utilisation de n'importe quelle commande, par exemple sudo apt-get update permet d'utiliser la commande apt-get normalement réservée au root.
sudo su permet de disposer d'un shell avec les privilèges du root (attention à ce que l'on fait !)
ctrl-d pour fermer ce shell et revenir à l'utilisateur pi.
Il faut noter qu'il n'y a pas d'utilisateur root activé par défaut et que donc on ne peut pas se connecter en tant que tel.
Modifier un fichier : les éditeurs de texte
Sous l'interface graphique, on dispose de plusieurs éditeurs de texte.
Sous le terminal, les deux éditeurs disponibles par défaut sont vi et nano. On peut bien sur en installer d'autres comme emacs.
Commandes de base :
- vi
- déplacement libre avec le curseur, mais pas directement en mode saisie
- i pour insérer, a pour append, puis esc pour sortir de la saisie
- x supprime le caractère sous le curseur, D supprime la fin de la ligne
- : w pour enregistrer
- : q pour quitter
- liste plus complète de commandes vi ici
- nano
- déplacement libre avec le curseur, en mode saisie
- ctrl-o pour enregistrer
- ctrl-x pour quitter
- voir menus en pied de page
Connexion à distance
La connexion à distance se fait par ssh en mode terminal, ou par VNC en mode graphique. Vérifier que l'un ou l'autre des protocoles est ouvert dans raspi-config.
Par ssh, connexion depuis une machine Linux ou MacOS depuis un terminal, avec la commande :
ssh user@adresse.ip
Depuis une machine windows, installer un client ssh comme putty, se connecter en renseignant les champs correspondants de l'interface graphique (user, adresse ip du Raspi).
Par VNC,
- installer un serveur VNC sur le Raspi, tightvncserver par exemple.
- utiliser un client VNC sur la machine cliente (Linux, MacOS, Windows, iOS, Android…)
Autre solution : connexion par ssh avec affichage déporté, par exemple ici.
Autres détails utiles...
Pour obtenir de l'aide sur une commande, le détail de ses paramètres et options :
man <commande>
Pour interrompre la commande en cours (break)
ctrl-c
Pour clôturer sa session (ou le shell du root et revenir à sa session)
ctrl-d
Pour chaîner plusieurs commandes, on utilise le “pipe” qui s'écrit avec le symbole | Par exemple pour afficher toutes les lignes d'un fichier qui contiennent le mot “expression”, on utilise d'abord la commande more (afficher le contenu d'un fichier) qui envoie son résultat à la commande grep qui filtre les lignes contenant l'expression recherchée. Le pipe matérialise le chaînage des deux commandes.
more <fichier> | grep "expression"
Paquetages, mises à jour de l'OS
Les mises à jour et les installations de logiciels pour l'environnement Raspbian sont réalisées par le gestionnaire de paquetages apt (Advanced Packaging Tool). Les paquetages disponibles sont ceux de l'environnement Debian.
Il existe plusieurs interfaces permettant d'accéder au gestionnaire de paquets (apt-get et apt en ligne de commande, aptitude et synaptic incluent en plus une interface graphique). Les exemples ci-dessous utilisent apt-get, mais les autres interfaces sont utilisables (moyennant éventuelle installation) sur Raspi. Plus d'informations sur les gestionnaires de paquetage ici.
La liste des sources utilisées par le gestionnaire de paquetages se trouve dans /etc/apt/sources.list
Recherche des mises à jour disponibles :
sudo apt-get update
Téléchargement et installation de ces mises à jour :
sudo apt-get upgrade
Mise à jour de la distribution de l'OS :
sudo apt-get dist-upgrade
Installer un nouveau paquetage (l'option -y anticipe sur la réponse “yes” pour l'installation) :
sudo apt-get install <nom-paquetage> -y
Commandes de base
Fichiers et répertoires
Dans quel répertoire on se trouve ? (Print Working Directory)
pwd
Changer de répertoire (Change Directory)
cd <répertoire> cd <chemin absolu>
Créer un répertoire (Make Directory)
mkdir <nom répertoire>
Supprimer un répertoire (Remove Directory)
rmdir <nom répertoire>
Lister le contenu d'un répertoire (List). Options : -a (all, dont invisibles) -l (toutes les infos)
ls ls -al
Supprimer un fichier (Remove)
rm <nom fichier>
Copier le fichier source vers le répertoire de destination (Copy)
cp <fichier source> <répertoire destination>
Déplacer le fichier source vers le répertoire de destination (Move)
La commande mv permet également de renommer un fichier
mv <fichier source> <répertoire destination>
Créer un fichier vide ou actualiser la date d'un fichier existant
touch <nom fichier>
Afficher le contenu d'un fichier, concaténer des fichiers
cat <nom fichier>
Rechercher une chaîne de caractères dans un fichier (y compris avec des expressions régulières). Lire le man !
grep <chaîne recherchée> <noms fichiers>
Rechercher des fichiers ou des répertoires selon différents paramètres, comme leur nom. Autres options sur la date, ou sur l'action à effectuer (-delete)
find /chemin -name "<nom fichier>" -ls
Changer les permissions de fichiers ou de répertoires (Change Mode). Option récursif -R
chmod <permission> <fichier ou répertoire>
Changer le propriétaire de fichiers ou de répertoires (Change Owner). Option récursif -R
chown user:group <fichier ou répertoire>
Connaître l'espace disque disponible sur les partitions
df -h
Connaître l'espace occupé par les fichiers et les répertoires
du
Arrêt de la machine
Pour un arrêt différé, remplacer now par +x “Message” (avec x en minutes et message aux utilisateurs)
sudo shutdown -h now sudo halt
Redémarrer
Pour un redémarrage différé, remplacer now par +x (avec x en minutes et message aux utilisateurs)
sudo shutdown -r now sudo reboot
Ajouter :
ifconfig
scp
wget
ps
top
kill
tar
alias (dans le .bashrc de pi et de root)
42 commandes principales ici.