Pular para o conteúdo principal

Lab 3.1 - Navegação e Criação no Sistema de Arquivos

Objetivos​

Ao final deste lab, você será capaz de:

  • Navegar no sistema de arquivos Linux
  • Criar arquivos e diretórios
  • Compreender a estrutura FHS (Filesystem Hierarchy Standard)
  • Utilizar comandos básicos (cd, ls, mkdir, touch, etc.)
  • Manipular arquivos e diretórios

Pré-requisitos​

  • Ubuntu 24.04 instalado e funcional
  • Terminal aberto
  • Acesso de usuário normal (não é necessário root para a maioria dos exercícios)

Exercício 1: Navegação Básica​

Etapa 1: Diretórios Importantes​

# Ver o diretório atual
pwd

# Ir para o diretório home
cd ~
# ou
cd $HOME

# Ver o conteúdo
ls

# Ver com detalhes
ls -l

# Ver também arquivos ocultos
ls -la

Etapa 2: Estrutura FHS​

# Ir para a raiz
cd /

# Ver a estrutura
ls -la /

# Explorar diretórios importantes
ls /bin # Binários essenciais
ls /usr/bin # Binários de usuário
ls /etc # Arquivos de configuração
ls /var # Dados variáveis
ls /home # Diretórios de usuários
ls /tmp # Arquivos temporários

Pergunta: Quais são os diretórios principais que você vê?

Etapa 3: Navegação Relativa e Absoluta​

# Caminho absoluto (a partir da raiz)
cd /home/$USER

# Caminho relativo (a partir do diretório atual)
cd Documents # Se Documents existir no diretório atual

# Voltar para o diretório anterior
cd -

# Subir um nível
cd ..

# Subir dois níveis
cd ../..

Exercício 2: Criação de Diretórios​

Etapa 1: Criar Diretórios​

# Criar um diretório
mkdir meu-lab

# Criar vários diretórios
mkdir dir1 dir2 dir3

# Criar uma árvore de diretórios
mkdir -p projeto/src projeto/docs projeto/tests

# Verificar
tree projeto
# Se tree não estiver instalado:
# sudo apt install tree

Etapa 2: Estrutura Organizada​

# Criar uma estrutura para um projeto
mkdir -p ~/projetos/linux-lab/{docs,scripts,data,backup}

# Ver a estrutura
tree ~/projetos/linux-lab

# Ou com ls
ls -R ~/projetos/linux-lab

Exercício 3: Criação de Arquivos​

Etapa 1: Métodos de Criação​

# Método 1: touch (arquivo vazio)
touch arquivo1.txt

# Método 2: echo
echo "Conteúdo do arquivo" > arquivo2.txt

# Método 3: cat com heredoc
cat > arquivo3.txt << EOF
Linha 1
Linha 2
Linha 3
EOF

# Método 4: Editor
nano arquivo4.txt
# Escreva o texto, Ctrl+O para salvar, Ctrl+X para sair

Etapa 2: Verificar os Arquivos​

# Ver os arquivos criados
ls -lh

# Ver o conteúdo
cat arquivo2.txt

# Contar as linhas
wc -l arquivo3.txt

# Ver as primeiras linhas
head -2 arquivo3.txt

# Ver as últimas linhas
tail -2 arquivo3.txt

Exercício 4: Manipulação de Arquivos​

Etapa 1: Copiar e Mover​

# Criar um diretório de teste
mkdir test-files
cd test-files

# Criar um arquivo
echo "Test" > original.txt

# Copiar
cp original.txt copia.txt

# Copiar para outro diretório
cp original.txt ~/Documents/

# Copiar um diretório
cp -r ~/meu-lab ~/meu-lab-backup

# Mover (renomear)
mv original.txt renomeado.txt

# Mover para outro diretório
mv renomeado.txt ~/Documents/

Etapa 2: Remover​

# Remover um arquivo
rm arquivo1.txt

# Remover vários arquivos
rm arquivo2.txt arquivo3.txt

# Remover um diretório vazio
rmdir dir-vazio

# Remover um diretório com conteúdo
rm -r meu-lab

# Remover com confirmação
rm -ri projeto/

Atenção: rm -r remove permanentemente! Não vai para a lixeira.


Exercício 5: Busca de Arquivos​

Etapa 1: find​

# Encontrar todos os arquivos .txt no diretório atual
find . -name "*.txt"

# Encontrar em todo o sistema (pode demorar)
find / -name "arquivo.txt" 2>/dev/null

# Encontrar arquivos modificados recentemente
find ~ -mtime -1 # Últimas 24h

# Encontrar arquivos maiores que 1MB
find ~ -size +1M

Etapa 2: locate (se instalado)​

# Instalar locate
sudo apt update
sudo apt install mlocate

# Atualizar a base de dados
sudo updatedb

# Pesquisar
locate arquivo.txt

Exercício 6: Prática Completa​

Etapa 1: Criar uma Estrutura de Projeto​

# Criar a estrutura
mkdir -p ~/projeto-linux/{src/{scripts,config},docs,logs,backup}

# Criar arquivos
touch ~/projeto-linux/src/scripts/script1.sh
touch ~/projeto-linux/src/config/config.conf
echo "Log inicial" > ~/projeto-linux/logs/app.log

# Ver a estrutura
tree ~/projeto-linux

Etapa 2: Organizar os Arquivos​

cd ~/projeto-linux

# Criar arquivos de teste
touch test1.txt test2.txt test3.txt

# Criar um diretório para os testes
mkdir tests

# Mover os arquivos de teste
mv test*.txt tests/

# Verificar
ls -R

Exercício 7: Comandos Úteis​

Etapa 1: Informações sobre Arquivos​

# Tipo de arquivo
file arquivo.txt
file /bin/ls

# Tamanho do arquivo
du -h arquivo.txt

# Tamanho de um diretório
du -sh ~/projeto-linux

# Espaço em disco
df -h
# Criar um link simbólico
ln -s ~/projeto-linux/src/scripts/script1.sh ~/script1-link

# Ver o link
ls -l ~/script1-link

# Seguir o link
readlink -f ~/script1-link

Verificação​

Checklist​

Verifique se você consegue:

  • Navegar no sistema de arquivos (cd, pwd)
  • Ver o conteúdo dos diretórios (ls com opções)
  • Criar diretórios (mkdir, mkdir -p)
  • Criar arquivos (touch, echo, cat, nano)
  • Copiar e mover arquivos (cp, mv)
  • Remover arquivos e diretórios (rm, rmdir)
  • Buscar arquivos (find, locate)
  • Compreender a estrutura FHS

Perguntas para Reflexão​

  1. Qual a diferença entre caminho absoluto e relativo?

    • Absoluto: começa com / (a partir da raiz)
    • Relativo: a partir do diretório atual
  2. Por que usar mkdir -p?

    • Cria os diretórios pais se necessário
    • Evita erros se o diretório já existir
  3. Qual a diferença entre rm e rmdir?

    • rm: remove arquivos e diretórios (com -r)
    • rmdir: remove apenas diretórios vazios

Próximos Passos​

  • Lab 3.2: Gerenciamento de Permissões
  • Lab 3.3: Busca e Links
  • Capítulo 3.2: Estrutura de Diretórios

Recursos Ubuntu 24.04​


Lab criado em: Dezembro de 2024 - Testado no Ubuntu 24.04