User Tools

Site Tools


wiki:linux:comandos:comando_concatenados

Introdução aos Comandos Linux Concatenados

O Linux é um sistema operacional extremamente poderoso, que oferece uma vasta gama de ferramentas de linha de comando para automatizar, otimizar e diagnosticar diversas operações do sistema. Uma das maiores vantagens do Linux é a capacidade de concatenar comandos usando pipes (|) e redirecionamentos, permitindo que você construa fluxos de trabalho complexos e eficientes com uma única linha de comando.

A concatenação de comandos permite que você use a saída de um comando como entrada de outro, simplificando tarefas como filtragem de dados, manipulação de arquivos, monitoramento de logs, gerenciamento de processos e muito mais. Esses exemplos foram criados para demonstrar como é possível combinar utilitários padrão do Linux para realizar tarefas complexas de forma simples e eficaz.

Nesta página, você encontrará exemplos práticos e criativos de como concatenar comandos no Linux para resolver problemas comuns e avançados, otimizando o seu trabalho como administrador de sistemas ou desenvolvedor. Desde operações básicas até tarefas altamente especializadas, você verá como o poder da linha de comando pode transformar sua maneira de lidar com o sistema operacional.

Explore as seções abaixo e descubra novas formas de melhorar seu fluxo de trabalho no Linux!

  • Monitorar modificações em tempo real e enviar notificação:
    1. inotifywait -m /caminho/para/diretorio | while read path action file; do notify-send "Arquivo modificado: $file"; done
    2. Usa `inotifywait` para monitorar alterações em um diretório e `notify-send` para enviar uma notificação a cada mudança.
  • Renomear múltiplos arquivos em massa:
    1. ls *.txt | sed 'p;s/.txt/.bak/' | xargs -n2 mv
    2. Lista arquivos `.txt`, substitui a extensão por `.bak` e renomeia todos de uma vez, usando `sed` e `xargs`.
  • Excluir arquivos antigos automaticamente:
    1. find /pasta -type f -mtime +30 | xargs rm
    2. Encontra e remove arquivos que têm mais de 30 dias de idade.
  • Buscar informações no sistema e salvar no clipboard:
    1. df -h | grep '/dev/sda1' | xclip -selection clipboard
    2. Mostra o uso de disco da partição `/dev/sda1` e copia o resultado diretamente para a área de transferência.
  • Verificar se um serviço está rodando e enviar email de alerta se não estiver:
    1. systemctl is-active apache2 || echo "O Apache caiu!" | mail -s "Alerta de Apache" admin@empresa.com
    2. Verifica se o serviço `apache2` está ativo; caso contrário, envia um alerta por email.
  • Listar processos de forma hierárquica (em árvore):
    1. ps -ef --forest
    2. Exibe a árvore de processos atuais com a relação entre pai e filho.
  • Buscar uma string em arquivos e copiar os resultados para outro diretório:
    1. grep -rl "termo_busca" /origem | xargs -I{} cp {} /destino
    2. Encontra arquivos que contêm uma string específica e copia-os para outro diretório.
  • Monitorar logs em tempo real e filtrar por erros:
    1. tail -f /var/log/syslog | grep "error"
    2. Monitora o arquivo de log do sistema em tempo real e exibe apenas as linhas que contêm “error”.
  • Buscar um processo pelo nome e exibir o uso de memória:
    1. ps aux | grep nome_processo | awk '{print $4, $11}'
    2. Filtra processos pelo nome e exibe a porcentagem de memória usada e o comando executado.
  • Criar backup de banco de dados MySQL e compactar:
    1. mysqldump -u usuario -p banco_dados | gzip > backup.sql.gz
    2. Faz um backup do banco de dados MySQL e comprime o arquivo de saída com `gzip`.
  • Verificar portas abertas e mostrar o nome do serviço:
    1. netstat -tuln | grep LISTEN | awk '{print $4}' | xargs -I{} lsof -i :{}
    2. Lista as portas abertas e mostra qual serviço está usando cada porta.
  • Medir o tempo de execução de um comando e enviar resultado por email:
    1. time ls /pasta | mail -s "Resultado do comando" admin@empresa.com
    2. Executa o comando `ls` e envia o tempo gasto por email.
  • Compactar e mover arquivos com um único comando:
    1. tar -czvf backup.tar.gz /caminho/origem && mv backup.tar.gz /caminho/destino
    2. Cria um arquivo compactado e move-o para outro diretório em uma única linha.
  • Redirecionar saídas padrão e de erro para arquivos diferentes:
    1. comando > saida.log 2> erro.log
    2. Redireciona a saída padrão para `saida.log` e os erros para `erro.log`.
  • Contar o número de arquivos e subdiretórios em um diretório:
    1. find /caminho/diretorio -type f | wc -l
    2. Conta o número total de arquivos dentro de um diretório.
  • Mostrar a utilização da CPU por cada core separadamente:
    1. mpstat -P ALL 1
    2. Exibe a utilização da CPU para cada core, atualizando a cada 1 segundo.
  • Baixar e extrair um arquivo diretamente da web:
    1. curl -O https://exemplo.com/arquivo.tar.gz && tar -xzvf arquivo.tar.gz
    2. Faz o download de um arquivo com `curl` e o extrai automaticamente.
  • Buscar por um processo em execução e matar todos de uma vez:
    1. ps aux | grep processo_nome | awk '{print $2}' | xargs kill -9
    2. Encontra processos pelo nome e mata todos os processos relacionados.
  • Verificar uso de disco e listar os 10 maiores arquivos:
    1. du -ah /pasta | sort -rh | head -n 10
    2. Exibe os 10 maiores arquivos e diretórios no caminho especificado.
  • Exibir estatísticas da rede e atualizá-las continuamente:
    1. netstat -i | watch -n 5
    2. Exibe estatísticas da interface de rede e as atualiza a cada 5 segundos.
  • Compactar e excluir arquivos antigos de log:
    1. find /var/log -type f -mtime +30 -name "*.log" -exec gzip {} \; -exec rm {} \;
    2. Compacta e remove logs com mais de 30 dias.
  • Criar múltiplos diretórios e subdiretórios com um único comando:
    1. mkdir -p /caminho/{dir1,dir2/{subdir1,subdir2}}
    2. Cria múltiplos diretórios e subdiretórios em uma única linha.
  • Sincronizar diretórios e deletar arquivos que não existem na origem:
    1. rsync -av --delete /origem/ /destino/
    2. Sincroniza diretórios e remove arquivos no destino que foram deletados da origem.
  • Monitorar uso de espaço de um diretório e alertar se estiver cheio:
    1. df -h /diretorio | awk '$5 > 90 {print "Atenção: Uso de disco superior a 90%!"}'
    2. Monitora o uso de disco e alerta quando ultrapassa 90%.
  • Limpar a cache de disco (útil para liberar memória em servidores):
    1. sync; echo 3 | sudo tee /proc/sys/vm/drop_caches
    2. Limpa a cache de arquivos em memória (não afeta dados no disco).
  • Atualizar pacotes do sistema e remover os pacotes obsoletos:
    1. sudo apt update && sudo apt upgrade -y && sudo apt autoremove -y
    2. Atualiza pacotes, instala as novas versões e remove pacotes antigos não utilizados.
  • Criar um servidor HTTP simples com Python:
    1. python3 -m http.server 8080
    2. Inicia um servidor HTTP na porta 8080 para servir arquivos do diretório atual.
  • Buscar todos os arquivos modificados nos últimos 24 horas:
    1. find /caminho -type f -mtime -1
    2. Lista todos os arquivos que foram modificados nas últimas 24 horas.
  • Copiar somente novos ou modificados arquivos entre dois diretórios:
    1. rsync -av --ignore-existing /origem/ /destino/
    2. Copia apenas os arquivos novos ou modificados da origem para o destino, sem sobrescrever os existentes.
  • Monitorar múltiplos logs ao mesmo tempo:
    1. tail -f /var/log/syslog /var/log/auth.log
    2. Monitora múltiplos arquivos de log em tempo real.
  • Criar uma lista de arquivos e salvar com timestamps no nome:
    1. ls -l > "lista_arquivos_$(date +%Y%m%d_%H%M%S).txt"
    2. Cria uma lista de arquivos e salva o arquivo de saída com o timestamp no nome.
  • Desligar o sistema em 10 minutos:
    1. sudo shutdown -h +10 "O sistema será desligado em 10 minutos"
    2. Agende o desligamento do sistema em 10 minutos, com uma mensagem para os usuários conectados.
  • Renomear uma série de arquivos trocando parte do nome:
    1. for f in *.jpg; do mv -- "$f" "${f%.jpg}.png"; done
    2. Troca a extensão de todos os arquivos `.jpg` para `.png`.
  • Verificar a latência de conexão com um servidor específico:
    1. ping -c 5 exemplo.com | grep 'time='
    2. Executa 5 testes de ping e exibe somente as linhas com o tempo de resposta.
  • Baixar todos os arquivos de um site com `wget`:
    1. wget -r -np -k http://exemplo.com
    2. Faz o download de todos os arquivos de um site, mantendo a estrutura de links.
  • Filtrar registros por data em um arquivo de log:
    1. grep "2024-10-12" /var/log/syslog
    2. Exibe todas as linhas de um log que contenham a data “2024-10-12”.
wiki/linux/comandos/comando_concatenados.txt · Last modified: by Wiki Administrator