Exercices complexes à réaliser en autonomie
Exercice 1 : Liens symboliques et liens physiques
Objectif : Comprendre la différence entre un lien symbolique et un lien physique.
- Dans votre répertoire personnel, créez un fichier texte contenant quelques lignes.
- Créez un lien symbolique vers ce fichier dans un autre répertoire.
- Modifiez le fichier original et vérifiez que le contenu du lien symbolique est bien à jour.
- Créez maintenant un lien physique vers ce même fichier, dans un répertoire différent.
- Comparez le comportement du lien symbolique et du lien physique lorsque vous supprimez ou renommez le fichier original.
Vérification :
- Vous devez constater que le lien symbolique devient « cassé » si le fichier original est supprimé, tandis que le lien physique reste utilisable tant que le système de fichiers n'est pas modifié (par ex. suppression totale de l'inode).
Exercice 2 : Planification de tâches avec Cron
Objectif : Découvrir la planification automatique de tâches répétitives.
- Ouvrez l'éditeur de crontab de votre utilisateur.
- Programmez une tâche qui affiche un message dans un fichier texte toutes les minutes (ou toutes les 5 minutes, selon votre choix).
- Patientez le temps nécessaire et vérifiez que votre fichier se remplit au fil du temps.
- Modifiez la planification pour l'exécuter uniquement à une heure donnée.
- Désactivez la tâche ou supprimez-la ensuite pour éviter de saturer le fichier.
Vérification :
- Vous avez constaté que votre script ou commande s'exécute automatiquement aux intervalles définis, et vous savez modifier/supprimer la tâche planifiée.
Exercice 3 : Personnalisation du Shell avec les alias
Objectif : Simplifier l'utilisation de vos commandes favorites.
- Dans votre fichier de configuration du shell (par exemple celui de BASH), définissez un alias qui exécute une série de commandes simples.
- Rechargez votre configuration pour prendre en compte cet alias (sans fermer et rouvrir le terminal).
- Testez votre alias pour vérifier qu'il fonctionne.
- Créez un alias pour lister les fichiers de manière détaillée et un alias pour se rendre rapidement dans un répertoire précis.
- Rendez ces alias permanents pour qu'ils soient disponibles à chaque ouverture de session.
Vérification :
- Vous pouvez taper l'alias dans votre terminal et voir l'effet immédiat (exemple : un ls détaillé, un cd vers un répertoire), sans devoir taper la vraie commande au complet.
Exercice 4 : Manipulation des variables d'environnement
Objectif : Comprendre comment créer, modifier et exploiter des variables d'environnement.
- Dans le terminal, créez une variable d'environnement personnalisée (par exemple MY_VAR) et assignez-lui une valeur.
- Vérifiez que vous pouvez l'afficher dans le terminal.
- Lancez un sous-shell ou ouvrez un nouveau terminal et observez si la variable est toujours disponible.
- Rendez cette variable persistante en la déclarant dans un fichier de configuration approprié.
- Ouvrez un nouveau terminal et vérifiez si la variable est toujours définie.
Vérification :
- Vous avez constaté la différence entre une variable d'environnement disponible uniquement dans la session courante et une variable persistante pour toutes les futures sessions.
Exercice 5 : Observation et analyse du réseau
Objectif : Lister et analyser les connexions réseaux actives.
- Affichez la liste des connexions actives (TCP, UDP) et identifiez les ports en écoute sur votre machine.
- Filtrez pour n'afficher que les connexions établies liées au port 22 (ou un autre port spécifique).
- Lancez une petite requête réseau (par exemple un ping vers un site) dans un autre terminal, puis revenez à votre première commande pour voir l'évolution des connexions.
- Tentez d'afficher les statistiques réseau en temps réel (envoyé/reçu).
- Vérifiez les différences entre l'affichage sur un compte utilisateur normal et le compte super-utilisateur (root).
Vérification :
- Vous êtes capable de voir quelles applications écoutent sur quels ports et d'analyser sommairement l'activité réseau de votre machine.
Exercice 6 : Comparaison de fichiers (hash et différences)
Objectif : Comparer l'intégrité de fichiers et visualiser les différences textuelles.
- Dans un dossier de test, créez deux versions différentes d'un même fichier texte (exemple : version1.txt et version2.txt).
- Comparez leur contenu pour repérer les lignes qui diffèrent.
- Calculez la somme de contrôle (hash) d'un fichier et notez-la dans un nouveau fichier (ou quelque part pour référence).
- Modifiez légèrement le contenu du fichier d'origine, recalculez la somme de contrôle et comparez-la avec l'ancienne.
- Vérifiez les différences et notez l'impact sur le hash.
Vérification :
- Vous voyez clairement les lignes différentes entre les deux fichiers, et vous constatez qu'une modification minime suffit à changer le hash.
Exercice 7 : Gestion des dates et heures en BASH
Objectif : Manipuler la date et l'heure, et les utiliser dans des scripts.
- Affichez la date du jour dans le terminal en format complet, puis en format abrégé (uniquement année/mois/jour ou heure).
- Stockez la date courante dans une variable, puis utilisez cette variable pour générer un nom de fichier (par exemple log_2025-02-26.txt).
- Créez un script qui affiche un message différent selon l'heure qu'il est (matin, après-midi, soir).
- Exécutez le script à différents moments de la journée (ou simulez un changement d'heure dans le script).
Vérification :
- Vous avez pu personnaliser l'affichage de la date et l'utiliser pour créer ou nommer des fichiers de manière dynamique.
Exercice 8 : Redirection avancée et gestion des flux
Objectif : Gérer la sortie standard, la sortie d'erreur et l'entrée standard.
- Dans un script, redirigez la sortie standard d'une commande vers un fichier, et la sortie d'erreur vers un autre fichier.
- Produisez volontairement une erreur (par exemple en tentant d'accéder à un fichier inexistant) pour voir le résultat dans le fichier d'erreur.
- Fusionnez la sortie standard et la sortie d'erreur dans un même fichier.
- Testez la redirection de l'entrée standard en lisant du contenu depuis un fichier au lieu du clavier.
Vérification :
- Les messages d'erreur et la sortie « normale » atterrissent dans les bons fichiers (ou dans un seul si vous avez fusionné les flux).
Exercice 9 : Vérification de l'utilisation du système
Objectif : Connaître la charge système, l'utilisation CPU/RAM et la place disque.
- Affichez les informations sur la charge du système (load average) et notez la valeur.
- Listez les processus les plus gourmands en CPU et en mémoire.
- Affichez l'utilisation de la mémoire totale, libre et utilisée.
- Vérifiez la place disponible sur vos partitions.
- Repérez rapidement le répertoire qui prend le plus de place dans votre dossier personnel en affichant sa taille.
Vérification :
- Vous disposez d'un aperçu global de la santé de votre système : charge, mémoire, espace disque. Vous avez identifié les dossiers volumineux.
Exercice 10 : Maintenance de logs et rotation
Objectif : Gérer des fichiers de logs (création, rotation, sauvegarde).
- Créez un fichier de log factice et faites en sorte qu'une commande ou un script y ajoute régulièrement du texte (messages, horodatage, etc.).
- Configurez un mécanisme pour « faire tourner » ce fichier de log (le renommer et en créer un nouveau régulièrement).
- Stockez l'ancienne version du log dans un répertoire dédié, avec un suffixe indiquant la date.
- Vérifiez que la rotation s'effectue bien et que le nouveau fichier de log est actif.
- Supprimez ou archivez les vieux logs si nécessaire.
Vérification :
- Vous voyez que les logs sont automatiquement renouvelés et rangés. Vous évitez ainsi qu'un fichier unique ne grossisse indéfiniment.
Conseils Généraux
- Ne donnez pas toutes les commandes : Réfléchissez à ce que vous avez déjà appris et consultez le manuel ou l'aide intégrée si besoin (mais sans recopier mécaniquement ni faire de copié/collé !).
- Soyez curieux : Pour chaque commande ou chaque idée d'exercice, allez voir les différentes options possibles afin d'en explorer les variantes.
- Documentez vos trouvailles : Notez dans un fichier texte les commandes que vous avez utilisées et leur effet, afin de créer votre propre guide de référence.