DÍA 02: El Arquitecto Digital

LinuxBeginner
Practicar Ahora

Introducción

¡Te damos la bienvenida al segundo día en LabEx Corporation! Tras el exitoso reconocimiento del sistema realizado ayer, has sido ascendido al puesto de Arquitecto Digital para el Proyecto Phoenix. El equipo de desarrollo quedó impresionado con tu documentación exhaustiva y tu atención al detalle.

Sin embargo, hay un problema urgente que requiere tu atención inmediata. El administrador de sistemas anterior se marchó de forma repentina y los archivos del Proyecto Phoenix están en completo desorden. El código fuente, la documentación y los archivos de configuración se encuentran dispersos en un único directorio. Los ajustes críticos están desprotegidos al no tener copias de seguridad, y los archivos de registro (logs) obsoletos están saturando el servidor de desarrollo que inspeccionaste ayer.

Tu misión es diseñar una estructura de archivos limpia, lógica y eficiente que sirva de apoyo al creciente equipo de desarrollo. Al crear los directorios adecuados, organizar los archivos, asegurar las copias de respaldo y limpiar los datos antiguos, establecerás los cimientos necesarios para que el Proyecto Phoenix prospere.

La desarrolladora principal, Sarah Chen, confía en ti para transformar este caos en un entorno de desarrollo profesional y organizado. Tu trabajo de hoy impactará directamente en la productividad del equipo y en los plazos del proyecto. ¡Manos a la obra!

Configuración de la Estructura de Directorios del Proyecto

Tu primera tarea consiste en crear una estructura de directorios adecuada dentro de la carpeta phoenix_project. Una estructura bien definida separa los diferentes tipos de archivos, facilitando la navegación y el mantenimiento del proyecto.

Tareas

  1. Dirígete al directorio ~/project/phoenix_project.
  2. Crea tres nuevos subdirectorios: src para el código fuente, config para los archivos de configuración y docs para la documentación.

Requisitos

  • Todos los directorios nuevos deben crearse dentro de ~/project/phoenix_project.
  • Los nombres de los directorios deben ser exactamente src, config y docs.
  • Debes utilizar un único comando para crear los tres directorios simultáneamente.

Ejemplos

Tras completar este paso, la estructura de tu directorio debería verse así:

~/project/phoenix_project/
├── config/
├── docs/
├── src/
├── README.md
├── config.json
└── main_app.py

Al ejecutar ls -F en el directorio ~/project/phoenix_project, deberías ver:

README.md  config/  config.json  docs/  main_app.py  src/

El símbolo / después de los nombres indica que se trata de directorios y no de archivos.

Pistas

  • Utiliza el comando cd para cambiar tu directorio actual.
  • El comando mkdir se utiliza para crear nuevos directorios.
  • mkdir puede aceptar múltiples argumentos para crear varios directorios a la vez.
✨ Revisar Solución y Practicar

Con la nueva estructura de directorios lista, es hora de mover los archivos existentes del proyecto a sus ubicaciones correspondientes. Esto despejará la raíz del proyecto y facilitará la localización de los archivos.

Tareas

  1. Mueve el archivo main_app.py al directorio src.
  2. Mueve el archivo config.json al directorio config.
  3. Mueve el archivo README.md al directorio docs.

Requisitos

  • Asegúrate de estar en el directorio ~/project/phoenix_project antes de realizar las operaciones de movimiento.
  • Utiliza el comando mv para reubicar cada archivo.

Ejemplos

Después de mover los archivos, la estructura de tu proyecto debería estar organizada de la siguiente manera:

~/project/phoenix_project/
├── config/
│ └── config.json
├── docs/
│ └── README.md
└── src/
└── main_app.py

Al ejecutar ls -F en la raíz de ~/project/phoenix_project, solo deberían aparecer los directorios:

config/  docs/  src/

Cada archivo debe estar ahora en su subdirectorio correspondiente:

  • ls src/main_app.py
  • ls config/config.json
  • ls docs/README.md

Pistas

  • El comando mv se utiliza para mover o renombrar archivos y directorios.
  • La sintaxis básica es mv [SOURCE] [DESTINATION].
  • Por ejemplo, para mover file.txt a un directorio llamado documents, usarías mv file.txt documents/.
✨ Revisar Solución y Practicar

Respaldo de Archivos de Configuración Críticos

El archivo config.json contiene ajustes fundamentales para el Proyecto Phoenix. Antes de realizar cualquier modificación, es una medida de seguridad vital crear un respaldo. Tu siguiente tarea es crear una copia de este archivo.

Tareas

  1. Crea una copia de seguridad del archivo config.json.

Requisitos

  • El archivo de respaldo debe crearse dentro del directorio ~/project/phoenix_project/config/.
  • El archivo de respaldo debe llamarse exactamente config.json.bak.

Ejemplos

Tras crear el respaldo, tu directorio config debería contener ambos archivos:

~/project/phoenix_project/config/
├── config.json
└── config.json.bak

Al ejecutar ls en el directorio ~/project/phoenix_project/config/, deberías ver:

config.json  config.json.bak

Ambos archivos deben tener un contenido idéntico, ya que el archivo .bak es una copia exacta del original:

## Estos comandos deberían mostrar una salida idéntica
cat config.json
cat config.json.bak

Pistas

  • El comando cp se utiliza para copiar archivos y directorios.
  • La sintaxis es cp [SOURCE] [DESTINATION].
  • Necesitarás proporcionar la ruta completa al archivo de origen y la ruta completa para el nuevo archivo de respaldo.
✨ Revisar Solución y Practicar

Reorganización de los Recursos Compartidos del Equipo

