DEV Community

Cover image for Comandos Essenciais do Linux (Nv-2)
Davi
Davi

Posted on

Comandos Essenciais do Linux (Nv-2)

gandalf2

Se tornando um mago

Olá para você novamente! Hoje vamos explorar comandos mais complexos e bem construídos, com explicações completas e detalhadas sobre cada um deles. Este artigo será mais abrangente que o primeiro, refletindo o nível intermediário que vamos abordar aqui. Então, prepare-se para fortalecer ainda mais suas habilidades no terminal Linux!


1. sudo apt install e suas variantes

O que faz?

O comando sudo apt install é utilizado para instalar pacotes no sistema baseado em distribuições Debian, como Ubuntu. Ele funciona em conjunto com o apt, que é o gerenciador de pacotes, e requer permissões de superusuário (sudo) para modificar o sistema.


Exemplo

sudo apt install curl
Enter fullscreen mode Exit fullscreen mode

No exemplo acima, o comando instala o pacote curl, uma ferramenta para transferir dados de ou para um servidor.


Explicação técnica

  • sudo: Permite executar o comando com permissões de superusuário, necessárias para ações que modificam o sistema. Sem isso, você receberia uma mensagem de "Permissão negada".
  • apt: O Advanced Package Tool é responsável por gerenciar pacotes no Linux. Ele pode buscar, instalar, atualizar e remover softwares do repositório oficial da distribuição.
  • install: Indica ao apt que você deseja instalar o pacote especificado.

O que acontece no sistema?

  1. Busca no repositório: O apt verifica no repositório oficial da distribuição (ou repositórios configurados) se o pacote está disponível.
  2. Resolução de dependências: Caso o pacote precise de outros para funcionar, o apt também os baixa e instala automaticamente.
  3. Instalação: Os arquivos são baixados, extraídos e colocados nas localizações corretas no sistema.

Variações úteis

  • Instalar múltiplos pacotes de uma vez:
sudo apt install curl git vim
Enter fullscreen mode Exit fullscreen mode
  • Simular a instalação (sem realmente executar):
sudo apt install --simulate curl
Enter fullscreen mode Exit fullscreen mode
  • Reinstalar um pacote já instalado:
sudo apt install --reinstall curl
Enter fullscreen mode Exit fullscreen mode

2. tar - Compactação e descompactação de arquivos


O que faz?

O comando tar é usado para criar, extrair, listar ou manipular arquivos compactados (ou pacotes de arquivos). Ele não comprime por si só, mas é frequentemente usado junto com ferramentas de compressão, como gzip ou bzip2.


Exemplo

Compactando um diretório:

tar -cvf backup.tar /meu_diretorio
Enter fullscreen mode Exit fullscreen mode

Descompactando o arquivo gerado:

tar -xvf backup.tar
Enter fullscreen mode Exit fullscreen mode

Explicação técnica

  • -c (create): Cria um novo arquivo tar.
  • -v (verbose): Exibe detalhes do processo no terminal, como os arquivos sendo adicionados ou extraídos.
  • -f (file): Especifica o nome do arquivo que será criado ou extraído.
  • -x (extract): Extrai o conteúdo de um arquivo tar.

Variações úteis

  1. Compactação com compressão (gzip):
   tar -czvf backup.tar.gz /meu_diretorio
Enter fullscreen mode Exit fullscreen mode

Aqui, o -z ativa a compressão com gzip, gerando um arquivo menor.

  1. Extraindo arquivos compactados (gzip):
   tar -xzvf backup.tar.gz
Enter fullscreen mode Exit fullscreen mode
  1. Visualizando o conteúdo de um arquivo tar:
   tar -tvf backup.tar
Enter fullscreen mode Exit fullscreen mode
  1. Compactando e excluindo os arquivos originais:
   tar --remove-files -cvf backup.tar /meu_diretorio
Enter fullscreen mode Exit fullscreen mode

O que acontece no sistema?

Quando você cria um arquivo com o tar, o comando empacota vários arquivos ou diretórios em um único arquivo, facilitando a movimentação ou o backup de dados. Ao adicionar compressão com ferramentas como gzip, o arquivo gerado ocupa menos espaço em disco, sendo ideal para armazenamento e transferência.


3. chmod - Controle de permissões de arquivos e diretórios


O que faz?

