57 Commandes Linux que vous devez connaître sur Raspberry Pi


Démarrer sur Raspberry Pi n’est pas toujours évident, car il y a plein de choses à apprendre, et notamment les commandes, que vous n’avez pas forcément l’habitude d’utiliser
Elles sont cependant essentielles et souvent plus pratiques que de passer par l’interface graphique

Quelles sont ces commandes essentielles à connaître ?
Alors il en existe beaucoup, et nous verrons ici les 57 les plus utiles, regroupées par catégorie :
– Gestion des fichiers
– Gestion du réseau
– Mises à jour du système
– Les commandes exclusives Raspbian
– D’autres commandes variés
– Et enfin les commandes de barbus 🙂

Cette liste est basée sur mon expérience sur Raspberry Pi et sur Linux en général
Tout le monde a une utilisation différente de son système, et vous utilisez peut-être plus souvent d’autres commandes qui seront absentes ici
Le but est vraiment de présenter les commandes essentielles pour démarrer, et pas forcément d’en faire une liste exhaustive

Gestion des fichiers

Ces premières commandes sont vraiment des basiques que tout débutant sur Linux doit apprendre à connaitre
Peut-être que vous les avez déjà vues, mais ça fera un rappel

Notes préalables :
- L'arborescence Linux se présente sous la forme d'un arbre, démarrant à une racine : /
Chaque sous-dossier créé sous cette racine / représente une nouvelle branche de notre arbre
Par exemple : /home/pi => pi est un sous-dossier de /home qui est lui-même un sous-dossier de /