Has descubierto otra pieza del rompecabezas: un directorio llamado shared_docs ubicado en ~/project/shared_docs. Este directorio contiene guías importantes del equipo y especificaciones de API que deben estar junto al resto de la documentación del proyecto. Tu tarea es integrarlo en la estructura principal del proyecto.

Tareas

  1. Mueve el directorio shared_docs completo y todo su contenido al directorio ~/project/phoenix_project/docs/.

Requisitos

  • El directorio de origen es ~/project/shared_docs.
  • La ruta de destino es ~/project/phoenix_project/docs/.
  • Se debe mover el directorio completo, no solo su contenido.

Ejemplos

Después de mover el directorio shared_docs, tu estructura de documentación debería verse así:

~/project/phoenix_project/docs/
├── README.md
└── shared_docs/
├── api_spec.doc
└── team_guidelines.txt

Al ejecutar ls en el directorio ~/project/phoenix_project/docs/, deberías ver:

README.md  shared_docs/

El directorio shared_docs debe contener todos sus archivos originales:

ls ~/project/phoenix_project/docs/shared_docs/
api_spec.doc  team_guidelines.txt

La ubicación original ~/project/shared_docs ya no debería existir.

Pistas

  • El comando mv funciona para directorios de la misma manera que para archivos.
  • Cuando mueves un directorio, todo su contenido se mueve con él automáticamente.
  • El comando tendrá una forma similar a mv [SOURCE_DIRECTORY] [DESTINATION_DIRECTORY].
✨ Revisar Solución y Practicar

Archivado y Eliminación de Archivos de Registro Obsoletos

Tu última tarea es un poco de mantenimiento. El directorio ~/project/logs está acumulando archivos de registro, y los del año 2023 ya no son necesarios para las operaciones diarias. Para ahorrar espacio y mantener el orden, debes comprimir estos registros antiguos en un único archivo de archivo (archive) y luego eliminar los archivos originales.

Entendiendo el comando tar

El comando tar es una potente herramienta de Linux para crear y manipular archivos de archivo. "Tar" originalmente significaba "Tape Archive" (Archivo en Cinta) porque fue diseñado para escribir datos en cintas magnéticas, pero hoy en día se usa comúnmente para crear archivos comprimidos en disco.

Cuando usas tar, básicamente estás agrupando varios archivos en uno solo (llamado archivo o "bundle"), y opcionalmente puedes comprimir este archivo para ahorrar espacio. El formato de compresión más común es gzip, que añade la extensión .gz al nombre del archivo.

El comando tar utiliza diferentes opciones (flags) para controlar su comportamiento:

  • c: Crea un nuevo archivo (Create).
  • z: Comprime el archivo usando gzip.
  • f: Especifica el nombre del archivo resultante (Filename).

Por lo tanto, tar -czf archivo.tar.gz archivo1 archivo2 crea un nuevo archivo comprimido llamado archivo.tar.gz que contiene archivo1 y archivo2.

Tareas

  1. Navega al directorio ~/project/logs.
  2. Crea un archivo tar comprimido llamado old_logs.tar.gz que contenga todos los archivos de registro del año 2023.
  3. Una vez creado el archivo con éxito, elimina los archivos de registro originales de 2023 que acabas de archivar.

Requisitos

  • El archivo final debe llamarse exactamente old_logs.tar.gz.
  • El archivo debe estar ubicado en el directorio ~/project/logs.
  • Solo deben archivarse y eliminarse posteriormente los archivos de registro que contengan 2023 en su nombre.
  • El archivo de registro de 2024 (app_2024-05-01.log) no debe incluirse en el archivo ni debe ser eliminado.

Ejemplos

Antes de archivar, tu directorio de logs contiene:

~/project/logs/
├── app_2023-01-15.log
├── app_2024-05-01.log
└── db_2023-02-20.log

Tras completar la tarea de archivado, tu directorio de logs debería verse así:

~/project/logs/
├── app_2024-05-01.log
└── old_logs.tar.gz

Al ejecutar ls en el directorio ~/project/logs/, deberías ver:

app_2024-05-01.log  old_logs.tar.gz

Pistas

  • Utiliza el comando tar para crear archivos. Las opciones -czf son una combinación poderosa: c (crear), z (comprimir con gzip) y f (especificar nombre de archivo).
  • Puedes usar un comodín (*) para seleccionar múltiples archivos que coincidan con un patrón. Por ejemplo, *_2023-*.log coincidirá con todos los archivos que terminen en .log y tengan _2023- en su nombre.
  • El comando rm se utiliza para remover (eliminar) archivos. ¡Ten cuidado al usarlo con comodines!
✨ Revisar Solución y Practicar

Resumen

¡Excelente trabajo, Arquitecto Digital! Has transformado con éxito el caos del Proyecto Phoenix en un entorno de desarrollo bien organizado. Sarah Chen y todo el equipo de desarrollo están encantados con tu labor. Has construido una estructura de directorios lógica, organizado archivos críticos, protegido configuraciones con respaldos y optimizado los recursos del sistema archivando registros antiguos.

Estas habilidades fundamentales de la línea de comandos de Linux (mkdir, mv, cp, tar y rm) constituyen la base de la administración de sistemas profesional. Tu trabajo de organización hoy ha sentado unos cimientos sólidos que darán soporte al Proyecto Phoenix durante todo su ciclo de vida de desarrollo.

El equipo de desarrollo ahora puede trabajar de manera eficiente en su entorno debidamente estructurado. Mañana asumirás un nuevo desafío como Investigador de Registros cuando el equipo se enfrente a sus primeros problemas técnicos. ¡Tu enfoque sistemático para la organización te será de gran utilidad en la resolución de problemas!