O comando chmod altera as permissões de arquivos e diretórios, permitindo configurar quem pode ler, escrever ou executar um arquivo no sistema.


Exemplo

Alterando as permissões de um arquivo para que apenas o dono possa ler e escrever:

chmod 600 arquivo.txt
Enter fullscreen mode Exit fullscreen mode

Dando permissão de execução a todos os usuários:

chmod +x script.sh
Enter fullscreen mode Exit fullscreen mode

Explicação técnica

O chmod usa uma combinação de números ou símbolos para definir permissões.

  1. Modelo simbólico:
    • + para adicionar permissões.
    • - para remover permissões.
    • = para definir permissões específicas. Exemplo:
   chmod u+x script.sh
Enter fullscreen mode Exit fullscreen mode

Aqui, u significa usuário, e +x adiciona a permissão de execução.

  1. Modelo numérico: As permissões são representadas por números:
    • 4 = leitura (r)
    • 2 = escrita (w)
    • 1 = execução (x)

A soma desses valores define as permissões:

  • 7 = leitura + escrita + execução (rwx)
  • 6 = leitura + escrita (rw-)
  • 5 = leitura + execução (r-x)
  • 0 = nenhuma permissão (---)

O número final tem 3 dígitos, representando:

  • Primeiro dígito: permissões do dono do arquivo.
  • Segundo dígito: permissões do grupo.
  • Terceiro dígito: permissões para outros.

Exemplo:

   chmod 755 script.sh
Enter fullscreen mode Exit fullscreen mode

Permissões:

  • Dono: leitura, escrita e execução (rwx).
  • Grupo: leitura e execução (r-x).
  • Outros: leitura e execução (r-x).

Variações úteis

  1. Removendo todas as permissões para outros usuários:
   chmod o-rwx arquivo.txt
Enter fullscreen mode Exit fullscreen mode
  1. Dando permissão total apenas ao dono:
   chmod 700 diretorio
Enter fullscreen mode Exit fullscreen mode
  1. Tornando um script executável:
   chmod +x script.sh
Enter fullscreen mode Exit fullscreen mode

O que acontece no sistema?

Quando o chmod é usado, ele modifica as permissões no sistema de arquivos. Essas permissões são essenciais para segurança, garantindo que apenas usuários ou grupos autorizados possam acessar ou modificar arquivos.


4. grep - Pesquisa avançada em arquivos e saídas de comandos


O que faz?

O comando grep pesquisa padrões de texto em arquivos ou na saída de outros comandos, exibindo linhas que correspondem a uma determinada expressão regular.


Exemplo

Pesquisando a palavra "erro" em um arquivo de log:

grep "erro" log.txt
Enter fullscreen mode Exit fullscreen mode

Pesquisando de forma recursiva em um diretório:

grep -r "config" /etc
Enter fullscreen mode Exit fullscreen mode

Filtrando a saída de outro comando:

ps aux | grep "apache"
Enter fullscreen mode Exit fullscreen mode

Explicação técnica

  1. Estrutura básica do comando:
   grep [opções] "padrão" [arquivo]
Enter fullscreen mode Exit fullscreen mode
  • padrão: Texto ou expressão regular que você quer localizar.
  • arquivo: Arquivo ou conjunto de arquivos onde será feita a busca.
  1. Principais opções:

    • -i: Ignora maiúsculas e minúsculas.
     grep -i "config" arquivo.txt
    
  • -n: Mostra o número da linha onde o padrão foi encontrado.

     grep -n "erro" log.txt
    
  • -r: Busca recursiva em diretórios.

  • -v: Mostra linhas que não correspondem ao padrão.

     grep -v "sucesso" log.txt
    
  • --color: Destaca o texto encontrado no terminal.

  1. Expressões regulares avançadas:

    • .: Corresponde a qualquer caractere.
     grep "t.st" arquivo.txt
    

    Encontra palavras como "test", "tost" ou "tast".

    • ^: Indica o início de uma linha.
     grep "^Erro" log.txt
    

    Encontra linhas que começam com "Erro".

    • $: Indica o final de uma linha.
     grep "fim$" arquivo.txt
    

    Encontra linhas que terminam com "fim".

    • *: Zero ou mais ocorrências do caractere anterior.
     grep "go*gle" texto.txt
    

    Encontra palavras como "ggle", "gogle", "google", etc.

  2. Combinando com outros comandos:

    O grep é ainda mais poderoso quando usado em pipelines:

    • Encontrando processos específicos:
     ps aux | grep "nginx"
    
  • Buscando logs em tempo real:

     tail -f log.txt | grep "erro"
    

Variações úteis

  1. Contar ocorrências de um padrão:
   grep -c "padrão" arquivo.txt
Enter fullscreen mode Exit fullscreen mode
  1. Mostrar apenas os nomes dos arquivos que contêm o padrão:
   grep -l "main" *.c
Enter fullscreen mode Exit fullscreen mode
  1. Mostrar o contexto ao redor do padrão:

    • -A: Mostra as linhas após o padrão.
    • -B: Mostra as linhas antes do padrão.
    • -C: Mostra as linhas antes e depois.
     grep -C 2 "erro" log.txt
    

O que acontece no sistema?

O grep utiliza uma abordagem eficiente para percorrer arquivos linha por linha, analisando o texto com base no padrão definido. Ele é amplamente utilizado em scripts para automação e análise de dados.


6. rsync - Sincronização de Arquivos e Diretórios


O que faz?

O comando rsync é utilizado para sincronizar arquivos e diretórios de forma eficiente, localmente ou remotamente. Ele copia apenas as diferenças entre a origem e o destino, economizando tempo e largura de banda.


Exemplo

  1. Sincronizando um diretório local:
   rsync -av /origem/ /destino/
Enter fullscreen mode Exit fullscreen mode
  1. Transferindo arquivos para um servidor remoto:
   rsync -av /meus_arquivos/ usuario@servidor:/caminho_destino/
Enter fullscreen mode Exit fullscreen mode
  1. Excluindo arquivos do destino que não existem na origem:
   rsync -av --delete /origem/ /destino/
Enter fullscreen mode Exit fullscreen mode
  1. Sincronizando arquivos entre dois servidores remotos:
   rsync -av usuario1@servidor1:/origem/ usuario2@servidor2:/destino/
Enter fullscreen mode Exit fullscreen mode

Explicação técnica

  1. Estrutura básica do comando:
   rsync [opções] origem destino
Enter fullscreen mode Exit fullscreen mode
  1. Opções principais:

    • -a (archive): Preserva atributos do arquivo (permissões, timestamps, links simbólicos).
    • -v (verbose): Exibe detalhes do processo de cópia.
    • --delete: Remove arquivos no destino que não estão presentes na origem.
    • --progress: Exibe o progresso da transferência de cada arquivo.
    • -z: Comprime os arquivos durante a transferência.
  2. Diretórios de origem e destino:

    • Para copiar apenas o conteúdo de um diretório (não o próprio diretório), adicione / no final:
     rsync -av /origem/ /destino/
    
  • Para copiar o diretório inteiro, não use a barra:

     rsync -av /origem /destino/
    
  1. Sincronização remota: O rsync pode usar SSH para transferências seguras:
   rsync -av -e ssh /origem usuario@servidor:/destino/
Enter fullscreen mode Exit fullscreen mode
  1. Filtros e exclusões: Você pode incluir ou excluir arquivos específicos com:
   rsync -av --exclude='*.tmp' /origem/ /destino/
Enter fullscreen mode Exit fullscreen mode
  • Isso exclui todos os arquivos com extensão .tmp.

Variações úteis

  1. Sincronizar somente arquivos alterados:
   rsync -av --update /origem/ /destino/
Enter fullscreen mode Exit fullscreen mode
  1. Criar backups incrementais:
   rsync -av --backup --backup-dir=/backup_incremental /origem/ /destino/
Enter fullscreen mode Exit fullscreen mode
  1. Sincronizar com verificação de integridade:
   rsync -av --checksum /origem/ /destino/
Enter fullscreen mode Exit fullscreen mode

O que acontece no sistema?

O rsync utiliza um algoritmo de delta para comparar os dados da origem e do destino, transferindo apenas as partes que foram alteradas. Ele também cria um índice para evitar a cópia redundante de arquivos, tornando o processo rápido e eficiente, mesmo para grandes volumes de dados.


Parabéns, jovem mago! 🧙‍♂️ Com esses comandos intermediários, você está cada vez mais próximo de dominar o terminal e liberar todo o seu potencial no Linux. Siga minhas aventuras e dicas mágicas no meu Twitter:https://x.com/davvzin

Top comments (0)