- N'oubliez pas d'utiliser sudo avant les commandes présentées si vous n'êtes pas autorisés à
accéder à un fichier ou à un dossier (sudo vous donnera les permissions administrateur pour la commande
que vous mettrez juste après)
  • cd <chemin> : Change de dossier, va au dossier indiqué dans l’arborescence
    cd /home/pi
  • ls : Liste les fichiers et dossiers présents dans le dossier actuel, ou celui spécifié
    ls
    ls /home/pi
    ls -latr /home/pi
  • mkdir <dossier> : Créer un dossier à l’emplacement actuel ou spécifié
    mkdir mondossier
    mkdir /home/pi/mondossier
  • cp <source> <destination> : Copie un fichier ou un dossier d’un emplacement à l’autre
    cp test.txt /home/pi/Documents/
    cp /home/pi/test.txt /home/pi/Documents/
    cp -r /home/pi/test/ /home/pi/Documents/

    Le paramètre -r indique d’effectuer une copie récursive, indispensable pour les dossiers complets
  • mv <source> <destination> : Même chose, mais pour déplacer un fichier ou un dossier
    mv /home/pi/test.txt /home/Documents/
    mv /home/pi/test/ /home/Documents/
  • cat <fichier> : Affiche tout le contenu d’un fichier
    cat /home/pi/README.txt
  • more <fichier> : Même chose, mais affiche le contenu du fichier page par page
    more /var/log/syslog
    Utilisez « Entrée » ou « Espace » pour continuer la lecture, « q » pour quitter)
  • tail <fichier> : Tail vous permet d’afficher uniquement la fin d’un fichier, cela est bien pratique pour les fichiers de log notamment
    tail /var/log/syslog
    Vous pouvez préciser le nombre de lignes à afficher avec -n
    tail -n20 /var/log/syslog
    Ou encore, mon option favorite pour les fichiers de logs, est d’utiliser -f pour afficher les nouvelles lignes en continu :
    tail -f /var/log/syslog
  • head <fichier> : Similaire à tail, mais affiche le début du fichier
    head /home/pi/file.txt
    head -n20 /home/pi/file.txt
  • grep <chaine> : Grep est un outil très puissant pour recherche une chaine dans un texte. Vous pouvez l’utiliser pour rechercher quelque chose dans un fichier ou filtrer la sortie d’une commande ou d’un script
    Pour une utilisation basique :
    grep dhcp /var/log/syslog
    Comme je vous l’ai dit, vous pouvez l’utiliser aussi sur un fichier ou un script, par exemple :
    cat /var/log/syslog | grep dhcp
    /home/pi/myscript.sh | grep error
    ls -latr | grep php

    Et finalement, il y a pas mal d’options que vous pouvez rajouter avec grep, comme des expressions régulières ou des options pour afficher les lignes précédentes (-B), suivantes (-A) ou autour (-C)
    Vous pouvez aussi utiliser -v pour afficher tout sauf ce qui contient la chaine spécifiée :
    grep 'dhcp|dns' /var/log/syslog
    grep -A2 -B4 'Fatal error' /var/log/apache/error.log
    grep -v 'Notice' /var/log/apache/error.log

    Si vous aimez cet outil, je vous recommande la lecture de la page man associée pour savoir exactement ce que vous pouvez faire d’autre avec :
    man grep
  • nano <fichier> : Nano est un éditeur de fichier. Je ferais sans doute un article plus complet pour rentrer dans les détails. Mais en résumé, il vous permet de modifier un fichier, puis de sauvegarder les changements en utilisant la combinaison : CTRL+O, Entrée, CTRL+X
    nano /home/pi/myscript.sh
    Vous trouverez toutes les actions disponibles en bas de l’écran
  • rm <fichier> : Supprimer un fichier. Pour un dossier, l’option -rf devra être ajoutée (pour Forcer une suppression Récursive)
    rm monscript.sh
    rm -rf /home/pi/scripts/
  • tar -c : Vous pouvez utiliser tar pour regrouper plusieurs fichiers dans une même archive. C’est généralement utilisé avec gzip afin de compresser des fichiers
    tar -cvfz archive.tar.gz /home/pi/Documents/mydirectory
    -c : création d’une archive
    -v : mode verbeux
    -f : on spécifie le nom du fichier juste après
    -z : on utilise gzip pour la compression
  • tar -x : Même Commande, mais pour extraire les fichiers
    tar -xvfz archive.tar.gz
  • find : Comme son nom l’indique en anglais, find est utile pour trouver des fichiers sur votre Raspberry Pi
    find /home/pi -iname *.tar.gz
    Vous pouvez ajouter d’autres options pour des recherches avancées (taille du fichier, dernière modification, etc.). Utilisez man pour en savoir plus
  • pwd : Pwd vous permet de savoir dans quel dossier vous êtes (à ne pas confondre avec « passwd »)
    pwd
  • tree : Un autre outil bien pratique pour analyze votre emplacement actuel dans l’arborescence des fichiers. Il vous montrera tout l’arborescence existante dans le dossier actuel ou spécifié
    tree
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 ...

Gestion du réseau

Peu après l’installation de votre première Raspbian, vous aurez surement besoin de ces quelques commandes pour vous aider avec la configuration du réseau (notamment si vous être sur une version Lite ou connecté en SSH)

Configuration

Note : Par défaut, les Raspberry Pi récents sont livrés avec 2 interfaces : Ethernet et Wi-Fi
L'interface Ethernet est appelée eth0 et le Wi-Fi est wlan0
Il faudra utiliser ces noms dans les commandes qui suivent
  • ifconfig : Affiche votre configuration réseau actuelle, principalement pour l’adresse IP si l’interface est connectée
    ifconfig
  • ping <ip> : Envoi un paquet ping vers une autre adresse IP du réseau pour vérifier si la machine est joignable
    ping 192.168.1.1
  • ifup <interface> : Active l’interface spécifiée
    sudo ifup eth0
  • ifdown <interface> : Vous l’aurez compris, désactive l’interface spécfiée. Peut-être utile par exemple pour désactiver le Wi-Fi lorsque vous branchez un câble.
    sudo ifdown wlan0

