O Canivete Suíço do Terminal: Dominando o Shell Bash
Até agora, aprendemos a usar comandos como "frases" isoladas. Agora, vamos aprender a construir "parágrafos" e "textos" completos. O Shell Bash não é apenas um intérprete de comandos; é um ambiente de programação poderoso.
Pense em você como um "Chef de Cozinha de Dados". Você recebe ingredientes brutos (arquivos de log, saídas de comandos) e usa um conjunto de ferramentas de precisão para fatiar, filtrar, ordenar e transformar esses dados no prato final que você deseja: um relatório, uma visão clara de um problema ou uma tarefa automatizada.
A Gramática Avançada do Chef
Para cozinhar como um mestre, você precisa dominar as ferramentas que conectam suas estações de trabalho.
A Esteira Rolante (| - Pipe)
O Pipe é o conceito mais poderoso. Ele pega o resultado (saída) de um comando e o usa como o ingrediente (entrada) para o comando seguinte. É a sua esteira rolante na cozinha.
Curingas (Wildcards)
*(asterisco): Representa qualquer sequência de caracteres.rm *.log-> Apague todos os arquivos que terminam com.log.
?(interrogação): Representa um único caractere.ls relatorio_202?.txt-> Listariarelatorio_2020.txt,relatorio_2021.txt, etc.
Aspas (" ")
- Analogia: Uma "bandeja" para agrupar itens.
- A Dor que Resolve: Nomes de arquivos com espaços. O comando
touch meu arquivo.txtcriaria dois arquivos. O comandotouch "meu arquivo.txt"cria um arquivo. As aspas transformam múltiplos argumentos em um só.
As Ferramentas de Preparo do Chef
cut - O Fatiador de Precisão
- Analogia: Um "fatiador de frios" que corta o texto em colunas.
- A Dor que Resolve: "Eu tenho um arquivo CSV com
nome,email,cidade, mas só quero ver a coluna dos emails." - Como Usar: Você precisa dizer a ele qual é o "separador" (
-d) e qual "fatia" (-f) você quer. Cenário Prático na AWS: Extrair apenas os nomes de usuário do arquivo de senhas do seu servidor EC2.
# O separador (-d) do arquivo /etc/passwd é ":" e queremos o primeiro campo (-f1) cut -d: -f1 /etc/passwd
sort - O Organizador
- Analogia: A "prateleira que se organiza sozinha".
- A Dor que Resolve: "Eu tenho uma lista de IPs que acessaram meu site, mas eles estão fora de ordem e fica difícil analisar."
- Opções Essenciais:
-r: Ordena em ordem reversa.-n: Ordena numericamente (em vez de alfabeticamente).-u: Mostra apenas os resultados únicos (remove duplicatas).
sed - O Carimbo Mágico de "Procure e Substitua"
- Analogia: Um "carimbo de 'procure e substitua'" que opera em tempo real na sua esteira rolante.
- A Dor que Resolve: "Preciso substituir rapidamente todas as ocorrências da palavra 'desenvolvimento' por 'produção' em um arquivo de configuração, sem precisar abri-lo."
- Sintaxe Mágica:
sed 's/palavra_antiga/palavra_nova/g' nome_do_arquivo.txts= substituir.g= globalmente (em toda a linha).
awk - O Processador de Alimentos
- Analogia: Um "processador de alimentos multifuncional". É uma ferramenta complexa que é, na verdade, uma linguagem de programação inteira para processar texto.
- A Dor que Resolve: Tarefas de formatação e análise complexas que vão além do
cut. "Mostre-me apenas os nomes dos usuários (coluna 1) cujo ID de usuário (coluna 3) é maior que 1000." - Exemplo:
awk -F: '$3 > 1000 {print $1}' /etc/passwd
Dica de Certificação: Para a certificação Linux Essentials, você não precisa programar em
awkoused. Você precisa saber para que servem:cutpara colunas simples,sortpara ordenar,sedpara substituições simples, eawkpara processamento complexo baseado em colunas e condições.
A Receita Completa: Um Cenário Real na AWS
Vamos juntar todas as nossas ferramentas de Chef para resolver um problema real em uma instância EC2.
A Dor: "Meu site está lento. Quero descobrir quais são os 10 endereços IP que mais fizeram requisições ao meu servidor web hoje."
A Receita (O Comando Encadeado):
cat /var/log/nginx/access.log | awk '{print $1}' | sort | uniq -c | sort -nr | head -n 10
O Passo a Passo do Chef:
-
cat /var/log/nginx/access.log:Pega o ingrediente bruto (o arquivo de log) e o joga na esteira. -
| awk '{print $1}':O processador de alimentos (awk) pega cada linha e extrai apenas a primeira coluna ($1), que é o endereço IP. -
| sort:O organizador (sort) coloca todos os IPs em ordem alfabética. Isso é essencial para o próximo passo. -
| uniq -c:O removedor de duplicatas (uniq) agrupa os IPs idênticos e, com a opção -c, conta quantas vezes cada um apareceu. -
| sort -nr:O organizador entra em ação de novo, mas desta vez de forma numérica (-n) e reversa (-r), ordenando a lista pela contagem, do maior para o menor. -
| head -n 10:O comando head mostra apenas as 10 primeiras linhas do resultado, nos dando o nosso "Top 10".