DIA 02: O Arquiteto Digital

LinuxBeginner
Pratique Agora

Introdução

Bem-vindo ao segundo dia na LabEx Corporation! Após o sucesso do reconhecimento do sistema realizado ontem, você foi promovido ao cargo de Arquiteto Digital do Projeto Phoenix. A equipe de desenvolvimento ficou impressionada com sua documentação detalhada e atenção aos pormenores.

No entanto, há um problema urgente que requer sua atenção imediata. O administrador de sistemas anterior saiu abruptamente, e os arquivos do Projeto Phoenix estão em completa desordem. Códigos-fonte, documentações e arquivos de configuração estão espalhados em um único diretório. Configurações críticas estão vulneráveis por falta de backups, e arquivos de log obsoletos estão sobrecarregando o servidor de desenvolvimento que você analisou ontem.

Sua missão é projetar uma estrutura de arquivos limpa, lógica e eficiente que suporte o crescimento da equipe de desenvolvimento. Ao criar diretórios adequados, organizar arquivos, garantir backups e limpar dados antigos, você estabelecerá a base necessária para o sucesso do Projeto Phoenix.

A desenvolvedora líder, Sarah Chen, conta com você para transformar esse caos em um ambiente de desenvolvimento organizado e profissional. Seu trabalho hoje impactará diretamente a produtividade da equipe e o cronograma do projeto. Vamos começar!

Configurando a Estrutura de Diretórios do Projeto

Sua primeira tarefa é criar uma estrutura de diretórios adequada dentro da pasta phoenix_project. Uma estrutura bem definida separa diferentes tipos de arquivos, tornando o projeto mais fácil de navegar e manter.

Tarefas

  1. Navegue até o diretório ~/project/phoenix_project.
  2. Crie três novos subdiretórios: src para o código-fonte, config para arquivos de configuração e docs para documentação.

Requisitos

  • Todos os novos diretórios devem ser criados dentro de ~/project/phoenix_project.
  • Os nomes dos diretórios devem ser exatamente src, config e docs.
  • Você deve usar um único comando para criar os três diretórios simultaneamente.

Exemplos

Após concluir esta etapa, a estrutura do seu diretório deve estar assim:

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

Ao executar ls -F no diretório ~/project/phoenix_project, você deverá ver:

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

Os símbolos / após os nomes indicam que são diretórios, não arquivos.

Dicas

  • Use o comando cd para mudar seu diretório atual.
  • O comando mkdir é usado para criar novos diretórios.
  • O mkdir pode aceitar múltiplos argumentos para criar vários diretórios de uma só vez.
✨ Verificar Solução e Praticar

Com a nova estrutura de diretórios pronta, é hora de mover os arquivos existentes do projeto para seus devidos lugares. Isso limpará a raiz do projeto e facilitará a localização dos arquivos.

Tarefas

  1. Mova o arquivo main_app.py para o diretório src.
  2. Mova o arquivo config.json para o diretório config.
  3. Mova o arquivo README.md para o diretório docs.

Requisitos

  • Certifique-se de estar no diretório ~/project/phoenix_project antes de realizar as operações de movimentação.
  • Use o comando mv para realocar cada arquivo.

Exemplos

Após mover os arquivos, a estrutura do seu projeto deve estar organizada desta forma:

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

Ao executar ls -F na raiz do diretório ~/project/phoenix_project, ele deve mostrar apenas os diretórios:

config/  docs/  src/

Cada arquivo deve estar agora em seu respectivo subdiretório:

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

Dicas

  • O comando mv é usado para mover ou renomear arquivos e diretórios.
  • A sintaxe básica é mv [ORIGEM] [DESTINO].
  • Por exemplo, para mover arquivo.txt para um diretório chamado documentos, você usaria mv arquivo.txt documentos/.
✨ Verificar Solução e Praticar

Fazendo Backup de Arquivos de Configuração Críticos

O arquivo config.json contém definições críticas para o Projeto Phoenix. Antes de qualquer modificação ser feita, é uma medida de segurança vital criar um backup. Sua próxima tarefa é criar uma cópia deste arquivo.

Tarefas

  1. Crie uma cópia de backup do arquivo config.json.

Requisitos

  • O arquivo de backup deve ser criado dentro do diretório ~/project/phoenix_project/config/.
  • O arquivo de backup deve se chamar exatamente config.json.bak.

Exemplos

Após criar o backup, seu diretório config deve conter ambos os arquivos:

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

Ao executar ls no diretório ~/project/phoenix_project/config/, você deverá ver:

config.json  config.json.bak

Ambos os arquivos devem ter conteúdo idêntico, já que o arquivo .bak é uma cópia exata do original:

## Estes comandos devem mostrar saídas idênticas
cat config.json
cat config.json.bak

Dicas

  • O comando cp é usado para copiar arquivos e diretórios.
  • A sintaxe é cp [ORIGEM] [DESTINO].
  • Você precisará fornecer o caminho completo para o arquivo de origem e o caminho completo para o novo arquivo de backup.
✨ Verificar Solução e Praticar

Reorganizando os Recursos Compartilhados da Equipe

