Documentation du Dr FRAPPE

Ce wiki regroupe les résultats de mes expériences en informatique accumulés au cours de mes recherches sur le net.

Dans la mesure du possible, j'ai cité mes sources ; il en manque certainement… :-)

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
tutoriel:nanopc:raspi:74commandes:start [2021/04/11 16:01] – [Commandes réseau] admintutoriel:nanopc:raspi:74commandes:start [2022/08/13 22:15] (Version actuelle) – modification externe 127.0.0.1
Ligne 111: Ligne 111:
   - **ifconfig** : Affiche votre configuration réseau actuelle(adresse ip notamment)   - **ifconfig** : Affiche votre configuration réseau actuelle(adresse ip notamment)
     * Usage:<cli prompt='$ '>...@...:~ $ ifconfig</cli>     * Usage:<cli prompt='$ '>...@...:~ $ ifconfig</cli>
-    * Il est possible d'ajouter le nom de l'interface en paramètresi vous voulez: "ifconfig wlan0".+    * Il est possible d'ajouter le nom de l'interface en paramètre si vous voulez: "ifconfig wlan0".
   - **ifup / ifdown** : Permet d'activer ou de désactiver une interface   - **ifup / ifdown** : Permet d'activer ou de désactiver une interface
     * Activation:<cli prompt='$ '>...@...:~ $ sudo ifup eth0</cli>     * Activation:<cli prompt='$ '>...@...:~ $ sudo ifup eth0</cli>
     * Désactivation:<cli prompt='$ '>...@...:~ $ sudo ifdown eth0</cli>     * Désactivation:<cli prompt='$ '>...@...:~ $ sudo ifdown eth0</cli>
     * Cela peut être utile pour déactiver le Wi-Fi une fois connecté en câble par exemple.     * Cela peut être utile pour déactiver le Wi-Fi une fois connecté en câble par exemple.
 +  - **hostname** : Affiche ou change le nom d'hôte du Raspberry Pi:
 +    * Affichage:<cli prompt='$ '>...@...:~ $ hostname</cli>
 +    * Configuration:<cli prompt='$ '>...@...:~ $ sudo hostname RaspberryZero</cli>
 +  - **ssh <USER>@<IP>** : Connexion à un autre système via SSH
 +    * Exemple:ssh pi@192.168.1.1
 +  - **rsync** : Similaire à scp mais avec davantage defonctionnalités
 +    * Syntaxe:<cli prompt='$ '>...@...:~ $ rsync <file> <user>@<ip>:<path></cli>
 +    * Exemple:<cli prompt='$ '>...@...:~ $ rsync test.txt pi@192.168.1.1:/home/pi/</cli>
 +    * Copie locale:<cli prompt='$ '>...@...:~ $ rsync /home/pi/* /media/usb/</cli>
 +    * Copie distante récursive::<cli prompt='$ '>...@...:~ $ rsync -auzr /home/pi/Documents/* pi@192.168.1.1:/home/pi/Documents/</cli>
 +  - **iwconfig** : Montre les informations concernant la connexion Wi-Fi (SSID, vitesse, ...)
 +    * Usage:<cli prompt='$ '>...@...:~ $ iwconfig</cli>
 +    * NB: Vous pouvez également spécifier l'interface: <cli prompt='$ '>...@...:~ $ iwconfig wlan0</cli>
 +  - **ping <HOTE>** : Vérifier si une machine est joignable sur le réseau
 +    * Usage: <cli prompt='$ '>...@...:~ $ ping 192.168.1.1</cli>
 +    * Consultez l'aide "man ping" pour toutes les options
 +  - **wget <URL>** : Télécharge un fichier depuis la console
 +    * Usage:<cli prompt='$ '>...@...:~ $ wget http://192.168.1.1/test.txt</cli>
 +    * Spécifier le nom de fichier:<cli prompt='$ '>...@...:~ $ wget http://192.168.1.1/test.txt -Otarget.txt</cli>
 +  - **scp** : Copie un fichier sur le réseau à travers SSH
 +    * Syntaxe:<cli prompt='$ '>...@...:~ $ scp <file> <user>@<ip>:<path></cli>
 +    * Exemple:<cli prompt='$ '>...@...:~ $ scp test.txt pi@192.168.1.1:/home/pi/</cli>
 ===== Gestion des paquets ===== ===== Gestion des paquets =====
  
 +Sous Linux, chaque programme est un paquet, tout comme chaque dépendance
 +
 +Vous téléchargez les paquets depuis un dépôt (serveur hébergeant les paquets)
 +
 +Vous aurez besoin de l'outil **apt** pour rechercher, installer et mettre à jour les paquets sur Debian/Raspbian.
 +
 +Toutes ces commandes nécessitent les droits administrateur, il faudra donc utiliser **sudo**.
 +
 +  - **sudo apt update** : Télécharge la liste des paquets à jour depuis le dépôt
 +    * Usage :<cli prompt='$ '>...@...:~ $ sudo apt update</cli>
 +    * Pour ajouter ou modifier les dépôts utilisés, vous pouvez éditer le fichier /etc/apt/sources.list et suivre les instructions
 +  - **sudo rpi-update** : Met tout à jour sur votre Raspberry Pi. À utiliser en dernier recours
 +    * Usage :<cli prompt='$ '>...@...:~ $ sudo rpi-update</cli>
 +  - **sudo apt remove <PAQUET>** : Désinstalle un paquet du système
 +    * Usage :<cli prompt='$ '>...@...:~ $ sudo apt remove vim</cli>
 +    * Je vous donne la commande permettant de lister les paquets installés juste après
 +  - **Installation manuelle** : Parfois, vous devrez installer des paquets à la main,voici comment faire :
 +    - **Téléchargez le paquet** avec wget :<cli prompt='$ '>...@...:~ $ wget https://www.realvnc.com/download/file/viewer.files/VNC-Viewer-6.19.325-Linux-ARM.deb</cli>
 +    - **Installez-le à la main** :<cli prompt='$ '>...@...:~ $ sudo dpkg -i VNC-Viewer-6.19.325-Linux-ARM.deb</cli>
 +    * La commande dpkg -r permet de désinstaller un paquet s'il a été installé à la main
 +  - **sudo apt upgrade** : Télécharge et installe les dernières mises à jour pour les paquets utilisés
 +    * Usage :<cli prompt='$ '>...@...:~ $ sudo apt upgrade</cli>
 +    * L'utilisation de "apt update" avant est obligatoire. L'option -y permet d'accepter automatiquement les mises à jour (sans confirmation)
 +  - **sudo apt install <paquet>** : Installe le paquet spécifié sur votre système
 +    * Usage :<cli prompt='$ '>...@...:~ $ sudo apt install phpmyadmin</cli>
 +    * Utilisez la commande "search" ci-dessous pour trouver le nom exact d'un paquet
 +  - **sudo apt search** : Très utile pour retrouver le nom d'un paquet
 +    * Usage :<cli prompt='$ '>...@...:~ $ apt search openjdk</cli>
 +    * Avec grep :<cli prompt='$ '>...@...:~ $ apt search openjdk | grep jre</cli>
 +    * L'utilisation de sudo est inutile pour cette commande
 +  - **Liste des paquets installés** : Dpkg permet aussi d'afficher la liste des paquets installés sur votre système
 +    * Syntaxe :<cli prompt='$ '>...@...:~ $ sudo dpkg -l</cli>
 +    * Avec grep :<cli prompt='$ '>...@...:~ $ sudo dpkg -l | grep php</cli>
 +    * Lisez l'aide "man dpkg" pour connaître toutes les optionsdisponibles
 ===== Gestion du système ===== ===== Gestion du système =====
  
 +  - **reboot** : Cette commande redémarre instantanément le Raspberry Pi
 +    * Usage :<cli prompt='$ '>...@...:~ $ sudo reboot</cli>
 +  - **service** : Permet de gérer le fonctionnement des services du système
 +    * Démarrage :<cli prompt='$ '>...@...:~ $ sudo service apache2 start</cli>
 +    * Arrêt :<cli prompt='$ '>...@...:~ $ sudo service apache2 stop</cli>
 +    * Redémarrer :<cli prompt='$ '>...@...:~ $ sudo service apache2 start</cli>
 +    * Recharger:<cli prompt='$ '>...@...:~ $ sudo service apache2 reload</cli>
 +    * Utilisez "service <service>" pour connaitre toutes les options disponibles.
 +    * La touche <key>TAB</key> vous aidera à trouver le nom du service
 +  - **Liste des processus** : Affiche tous les processus en cours
 +    * Usage basique :<cli prompt='$ '>...@...:~ $ ps aux</cli>
 +    * Filtrer par utilisateur :<cli prompt='$ '>...@...:~ $ ps -u pi</cli>
 +  - **htop** : Une bonne alternative à "top" pour afficher l'état du système
 +    * Usage :<cli prompt='$ '>...@...:~ $ htop</cli>
 +    * Si htop n'est pas disponible, c'est qu'il faut d'abord l'installer: <cli prompt='$ '>...@...:~ $ sudo apt install htop</cli>
 +  - **shutdown** : Arrête le Raspberry Pi, soit immédiatement, soit à une heure spécifiée
 +    * Maintenant:<cli prompt='$ '>...@...:~ $ sudo shutdown -h now</cli>
 +    * Heure indiquée:<cli prompt='$ '>...@...:~ $ sudo shutdown -h 20:00</cli>
 +  - **Démarrage auto** : Permet de gérer le démarrage automatique ou non lors du lancement du Raspberry Pi
 +    * Démarrage auto :<cli prompt='$ '>...@...:~ $ sudo update-rc.d ssh enable</cli>
 +    * Désactivation :<cli prompt='$ '>...@...:~ $ sudo update-rc.d -f ssh remove</cli>
 +    * Pour lancer un script au démarrage, ajoutez le dans /etc/rc.local
 +  - **kill / killall** : Termine immédiatement le processus indiqué
 +    * Kill :<cli prompt='$ '>...@...:~ $ kill 12345</cli>
 +    * Killall :<cli prompt='$ '>...@...:~ $ killall php</cli>
 +    * Utilisez la commande "ps aux" au préalable pour trouver le numéro du processus
 +  - **df** : Affiche la liste des partitions, ainsi que l'espace disque utilisé/restant
 +    * Usage basique :<cli prompt='$ '>...@...:~ $ df</cli>
 +    * Plus lisible :<cli prompt='$ '>...@...:~ $ df -h</cli>
 +    * Partition spécifiée :<cli prompt='$ '>...@...:~ $ df -h /media/usb</cli>
 +  - **du** : Affiche l'espace disque utilisé par le dossier courant ou spécifié
 +    * Usage basique :<cli prompt='$ '>...@...:~ $ du</cli>
 +    * Dossier précis :<cli prompt='$ '>...@...:~ $ du /home/pi</cli>
 +    * Résumé :<cli prompt='$ '>...@...:~ $ du --summarize /home/pi</cli>
 +    * Plus gros fichiers :<cli prompt='$ '>...@...:~ $ du -ak | sort -nr | head -20</cli>
 +    * Il existe bien plus d'options disponibles, utilisez "man du" pour en savoir plus
 +  - **date** : Comme le nom l'indique, permet d'afficher la date
 +    * Affichage complet :<cli prompt='$ '>...@...:~ $ date</cli>
 +    * Format précis :<cli prompt='$ '>...@...:~ $ date +%m-%d-%Y</cli>
 +    * Le "man date" vous aidera au niveau du format notamment
 +  - **chown** : Changer le propriétaire d'un fichier
 +    * Propriétaire :<cli prompt='$ '>...@...:~ $ sudo chown pi /usr/local/bin/script.sh</cli>
 +    * Propriétaire et groupe :<cli prompt='$ '>...@...:~ $ sudo chown pi:www-data /var/www/html/mysite</cli>
 +  - **Température du cpu** : Elle n'est pas facile à se souvenir, mais elle peut être très utile en cas de surcharge
 +    * Usage :<cli prompt='$ '>...@...:~ $ vcgencmd measure_temp</cli>
 +    * vcgencmd est inclus dans le paquet libraspberry-bin, une installation peut être nécessair e: <cli prompt='$ '>...@...:~ $ sudo apt install libraspberrypi-bin</cli>
 +  - **mount** : Monter une partition (une clé USB par exemple)
 +    * Montage :<cli prompt='$ '>...@...:~ $ sudo mount /dev/sda1 /mnt/usb</cli>
 +    * Démontage :<cli prompt='$ '>...@...:~ $ sudo umount /mnt/usb</cli>
 +    * Ce n'est pas très simple pour les débutants, je vous conseille la lecture de ce tutoriel si vous n'avez jamais fait:[[https://raspberrytips.fr/monter-cle-usb-raspberry-pi/]]
 +  - **uptime** : Affiche le temps d'exécution du Raspberry Pi depuis le dernier démarrage
 +    * Utilisation :<cli prompt='$ '>...@...:~ $ uptime</cli>
 +    * Heure dernier boot :<cli prompt='$ '>...@...:~ $ uptime -s</cli>
 +  - **chmod** : Change les permissions d'un fichier ou dossier
 +    * Format numérique :<cli prompt='$ '>...@...:~ $ chmod 644 script.sh</cli>
 +    * Format lettres :<cli prompt='$ '>...@...:~ $ chmod +x script.sh</cli>
 +    * Il existe des outils pour vous aider à connaître les bonnes options à utiliser, par exemple : [[https://chmod-calculator.com/]]
 +  - **man <COMMANDE>** : permet d'afficher l'aide
 +    * Utilisez la touche <key>Espace</key> pour passer à la page suivante et <key>q</key> pour quitter.
 +    * Exemple :<cli prompt='$ '>...@...:~ $ man find</cli>
 ===== Commandes Raspbian ===== ===== Commandes Raspbian =====
  
 +  - **raspi-config** : C'est l'outil principal pour la configuration d'un Raspberry Pi
 +    * Usage :<cli prompt='$ '>...@...:~ $ sudo raspi-config</cli>
 +    * Raspi-config permet de changer plein de paramètres système via un menu pratique (localisation, Wi-Fi, interfaces,etc.)
 +  - **raspivid** : Même chose, mais pour prendre une vidéo avec la caméra
 +    * Utilisation :<cli prompt='$ '>...@...:~ $ raspivid -o video.h264 -t 10000</cli>L'option -t permet de spécifier la durée du film
 +  - **raspividyuv / raspiyuv** : Idem que raspivid mais au format YUV
 +    * Utilisation :<cli prompt='$ '>...@...:~ $ raspividyuv -o video.yuv</cli>
 +  - **raspistill** : Cette commande permet de prendre une photo avec la caméra du Raspberry Pi
 +    * Utilisation :<cli prompt='$ '>...@...:~ $ raspistill -o image.jpg</cli>
 +  - **raspi-gpio** : Permet d'accéder aux pins GPIO directement sans code
 +    * Récupérer valeur :<cli prompt='$ '>...@...:~ $ raspi-gpio get</cli>
 +    * Définir valeur :<cli prompt='$ '>...@...:~ $ raspi-gpio set 20 a5</cli>
 +  - **rpi-update** : mise àjour complète du système
 +    * Usage :<cli prompt='$ '>...@...:~ $ sudo rpi-update</cli>
 ===== Commandes diverses ===== ===== Commandes diverses =====
  
 +  - **history** : Linux archive toutes les commandes tapées, la commande history permet de les afficher
 +    * Voir tout :<cli prompt='$ '>...@...:~ $ history</cli>
 +    * Les 20 dernières :<cli prompt='$ '>...@...:~ $ history | tail -n 20</cli>
 +    * Tout effacer :<cli prompt='$ '>...@...:~ $ history -c</cli>
 +    * Effacer une ligne :<cli prompt='$ '>...@...:~ $ history -d 123</cli>
 +  - **|** : ce symbole est important
 +    * Syntaxe :<cli prompt='$ '>...@...:~ $ <command1> | <command2></cli>
 +    * Grep :<cli prompt='$ '>...@...:~ $ cat test.txt | grep error</cli>
 +    * Double:<cli prompt='$ '>...@...:~ $ du -ak | sort -nr | head -20</cli>
 +  - **!** : Lance une commande présente dansl'historique
 +    * Syntaxe :!<cli prompt='$ '>...@...:~ $ <history_id></cli>
 +    * Exemple :<cli prompt='$ '>...@...:~ $ !123</cli>
 +    * Pensez bien à vérifier le numéro à chaque fois, il change à chaque nouvelle commande tapée
 +  - **>** : Stocke le résultat dans un fichier
 +    * Syntaxe :<cli prompt='$ '>...@...:~ $ <command> > <filename></cli>
 +    * Exemple :<cli prompt='$ '>...@...:~ $ cat test.txt | grep error > error.log</cli>
 +    * La dernière commande stocke toutes les lignes contenant le mot clé "error" dans le fichier error.log. Cette commande n'affichera rien du tout
 +  - **crontab** : Planificateur de tâches pour Raspberry Pi
 +    * Voir les tâches :<cli prompt='$ '>...@...:~ $ crontab -l</cli>
 +    * Modifier :<cli prompt='$ '>...@...:~ $ crontab -e</cli>
 +    * La syntaxe n'est pas évidente à maitriser, je vous conseille de la valider avec ce genre d'outil :[[https://crontab.guru/]]
 +  - **!!** : Similaire à ! mais pour la dernière commande
 +    * Usage :<cli prompt='$ '>...@...:~ $ !!</cli>
 +  - **>>** : Même chose que > mais ajoute à la fin du fichier au lieu de remplacer tout
 +    * Usage :<cli prompt='$ '>...@...:~ $ cat test.txt | grep error >> error.log</cli>Dans ce cas, les lignes d'erreur sont ajoutées à la fin de error.log
 ===== Commandes d'expert ===== ===== Commandes d'expert =====
  
 +  - **awk** : Awk est pratiquement un langage de programmation. Il permet de rechercher une valeur et de transformer l'affichage du résultat
 +    * Syntaxe :<cli prompt='$ '>...@...:~ $ awk [-F] [-v var=value] 'program' file</cli>
 +    * Exemple basique :<cli prompt='$ '>...@...:~ $ awk -F":" '{print $1}' /etc/passwd</cli>
 +    * La dernière commande affiche juste la première colonne.
 +    * Difficile d'expliquer en deux lignes, je vous recommande la lecture de ce guide: [[https://do.co/2VC8mnm]]
 +  - **cut** : Une troisième manière de transformer l'affichage d'un fichier
 +    * Syntaxe :<cli prompt='$ '>...@...:~ $ cut <option> <file></cli>
 +    * Exemple :<cli prompt='$ '>...@...:~ $ cut -d : -f 1 /etc/passwd</cli>
 +    * -d indique le délimiteur, and -f le champ à garder.
 +    * Utilisez "man cut" pour voir les autres options
 +  - **lsof** : Abréviation de "LiSt Open Files", affiche les fichiers ouverts sur votre système
 +    * Usage :<cli prompt='$ '>...@...:~ $ lsof</cli>
 +    * À coupler avec grep pour filtrer les résultats
 +  - **netstat** : Surveille l'activité réseau
 +    * Ports ouverts :<cli prompt='$ '>...@...:~ $ netstat -l</cli>
 +    * Indique le processus :<cli prompt='$ '>...@...:~ $ netstat -lp</cli>
 +    * Temps réel :<cli prompt='$ '>...@...:~ $ netstat -lpc</cli>
 +    * Il existe plein d'autres options, utilisez "man netstat" pour en savoir plus
 +  - **sed** : Similaire à awk, mais utilisant uniquement des expressions régulières
 +    * Syntaxe :<cli prompt='$ '>...@...:~ $ sed <option> <script> <file></cli>
 +    * Exemple :<cli prompt='$ '>...@...:~ $ sed '/^#/d' /etc/apache2/apache2.conf</cli>
 +    * La dernière commande supprime tous les commentaires dans le fichier de configuration Apache.
 +    * Comme pour awk, je vous conseille de lire des tutorials avant de vous lancer
 +  - **wc** : WC est l'abréviation de "Words Count" et affiche le nombre de mots, lignes ou caractères
 +    * Syntaxe :<cli prompt='$ '>...@...:~ $ wc <options> <file></cli>
 +    * Nb lignes :<cli prompt='$ '>...@...:~ $ wc -l /var/log/syslog</cli>
 +    * -l pour les lignes, -w pour les mots et -m pour les caractères
 +  - **watch** : Surveille le résultat d'une commande, à intervalles réguliers
 +    * Utilisation :<cli prompt='$ '>...@...:~ $ watch date</cli>
 +    * Fréquence :<cli prompt='$ '>...@...:~ $ watch -n10 date</cli>
 +    * Par défaut l'affichage est rafraichi toutes les 2s
 +  - **dmesg** : Affiche les logs du dernier démarrage du système
 +    * Usage :<cli prompt='$ '>...@...:~ $ dmesg</cli>
 +    * A coupler avec grep pour filtrer les erreurs par exemple
 ===== Voir aussi ===== ===== Voir aussi =====