Raspberry Pi : 57 Commandes que tout le monde doit connaître

Rate this post

Quand on commence sur un Raspberry Pi, ce n’est pas toujours facile, car on a pas nécessairement l’habitude d’utiliser les lignes de commande.C’est pourtant souvent plus rapide ou plus efficace que de passer par l’interface graphique.

Raspberry pi: Quelles sont les commandes les plus importantes ?

Il y en a plusieurs, et j’en ai sélectionné 50, qui me semble les plus importante. Je les ai triés par catégorie :

  • Gestion des fichiers
  • Commandes réseau
  • Mises à jour du système
  • Gestion des paquets
  • Gestion du système
  • Commandes Raspbian
  • commandes diverses
  • Commandes de Warrior 🙂

J’ai créé cette liste d’après ma faible expérience sur Raspberry et Linux en général, chacun a ses préférences et des connaissances plus ou moins avancées. Libre à vous d’en utiliser d’autre. Le but de cet article est vraiment d’introduire les commandes essentielles pour commencer, et non de faire une liste exhaustive.

Gestion des fichiers

Ces commandes sont la base pour les débutants Linux. Peut-être les connaissez-vous déjà, si c’est le cas une piqûre de rappel est toujours bienvenue..

L'arborescence Linux est une arborescence, commençant à la racine : /
Chaque sous-dossier créé sous est accessible avec / /
Ex : /home/pi => pi est un sous-dossier de /home, home est un sous-dossier dans /
N'oubliez pas d'utiliser sudo si vous n'êtes pas autorisé à accéder au fichier ou au répertoire (sudo vous donne les droits d'administrateur pour la commande qui suit)

cd : Modifie le répertoire, allez dans le dossier spécifié dans l’arborescence des fichiers

cd /home/pi

ls : Liste les fichiers et le répertoire dans le dossier courant ou spécifier

ls
ls /home/pi
ls -latr /home/pi

mkdir : permets de créer un nouveau sous-dossier dans le dossier courant ou spécifié

mkdir mon dossier
mkdir /home/pi/myfolder

cp : Copie un fichier ou un répertoire à un autre emplacement (pour copier un répertoire complet, il faut ajouter le paramètre -r pour “récursif”)

cp test.txt /home/pi/Documents/
cp /home/pi/test.txt /home/pi/Documents/
cp -r /home/pi/test/ /home/pi/Documents

mv : Déplace un fichier ou un répertoire vers un autre emplacement

mv /home/pi/test.txt /home/Documents/
mv /home/pi/test/ /home/Documents/

cat : Affiche tout le contenu du fichier spécifié

cat /home/pi/README.txt

more : Affiche le contenu du fichier spécifié, page par page (entrée ou espace pour continuer, q pour quitter)

more /var/log/syslog

tail : La commande “tail” permet de visionner les dernières ligne d’un fichier texte.Par défault celui-ci affiche que les dix dernières ligne. Cette outil est le plus souvent utilisé pour voir les fichiers log qui peuvent être très long.

tail /var/log/syslog

Vous pouvez spécifier le nombre de lignes à afficher avec -n

tail -n20 /var/log/syslog

Et enfin, mon favori est l’option -f pour afficher les nouvelles lignes en temps réel

tail -f /var/log/syslog

head : C’est la même chose que tail mais pour afficher le début d’un fichier

head /home/pi/file.txt
head -n20 /home/pi/file.txt

grep : Grep est un outil puissant pour rechercher une chaîne de caractères( c’est un filtre) dans un texte. Vous pouvez l’utiliser pour rechercher quelque chose dans un fichier ou pour filtrer la sortie d’une commande ou d’un script.

Utilisation de base :

grep dhcp /var/log/syslog

Comme je l’ai dit, vous pouvez l’utiliser sur un fichier ou un script :

cat /var/log/syslog | grep dhcp grep
/home/pi/myscript.sh | erreur grep
ls -latr | grep php

Il y a également plusieurs d’options grep, comme des expressions régulières ou des options pour afficher les lignes avant (-B), après (-A) ou autour (-C) la chaîne de recherche
Vous pouvez également utiliser -v pour tout afficher sauf la chaîne de caractères entrée.

grep'dhcp\|dns' /var/log/syslog
grep -A2 -B4'Erreur fatale' /var/log/apache/error.log
grep -v'Notice' /var/log/apache/error.log

Si vous aimez cet outil, je vous recommande de consulter l’aide pour savoir exactement ce que vous pouvez faire avec.