Você descobriu outra peça do quebra-cabeça: um diretório chamado shared_docs localizado em ~/project/shared_docs. Este diretório contém diretrizes importantes da equipe e especificações de API que pertencem ao restante da documentação do projeto. Sua tarefa é integrá-lo à estrutura principal do projeto.

Tarefas

  1. Mova todo o diretório shared_docs e todo o seu conteúdo para o diretório ~/project/phoenix_project/docs/.

Requisitos

  • O diretório de origem é ~/project/shared_docs.
  • O caminho de destino é ~/project/phoenix_project/docs/.
  • O diretório inteiro deve ser movido, não apenas o seu conteúdo.

Exemplos

Após mover o diretório shared_docs, sua estrutura de documentação deve ficar assim:

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

Ao executar ls no diretório ~/project/phoenix_project/docs/, você deverá ver:

README.md  shared_docs/

O diretório shared_docs deve conter todos os seus arquivos originais:

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

O local original ~/project/shared_docs não deve mais existir.

Dicas

  • O comando mv funciona para diretórios da mesma forma que para arquivos.
  • Quando você move um diretório, todo o seu conteúdo é movido junto automaticamente.
  • O comando será algo como mv [DIRETÓRIO_ORIGEM] [DIRETÓRIO_DESTINO].
✨ Verificar Solução e Praticar

Arquivando e Removendo Arquivos de Log Obsoletos

Sua tarefa final é uma pequena faxina. O diretório ~/project/logs está acumulando arquivos de log, e aqueles de 2023 não são mais necessários para as operações diárias. Para economizar espaço e manter as coisas organizadas, você precisa compactar esses logs antigos em um único arquivo de arquivo (archive) e depois remover os arquivos originais.

Entendendo o comando tar

O comando tar é uma ferramenta poderosa do Linux para criar e manipular arquivos de arquivamento. "Tar" originalmente significava "Tape Archive" (Arquivo em Fita) porque foi projetado para gravar dados em fitas magnéticas, mas hoje é comumente usado para criar arquivos compactados em disco.

Ao usar o tar, você está essencialmente agrupando vários arquivos em um único arquivo (chamado de archive), e pode opcionalmente compactar esse arquivo para economizar espaço. O formato de compactação mais comum é o gzip, que adiciona a extensão .gz ao nome do arquivo.

O comando tar usa diferentes opções (flags) para controlar seu comportamento:

  • c: Cria um novo arquivo (create)
  • z: Compacta o arquivo usando gzip
  • f: Especifica o nome do arquivo resultante (filename)

Portanto, tar -czf arquivo.tar.gz arquivo1 arquivo2 cria um novo arquivo compactado chamado arquivo.tar.gz contendo o arquivo1 e o arquivo2.

Tarefas

  1. Navegue até o diretório ~/project/logs.
  2. Crie um arquivo tar compactado chamado old_logs.tar.gz que contenha todos os arquivos de log do ano de 2023.
  3. Após o arquivo ser criado com sucesso, exclua os arquivos de log originais de 2023 que você acabou de arquivar.

Requisitos

  • O arquivo final deve se chamar exatamente old_logs.tar.gz.
  • O arquivo deve estar localizado no diretório ~/project/logs.
  • Apenas arquivos de log com 2023 no nome devem ser arquivados e posteriormente removidos.
  • O arquivo de log de 2024 (app_2024-05-01.log) não deve ser incluído no arquivo e não deve ser excluído.

Exemplos

Antes de arquivar, seu diretório de logs contém:

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

Após completar a tarefa de arquivamento, seu diretório de logs deve estar assim:

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

Ao executar ls no diretório ~/project/logs/, você deverá ver:

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

Dicas

  • Use o comando tar para criar arquivos. As opções -czf são uma combinação poderosa: c (criar), z (compactar com gzip) e f (especificar nome do arquivo).
  • Você pode usar um curinga (*) para selecionar múltiplos arquivos que correspondam a um padrão. Por exemplo, *_2023-*.log corresponderá a todos os arquivos que terminam com .log e possuem _2023- no nome.
  • O comando rm é usado para remover (excluir) arquivos. Tenha cuidado ao usá-lo com curingas!
✨ Verificar Solução e Praticar

Resumo

Trabalho excepcional, Arquiteto Digital! Você transformou com sucesso o Projeto Phoenix de um caos em um ambiente de desenvolvimento bem organizado. Sarah Chen e toda a equipe de desenvolvimento estão entusiasmados com seu trabalho. Você construiu uma estrutura de diretórios lógica, organizou arquivos críticos, protegeu configurações com backups e limpou recursos do sistema arquivando logs antigos.

Essas habilidades fundamentais de linha de comando do Linux — mkdir, mv, cp, tar e rm — formam a espinha dorsal da administração profissional de sistemas. Seu trabalho de organização hoje criou uma base sólida que apoiará o Projeto Phoenix durante todo o seu ciclo de vida de desenvolvimento.

A equipe de desenvolvimento agora pode trabalhar de forma eficiente em seu ambiente devidamente estruturado. Amanhã, você assumirá um novo desafio como Investigador de Logs quando a equipe encontrar seus primeiros problemas técnicos. Sua abordagem sistemática de organização será muito útil na resolução de problemas!