Introduction
Bienvenue pour votre deuxième jour chez LabEx Corporation ! Après le succès de votre reconnaissance système d'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 qualité de votre documentation et votre sens du détail.
Cependant, un problème urgent requiert votre attention immédiate. L'ancien administrateur système est parti brusquement, laissant les fichiers du Projet Phoenix dans un désordre total. Le code source, la documentation et les fichiers de configuration sont éparpillés dans un répertoire unique. Les paramètres critiques sont vulnérables car ils ne disposent d'aucune sauvegarde, et des fichiers journaux obsolètes encombrent le serveur de développement que vous avez inspecté hier.
Votre mission consiste à concevoir une structure de fichiers propre, logique et efficace pour soutenir l'équipe de développement en pleine croissance. En créant des répertoires appropriés, en organisant les fichiers, en sécurisant les sauvegardes et en nettoyant les anciennes données, vous établirez les fondations 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 professionnel et organisé. Votre travail aujourd'hui aura un impact direct sur la productivité de l'équipe et le calendrier du projet. C'est parti !
Mise en place de la structure des répertoires du projet
Votre première tâche consiste à créer une structure de répertoires adéquate à l'intérieur du dossier phoenix_project. Une structure bien définie permet de séparer les différents types de fichiers, facilitant ainsi la navigation et la maintenance du projet.
Tâches
- Naviguez dans le 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 à l'intérieur de
~/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, la structure de votre répertoire devrait ressembler à ceci :
~/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 devriez voir :
README.md config/ config.json docs/ main_app.py src/
Le symbole / après le nom des dossiers indique qu'il s'agit de répertoires et non de fichiers.
Conseils
- Utilisez la commande
cdpour changer de répertoire courant. - La commande
mkdirest utilisée pour créer de nouveaux répertoires. mkdirpeut accepter plusieurs arguments pour créer plusieurs dossiers en une seule fois.
Navigation et organisation des fichiers du projet
Maintenant que la structure des répertoires est en place, il est temps de déplacer les fichiers existants vers leurs emplacements respectifs. Cela permettra de nettoyer la racine du projet et de rendre les fichiers plus faciles à localiser.
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
- Assurez-vous d'être dans le répertoire
~/project/phoenix_projectavant d'effectuer les opérations de déplacement. - Utilisez la commande
mvpour déplacer chaque fichier.
Exemples
Après avoir déplacé les fichiers, la structure de votre 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 à la racine du répertoire ~/project/phoenix_project, seuls les répertoires doivent apparaître :
config/ docs/ src/
Chaque fichier doit maintenant se trouver dans son sous-répertoire approprié :
ls src/→main_app.pyls config/→config.jsonls docs/→README.md
Conseils
- La commande
mvest utilisée pour déplacer ou renommer des fichiers et des répertoires. - La syntaxe de base est
mv [SOURCE] [DESTINATION]. - Par exemple, pour déplacer
file.txtdans un répertoire nommédocuments, vous utiliseriezmv file.txt documents/.
Sauvegarde des fichiers de configuration critiques
Le fichier config.json contient des paramètres essentiels pour le Projet Phoenix. Avant toute modification, il est crucial 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éé à l'intérieur du répertoire
~/project/phoenix_project/config/. - Le fichier de sauvegarde doit être nommé exactement
config.json.bak.
Exemples
Après avoir créé la sauvegarde, votre répertoire config devrait 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 devriez voir :
config.json config.json.bak
Les deux fichiers doivent avoir un contenu identique, car le fichier .bak est une copie exacte de l'original :
## Ces commandes doivent afficher un résultat identique
cat config.json
cat config.json.bak
Conseils
- La commande
cpest utilisée pour copier des fichiers et des répertoires. - La syntaxe est
cp [SOURCE] [DESTINATION]. - Vous devrez fournir le chemin complet du fichier source et le chemin complet du nouveau fichier de sauvegarde.
Réorganisation des ressources partagées de l'équipe
Vous avez découvert une autre pièce du puzzle : un répertoire nommé shared_docs situé dans ~/project/shared_docs. Ce répertoire contient des directives d'équipe importantes et des spécifications d'API qui doivent être regroupées avec le reste de la documentation du projet. Votre tâche est de l'intégrer dans 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/. - C'est le répertoire entier qui doit être déplacé, et pas seulement son contenu.
Exemples
Après avoir déplacé le répertoire shared_docs, votre structure de documentation devrait ressembler à ceci :
~/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 devriez voir :
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.
Conseils
- La commande
mvfonctionne pour les répertoires de la même manière que pour les fichiers. - Lorsque vous déplacez un répertoire, tout son contenu est déplacé automatiquement avec lui.
- La commande ressemblera à
mv [RÉPERTOIRE_SOURCE] [RÉPERTOIRE_DESTINATION].
Archivage et suppression des fichiers journaux obsolètes
Votre dernière tâche consiste à faire un peu de ménage. Le répertoire ~/project/logs accumule des fichiers journaux, et ceux de l'année 2023 ne sont plus nécessaires pour les opérations quotidiennes. Pour gagner de l'espace et maintenir l'ordre, vous devez compresser ces anciens journaux dans un seul fichier d'archive, puis supprimer les fichiers originaux.
Comprendre la commande tar
La commande tar est un outil Linux puissant pour créer et manipuler des fichiers d'archives. À l'origine, "Tar" signifiait "Tape Archive" (archive sur bande) car il était conçu pour écrire des données sur des bandes magnétiques. Aujourd'hui, il est couramment utilisé pour créer des archives compressées sur disque.
Lorsque vous utilisez tar, vous regroupez plusieurs fichiers en un seul (appelé archive), et vous pouvez facultativement 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 (drapeaux) pour contrôler son comportement :
c: Créer une nouvelle archive (Create)z: Compresser l'archive avec gzipf: Spécifier le nom du fichier de l'archive (File)
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
- Naviguez dans le répertoire
~/project/logs. - Créez une archive tar compressée nommée
old_logs.tar.gzcontenant 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 être située dans le répertoire
~/project/logs. - Seuls les fichiers journaux contenant
2023dans leur nom doivent être archivés puis supprimés. - Le fichier journal de 2024 (
app_2024-05-01.log) ne doit pas être inclus dans l'archive et ne doit pas être supprimé.
Exemples
Avant l'archivage, votre répertoire de journaux contient :
~/project/logs/
├── app_2023-01-15.log
├── app_2024-05-01.log
└── db_2023-02-20.log
Après avoir terminé la tâche d'archivage, votre répertoire de journaux devrait ressembler à ceci :
~/project/logs/
├── app_2024-05-01.log
└── old_logs.tar.gz
Lorsque vous exécutez ls dans le répertoire ~/project/logs/, vous devriez voir :
app_2024-05-01.log old_logs.tar.gz
Conseils
- Utilisez la commande
tarpour créer des archives. Les options-czfforment une combinaison puissante :c(créer),z(compresser avec gzip) etf(spécifier le nom du fichier). - Vous pouvez utiliser un caractère générique (
*) pour sélectionner plusieurs fichiers correspondant à un motif. Par exemple,*_2023-*.logcorrespondra à tous les fichiers se terminant par.loget contenant_2023-dans leur nom. - La commande
rmest utilisée pour supprimer des fichiers. Soyez prudent lors de son utilisation avec des caractères génériques !
Résumé
Excellent travail, Architecte Numérique ! Vous avez réussi à transformer le chaos du Projet Phoenix en un environnement de développement parfaitement organisé. Sarah Chen et toute l'équipe de développement sont ravies de votre intervention. Vous avez mis en place une structure de répertoires logique, organisé les fichiers critiques, sécurisé les configurations avec des sauvegardes et optimisé les ressources système en archivant les anciens journaux.
Ces compétences fondamentales en ligne de commande Linux — mkdir, mv, cp, tar et rm — constituent le socle de l'administration système professionnelle. Votre travail d'organisation aujourd'hui a créé une base solide qui soutiendra 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 structuré. Demain, vous relèverez un nouveau défi en tant qu'Enquêteur de Journaux lorsque l'équipe rencontrera ses premiers problèmes techniques. Votre approche systématique de l'organisation vous sera d'une grande aide pour le dépannage !