man grep

nano : Nano est un éditeur de texte. Il faudrait un article complet pour entrer dans les détails.
Mais rapidement, il vous permet d’éditer un fichier, et de sauvegarder vos modifications avec (CTRL + O, Enter, CTRL + X)

nano /home/pi/myscript.sh

Vous trouverez toutes les actions disponibles en bas de l’écran

rm : Supprime un fichier. Pour un dossier, ajoutez l’option -rf (récursive et forcée)

rm monscript.sh
rm -rf /home/pi/scripts/

tar -c : Vous pouvez utiliser tar pour stocker des fichiers dans une archive. Il est souvent utilisé avec gzip pour compresser des fichiers

tar -cvfz archive.tar.gz /home/pi/Documents/mydirectory

-c : créer une archive
-v : verbeux
-f : le nom du fichier de l’archive est le suivant
-z : compresser les fichiers avec gzip
tar -x : C’est la même commande, mais pour extraire des fichiers

tar -xvfz archive.tar.gz

-x : extraire une archive.

find : comme son nom l’indique, find est utile pour localiser les fichiers sur votre Raspberry Pi

find /home/pi -iname *.tar.gz

Il y a beaucoup d’options pour vous aider à trouver le bon fichier (taille, date de la dernière modification ….)

pwd : Pwd vous permet de voir dans quel répertoire vous vous trouvez.

pwd

tree : un autre excellent outil pour analyser votre emplacement actuel dans l’arborescence des fichiers. Il vous montrera l’arbo inférieur en entier (voir l’exemple ci-dessous)

