Fiche commandes de base linux debian – ubuntu : grep, find, which, cat

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 :

  • grep
  • find
  • which
  • cat

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

  1. Introduction
  2. Sommaire
  3. Présentation des commandes
  4. Synthèse Markdown pour ta fiche bristol
  5. La commande cat
  6. La commande grep
  7. La commande find
  8. La commande which
  9. Combiner les commandes ensemble
  10. Fichiers importants
  11. Bloc de configuration et démonstration complète
  12. Commandes de vérification et dépannage
  13. Logs associés et analyse
  14. Ports et pare-feu
  15. Erreurs fréquentes
  16. Bonnes pratiques
  17. Pour aller plus loin
  18. Liens vers des ressources pédagogiques
  19. Idées de TP

3. Présentation des commandes

CommandeRôle principal
catLire ou concaténer des fichiers
grepRechercher du texte dans un fichier
findRechercher des fichiers et dossiers
whichTrouver 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

LogContenu
/var/log/sysloglogs système généraux
/var/log/auth.logauthentification SSH et sudo
/var/log/kern.lognoyau Linux
/var/log/apache2/error.logerreurs Apache
/var/log/apache2/access.logaccè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 :

ServicePort
SSH22
Apache HTTP80
Apache HTTPS443

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 -i lorsque la casse peut varier.
  • Évite find / sans restriction sur un gros serveur.
  • Privilégie less pour les fichiers volumineux.
  • Analyse régulièrement les logs système.
  • Utilise sudo uniquement 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 :

  • awk
  • sed
  • xargs
  • cut
  • sort
  • uniq
  • wc
  • locate
  • 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 .conf d’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"
Retour en haut