====== 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 [[http://www.linux-france.org/prj/support/outils/vi.html|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 [[http://www.putty.org/|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 [[http://blog.onkeyboardst.net/post/X11-Forwarding-depuis-le-Raspberry-Pi-avec-ssh|ici]].
==== Autres détails utiles... ====
Pour obtenir de l'aide sur une commande, le détail de ses paramètres et options :
man
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 | 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 [[https://debian-handbook.info/browse/fr-FR/stable/sect.apt-get.html|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 -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
cd
Créer un répertoire (Make Directory)
mkdir
Supprimer un répertoire (Remove Directory)
rmdir
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
Copier le fichier source vers le répertoire de destination (Copy)
cp
Déplacer le fichier source vers le répertoire de destination (Move)\\
La commande mv permet également de renommer un fichier
mv
Créer un fichier vide ou actualiser la date d'un fichier existant
touch
Afficher le contenu d'un fichier, concaténer des fichiers
cat
Rechercher une chaîne de caractères dans un fichier (y compris avec des expressions régulières). Lire le man !
grep
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 "" -ls
Changer les permissions de fichiers ou de répertoires (Change Mode). Option récursif -R
chmod
Changer le propriétaire de fichiers ou de répertoires (Change Owner). Option récursif -R
chown user:group
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 [[http://www.semageek.com/les-42-commandes-les-plus-utiles-sur-raspberry-pi/|ici]].