1. Introduction
Dans un environnement Linux, tu passes énormément de temps à rechercher des fichiers, lire des contenus, identifier des commandes ou filtrer des informations. Ces opérations deviennent rapidement indispensables en BTS CIEL ou SIO, notamment lorsque tu dois :
- analyser des logs ;
- retrouver un fichier de configuration ;
- vérifier une installation ;
- dépanner un service ;
- automatiser des tâches ;
- comprendre le fonctionnement d’un système Linux.
Cette fiche présente plusieurs commandes fondamentales sous Debian et Ubuntu :
grepfindwhichcat
Tu vas apprendre à :
- rechercher du texte dans des fichiers ;
- retrouver des fichiers sur le système ;
- identifier l’emplacement d’une commande ;
- afficher et concaténer des fichiers ;
- combiner ces commandes dans des cas concrets d’administration système et de cybersécurité.
Ces commandes constituent une base indispensable avant d’aborder Bash, les scripts d’automatisation, les logs système ou les services réseau.
2. Sommaire
- Introduction
- Sommaire
- Présentation des commandes
- Synthèse Markdown pour ta fiche bristol
- La commande
cat - La commande
grep - La commande
find - La commande
which - Combiner les commandes ensemble
- Fichiers importants
- Bloc de configuration et démonstration complète
- Commandes de vérification et dépannage
- Logs associés et analyse
- Ports et pare-feu
- Erreurs fréquentes
- Bonnes pratiques
- Pour aller plus loin
- Liens vers des ressources pédagogiques
- Idées de TP
3. Présentation des commandes
| Commande | Rôle principal |
|---|---|
cat | Lire ou concaténer des fichiers |
grep | Rechercher du texte dans un fichier |
find | Rechercher des fichiers et dossiers |
which | Trouver l’emplacement d’une commande |
Ces commandes fonctionnent aussi bien sur Debian que sur Ubuntu. Elles sont installées par défaut dans pratiquement toutes les distributions Linux.
4. Synthèse Markdown pour ta fiche bristol
# grep, find, which, cat
## Lire un fichier
cat fichier.txt
## Lire un fichier avec numéros de lignes
cat -n fichier.txt
## Rechercher un mot dans un fichier
grep "erreur" fichier.log
## Rechercher sans tenir compte de la casse
grep -i "error" fichier.log
## Rechercher récursivement dans un dossier
grep -r "Listen 80" /etc/apache2/
## Rechercher un fichier
find / -name "apache2.conf"
## Rechercher un fichier sans tenir compte de la casse
find /etc -iname "*.conf"
## Rechercher les fichiers modifiés il y a moins de 7 jours
find /var/log -mtime -7
## Rechercher un fichier par taille
find /var -size +100M
## Trouver le chemin d'une commande
which apache2
## Combiner find et grep
find /etc -name "*.conf" | grep apache
## Lire un log en temps réel
tail -f /var/log/syslog
## Chercher une erreur dans les logs
grep -i "failed" /var/log/auth.log
5. La commande cat
5.1 Rôle de la commande
La commande cat signifie « concatenate ». Elle permet :
- d’afficher le contenu d’un fichier ;
- de fusionner plusieurs fichiers ;
- de créer rapidement un fichier ;
- d’envoyer du contenu vers la sortie standard.
5.2 Syntaxe
cat [options] fichier
5.3 Lire un fichier
cat /etc/hostname
Cette commande affiche le nom de la machine.
5.4 Afficher les numéros de lignes
cat -n /etc/passwd
Option utilisée :
-n: ajoute un numéro devant chaque ligne.
Très utile pour analyser un fichier de configuration ou un script.
5.5 Fusionner plusieurs fichiers
cat fichier1.txt fichier2.txt
Linux affiche les deux contenus à la suite.
5.6 Créer un fichier rapidement
cat > test.txt
Tu peux ensuite écrire du texte puis terminer avec :
CTRL + D
5.7 Cas concret : lire un fichier de configuration Apache
cat /etc/apache2/apache2.conf
Tu peux rapidement vérifier :
- les modules chargés ;
- les directives globales ;
- les chemins utilisés.
6. La commande grep
6.1 Rôle de la commande
grep recherche du texte dans un fichier ou dans la sortie d’une commande.
C’est l’une des commandes les plus utilisées en administration Linux.
6.2 Syntaxe
grep [options] "motif" fichier
6.3 Rechercher un mot
grep "root" /etc/passwd
Cette commande affiche les lignes contenant root.
6.4 Ignorer la casse
grep -i "error" fichier.log
Option utilisée :
-i: ignore les majuscules et minuscules.
6.5 Afficher les numéros de lignes
grep -n "PermitRootLogin" /etc/ssh/sshd_config
Option utilisée :
-n: affiche les numéros de lignes.
6.6 Recherche récursive
grep -r "DocumentRoot" /etc/apache2/
Option utilisée :
-r: recherche dans les sous-dossiers.
6.7 Rechercher plusieurs motifs
grep -E "error|failed|denied" /var/log/auth.log
Option utilisée :
-E: active les expressions régulières étendues.
6.8 Inverser la recherche
grep -v "^#" fichier.conf
Option utilisée :
-v: affiche tout sauf le motif recherché.
Ici, on masque les commentaires commençant par #.
6.9 Cas concret : analyser les tentatives SSH
grep "Failed password" /var/log/auth.log
Tu peux identifier :
- des attaques par brute force ;
- des utilisateurs inexistants ;
- des erreurs d’authentification.
7. La commande find
7.1 Rôle de la commande
find recherche des fichiers et dossiers selon différents critères :
- nom ;
- taille ;
- date ;
- permissions ;
- utilisateur ;
- type de fichier.
7.2 Syntaxe
find chemin [critères]
7.3 Rechercher un fichier par nom
find /etc -name "sshd_config"
7.4 Ignorer la casse
find /etc -iname "SSHD_CONFIG"
Option utilisée :
-iname: ignore la casse.
7.5 Rechercher par extension
find /var/log -name "*.log"
7.6 Rechercher les fichiers récents
find /home -mtime -7
Option utilisée :
-mtime -7: modifié il y a moins de 7 jours.
7.7 Rechercher les gros fichiers
find /var -size +500M
Option utilisée :
-size +500M: fichiers supérieurs à 500 Mo.
7.8 Rechercher les fichiers d’un utilisateur
find /home -user ubuntu
7.9 Supprimer automatiquement
find /tmp -type f -mtime +7 -delete
Cette commande supprime les fichiers de plus de 7 jours dans /tmp.
Attention : -delete agit immédiatement.
7.10 Cas concret : retrouver une sauvegarde
find /srv/backup -name "*.sql"
Très utile pour retrouver des dumps MariaDB ou PostgreSQL.
8. La commande which
8.1 Rôle de la commande
which affiche l’emplacement d’une commande.
8.2 Syntaxe
which commande
8.3 Exemple simple
which python3
Résultat possible :
/usr/bin/python3
8.4 Vérifier un logiciel installé
which apache2
Si la commande ne retourne rien, le programme n’est probablement pas installé.
8.5 Comprendre le PATH
Linux recherche les commandes dans les chemins présents dans la variable PATH.
Tu peux afficher cette variable :
echo $PATH
9. Combiner les commandes ensemble
Linux devient très puissant lorsque tu combines les commandes avec des pipes |.
9.1 Trouver un fichier puis filtrer
find /etc -name "*.conf" | grep apache
9.2 Chercher un service installé
which sshd | grep sbin
9.3 Chercher une erreur dans les logs
cat /var/log/auth.log | grep "Failed password"
Même si cette syntaxe fonctionne, Linux préfère souvent :
grep "Failed password" /var/log/auth.log
Cette méthode évite un processus inutile.
10. Fichiers importants
Fichiers système courants
/etc/passwd
/etc/group
/etc/shadow
/etc/hostname
/etc/hosts
/etc/ssh/sshd_config
/etc/apache2/apache2.conf
/etc/mysql/mariadb.conf.d/
/var/log/syslog
/var/log/auth.log
/var/log/apache2/access.log
/var/log/apache2/error.log
Arborescence importante
/etc/ → fichiers de configuration
/var/log/ → journaux système
/home/ → dossiers utilisateurs
/usr/bin/ → exécutables utilisateurs
/usr/sbin/ → exécutables administrateur
/tmp/ → fichiers temporaires
11. Bloc de configuration et démonstration complète
# Rechercher la configuration SSH
find /etc -name "sshd_config"
# Lire le fichier SSH
cat /etc/ssh/sshd_config
# Rechercher les lignes importantes
grep -n "PermitRootLogin" /etc/ssh/sshd_config
grep -n "PasswordAuthentication" /etc/ssh/sshd_config
# Rechercher les erreurs SSH dans les logs
grep -i "failed" /var/log/auth.log
# Trouver l'emplacement du démon SSH
which sshd
# Rechercher tous les fichiers de logs
find /var/log -name "*.log"
# Rechercher les gros logs
find /var/log -size +100M
# Afficher uniquement les erreurs Apache
grep -i "error" /var/log/apache2/error.log
# Rechercher récursivement une directive Apache
grep -r "DocumentRoot" /etc/apache2/
# Trouver les fichiers modifiés récemment
find /etc -mtime -2
12. Commandes de vérification et dépannage
Vérifier qu’une commande existe
which grep
which find
Vérifier les permissions d’un fichier
ls -l /etc/ssh/sshd_config
Lire un fichier volumineux
less /var/log/syslog
less reste préférable à cat pour les gros fichiers.
Suivre un log en temps réel
tail -f /var/log/auth.log
Rechercher les erreurs système
grep -i "error" /var/log/syslog
Chercher les fichiers récemment modifiés
find /etc -mtime -1
13. Logs associés et analyse
Logs principaux sous Debian/Ubuntu
| Log | Contenu |
|---|---|
/var/log/syslog | logs système généraux |
/var/log/auth.log | authentification SSH et sudo |
/var/log/kern.log | noyau Linux |
/var/log/apache2/error.log | erreurs Apache |
/var/log/apache2/access.log | accès Apache |
Lire les logs
cat /var/log/auth.log
Rechercher des erreurs
grep -i "failed" /var/log/auth.log
Rechercher les connexions SSH
grep "sshd" /var/log/auth.log
Activer journalctl
Sur Debian et Ubuntu modernes, systemd-journald gère aussi les logs.
journalctl -xe
Options utiles :
-x: ajoute des explications ;-e: positionne à la fin du journal.
Voir les logs d’un service
journalctl -u ssh
14. Ports et pare-feu
Ces commandes ne nécessitent pas d’ouverture de ports réseau.
Cependant, les services analysés peuvent utiliser certains ports :
| Service | Port |
|---|---|
| SSH | 22 |
| Apache HTTP | 80 |
| Apache HTTPS | 443 |
Vérifier les ports ouverts
ss -tulpn
Vérifier le pare-feu UFW
sudo ufw status verbose
Autoriser SSH
sudo ufw allow 22/tcp
Autoriser HTTPS
sudo ufw allow 443/tcp
15. Erreurs fréquentes
Permission denied
cat /etc/shadow
Erreur :
Permission denied
Cause :
- fichier réservé à root.
Solution :
sudo cat /etc/shadow
Aucun résultat avec grep
Cause possible :
- casse incorrecte.
Solution :
grep -i
Aucun résultat avec find
Cause possible :
- mauvais chemin ;
- extension incorrecte ;
- faute dans le nom.
which ne retourne rien
Cause :
- logiciel absent ;
- commande hors PATH.
16. Bonnes pratiques
- Utilise
grep -ilorsque la casse peut varier. - Évite
find /sans restriction sur un gros serveur. - Privilégie
lesspour les fichiers volumineux. - Analyse régulièrement les logs système.
- Utilise
sudouniquement lorsque c’est nécessaire. - Vérifie toujours les chemins avant un
-delete. - Combine les commandes avec des pipes pour gagner du temps.
17. Pour aller plus loin
Après ces commandes de base, tu peux approfondir :
awksedxargscutsortuniqwclocate- les expressions régulières avancées ;
- les scripts Bash ;
- l’automatisation système.
18. Liens vers : les sites officiels, les mooc ou autres contenus pédagogiques qui font références, etc
Documentation officielle GNU grep
https://www.gnu.org/software/grep/manual/grep.html
Documentation officielle complète de grep, avec les expressions régulières et toutes les options avancées.
Documentation GNU findutils
https://www.gnu.org/software/findutils/manual/html_mono/find.html
Référence officielle pour find, xargs et les recherches avancées.
Documentation Ubuntu sur les commandes Linux
https://ubuntu.com/tutorials/command-line-for-beginners
Très bon point de départ pour les étudiants débutants.
Documentation Debian
https://www.debian.org/doc/manuals/debian-reference
Référence complète Debian pour l’administration système.
OpenClassrooms – Découvrez le fonctionnement des réseaux TCP/IP
https://openclassrooms.com/fr/courses/6944606-initiez-vous-aux-reseaux-tcp-ip
Permet de mieux comprendre les services réseau et les logs associés.
OpenClassrooms – Apprenez à utiliser la ligne de commande dans un terminal
https://openclassrooms.com/fr/courses/43538-reprenez-le-controle-a-laide-de-linux
Excellent cours Linux orienté débutants et administration système.
RFC et standardisation POSIX
https://pubs.opengroup.org/onlinepubs/9699919799
Normes POSIX utilisées par les systèmes Unix/Linux.
19. Idées de TP
TP 1 : Recherche de fichiers de configuration
Objectif :
- retrouver les fichiers
.confd’Apache et SSH ; - identifier les fichiers récemment modifiés.
Travail demandé :
find /etc -name "*.conf"
find /etc -mtime -7
TP 2 : Analyse de logs SSH
Objectif :
- détecter des erreurs de connexion ;
- identifier des attaques brute force.
Travail demandé :
grep "Failed password" /var/log/auth.log
TP 3 : Inventaire des gros fichiers
Objectif :
- trouver les fichiers volumineux ;
- comprendre l’espace disque utilisé.
Travail demandé :
find /var -size +100M
TP 4 : Recherche récursive Apache
Objectif :
- retrouver toutes les directives
DocumentRoot.
Travail demandé :
grep -r "DocumentRoot" /etc/apache2/
TP 5 : Audit rapide d’un serveur Linux
Objectif :
- vérifier la présence des services ;
- analyser les logs ;
- retrouver les configurations principales.
Travail demandé :
which apache2
which sshd
grep -i "error" /var/log/syslog
find /etc -name "*.conf"