pi@raspberrypi:/var/log $ tree
|-- alternatives.log
|-- alternatives.log.1
|-- alternatives.log.2.gz
|-- apt
| | | |-- eipp.log.xz
| | | |-- history.log
| History.log.1.gz
| History.log.2.gz
| | | |-- term.log
| | |-- term.log.1.gz
| term.log.2.gz - `-- term.log.2.gz

Commandes réseau

Après votre première installation de Raspbian, vous aurez sûrement besoin de certaines de ces commandes pour vous aider avec la configuration réseau (surtout si vous êtes sur une version lite ou connecté en SSH)

Configuration

Par défaut, le Raspberry Pi 3B+ est livré avec 2 interfaces (Ethernet et WiFi)
L’Ethernet s’appelle eth0 et le WiFi est wlan0
Vous devez utiliser ces noms avec certaines des commandes ci-dessous

ifconfig : Affiche votre configuration réseau actuelle, principalement votre adresse IP si vous êtes connecté

ifconfig

ping : Envoie un paquet ping à une autre IP sur le réseau pour vérifier si l’hôte est vivant.

ping 192.168.1.1.1

ifup : Active l’interface spécifiée

sudo ifup eth0

ifdown : Désactive l’interface spécifiée. Peut-être utile pour désactiver le WiFi si vous êtes déjà connecté par câble par exemple

sudo ifdown wlan0

Transfert de fichiers et connexion à distance

wget : Cette commande vous permet de télécharger un fichier depuis Internet.

wget https://wordpress.org/latest.zip

ssh @ : SSH est un protocole réseau qui vous permet de vous connecter en toute sécurité à un ordinateur distant.

ssh root@192.168.1.201

scp @: : scp peut transférer un fichier vers un ordinateur distant via SSH

scp test.txt root@192.168.1.201:/root/

rsync @: : rsync fait presque la même chose, mais avec un algorithme de comparaison delta et quelques optimisations pour transférer les fichiers plus rapidement

rsync test.txt root@192.168.1.201:/root/
rsync -auzr /home/pi/Documents/* /home/pi/ sauvegarde/Documents/

Comme vous pouvez le voir, vous pouvez également utiliser rsync pour la synchronisation des fichiers locaux

Mises à jour du système

Juste après la configuration réseau, vous devrez mettre à jour votre système pour obtenir la dernière version de chaque paquet par défaut installée.
Sur Raspbian, et généralement sur toutes les distributions Linux, vous aurez un paquet pour chaque application ou commande que vous installez
Une liste de tous les paquets disponibles s’appelle un référentiel. Une fois installé, vous devez mettre à jour régulièrement ce référentiel et tous vos paquets pour assurer la sécurité de votre système. Ces commandes vous expliquent comment procéder. Nous aurons besoin de sudo pour toutes ces commandes.

apt-get update : Télécharge la dernière version du référentiel pour chacune de celles que vous avez dans votre configuration (/etc/apt/sources.list)

sudo apt-get update

apt-get upgrade : met à jour tous les paquets installés si nécessaire

sudo apt-get upgrade

rpi-update : Ne l’utilisez que si vous savez ce que vous faites.
Cette commande va tout mettre à jour sur votre Raspberry Pi (firmware, paquets …) et peut potentiellement casser quelque chose.

rpi-update

Gestion des paquets

Après cela, vous pouvez installer de nouveaux paquets sur votre Raspberry Pi. Voici les commandes que vous devez connaître.

apt-get install : installe le(s) paquet(s) spécifié(s)

sudo apt-get installer phpmyadmin
sudo apt-get install vim vim htop

apt-get remove : supprime un paquet précédemment sélectionné

sudo apt-get remove vim

apt-cache search : Recherche d’un nom de paquet dans la liste des paquets (dépôt)

sudo apt-cache search myadmin
sudo apt-cache search php

dpkg -l : Liste tous les paquets installés sur votre système. Vous pouvez utiliser grep pour trouver un paquet spécifique.

dpkg -l
dpkg -l | grep myadmin

Gestion du système

Voici les commandes que vous utiliserez souvent pour gérer votre matériel Raspberry Pi

reboot: Comme son nom l’indique, cette commande redémarre le Raspberry Pi immédiatement.

sudo reboot

shutdown -h now : cett commande est pour arrêter le Pi immédiatement

sudo shutdown -h now

Vous pouvez remplacer “now” par une heure spécifique (shutdown -h 12:05)

Service : Cette commande vous permet de démarrer ou d’arrêter des services

service apache2 start
service apache2 stop

Parfois, il y a d’autres options, selon le service, par exemple :

service apache2 reload
service apache2 restart

Taper la syntaxe suivante pour voir toutes les actions disponibles :

service apache2

update-rc.d : Sous Debian, cette commande vous permet de gérer le démarrage ou l’arrêt du service au démarrage du système
Pour démarrer un service au démarrage :

sudo update-rc.d.ssh enable

Pour désactiver le démarrage du service :

sudo update-rc.d -f ssh remove

L’option -f est ici pour forcer la suppression symbolique du lien

Cette commande est uniquement pour le service
Pour lancer d’autres scripts ou commandes au démarrage, vous devez éditer le fichier /etc/rc.local

sudo nano /etc/rc.local

ps : Cette commande affiche tous les processus en cours sur votre Raspberry Pi
La commande de base est celle-ci pour tout afficher :

ps aux

Vous pouvez également afficher le processus lancé par un utilisateur spécifique :

ps -u pi pi

Vous obtiendrez une liste comme celle-ci

L’ID de processus (PID) peut être utile pour d’autres commandes, pour l’arrêter par exemple (commande suivante)
kill : La commande kill permet de terminer un processus. Vous aurez besoin de l’ID du processus pour ce faire (voir la commande précédente)

Kill 12345

Il se peut que vous deviez parfois utiliser l’option -9 pour forcer toutes les commandes associées à s’arrêter
Par exemple, si vous exécutez 20 commandes dans un script et que vous le kill, il passera à la ligne suivante, sans quitter le programme, sauf si vous utilisez l’option -9

kill -9 12345

Vous pouvez aussi utiliser killall pour arrêter toutes les occurrences d’un programme

killall php

Cette commande arrêtera tous les scripts PHP

Sachez que ces commandes arrêteront immédiatement le processus demandé, peu importe ce qui se passait. Vous ne savez pas ce que le script effectué comme action, donc il peut endommager les données ou corrompre les fichiers. Cette commande doit être utilisé comme dernière étape, et si possible sur des processus non critique.

htop : cet outil est une alternative au top. Il est plus convivial, avec des couleurs et des barres de charge dynamiques.

htop

df : Affiche la liste des partitions, avec l’espace disque utilisé et disponible pour chacune d’elles.

df
df -h

-option -h permet d’avoir un format lisible.

vcgencmd measure_temp : Vous ne vous en souvenez peut-être pas, mais cette commande affiche la température actuelle du CPU

vcgencmd measure_temp

Commandes Raspbian

La plupart des commandes de ce poste sont essentiellement des commandes Linux
Mais Raspbian en a des exclusifs que je vais d’abord vous présenter.

Ce ne sont pas tous des éléments essentiels, mais vous ne les connaissez peut-être pas, même si vous êtes bon avec Linux.

raspi-config : Cet outil vous permet de gérer toute la configuration à partir d’un terminal ou d’une connexion SSH

sudo raspi-config

raspistill : Si vous avez une caméra branchée, cette commande prend une photo et l’enregistre dans un fichier image.

raspistill -o image.jpg

paspivid : C’est la même commande, mais pour la capture vidéo à partir de l’appareil photo.

raspivid -o video.h264 -t 10000

-t est le temps de la capture en millisecondes.
raspi-gpio : Cette commande vous permet de gérer le port GPIO du Raspberry Pi.

raspi-gpio get
raspi-gpio obtenir 20
raspi-gpio set 20 a5
raspi-gpio set 20 op pn pn dh

raspividyuv ou raspiyuv : Cette commande est similaire à la commande raspivid, mais pour un flux vidéo YUV brut

raspividyuv -o video.yuv

rpi-update : Ne l’utilisez que si vous savez ce que vous faites. Cela va tout mettre à jour sur votre Raspberry Pi (firmware, paquets …) et peut potentiellement casser quelque chose.

sudo rpi-update

Divers

Voici d’autres commandes utiles que je n’ai pas réussi à placer dans les autres catégories 🙂

History : Linux stocke toutes les commandes que vous tapez dans un fichier d’archive.
History est la commande à utiliser pour afficher cette liste.

History

Vous pouvez également effacer tout l’historique

history -c

Ou effacer une entrée spécifique

history -d 123

 

 

crontab : Cron est un outil pour planifier les tâches sur un Raspberry Pi. Crontab est le fichier dans lequel vous entrez les lignes pour chaque tâche à exécuter.

crontab -l
crontab -e

option -l pour l’affichage des lignes
option -e pour éditer les lignes
Vous pouvez utiliser sudo avant pour programmer des tâches à exécuter avec les privilèges root.

screen : Cet outil vous permet de laisser tourner quelque chose en arrière-plan même si vous fermez votre session.

screen -s >
screen -r >r

option -s pour démarrer un nouvel écran avec le nom suivant
option -r pour reprendre un écran en cours d’exécution avec ce nom

Vous pouvez oublier le nom si vous voulez, un ID sera généré, utilisez l’écran -r pour le trouver et l’écran -r pour le reprendre.
Avec un seul écran en cours d’exécution, l’écran -r le reprendra directement.

Les Commandes du  Warrior

Pour cette dernière partie, je vais vous présenter quelques commandes puissantes pour maîtriser votre Raspberry Pi
Si vous démarrez sous Linux, vous n’avez peut-être pas besoin de connaître celui-ci, mais si vous voulez gagner du temps ou aller plus loin sur Raspberry Pi, elles seront un plus.

awk : awk est presque un langage de programmation, il permet de rechercher des chaînes et de les transformer pour les afficher différemment.
Il sera donc difficile de résumer toutes les possibilités en quelques lignes, mais je vais essayer de vous donner quelques exemples pour le comprendre.
La syntaxe de base d’awk est celle-ci :

awk -F" :"'{print $1}'' /etc/passwd

-F est la chaîne de séparateur de champs (” :”:” ou “,” par exemple)
-v vous permet de définir des variables pour l’utiliser plus tard dans le processus
Ce que j’appelle programme est l’expression utilisée pour traiter le fichier, nous verrons cette partie juste après
enfin, le paramètre “file” est le nom du fichier que vous voulez traiter

En voici un exemple de base :

awk -F" :"'{print $1}'' /etc/passwd

/etc/passwd est le fichier à analyser. Le séparateur de champ est ” : ” : ” donc nous l’utilisons dans l’option -F
ensuite, dans la chaîne du programme, nous demandons d’afficher seulement la première colonne. Cette commande n’affichera donc qu’une liste de noms d’utilisateurs. C’est la façon simple de l’utiliser si vous voulez en savoir plus, je vous recommande de lire un tutoriel dédié, comme celui-ci.

sed : sed vous permet de faire des choses similaires à awk, il transformera le texte en ce que vous voulez.
Quant à awk, c’est une commande complexe à maîtriser, et je ne vais l’introduire ici qu’ici
La syntaxe de base ressemble à ceci :

sed

C’est donc très proche de awk sur ce sujet.

Voyons un exemple :

sed'/^##/d' /etc/apache2/apache2.conf

Généralement, dans chaque fichier de configuration, vous trouverez beaucoup de commentaires pour expliquer ce qu’est chaque ligne. Cette commande affichera le fichier de configuration d’apache sans commentaires. Nous utilisons une expression régulière pour supprimer les lignes commençant par #
Vous devez rediriger la sortie vers un autre fichier pour l’enregistrer.

sed'/^##/d' /etc/apache2/apache2.conf > /etc/apache2/apache2-nocomment.conf

 

Comme pour awk, ce n’est qu’un aperçu de ce que sed peut faire, si vous voulez en savoir plus, il y a aussi un bon tutoriel sed sur ce site.
cut : couper est la dernière façon que j’introduirai ici pour transformer le texte. Il est moins puissant, mais plus simple à utiliser, donc si Cut peut le faire, vous préférerez probablement l’utiliser plutôt que awk ou sed.
Comme son nom l’indique, cut permet d’extraire une partie d’un texte ou d’un fichier
La syntaxe de base est :

cut
echo | cut

Le premier est pour un fichier, et le second pour couper directement une chaîne de caractères.
Un exemple simple maintenant :

echo "abcdefghi" | cut -c 2-4

Ceci n’affichera que “bcd”.
L’option -c est pour le caractère, donc en gros, elle extraira le caractère 2 à 4

Voici d’autres options avec un fichier :

cut -d : : -f 1 /etc/passwd

Ceci fera la même chose que le premier exemple de la commande awk /etc/password est un fichier avec ” :” comme délimiteur
-d est de donner le caractère de délimitation (” :”:”)
option -f est d’indiquer la colonne à extraire (f représente le champ)
Ainsi, ceci n’affichera que la première colonne et vous obtiendrez une liste de noms d’utilisateur

wc : wc signifie Word Count, il vous permet de tout compter dans un fichier ou un flux.
Il y a trois options principales : -l pour les lignes, -w pour les mots et -m pour les caractères
Il y a aussi l’option -c pour obtenir la taille du fichier
Wc sans option vous donnera tout cela

wc .bash_history
668 1977 17979 .bash_history

La première colonne est le nombre de lignes, la deuxième est le nombre de mots et la dernière est la taille du fichier en octets.
Voici quelques exemples d’options :

wc -l .bash_history
ls -latr | wc -l
wc -w monfichier.txt

lsof : lsof signifie “List open files”. Cette commande affiche tous les fichiers ouverts sur votre Raspberry Pi.
Cela peut être utile pour savoir pourquoi vous ne pouvez pas éditer un fichier, ou quel fichier verrouille le processus.

lsof

Regarder : Si vous attendez quelque chose, dans un fichier ou un répertoire, la commande watch peut vous aider à surveiller ce qui se passe. Ceci exécutera la même commande toutes les deux secondes.

watch date
watch ls -latr
watch cat output.txt

Vous pouvez également modifier la fréquence de rafraîchissement avec l’option -n

watch -n10 date

La date actuelle s’affiche toutes les dix secondes.

netstat : Netstat est un outil puissant pour surveiller ce que votre Raspberry Pi fait avec le réseau. Par exemple, vous pourriez voir tous les ports ouverts et tous les flux de trafic.
Mais netstat est un outil complexe que je ne peux pas expliquer en détail en quelques lignes.
Je n’introduirai que quelques usages de base pour afficher toutes les connexions d’écoute que vous pouvez utiliser :

netstat -l

L’option -p ajoutera l’identifiant du processus (PID)

netstat -lp

L’option -c vous permet de rafraîchir les données en continu.

netstat -lpc

Vous pouvez trouver toutes les options dans la page de manuel de netstat

dmesg : cette commande est utile pour dépanner votre Raspberry Pi boot, elle vous montrera tous les événements qui se sont produits dans la séquence de départ.
Ici, vous pouvez voir les erreurs avec les pilotes ou les services et comprendre pourquoi quelque chose ne fonctionne pas comme vous le souhaitez.

dmesg

Vous obtiendrez une colonne avec le temps écoulé depuis le début du démarrage et un texte expliquant ce qui s’est passé.Il y a aussi des messages normaux quand tout va bien.

Conclusion

Nous y voilà! Une bonne liste de commande, qui je l’espère, vous permettra de tirer le meilleur de votre Raspberry Pi.
Et vous, quelles sont vos commandes les plus utilisées ?

 

Damien

Damien Hernandez

Découverte de la programmation informatique à l'âge de 6 ans, assemblage de ses premiers ordinateurs à 13 ans, premier site internet en 1998. Le monde de l'informatique et le web ont toujours fait partie de Damien.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *