====== 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.