Linux — comandos bem úteis

Rodrigo Vieira
OperacionalTI
Published in
2 min readSep 11, 2016

sed — tr — grep — cut — uniq, uma pincelada:

O linux trata a entrada e saída de programas como sequência de caracteres ou streams.

Streams e redirecionamentos, um resumo

O caractere > é utilizado para redirecionar a saída de um comando para um arquivo, por exemplo:

netstat -nptl > portas_tcp_abertas.txt

Já o caractere | é utilizado para redirecionar a saída de um comando para a entrada de outro comando:

ps -ef | egrep -i "(apache|httpd)"

O comando acima lista todos os processos com o trecho "ps -ef", a saída deste primeiro comando é redirecionada para o filtro "egrep", que filtra pelas linhas que contenha a palavra "apache" ou "httpd".

sed

O nome é uma abreviação para Stream Editor. Seu uso mais comum é para a substituição de caracteres:

# substitui todas as ocorrencias de y por Y
# a flag g faz com que todas as ocorrências de y na mesma linha
# sejam substituídas e não só a primeira ocorrência de cada linha
sed 's/y/Y/g' /etc/services > /tmp/services

Mais de uma substituição no mesmo comando:

# substitui windows por linux e ios por android
sed 's/windows/linux/g;s/ios/android/g'
# substitui and por &, repare o uso de \ como escape
# no mesmo comando também substitui I no início da linha por You
sed 's/and/\&/g;s/^I/You/'

Exibindo arquivos de configuração sem os comentários e linhas em branco:

sed '/^#\|^$/d' /etc/services

grep

Procura por um padrão ou uma expressão regular em um texto de entrada ou um arquivo:

# procura pela palavra samba no arquivo /etc/services,
# ignorando maiúsculas/minúsculas
grep -i samba /etc/services# procura por arquivos ou diretórios com cron no nome,
# dentro do diretório /etc/
ls /etc |grep cron

tr

Traduz ou apaga caracteres da entrada e exibe na saída:

# Exibe o conteúdo do arquivo /etc/passwd
# trocando minúsculas por maiúsculas
cat /etc/passwd | tr [:lower:] [:upper:]
# remove espaços em branco repetidos # squeeze repeats
# bom para usar em conjunto com o cut
ls -l |tr -s ' '

cut

Extrai porções de acordo com a quantidade de bytes -b, caracteres -c, ou campos -f. Este último é o mais utilizado:

# usar o caractere : como delimitador e 
# extrai os campos 1 e 7
# para extrair um intevalo, ex, de 1 a 3, use -f1-3
cat /etc/passwd |cut -d: -f1,7

uniq

Conta e/ou remove linhas duplicadas adjacentes. Por este motivo o comando uniq geralmente é utilizado com o comando sort.

# ordena as linhas de log do arquivo maillog e
# conta as linhas repetidas, exibindo no terminal
cat /var/log/maillog |sort |uniq -c# Ou um exemplo mais útil, conta as tentativas falhas de login SSH
# ordenando pelo IP que mais falhou.
cat /var/log/secure |grep 'Invalid user'|cut -d' ' -f10 |sort -n |uniq -c |sort -nr

Curtiu? Então recomende.

Obrigado!

--

--