Introduction
Bienvenue pour votre deuxième journée chez LabEx Corporation ! Après la reconnaissance réussie du système hier, vous avez été promu au poste d’architecte numérique pour le projet Phoenix. L’équipe de développement a été impressionnée par la rigueur de votre documentation et votre souci du détail.
Cependant, un problème urgent requiert votre attention immédiate. L’administrateur système précédent a quitté l’entreprise précipitamment et les fichiers du projet Phoenix sont complètement désorganisés. Le code source, la documentation et les fichiers de configuration sont dispersés dans un seul répertoire. Les paramètres critiques sont vulnérables en l’absence de sauvegardes, et d’anciens fichiers journaux encombrent le serveur de développement que vous avez examiné hier.
Votre mission consiste à concevoir une structure de fichiers propre, logique et efficace, capable d’accompagner l’équipe de développement qui s’agrandit. En créant les bons répertoires, en organisant les fichiers, en sécurisant les sauvegardes et en supprimant les anciennes données, vous établirez les bases nécessaires à la réussite du projet Phoenix.
Sarah Chen, la développeuse principale, compte sur vous pour transformer ce chaos en un environnement de développement organisé et professionnel. Votre travail d’aujourd’hui aura un impact direct sur la productivité de l’équipe et le calendrier du projet. Commençons !
Mettre en place la structure de répertoires du projet
Votre première tâche consiste à créer une structure de répertoires adaptée dans le répertoire phoenix_project. Une structure bien définie sépare les différents types de fichiers, ce qui facilite la navigation et la maintenance du projet.
Tâches
- Accédez au répertoire
~/project/phoenix_project. - Créez trois nouveaux sous-répertoires :
srcpour le code source,configpour les fichiers de configuration etdocspour la documentation.
Exigences
- Tous les nouveaux répertoires doivent être créés dans le répertoire
~/project/phoenix_project. - Les noms des répertoires doivent être exactement
src,configetdocs. - Vous devez utiliser une seule commande pour créer les trois répertoires simultanément.
Exemples
Une fois cette étape terminée, votre structure de répertoires doit être la suivante :
~/project/phoenix_project/
├── config/
├── docs/
├── src/
├── README.md
├── config.json
└── main_app.py
Lorsque vous exécutez ls -F dans le répertoire ~/project/phoenix_project, vous devez obtenir :
README.md config/ config.json docs/ main_app.py src/
Le symbole / après un nom indique qu’il s’agit d’un répertoire et non d’un fichier.
Indices
- Utilisez la commande
cdpour changer de répertoire courant. - La commande
mkdirsert à créer de nouveaux répertoires. mkdiraccepte plusieurs arguments et peut donc créer plusieurs répertoires en une seule fois.
Naviguer dans le projet et créer son organisation
La nouvelle structure de répertoires est en place. Vous devez maintenant déplacer les fichiers existants du projet vers les répertoires qui leur sont destinés. Le répertoire racine du projet sera ainsi nettoyé et les fichiers seront plus faciles à trouver.
Tâches
- Déplacez le fichier
main_app.pydans le répertoiresrc. - Déplacez le fichier
config.jsondans le répertoireconfig. - Déplacez le fichier
README.mddans le répertoiredocs.
Exigences
- Vérifiez que vous vous trouvez dans le répertoire
~/project/phoenix_projectavant d’effectuer les déplacements. - Utilisez la commande
mvpour déplacer chaque fichier.
Exemples
Après le déplacement des fichiers, la structure du projet doit être organisée comme suit :
~/project/phoenix_project/
├── config/
│ └── config.json
├── docs/
│ └── README.md
└── src/
└── main_app.py
Lorsque vous exécutez ls -F dans le répertoire racine ~/project/phoenix_project, la commande doit afficher uniquement les répertoires :
config/ docs/ src/
Chaque fichier doit maintenant se trouver dans le sous-répertoire approprié :
ls src/→main_app.pyls config/→config.jsonls docs/→README.md
Indices
- La commande
mvsert à déplacer ou à renommer des fichiers et des répertoires. - Sa syntaxe de base est
mv [SOURCE] [DESTINATION]. - Par exemple, pour déplacer
file.txtdans un répertoire nommédocuments, utilisezmv file.txt documents/.
Sauvegarder les fichiers de configuration critiques
Le fichier config.json contient des paramètres critiques pour le projet Phoenix. Avant toute modification, il est essentiel de créer une sauvegarde par mesure de sécurité. Votre prochaine tâche consiste à créer une copie de ce fichier.
Tâches
- Créez une copie de sauvegarde du fichier
config.json.
Exigences
- Le fichier de sauvegarde doit être créé dans le répertoire
~/project/phoenix_project/config/. - Le nom du fichier de sauvegarde doit être exactement
config.json.bak.
Exemples
Après la création de la sauvegarde, votre répertoire config doit contenir les deux fichiers :
~/project/phoenix_project/config/
├── config.json
└── config.json.bak
Lorsque vous exécutez ls dans le répertoire ~/project/phoenix_project/config/, vous devez obtenir :
config.json config.json.bak
Les deux fichiers doivent avoir un contenu identique, car le fichier .bak est une copie exacte de l’original :
## These commands should show identical output
cat config.json
cat config.json.bak
Indices
- La commande
cpsert à copier des fichiers et des répertoires. - Sa syntaxe est
cp [SOURCE] [DESTINATION]. - Vous devez fournir le chemin complet du fichier source ainsi que le chemin complet du nouveau fichier de sauvegarde.
Réorganiser les ressources partagées de l’équipe
Vous avez découvert un nouvel élément important : un répertoire nommé shared_docs, situé dans ~/project/shared_docs. Ce répertoire contient des consignes importantes pour l’équipe ainsi que des spécifications d’API qui doivent rejoindre le reste de la documentation du projet. Votre tâche consiste à l’intégrer à la structure principale du projet.
Tâches
- Déplacez l’intégralité du répertoire
shared_docset tout son contenu dans le répertoire~/project/phoenix_project/docs/.
Exigences
- Le répertoire source est
~/project/shared_docs. - Le chemin de destination est
~/project/phoenix_project/docs/. - Vous devez déplacer le répertoire entier, et pas seulement son contenu.
Exemples
Après le déplacement du répertoire shared_docs, votre structure de documentation doit être la suivante :
~/project/phoenix_project/docs/
├── README.md
└── shared_docs/
├── api_spec.doc
└── team_guidelines.txt
Lorsque vous exécutez ls dans le répertoire ~/project/phoenix_project/docs/, vous devez obtenir :
README.md shared_docs/
Le répertoire shared_docs doit contenir tous ses fichiers d’origine :
ls ~/project/phoenix_project/docs/shared_docs/
api_spec.doc team_guidelines.txt
L’emplacement d’origine ~/project/shared_docs ne doit plus exister.
Indices
- La commande
mvfonctionne pour les répertoires comme pour les fichiers. - Lorsque vous déplacez un répertoire, tout son contenu est automatiquement déplacé avec lui.
- La commande aura la forme
mv [SOURCE_DIRECTORY] [DESTINATION_DIRECTORY].
Archiver et supprimer les anciens fichiers journaux
Votre dernière tâche concerne un peu de maintenance. Le répertoire ~/project/logs accumule des fichiers journaux, et ceux de 2023 ne sont plus nécessaires aux opérations quotidiennes. Pour libérer de l’espace et conserver une structure propre, vous devez compresser ces anciens journaux dans une seule archive, puis supprimer les fichiers d’origine.
Comprendre la commande tar
La commande tar est un outil Linux puissant qui permet de créer et de manipuler des archives. « Tar » signifiait à l’origine « Tape Archive », car cet outil était conçu pour écrire des données sur des bandes magnétiques. Aujourd’hui, il sert couramment à créer des archives compressées sur disque.
Avec tar, vous regroupez plusieurs fichiers dans un seul fichier appelé archive, puis vous pouvez éventuellement compresser cette archive pour économiser de l’espace. Le format de compression le plus courant est gzip, qui ajoute l’extension .gz au nom du fichier.
La commande tar utilise différentes options pour contrôler son comportement :
c: créer une nouvelle archive ;z: compresser l’archive avec gzip ;f: indiquer le nom du fichier d’archive.
Ainsi, tar -czf archive.tar.gz file1 file2 crée une nouvelle archive compressée nommée archive.tar.gz, contenant file1 et file2.
Tâches
- Accédez au répertoire
~/project/logs. - Créez une archive tar compressée nommée
old_logs.tar.gz, contenant tous les fichiers journaux de l’année 2023. - Une fois l’archive créée avec succès, supprimez les fichiers journaux originaux de 2023 que vous venez d’archiver.
Exigences
- L’archive finale doit être nommée exactement
old_logs.tar.gz. - L’archive doit se trouver dans le répertoire
~/project/logs. - Seuls les fichiers journaux dont le nom contient
2023doivent être archivés puis supprimés. - Le fichier journal de 2024 (
app_2024-05-01.log) ne doit être ni inclus dans l’archive ni supprimé.
Exemples
Avant l’archivage, le répertoire des journaux contient :
~/project/logs/
├── app_2023-01-15.log
├── app_2024-05-01.log
└── db_2023-02-20.log
Après l’archivage, le répertoire des journaux doit être organisé comme suit :
~/project/logs/
├── app_2024-05-01.log
└── old_logs.tar.gz
Lorsque vous exécutez ls dans le répertoire ~/project/logs/, vous devez obtenir :
app_2024-05-01.log old_logs.tar.gz
Indices
- Utilisez la commande
tarpour créer des archives. Les options-czfforment une combinaison pratique :c(créer),z(compresser avec gzip) etf(indiquer le nom du fichier). - Vous pouvez utiliser un caractère générique (
*) pour sélectionner plusieurs fichiers correspondant à un motif. Par exemple,*_2023-*.logcorrespond à tous les fichiers qui se terminent par.loget dont le nom contient_2023-. - La commande
rmsert à supprimer des fichiers. Soyez prudent lorsque vous l’utilisez avec des caractères génériques !
Résumé
Excellent travail, architecte numérique ! Vous avez transformé avec succès le projet Phoenix, qui était chaotique, en un environnement de développement bien organisé. Sarah Chen et toute l’équipe de développement sont ravies de votre travail. Vous avez créé une structure de répertoires logique, organisé les fichiers critiques, sécurisé les configurations grâce à des sauvegardes et nettoyé les ressources du système en archivant les anciens journaux.
Ces compétences fondamentales de la ligne de commande Linux — mkdir, mv, cp, tar et rm — constituent la base de l’administration système professionnelle. Le travail d’organisation réalisé aujourd’hui a créé des fondations solides qui accompagneront le projet Phoenix tout au long de son cycle de développement.
L’équipe de développement peut désormais travailler efficacement dans un environnement correctement structuré. Demain, vous relèverez un nouveau défi en tant qu’enquêteur des journaux, lorsque l’équipe rencontrera ses premiers problèmes techniques. Votre approche méthodique de l’organisation vous sera très utile pour résoudre les problèmes !



