===== Nível Básico ===== === 1. Exibição de Arquivos de Texto === * **cat** - Exibe o conteúdo de arquivos de texto. - Exemplo de uso: cat arquivo.txt - Descrição: Exibe todo o conteúdo de ''arquivo.txt'' no terminal. * **head** - Exibe as primeiras linhas de um arquivo. - Exemplo de uso: head -n 10 arquivo.txt - Descrição: Mostra as primeiras 10 linhas do arquivo ''arquivo.txt''. * **tail** - Exibe as últimas linhas de um arquivo. - Exemplo de uso: tail -n 10 arquivo.txt - Descrição: Mostra as últimas 10 linhas do arquivo ''arquivo.txt''. === 2. Contagem de Linhas, Palavras e Caracteres === * **wc** - Conta o número de linhas, palavras e caracteres em um arquivo. - Exemplo de uso: wc arquivo.txt - Descrição: Exibe o número de linhas, palavras e caracteres no arquivo ''arquivo.txt''. * **wc -l** - Conta apenas o número de linhas em um arquivo. - Exemplo de uso: wc -l arquivo.txt - Descrição: Mostra o número de linhas no arquivo ''arquivo.txt''. === 3. Redirecionamento de Saída === * **>** - Redireciona a saída para um arquivo, sobrescrevendo o conteúdo. - Exemplo de uso: echo "Texto de exemplo" > saida.txt - Descrição: Escreve o texto "Texto de exemplo" no arquivo ''saida.txt'', sobrescrevendo qualquer conteúdo anterior. * **>>** - Redireciona a saída para um arquivo, adicionando ao conteúdo existente. - Exemplo de uso: echo "Novo texto" >> saida.txt - Descrição: Adiciona o texto "Novo texto" ao final do arquivo ''saida.txt'' sem sobrescrever o conteúdo anterior. === 4. Redirecionamento de Entrada === * **<** - Usa o conteúdo de um arquivo como entrada para um comando. - Exemplo de uso: cat < arquivo.txt - Descrição: Redireciona o conteúdo de ''arquivo.txt'' como entrada para o comando ''cat'', exibindo-o no terminal. ===== Nível Intermediário ===== === 1. Busca de Texto com `grep` === * **grep** - Busca por padrões de texto em arquivos. - Exemplo de uso: grep "erro" arquivo.log - Descrição: Procura pela palavra "erro" no arquivo ''arquivo.log'' e exibe as linhas que contêm o termo. * **grep -i** - Realiza a busca ignorando maiúsculas e minúsculas. - Exemplo de uso: grep -i "aviso" arquivo.log - Descrição: Procura por "aviso" no arquivo ''arquivo.log'', ignorando diferenças entre maiúsculas e minúsculas. * **grep -r** - Busca recursivamente em diretórios. - Exemplo de uso: grep -r "falha" /var/log/ - Descrição: Procura pelo termo "falha" em todos os arquivos e subdiretórios dentro de ''/var/log/''. === 2. Ordenação de Conteúdo com `sort` === * **sort** - Ordena as linhas de um arquivo alfabeticamente. - Exemplo de uso: sort nomes.txt - Descrição: Ordena as linhas do arquivo ''nomes.txt'' em ordem alfabética. * **sort -r** - Ordena as linhas de um arquivo em ordem reversa. - Exemplo de uso: sort -r nomes.txt - Descrição: Ordena as linhas de ''nomes.txt'' em ordem alfabética reversa. * **sort -n** - Ordena números em ordem crescente. - Exemplo de uso: sort -n numeros.txt - Descrição: Ordena as linhas de ''numeros.txt'' contendo números em ordem crescente. === 3. Seleção de Colunas com `cut` === * **cut** - Extrai campos específicos de um arquivo. - Exemplo de uso: cut -d ',' -f 1 lista.csv - Descrição: Extrai a primeira coluna de um arquivo CSV, onde as colunas estão separadas por vírgulas. * **cut -c** - Extrai uma faixa de caracteres de cada linha. - Exemplo de uso: cut -c 1-10 arquivo.txt - Descrição: Exibe os primeiros 10 caracteres de cada linha do arquivo ''arquivo.txt''. === 4. Substituição de Texto com `sed` === * **sed** - Substitui texto em arquivos. - Exemplo de uso: sed 's/erro/ERRO/g' arquivo.log - Descrição: Substitui todas as ocorrências de "erro" por "ERRO" no arquivo ''arquivo.log''. * **sed -i** - Substitui texto diretamente no arquivo. - Exemplo de uso: sed -i 's/aviso/AVISO/g' arquivo.log - Descrição: Substitui "aviso" por "AVISO" em todas as linhas de ''arquivo.log'', editando o arquivo diretamente. ===== Nível Avançado ===== === 1. Uso de Expressões Regulares com `grep` === * **grep -E** - Usa expressões regulares estendidas. - Exemplo de uso: grep -E "[0-9]{3}-[0-9]{2}-[0-9]{4}" arquivo.txt - Descrição: Busca por padrões de números de CPF (no formato ''000-00-0000'') em ''arquivo.txt'' usando expressões regulares. * **grep -v** - Exclui linhas que correspondem ao padrão. - Exemplo de uso: grep -v "erro" arquivo.log - Descrição: Exibe todas as linhas de ''arquivo.log'' que **não** contêm a palavra "erro". === 2. Comparação e Combinação de Arquivos === * **diff** - Compara dois arquivos linha por linha. - Exemplo de uso: diff arquivo1.txt arquivo2.txt - Descrição: Compara ''arquivo1.txt'' com ''arquivo2.txt'' e exibe as diferenças entre eles. * **comm** - Compara arquivos linha a linha e exibe as linhas comuns e únicas. - Exemplo de uso: comm arquivo1.txt arquivo2.txt - Descrição: Exibe três colunas: as linhas exclusivas de ''arquivo1.txt'', as exclusivas de ''arquivo2.txt'', e as comuns a ambos. === 3. Junção de Arquivos com `paste` e `join` === * **paste** - Junta o conteúdo de arquivos lado a lado. - Exemplo de uso: paste arquivo1.txt arquivo2.txt - Descrição: Combina as linhas de ''arquivo1.txt'' e ''arquivo2.txt'' lado a lado, separadas por uma tabulação. * **join** - Junta arquivos baseados em um campo comum. - Exemplo de uso: join -1 1 -2 1 arquivo1.txt arquivo2.txt - Descrição: Junta os arquivos ''arquivo1.txt'' e ''arquivo2.txt'' com base no primeiro campo de cada linha (normalmente uma chave ou ID). === 4. Manipulação Avançada de Texto com `awk` === * **awk '{print $1, $3}'** - Extrai campos específicos de um arquivo. - Exemplo de uso: awk '{print $1, $3}' arquivo.txt - Descrição: Exibe o primeiro e o terceiro campo de cada linha em ''arquivo.txt''. Os campos são separados por espaços ou tabulações por padrão. * **awk -F** - Define um delimitador de campo específico. - Exemplo de uso: awk -F ',' '{print $2}' arquivo.csv - Descrição: Usa a vírgula como delimitador para campos e exibe o segundo campo de cada linha no arquivo ''arquivo.csv''. === 5. Substituições Complexas com `sed` === * **sed 's/\(.*\):\(.*\)/\2: \1/'** - Troca a ordem de campos delimitados. - Exemplo de uso: sed 's/\(.*\):\(.*\)/\2: \1/' arquivo.txt - Descrição: Troca de posição dois campos separados por dois pontos (''':''), invertendo suas posições em ''arquivo.txt''. * **sed '/^$/d'** - Remove linhas em branco. - Exemplo de uso: sed '/^$/d' arquivo.txt - Descrição: Remove todas as linhas em branco de ''arquivo.txt'', limpando o conteúdo do arquivo. ===== Nível Especializado ===== === 1. Fluxo de Dados com `xargs` === * **xargs** - Passa a saída de um comando como argumento para outro. - Exemplo de uso: cat arquivos.txt | xargs rm - Descrição: Lê os nomes dos arquivos listados em ''arquivos.txt'' e os passa como argumento para o comando ''rm'', removendo todos os arquivos listados. * **find + xargs** - Combinação poderosa para manipulação de grandes quantidades de arquivos. - Exemplo de uso: find /home/usuario -name "*.log" | xargs gzip - Descrição: Encontra todos os arquivos com a extensão ''.log'' no diretório ''/home/usuario'' e os compacta usando o comando ''gzip''. === 2. Manipulação de Fluxo de Dados com `tee` === * **tee** - Divide a saída de um comando entre um arquivo e o terminal. - Exemplo de uso: ls | tee lista.txt - Descrição: Exibe a saída do comando ''ls'' no terminal e, ao mesmo tempo, a grava no arquivo ''lista.txt''. * **tee -a** - Adiciona saída ao arquivo em vez de sobrescrevê-lo. - Exemplo de uso: echo "Nova entrada" | tee -a log.txt - Descrição: Adiciona a frase "Nova entrada" ao arquivo ''log.txt'' sem sobrescrever seu conteúdo. === 3. Named Pipes (`mkfifo`) === * **mkfifo** - Cria um named pipe (FIFO), que pode ser usado para comunicação entre processos. - Exemplo de uso: mkfifo meu_pipe - Descrição: Cria um pipe nomeado chamado ''meu_pipe'', permitindo que um processo escreva dados enquanto outro lê, usando o pipe como intermediário. * **Uso de Named Pipes** - Escreve e lê dados de um named pipe. - Exemplo de uso: echo "dados" > meu_pipe & cat < meu_pipe - Descrição: O comando ''echo'' escreve "dados" no pipe ''meu_pipe'', enquanto o comando ''cat'' lê esses dados do pipe e os exibe no terminal. === 4. Manipulação de Grandes Arquivos com `split` e `sort` === * **split** - Divide um arquivo grande em partes menores. - Exemplo de uso: split -l 1000 grande_arquivo.txt pequeno_arquivo_ - Descrição: Divide o arquivo ''grande_arquivo.txt'' em arquivos menores com 1000 linhas cada, nomeados sequencialmente como ''pequeno_arquivo_aa'', ''pequeno_arquivo_ab'', etc. * **sort + split** - Ordena e divide arquivos de forma eficiente. - Exemplo de uso: sort grande_arquivo.txt | split -l 1000 - pequeno_arquivo_ - Descrição: Ordena o conteúdo do arquivo ''grande_arquivo.txt'' e o divide em partes menores de 1000 linhas cada, mantendo a ordenação. === 5. Processamento Paralelo com `parallel` === * **parallel** - Executa comandos de forma paralela em múltiplas entradas. - Exemplo de uso: cat arquivos.txt | parallel gzip - Descrição: Usa o comando ''gzip'' para compactar todos os arquivos listados em ''arquivos.txt'' simultaneamente, melhorando a eficiência ao utilizar múltiplos núcleos de CPU. * **find + parallel** - Executa comandos em paralelo sobre múltiplos arquivos. - Exemplo de uso: find /dados -name "*.txt" | parallel wc -l - Descrição: Encontra todos os arquivos ''*.txt'' no diretório ''/dados'' e conta as linhas de cada um deles em paralelo, utilizando todos os núcleos disponíveis. === 6. Manipulação de Streams com `tr` === * **tr** - Substitui ou remove caracteres em um fluxo de texto. - Exemplo de uso: echo "teste de exemplo" | tr ' ' '_' - Descrição: Substitui todos os espaços por underscores no fluxo de texto "teste de exemplo", resultando em ''teste_de_exemplo''. * **tr -d** - Remove caracteres específicos. - Exemplo de uso: cat arquivo.txt | tr -d '\n' - Descrição: Remove todas as quebras de linha (''\n'') do arquivo ''arquivo.txt'', juntando o conteúdo em uma única linha.