====== Comandos de Navegação e Manipulação de Arquivos e Diretórios no Linux ======
===== Nível Básico =====
=== 1. Comandos de Navegação ===
* **cd** - Muda o diretório de trabalho atual.
- Exemplo de uso: cd /home/usuario
- Descrição: Esse comando permite que você navegue para o diretório especificado, mudando o diretório de trabalho para ''/home/usuario''.
* **pwd** - Exibe o diretório atual.
- Exemplo de uso: pwd
- Descrição: Exibe o caminho completo do diretório atual onde você está trabalhando.
=== 2. Comandos de Listagem ===
* **ls** - Lista o conteúdo do diretório.
- Exemplo de uso: ls
- Descrição: Mostra todos os arquivos e subdiretórios do diretório atual.
* **ls -a** - Lista todos os arquivos, incluindo os ocultos.
- Exemplo de uso: ls -a
- Descrição: Exibe também os arquivos ocultos, ou seja, aqueles cujo nome começa com um ponto (''.''), como ''.bashrc''.
=== 3. Comandos de Manipulação de Diretórios ===
* **mkdir** - Cria um novo diretório.
- Exemplo de uso: mkdir /home/usuario/novo_diretorio
- Descrição: Cria um diretório chamado ''novo_diretorio'' no caminho especificado.
* **rmdir** - Remove um diretório vazio.
- Exemplo de uso: rmdir /home/usuario/novo_diretorio
- Descrição: Remove um diretório se ele estiver vazio.
=== 4. Manipulação Simples de Arquivos ===
* **cp** - Copia arquivos de um local para outro.
- Exemplo de uso: cp arquivo.txt /home/usuario/
- Descrição: Copia o arquivo ''arquivo.txt'' para o diretório ''/home/usuario/''.
* **mv** - Move ou renomeia arquivos e diretórios.
- Exemplo de uso: mv arquivo.txt /home/usuario/
- Descrição: Move o arquivo ''arquivo.txt'' para o diretório ''/home/usuario/'', ou, se usado com o mesmo caminho, pode renomear o arquivo.
=== 5. Remoção de Arquivos ===
* **rm** - Remove arquivos.
- Exemplo de uso: rm arquivo.txt
- Descrição: Remove o arquivo especificado, no caso, o ''arquivo.txt''.
===== Nível Intermediário =====
=== 1. Comandos de Navegação e Listagem ===
* **ls -R** - Lista recursivamente o conteúdo de diretórios.
- Exemplo de uso: ls -R /home/usuario
- Descrição: Exibe todos os arquivos e subdiretórios de forma recursiva, útil para explorar a estrutura completa de um diretório.
* **tree** - Exibe o conteúdo do diretório em formato de árvore.
- Exemplo de uso: tree /home/usuario
- Descrição: Mostra a estrutura hierárquica de diretórios e arquivos, de forma visual, como uma árvore.
=== 2. Manipulação de Diretórios e Arquivos ===
* **mv** - Move múltiplos arquivos para um diretório.
- Exemplo de uso: mv arquivo1.txt arquivo2.txt /home/usuario/destino/
- Descrição: Move os arquivos ''arquivo1.txt'' e ''arquivo2.txt'' para o diretório ''/home/usuario/destino/''.
* **cp -r** - Copia diretórios de forma recursiva.
- Exemplo de uso: cp -r /home/usuario/diretorio /home/usuario/backup/
- Descrição: Copia o diretório ''diretorio'' e todo o seu conteúdo para o diretório ''backup''.
=== 3. Remoção de Arquivos e Diretórios ===
* **rm -r** - Remove arquivos e diretórios de forma recursiva.
- Exemplo de uso: rm -r /home/usuario/antigo_projeto/
- Descrição: Remove o diretório ''antigo_projeto'' e todo o seu conteúdo, inclusive subdiretórios.
=== 4. Exibição de Arquivos ===
* **cat** - Exibe o conteúdo de arquivos de texto.
- Exemplo de uso: cat /home/usuario/arquivo.txt
- Descrição: Exibe todo o conteúdo do arquivo ''arquivo.txt'' na saída padrão (terminal).
* **less** - Exibe arquivos de forma paginada.
- Exemplo de uso: less /home/usuario/arquivo_grande.txt
- Descrição: Permite navegar de forma interativa por arquivos grandes, movendo para cima e para baixo com as setas.
=== 5. Comandos de Manipulação de Permissões ===
* **chmod** - Altera permissões de arquivos ou diretórios.
- Exemplo de uso: chmod 755 /home/usuario/script.sh
- Descrição: Define permissões de leitura, escrita e execução para o dono, e apenas leitura e execução para outros usuários no arquivo ''script.sh''.
* **chown** - Altera o proprietário de arquivos e diretórios.
- Exemplo de uso: chown usuario:grupo /home/usuario/arquivo.txt
- Descrição: Altera o proprietário do arquivo ''arquivo.txt'' para o usuário ''usuario'' e grupo ''grupo''.
=== 6. Verificação de Espaço em Disco ===
* **df -h** - Verifica o uso do espaço em disco.
- Exemplo de uso: df -h
- Descrição: Mostra o espaço em disco utilizado e disponível em todos os sistemas de arquivos montados, com valores legíveis (em MB/GB).
* **du -sh** - Verifica o tamanho de um diretório.
- Exemplo de uso: du -sh /home/usuario/projeto/
- Descrição: Calcula o tamanho total do diretório ''projeto'' e seus subdiretórios, exibindo o valor de forma legível.
===== Nível Avançado =====
=== 1. Comandos de Manipulação Avançada de Arquivos ===
* **ln -s** - Cria um link simbólico para um arquivo ou diretório.
- Exemplo de uso: ln -s /home/usuario/arquivo.txt /home/usuario/link_arquivo.txt
- Descrição: Cria um link simbólico chamado ''link_arquivo.txt'', que aponta para o arquivo original ''arquivo.txt''.
* **rename** - Renomeia múltiplos arquivos com base em um padrão.
- Exemplo de uso: rename 's/.txt/.bak/' *.txt
- Descrição: Renomeia todos os arquivos com extensão ''.txt'' para ''.bak'' no diretório atual.
=== 2. Busca Avançada de Arquivos ===
* **find** - Localiza arquivos com base em parâmetros específicos.
- Exemplo de uso: find /home/usuario -name "*.log"
- Descrição: Procura por arquivos com a extensão ''.log'' no diretório ''/home/usuario'' e em todos os seus subdiretórios.
* **find** - Encontra e remove arquivos maiores que um certo tamanho.
- Exemplo de uso: find /home/usuario -size +500M -exec rm {} \;
- Descrição: Encontra e remove arquivos maiores que 500 MB no diretório especificado.
=== 3. Compressão e Arquivamento ===
* **tar** - Cria um arquivo compactado ou extrai arquivos de um arquivo tar.
- Exemplo de uso: tar -czvf arquivo.tar.gz /home/usuario/projeto/
- Descrição: Compacta o diretório ''projeto'' em um arquivo tar.gz chamado ''arquivo.tar.gz''.
* **tar** - Extrai um arquivo compactado.
- Exemplo de uso: tar -xzvf arquivo.tar.gz
- Descrição: Extrai o conteúdo do arquivo ''arquivo.tar.gz'' no diretório atual.
=== 4. Manipulação de Permissões e Propriedades ===
* **chown -R** - Altera o proprietário de diretórios e arquivos recursivamente.
- Exemplo de uso: chown -R usuario:grupo /home/usuario/projeto/
- Descrição: Altera o proprietário do diretório ''projeto'' e de todo o seu conteúdo, recursivamente.
* **chmod -R** - Altera permissões de diretórios e arquivos recursivamente.
- Exemplo de uso: chmod -R 755 /home/usuario/projeto/
- Descrição: Define permissões de leitura e execução para todos, e de escrita para o dono, no diretório ''projeto'' e em todos os arquivos e subdiretórios.
=== 5. Comparação de Arquivos ===
* **diff** - Compara dois arquivos e exibe suas diferenças.
- Exemplo de uso: diff arquivo1.txt arquivo2.txt
- Descrição: Compara ''arquivo1.txt'' com ''arquivo2.txt'' e exibe as diferenças entre eles.
* **rsync** - Sincroniza arquivos e diretórios entre diferentes locais.
- Exemplo de uso: rsync -av /home/usuario/projeto/ /backup/projeto/
- Descrição: Sincroniza o diretório ''projeto'' com o diretório ''/backup/projeto'', copiando apenas os arquivos modificados.
=== 6. Busca e Manipulação de Texto em Arquivos ===
* **grep** - Procura por padrões de texto dentro de arquivos.
- Exemplo de uso: grep "erro" /var/log/syslog
- Descrição: Busca por ocorrências da palavra "erro" no arquivo de log ''/var/log/syslog''.
* **grep -r** - Busca recursivamente em arquivos.
- Exemplo de uso: grep -r "fatal" /home/usuario/projetos/
- Descrição: Procura pela palavra "fatal" em todos os arquivos dentro do diretório ''/projetos'' e seus subdiretórios.
===== Nível Especializado =====
=== 1. Automação e Manipulação Especializada ===
* **find** + **exec** - Executa comandos em arquivos encontrados com `find`.
- Exemplo de uso: find /home/usuario -name "*.tmp" -exec rm {} \;
- Descrição: Procura e remove todos os arquivos com a extensão ''.tmp'' no diretório ''/home/usuario'' e subdiretórios.
* **find** + **xargs** - Utiliza `xargs` para executar comandos em grandes volumes de arquivos.
- Exemplo de uso: find /home/usuario -name "*.log" | xargs gzip
- Descrição: Encontra todos os arquivos com a extensão ''.log'' e os compacta usando o comando `gzip`.
=== 2. Manipulação Avançada de Arquivos ===
* **awk** - Processa e manipula dados em arquivos de texto.
- Exemplo de uso: awk '{print $1, $3}' arquivo.txt
- Descrição: Extrai e exibe a primeira e terceira coluna de cada linha no arquivo ''arquivo.txt''.
* **sed** - Edita texto em arquivos de forma não interativa.
- Exemplo de uso: sed -i 's/erro/ERRO/g' /var/log/syslog
- Descrição: Substitui todas as ocorrências da palavra "erro" por "ERRO" no arquivo de log ''/var/log/syslog''.
=== 3. Criação e Extração de Arquivos em Formatos Complexos ===
* **tar** + **gzip** - Compacta e descompacta arquivos em um pipeline.
- Exemplo de uso: tar -cvf - /home/usuario/projeto | gzip > projeto.tar.gz
- Descrição: Compacta o diretório ''/projeto'' e cria o arquivo compactado ''projeto.tar.gz''.
* **tar** + **bzip2** - Utiliza `bzip2` para criar arquivos ainda mais comprimidos.
- Exemplo de uso: tar -cvjf projeto.tar.bz2 /home/usuario/projeto
- Descrição: Cria um arquivo compactado com maior taxa de compressão usando `bzip2`.
=== 4. Sincronização Avançada de Arquivos ===
* **rsync** + SSH - Sincroniza arquivos de forma segura entre servidores.
- Exemplo de uso: rsync -avz -e ssh /home/usuario/projeto usuario@servidor_remoto:/backup/
- Descrição: Sincroniza o diretório ''/projeto'' para o servidor remoto usando SSH, transferindo apenas as alterações.
=== 5. Monitoramento e Gerenciamento de Arquivos e Diretórios ===
* **inotifywait** - Monitora mudanças em tempo real nos arquivos de um diretório.
- Exemplo de uso: inotifywait -m /home/usuario/projeto
- Descrição: Monitora o diretório ''/projeto'' em tempo real, mostrando eventos como criação, modificação e exclusão de arquivos.
* **lsof** - Exibe arquivos abertos por processos.
- Exemplo de uso: lsof /home/usuario/arquivo.txt
- Descrição: Lista os processos que estão acessando o arquivo ''arquivo.txt''.
=== 6. Gerenciamento de Processos Relacionados a Arquivos ===
* **nice** + **cp** - Controla a prioridade de cópia de arquivos grandes.
- Exemplo de uso: nice -n 19 cp arquivo_grande.iso /backup/
- Descrição: Executa o comando de cópia com uma prioridade mais baixa (''nice'') para evitar impacto no desempenho do sistema.
* **ionice** - Define a prioridade de I/O durante a manipulação de arquivos.
- Exemplo de uso: ionice -c3 cp arquivo_grande.iso /backup/
- Descrição: Define uma prioridade baixa para operações de I/O ao copiar o arquivo, minimizando o impacto no desempenho do disco.