Manipulação de Saída e Redirecionamento com echo
O comando echo é utilizado para exibir strings de texto ou variáveis no terminal. Ele é frequentemente combinado com operadores de redirecionamento para manipular arquivos.
Redirecionamento de Fluxo
>: Sobrescreve o conteúdo de um arquivo com a nova saída.>>: Adiciona a saída ao final do arquivo sem apagar o conteúdo existente.-e: Habilita a interpretação de caracteres especiais de escape, como\n(nova linha) e\t(tabulação).
# Criando um arquivo e adicionando conteúdo
echo "Configuração Inicial" > setup.log
echo "Versão 1.0" >> setup.log
# Utilizando caracteres de escape
echo -e "Servidor:\tApache\nStatus:\tAtivo" >> setup.log
Expansão de Chaves e Sequências
As chaves {} permitem gerar sequências de números ou strings de forma eficiente, útil para criação de estruturas de diretórios.
# Gerando sequências numéricas com preenchimento de zeros
echo {01..05}
# Criando múltiplos diretórios de uma vez
mkdir projeto_{A,B,C}
# Combinando prefixos e sequências para criar subdiretórios
mkdir -p deploy/versao_{1..3}/logs
Geração de Sequências com seq
O comando seq gera sequências numéricas com suporte a incrementos e formatação personalizada.
-w: Padroniza a largura dos números adicionando zeros à esquerda.-s: Define um caractere separador para a sequência.
# Sequência de 10 a 20 com separador customizado
seq -s ":" 10 20
# Gerando números para cálculos rápidos via pipe
seq -s "+" 1 10 | bc
Visualização de Conteúdo com cat
O cat (concatenate) é utliizado para exibir o conteúdo total de um ou mais arquivos no terminal.
# Exibir conteúdo com numeração de linhas
cat -n /etc/hostname
# Criar um arquivo rapidamente usando Heredoc (EOF)
cat <<EOF > info.txt
Sistema: Ubuntu 22.04
Kernel: 5.15
EOF
# Mesclar múltiplos arquivos em um novo destino
cat log_jan.txt log_fev.txt > log_anual.txt
Navegação Paginada com less e more
Para arquivos extensos onde o cat é inviável, utiliza-se visualizadores paginados.
Comandos internos do less:
Espaçoouf: Avança uma página.b: Retrocede uma página./termo: Pesquisa por um termo específico no texto.G: Vai para o final do arquivo;g: Volta para o início.q: Sai do visualizador.
Extração de Trechos com head e tail
Esses comandos permitem visualizar apenas as extremidades de um arquivo.
head -n [X]: Exibe as primeiras X linhas.tail -n [X]: Exibe as últimas X linhas.tail -f: Monitora um arquivo em tempo real (essencial para logs).
# Extrair exatamente a linha 15 de um arquivo
head -15 arquivo.txt | tail -1
# Monitorar logs do sistema conforme eles ocorrem
tail -f /var/log/syslog
Filtragem de Dados com grep
O grep localiza padrões de texto dentro de arquivos ou fluxos de dados.
-n: Mostra o número da linha da ocorrência.-v: Inverte a busca (exibe linhas que NÃO contêm o padrão).-E: Permite o uso de expressões regulares estendidas.
# Filtrar usuários reais no /etc/passwd (removendo nologin)
grep -v "nologin" /etc/passwd
# Buscar por "Erro" ignorando linhas comentadas e vazias em um config
grep -vE '^#|^$' configuracao.conf | grep "Erro"
Transformação de Caracteres com tr
O comando tr é especializado em substituir ou deletar caracteres de um fluxo de texto.
# Substituir todas as vírgulas por tabulações em um CSV
cat dados.csv | tr "," "\t"
# Converter todo o texto para letras maiúsculas
echo "linux system" | tr "a-z" "A-Z"
Customização de Comandos com alias
O alias permite criar apelidos para comandos longos ou perigosos, aumentando a produtividade e segurança.
# Definindo um alias temporário para segurança
alias rm='rm -i'
# Criando um atalho para verificar conexões de rede
alias redes='ip -c a'
# Para tornar permanente, adicione ao arquivo ~/.bashrc ou /etc/profile
echo "alias ll='ls -lah --color=auto'" >> ~/.bashrc
source ~/.bashrc