Voici les commandes de base que tout débutant sous Linux doit apprendre pour naviguer dans l'arborescence de fichiers.
L'organisation des fichiers sous Linux est un arbre, dont la racine est /
Chaque nouveau sous-dossier ajoute un niveau en dessous de /
Par exemple, voici la représentation de la branche /home/pi/test
...@...:~ $ cd /home/pi/test
...@...:~ $ cd test
...@...:~ $ mv test.txt /home/pi
...@...:~ $ mv /home/pi/test /home/pi/test2
...@...:~ $ more test.txt
...@...:~ $ more /home/pi/test.txt
Dans les longs fichiers, il faut appuyer sur “Espace” pourpasser à la page suivante.
...@...:~ $ ls
...@...:~ $ ls /home/pi/test
Il existe plein d'options facultatives permettant de changer l'affichage du résultat, par exemple:
...@...:~ $ ls -latr /home/pi
...@...:~ $ cp test.txt /home/pi
...@...:~ $ cp -r /home/pi/test /home/user/
Utilisez l'option récursive afin de copier un dossier et tout son contenu
...@...:~ $ cat test.txt
...@...:~ $ cat *.txt
...@...:~ $ tail test.txt
...@...:~ $ tail -n20 test.txt
...@...:~ $ tail -f test.txt
...@...:~ $ head test.txt
...@...:~ $ head -n20 test.txt
...@...:~ $ grep "dhcp" /var/log/syslog
...@...:~ $ ls -latr | grep ".php"
...@...:~ $ /home/pi/script.sh | grep error
...@...:~ $ grep "dhcp\|dns" /var/log/syslog
...@...:~ $ grep -A2 -B4 'Fatal error' /var/log/syslog
...@...:~ $ grep -v 'Notice' /var/log/syslogi
...@...:~ $ nano /home/pi/test.txt
Nano va créer le fichier s'il n'existe pas
...@...:~ $ tar -cvfz archive.tar.gz /home/pi/test
...@...:~ $ tar -xvfz archive.tar.gz
...@...:~ $ touch test.txt
...@...:~ $ touch /home/pi/test.txt
...@...:~ $ rm test.txt
...@...:~ $ rm -rf /home/pi/test
...@...:~ $ zip -r archive.zip /home/pi/test
...@...:~ $ unzip archive.zip
...@...:~ $ find /home/pi -iname test.txt
...@...:~ $ find /home/pi -iname *.php
...@...:~ $ find / -type d -iname test
...@...:~ $ tree
...@...:~ $ tree /home/pi/
...@...:~ $ find / -size +10M
affiche tous les fichiers de plus de 10M
...@...:~ $ find /home -mtime -2
-mtime -2 liste les fichiers modifiés depuis 48h
...@...:~ $ find /var/log -iname *.log.gz -exec rm {} \;
Le paramètre {} sera remplacé par les résultats
...@...:~ $ ifconfig
...@...:~ $ sudo ifup eth0
...@...:~ $ sudo ifdown eth0
...@...:~ $ hostname
...@...:~ $ sudo hostname RaspberryZero
...@...:~ $ rsync <file> <user>@<ip>:<path>
...@...:~ $ rsync test.txt pi@192.168.1.1:/home/pi/
...@...:~ $ rsync /home/pi/* /media/usb/
...@...:~ $ rsync -auzr /home/pi/Documents/* pi@192.168.1.1:/home/pi/Documents/
...@...:~ $ iwconfig
...@...:~ $ iwconfig wlan0
...@...:~ $ ping 192.168.1.1
...@...:~ $ wget http://192.168.1.1/test.txt
...@...:~ $ wget http://192.168.1.1/test.txt -Otarget.txt
...@...:~ $ scp <file> <user>@<ip>:<path>
...@...:~ $ scp test.txt pi@192.168.1.1:/home/pi/
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
...@...:~ $ sudo rpi-update
...@...:~ $ sudo apt remove vim
...@...:~ $ wget https://www.realvnc.com/download/file/viewer.files/VNC-Viewer-6.19.325-Linux-ARM.deb
...@...:~ $ sudo dpkg -i VNC-Viewer-6.19.325-Linux-ARM.deb
...@...:~ $ sudo apt upgrade
...@...:~ $ sudo apt install phpmyadmin
...@...:~ $ apt search openjdk
...@...:~ $ apt search openjdk | grep jre
...@...:~ $ sudo dpkg -l
...@...:~ $ sudo dpkg -l | grep php
...@...:~ $ sudo reboot
...@...:~ $ sudo service apache2 start
...@...:~ $ sudo service apache2 stop
...@...:~ $ sudo service apache2 start
...@...:~ $ sudo service apache2 reload
...@...:~ $ ps aux
...@...:~ $ ps -u pi
...@...:~ $ htop
...@...:~ $ sudo apt install htop
...@...:~ $ sudo shutdown -h now
...@...:~ $ sudo shutdown -h 20:00
...@...:~ $ sudo update-rc.d ssh enable
...@...:~ $ sudo update-rc.d -f ssh remove
...@...:~ $ kill 12345
...@...:~ $ killall php
...@...:~ $ df
...@...:~ $ df -h
...@...:~ $ df -h /media/usb
...@...:~ $ du
...@...:~ $ du /home/pi
...@...:~ $ du --summarize /home/pi
...@...:~ $ du -ak | sort -nr | head -20
...@...:~ $ date
...@...:~ $ date +%m-%d-%Y
...@...:~ $ sudo chown pi /usr/local/bin/script.sh
...@...:~ $ sudo chown pi:www-data /var/www/html/mysite
...@...:~ $ vcgencmd measure_temp
...@...:~ $ sudo apt install libraspberrypi-bin
...@...:~ $ sudo mount /dev/sda1 /mnt/usb
...@...:~ $ sudo umount /mnt/usb
...@...:~ $ uptime
...@...:~ $ uptime -s
...@...:~ $ chmod 644 script.sh
...@...:~ $ chmod +x script.sh
...@...:~ $ man find
...@...:~ $ sudo raspi-config
...@...:~ $ raspivid -o video.h264 -t 10000
L'option -t permet de spécifier la durée du film
...@...:~ $ raspividyuv -o video.yuv
...@...:~ $ raspistill -o image.jpg
...@...:~ $ raspi-gpio get
...@...:~ $ raspi-gpio set 20 a5
...@...:~ $ sudo rpi-update
...@...:~ $ history
...@...:~ $ history | tail -n 20
...@...:~ $ history -c
...@...:~ $ history -d 123
...@...:~ $ <command1> | <command2>
...@...:~ $ cat test.txt | grep error
...@...:~ $ du -ak | sort -nr | head -20
...@...:~ $ <history_id>
...@...:~ $ !123
...@...:~ $ <command> > <filename>
...@...:~ $ cat test.txt | grep error > error.log
...@...:~ $ crontab -l
...@...:~ $ crontab -e
...@...:~ $ !!
...@...:~ $ cat test.txt | grep error >> error.log
Dans ce cas, les lignes d'erreur sont ajoutées à la fin de error.log
...@...:~ $ awk [-F] [-v var=value] 'program' file
...@...:~ $ awk -F":" '{print $1}' /etc/passwd
...@...:~ $ cut <option> <file>
...@...:~ $ cut -d : -f 1 /etc/passwd
...@...:~ $ lsof
...@...:~ $ netstat -l
...@...:~ $ netstat -lp
...@...:~ $ netstat -lpc
...@...:~ $ sed <option> <script> <file>
...@...:~ $ sed '/^#/d' /etc/apache2/apache2.conf
...@...:~ $ wc <options> <file>
...@...:~ $ wc -l /var/log/syslog
...@...:~ $ watch date
...@...:~ $ watch -n10 date
...@...:~ $ dmesg