Inspection de fichiers et de répertoires
Pour naviguer et analyser le contenu du système de fichiers, plusieurs commandes Bash sont indispensables.
La commande ls
Cette commande liste le contenu d'un répertoire. Ses diverses options permettent d'obtenir des informations détaillées ou formatées.
$ ls -l
total 8
drwxr-xr-x 2 julie julie 4096 Oct 15 10:00 docs
-rw-r--r-- 1 julie julie 542 Oct 15 10:05 rapport.txt
-rwxr-xr-x 1 julie julie 120 Oct 15 09:50 verif.sh
# Premier caractère : type (d pour répertoire, - pour fichier normal)
# Bloc de permissions (9 caractères), propriétaire, groupe, taille, date, nom
$ ls -lh
total 8.0K
drwxr-xr-x 2 julie julie 4.0K Oct 15 10:00 docs
-rw-r--r-- 1 julie julie 542 Oct 15 10:05 rapport.txt
-rwxr-xr-x 1 julie julie 120 Oct 15 09:50 verif.sh
$ ls -la
.
..
docs
rapport.txt
verif.sh
.cache
$ ls -i
789001 docs
789002 rapport.txt
789003 verif.sh
$ ls -R
.:
docs rapport.txt verif.sh
./docs:
notes.txt schema.svg
La commande cat
Permet d'afficher, de concaténer ou de créer le contenu des fichiers.
$ cat notes.txt
Première ligne du document.
Contenu principal ici.
Fin du fichier.
$ cat -n notes.txt
1 Première ligne du document.
2 Contenu principal ici.
3 Fin du fichier.
$ cat notes.txt >> journal.log
$ cat notes.txt rapport.txt > compilation.txt
Visionnage par page : more et less
Pour les fichiers longs, less offre plus de fonctionnalités que more, notamemnt la recherche bidirectionnelle.
$ less /var/log/syslog
# Utiliser / pour chercher en avant, ? pour chercher en arrière.
# Navigation : PgUp/PgDn, g pour le début, G pour la fin.
# Marquer une position : m puis une lettre. Revenir avec ' puis la lettre.
# Quitter avec q.
$ head -20 log_conteneur.log
$ tail -50 log_conteneur.log
$ tail -f /var/log/auth.log
# Reste actif et affiche les nouvelles lignes ajoutées. Ctrl+C pour quitter.
$ tail -f -n 0 logs/app.log --pid=4512
Analyse de fichiers
$ file schema.svg
schema.svg: SVG Scalable Vector Graphics image
$ file -i donnees.bin
donnees.bin: application/octet-stream; charset=binary
$ wc -l rapport.txt
42 rapport.txt
$ wc -w rapport.txt
310 rapport.txt
Recherche avec find
La commande find recherche des fichiers selon des critères multiples.
$ find /home/julie -name "*.conf"
/home/julie/.config/app/settings.conf
$ find . -type d -name "archive*"
./projets/archive_ancien
./docs/archive_2023
$ find . -type f -size +1M
./video_demo.mp4
./base_donnees.sqlite
# Recherche par date (modifié il y a plus de 30 jours)
$ find ~/projets -type f -mtime +30
# Recherche combinée et exécution d'une commande sur les résultats
$ find . -type f -name "*.log" -mtime +7 -exec rm {} \;
# Recherche par permissions
$ find /var/www -type f -perm 0644