Transferts de fichiers

  • wget <url> : Cette commande vous permet de télécharger un fichier depuis Internet
    wget https://wordpress.org/latest.zip
  • ssh <utilisateur>@<ip> : SSH est un protocole réseau qui fournit un moyen de se connecter de manière sécurisée à un autre ordinateur
    ssh root@192.168.1.21
  • scp <fichier> <utilisateur>@<ip>:<chemin> : scp permet de transférer des fichiers vers un ordinateur distant en utilisant SSH
    scp test.txt root@192.168.1.201:/root/
  • rsync <fichier> <utilisateur>@<ip>:<chemin> : rsync permet de faire à peu près la même chose, mais en utilisant un algorithme de comparaison et quelques optimisations pour transférer les fichiers plus rapidement (à préférer pour des dossiers complets donc)
    rsync test.txt root@192.168.1.201:/root/
    rsync -auzr /home/pi/Documents/* /home/pi/backups/Documents/

    Comme vous le voyez dans la deuxième commande, cela peut aussi être utilisé pour une sauvegarde locale des fichiers

Mises à jour du système

Juste après la configuration du système, vous devrez mettre à jour votre système pour obtenir la dernière version de tous les paquets installés

Sur Raspbian, et sur toutes les distributions Linux en général,
il existe un paquet pour chaque application ou commande que vous installez
Un dépôt est une liste de paquets disponibles au téléchargement. Raspbian en propose plusieurs.
Une fois le système installé, vous devrez mettre à jour ce dépôt et tous les paquets de manière régulière,
pour garder votre système stable
Ces commandes vous expliquent comment gérer tout cela
Il faudra utiliser sudo pour toutes ces commandes
  • apt-get update : Télécharge la dernière version du dépôt pour tous ceux qui sont utilisés sur votre système (configuration dans /etc/apt/sources.list)
    sudo apt-get update
  • apt-get upgrade : Cette fois, cela va effectuer la mise à jour des paquets si nécessaires
    sudo apt-get upgrade
  • rpi-update : À utiliser uniquement si vous savez ce que vous faites
    Cette commande va tout mettre à jour sur votre système (firmware, paquets, etc.) et peut potentiellement casser des trucs
    sudo rpi-update

Note : apt-get et apt sont très similaires, donc la plupart du temps vous pourrez omettre le « -get » pour aller plus vite.

Gestion des paquets

Une fois le système à jour, nous pouvons passer à l’installation de nouveaux logiciels.
Voici les commandes utiles pour cela :

  • apt-get install <paquet> : Installe le ou les paquet(s) spécifié(s)
    sudo apt-get install phpmyadmin
    sudo apt-get install vim htop
  • apt-get remove <paquet> : Même chose, mais pour désinstaller un paquet
    sudo apt-get remove vim
  • apt-get search <recherche> : Recherche le nom d’un paquet dans la liste des paquets disponibles sur le dépôt
    apt-cache search myadmin
    apt-cache search php
  • dpkg -l : Liste tous les paquets installés sur le système. Vous pouvez ajouter grep pour filtrer les résultats
    dpkg -l
    dpkg -l | grep myadmin

Gestion du système

Voici les commandes que vous allez avoir à utiliser régulièrement pour gérer votre Raspberry Pi :

  • reboot : Comme le nom l’indique, cette commande permet de redémarrer directement le Raspberry Pi
    sudo reboot
  • shutdown -h now : Même chose, mais pour arrêter le Raspberry Pi
    sudo shutdown -h now
    Il est possible de remplacer « now » par l’heure de l’arrêt, ex : shutdown -h 12:05
  • service <nom> <action> : Cette commande permet de démarrer ou arrêter des services
    sudo service apache2 start
    sudo service apache2 stop

    Il est aussi possible de recharger la configuration ou de les redémarrer directement
    sudo service apache2 reload
    sudo service apache2 restart

    Si vous omettez de saisir une action, cela vous permettra de voir toutes les commandes disponibles dans l’aide :
    sudo service apache2
  • update-rc.d <service> <action> : Sur les systèmes avec une base Debian, cette commande vous permet de gérer le démarrage des services au démarrage (ou l’inverse)
    sudo update-rc.d ssh enable
    Et pour l’enlever :
    sudo update-rc.d -f ssh remove
    L’option -f permet de forcer la suppression du lien symbolique
    Cette commande marche uniquement s’il s’agit d’un service à démarrer
    Pour les autres scripts ou commandes que vous souhaitez lancer au démarrage, il faudra éditer le fichier /etc/rc.local
    sudo nano /etc/rc/local
  • ps : Cette commande affiche les processus en cours
    La commande basique vous permettant d’afficher tout est :
    ps aux
    Vous pouvez aussi filtrer suivant l’utilisateur :
    ps -u pi
    Cela vous donnera une liste comme ca :

    L’ID du processus (PID) peut être utile pour d’autre commandes que nous allons voir plus tard (kill par exemple)
  • kill <pid> : La commande kill permet de terminer un processus. Il vous faudra l’ID du processus pour cela (commande précédente)
    kill 12345
    Parfois, il vous faudra utiliser l’option -9 pour forcer la fermeture de tous les processus liés afin de réellement arrête le processus
    Par exemple, si vous avez 20 commandes qui sont lancées par un script et que vous utilisez kill dessus, le script va se poursuivre à la ligne suivante, mais pas s’arrêter (sauf si vous utiliser -9)
    kill -9 12345
    Il est également possible de stopper tous les processus du même programme
    killall php
    Cette commande stoppera tous les scripts PHP en cours

    Attention cette commande les arrêtera directement, peu importe ce qu’ils étaient en train de faire, donc ce n’est pas un arrêt « propre »
    Il est possible que cela corrompe une base de donnée ou des fichiers
    Cela doit être utilisé uniquement en dernier recours, et si possible pas sur les processus critiques
  • htop : Cet outil est une alternative à top. Il est plus intuitif et plus joli, avec des couleurs et des indicateurs de charge graphiques
    htop
  • df : Affiche la liste des partitions, avec l’utilisation disque et l’espace disponible pour chacune d’elle
    df
    df -h

    L’option -h permet d’afficher les informations dans un format plus lisible
  • vcgencmd measure_temp : Vous ne vous en rappellerez peut-être pas, mais cette commande affiche la température du processus
    vcgencmd measure_temp

Les commandes 100% Raspbian

La plupart des commandes de ce guide sont finalement des commandes Linux
Mais Raspbian possède quelques exclusivités que nous allons voir maintenant

Elles ne sont pas toutes essentielles, mais si vous êtes expert sur Linux, mais pas sur Raspberry Pi, cela pourrait vous faire gagner du temps :

  • raspi-config : Cet outil vous permet de toute configurer depuis le terminal sur votre Raspberry Pi (parfait en SSH ou sur Raspbian Lite)
    sudo raspi-config
  • raspistill : Si vous avez une caméra connectée dans le port camera, cette commande prendra une photo et l’enregistrera à l’emplacement indiqué
    raspistill -o image.jpg
  • raspivid : C’est la même chose, mais pour capturer une vidéo depuis la caméra
    raspivid -o video.h264 -t 10000
    Le paramètre -t indique la durée de l’enregistrement en millisecondes
  • raspi-gpio : Cette commande vous permet de gérer les ports GPIO de votre Raspberry Pi. Il est possible par exemple de récupérer ou de définir une valeur :
    raspi-gpio get
    raspi-gpio get 20
    raspi-gpio set 20 a5
    raspi-gpio set 20 op pn dh
  • raspividyuv ou raspiyuv : Ces commandes sont les équivalents de raspivid, mais pour un flux vidéo brut au format YUV
    raspividyuv -o video.yuv
  • rpi-update : À utiliser uniquement si vous savez ce que vous faites. Cette commande pourrait potentiellement casser votre système.
    L’objectif est de tout mettre à jour (paquets et firmwares notamment)
    sudo rpi-update

Autres commandes utiles

Voici d’autres commandes en vrac qui pourraient vous servir également :

  • history : Linux enregistre toutes les commandes tapées dans un fichier d’archive. History est la commande à utiliser pour afficher son contenu :
    history
    Vous pouvez effacer tout l’historique avec :
    history -c
    Ou effacer une seule entrée avec :
    history -d 123
  • crontab : cron est un outil pour planifier des tâches sur Raspberry Pi et crontab est la commande qu’il faut utiliser pour gérer ces tâches
    crontab -l
    crontab -e

    -l permet de lister les tâches prévues
    -e permet de modifier cette liste
    Il est possible d’ajouter sudo pour lancer des tâches en tant qu’administrateur
    La syntaxe étant un peu particulière, je vous conseille de jeter un œil à cet article sur l’utilisation des crons si nécessaire
  • screen : Cet outil vous permet de laisser tourner quelque chose en arrière-plan, même si vous fermez votre session (locale ou SSH)
    Il faudra peut-être commencer par l’installer si nécessaire :
    sudo apt install screen
    Puis :
    screen -s <nom>
    screen -r <nom>

    -s permet de démarrer un nouveau « screen » avec le nom indiqué
    -r permet de reprendre la main dessus
    Si vous oubliez le nom, l’option -r seule vous affichera la liste des screens en cours (ou il s’ouvrira directement si vous n’en avez qu’un)

Pour les barbus uniquement

Dans cette dernière partie, je vais introduire quelques commandes qui vous permettront de passer au niveau supérieur
Si vous démarrez seulement sur Linux ou sur Raspberry Pi, elles ne seront pas nécessaires, ne vous encombrez pas forcément avec cela
Mais si vous voulez gagner du temps ou aller plus loin avec votre Raspberry Pi, cela devrait vous plaire

  • awk : awk est pratiquement un langage de programmation qui vous permet de rechercher dans du texte et de la transformer selon vos besoins
    Il sera difficile de vous faire un résumé rapide ici, mais je vais déjà vous donner quelques exemples pour vous donner une idée des possibilités
    La syntaxe de base est la suivante :
    awk [-F] [-v var=valeur] 'programme' fichier
    -F permet d’indiquer le délimiteur (« : » ou « ; » par exemple)
    -v permet d’ajouter des variables à réutiliser ensuite
    Ce que j’ai appelé « programme » est l’expression qui sera appliquée, je vous donnerai un exemple
    Et finalement, le paramètre « fichier » est le nom du fichier à traiter

    Voici donc un exemple :
    awk -F":" '{print $1}' /etc/passwd
    /etc/passwd sera le fichier à traiter
    Le délimiteur sera « : »
    Et l’expression indique d’afficher la première colonne du fichier
    Donc cette commande va afficher la liste des noms d’utilisateurs existants sur le système
    Voilà pour le principe de base, si vous voulez essayer, jeter un œil à ce tutoriel sur Developpez.comOpens in a new tab.
  • sed : sed permet de faire à peu près la même chose que awk, cela transformera un texte de la manière qui vous intéresse
    Comme pour awk, il s’agit d’une commande complexe, que je vais seulement introduire ici
    La syntaxe de base est la suivante :
    sed <options> <script> <fichier>
    C’est donc très proche de awk au niveau de la syntaxe également
    Voici un exemple :
    sed '/^#/d' /etc/apache2/apache2.conf
    En général, dans chaque fichier de configuration, vous trouverez des dizaines de lignes de commentaires pour vous expliquer à quoi sert chaque ligne
    Cette commande vous permet de retirer les commentaires lors de l’affichage
    C’est une expression régulière qui est utilisée pour masquer les lignes commençant par #
    Si vous souhaitez enregistrer le résultat, il faudra rediriger la sortie vers un fichier, par exemple :
    sed '/^#/d' /etc/apache2/apache2.conf > /etc/apache2/apache2-nocomment.conf
    Comme pour awk, ceci n’est qu’un aperçu des possibilités
    Je vous laisserai vous documenter sur le sujet, vous trouverez pas mal d’exemples ici notamment
  • cut : cut est la dernière méthode que je vais vous présenter pour retraiter du texte. C’est moins puissant, mais c’est souvent plus simple à utiliser
    Comme le nom le laisse entendre, cut permet d’extraire une partie d’une chaine (ou d’un fichier)
    Voici la syntaxe de base :
    cut <option> <file>
    echo <string> | cut <options>

    La première est pour utiliser sur un fichier, la seconde sur une chaine directement
    Voici un exemple :
    echo "abcdefghi" | cut -c 2-4
    Cela affichera « bcd »
    -c est l’option pour les caractères, donc on extrait les caractères n°2 à 4 uniquement

    Voici une autre variante sur un fichier :
    cut -d : -f 1 /etc/passwd
    Cela fera la même chose que le premier exemple de la commande awk
    /etc/password est un fichier qui utilise le délimiteur « : »
    -d est l’option indiquant le délimiteur
    – f est l’option pour définir les colonnes à extraire
    Cela affichera donc la première colonne du fichier, c’est-à-dire les noms d’utilisateurs
  • wc : wc est beaucoup plus simple et permet de compter quelque chose dans un fichier ou un flux de sortie
    Il y a trois options possibles : -l pour les lignes, -w pour les mots et -m pour les caractères
    L’option -c donne la taille du fichier
    wc sans option vous donnera toutes les valeurs sur la même ligne
    wc .bash_history
    668 1977 17979 .bash_history

    La première colonne indique le nombre de lignes, puis le nombre de mots et la dernière est la taille du fichier
    Voici quelques exemples en vrac :
    wc -l .bash_history
    ls -latr | wc -l
    wc -w myfile.txt
  • lsof : lsof signifie « LiSt Open Files » en anglais. Cette commande affiche tous les fichiers ouverts sur votre Raspberry Pi
    Cela peut être utile, voici la commande :
    lsof
  • watch : Si vous attendez un changement quelconque, la commande watch vous permet de rafraichir l’affichage automatiquement en quelque sorte
    Cela va exécuter la même commande toutes les 2 secondes et vous afficher le résultat :
    watch date
    watch ls -latr
    watch cat output.txt

    Il est possible de changer cette fréquence de rafraichissement avec l’option -n :
    watch -n10 date
    Cela affichera la date et l’heure toutes les 10 secondes
  • netstat : netstat est encore un outil puissant pour surveiller ce qu’il se passe sur le Raspberry Pi (au niveau réseau). Par exemple, vous pouvez voir les ports ouverts et le trafic en cours
    Mais netstat permet bon nombre d’options que je ne pourrais pas vous expliquer ici
    Je vais seulement vous montrer les options de base :
    netstat -l
    -p ajoute l’ID du processus (PID)
    netstat -lp
    -c permet de rafraichir les résultats en permanence
    netstat -lpc
    Vous trouverez toutes les options disponibles dans le man :
    man netstat
  • dmesg : Cette commande est très utile pour faire du diagnostic sur votre Raspberry Pi, notamment pour les problèmes au démarrage
    Cela vous permet d’afficher tout ce qu’il s’est passé lors du dernier démarrage, et donc de comprendre pourquoi telle ou telle chose ne fonctionne pas
    dmesg
    Dans la première colonne sera affichée le temps écoulé en secondes, puis le message de ce qui a été fait à ce moment-là

Conclusion

Nous y voilà, c’était encore un article bien consistant aujourd’hui, mais j’espère que vous en aurez appris plus sur les commandes utilisables sur Raspberry Pi (et sur Linux en général)

Restez connectés!

Tenez vous informés des dernières nouveautés en vous inscrivant ici. Pas de panique, il s'agit seulement d'un mail par mois histoire de rester à jour :)

[sibwp_form id=3]

Patrick Fromaget

Je suis l'auteur principal et le créateur de RaspberryTips. Mon but est de vous aider sur tous vos problèmes qui concernent Raspberry Pi en publiant des guides détaillés et des tutoriels rapides. Dans la vraie vie, je suis administrateur système (Linux principalement) avec une solide expérience dans le développement web.

Recent Content