Você está na página 1de 5

www.howtoday.com.

br

ADMINISTRAÇÃO LINUX NÍVEL 1


#grep
Busca textos dentro de documentos.

Sintaxe:
#grep <opções> <texto> <arquivos>

Opções:
-i : modo insensitivo. Não diferencia maiúsculas de minúsculas quando faz a busca.
-v : exceção. Apenas não filtra o texto selecionado.
-w : busca por palavra específica.
-E : habilita o comando a trabalhar com as expressões regulares avançadas
(REGEXP).
-n : exibe o número das linhas onde estavam os registros encontrados.
-H : mostra o nome do arquivo ao lado de cada registro achado.

Exemplos:

Buscar dentro do arquivo /etc/passwd a linha contendo 0:


#grep 0 /etc/passwd

Buscar dentro do arquivo /etc/passwd linhas que contenham apenas 0 como valor
absoluto:
#grep -w 0 /etc/passwd

Buscar apenas as linhas do arquivo /etc/passwd que não tenham /bin/bash e nem 0
como valor absoluto (ou seja: usuários que não usam o Shell bash e que não sejam
‘root’):
#grep -vw ‘/bin/bash*.0’ /etc/passwd
Onde *. significam E TAMBÉM.

Buscar dentro dos arquivos /etc/passwd, /etc/shadow e /etc/group e /etc/gshadow


registros do usuário ‘root’ mostrando o nome do arquivo no início das linhas do
resultado:

#grep -H root /etc/passwd /etc/shadow /etc/group /etc/gshadow


www.howtoday.com.br

#cut
Exibe apenas os campos desejados de um arquivo.

Sintaxe:
#cut <opções> <arquivo>

Opções:
-c : exibe as colunas desejadas.
-d : usa um delimitador.
-f : “fields”. Campos do arquivo, levando em conta o delimitador.

Exemplos:

Exibir a coluna 1 do arquivo /etc/shadow:


#cut -c 1 /etc/shadow

Exibir as colunas 1,2 e 4 do arquivo /etc/passwd:


#cut -c 1,2,4 /etc/passwd

Exibir da coluna 1 até a 5 do arquivo /etc/group:


#cut -c 1-5 /etc/group

Entendendo o ‘ : ‘ como delimitador, exibir os campos 1,3 e 6 do arquivo /etc/passwd:


#cut -d : -f 1,3,6 /etc/passwd

Com o mesmo delimitador, agora exibindo do campo 1 até o 5 do arquivo


/etc/shadow:
#cut -d : -f 1-5 /etc/shadow

#split
Cria cópias de pedaços de um arquivo.

Opções:
-b : quebra por quantidade de bytes.
-l : quebra por quantidade de linhas.

Sintaxe:
#split <opção> <arquivo> <primeiro nome do arquivo de destino>

Exemplos:

Criando arquivos com 128 bytes de /etc/passwd cada um. Neste caso, serão
criados os arquivos arqaa, arqab, arqac, etc :
#split -b 128 /etc/passwd arq

Criando arquivos com 4 linhas do arquivo /etc/profile cada um, esclarecendo que o
último arquivo pode ficar com menos linhas se for o caso de a quantidade de linhas
do arquivo não for múltipla de 4, neste caso:
#split -l 4 /etc/passwd arq
www.howtoday.com.br

#sort
Ordena o conteúdo do arquivo.

Sintaxe:
#sort <opções> <arquivo>

Opções:
-d : ordem alfanumérica.
-n : ordem numérica.
-t : usa um delimitador.
-k : usa um campo como referência.
-r : ordem reversa.
-R : ordem randômica (aleatória).

Exemplos:
Classificar o conteúdo do arquivo /etc/passwd em ordem alfabética:
#sort -d /etc/passwd

Classificar o conteúdo do arquivo /etc/shadow em ordem alfabética inversa:


#sort -dr /etc/passwd

Usando ‘ : ’ como separador, classificar o arquivo /etc/passwd em ordem numérica,


tendo como referência o campo 3 do arquivo:
#sort -n -t : -k 3 /etc/passwd

#sed
Substitui texto e números de um arquivo.

Sintaxe:
#sed s/<texto_original>/<texto_substituto>/g <arquivo>

Exemplo:
Substituindo o termo ‘root’ do arquivo /etc/passwd pelo termo ‘administrador’ :
#sed s/root/administrador/g /etc/passwd

#<comando> | tr
Comando que só pode ser utilizado em combinação com outro de leitura de arquivo
através do “pipe”, o tr substitui caracteres em sequência.

Sintaxe:
#<comando> | tr <opção> <caracteres>

Algumas variáveis são utilizadas pelo comando:


\\ - backslash.
\b - backspace.
\\t - tabulação horizontal.
\n - nova linha (pula uma linha).
\v - tabulação vertical.
www.howtoday.com.br

Exemplos:

Remover ‘ : ’ do arquivo /etc/passwd :


#cat /etc/passwd | tr -d :

Trocar ‘ : ‘ e ‘ , ‘ por tabulação no arquivo /etc/passwd:


#cat /etc/passwd | tr : \\t

Trocar letras maiúsculas do arquivo /etc/shadow por minúsculas e depois trocando ‘


: ‘ por tabulação :
#cat /etc/shadow | tr [a-z] [A-Z] | tr : \\t

#diff
Mostra as linhas diferentes de dois arquivos.

Sintaxe:
#diff <arquivo1> <arquivo2>

Exemplo:

Exibindo as linhas diferentes do arquivo arq1.txt e arq2.txt:


#diff arq1.txt arq2.txt

“Pipes” e redirecionamentos

Como já se pode notar pelos capítulos anteriores, o | tem uma função importantíssima
dentro de uma expressão regular, pois ele concatena a saída de um comando com a de
outro posterior, como a seguir:

O comando cut -d : -f 1-5 /etc/passwd envia a sua saída para o comando tail -5,
possibilitando assim a paginação do conteúdo do arquivo apenas com os campos
1,2,3,4
e5 :
#cut -d : -f 1-5 /etc/passwd | tail -5

Antes de redirecionar saídas ou entradas de comandos, vamos entender quais


tipos de entrada/saída podem existir:
STDOUT - saída padrão. Quando o comando é executado com sucesso, ele produz
esta saída, exceto para comandos que não possuem “verbose” em suas saídas.
STDERR - Saída de erros. Quando o resultado da execução é um erro, esta saída é
mostrada, exceto em comandos que não produzem “verbose”.
STDIN - Entrada padrão. Entrada de dados em um comando.

Tipos de redirecionamento :
> - redireciona saída padrão de um comando para um arquivo novo.
>> - redireciona saída padrão de um comando para a última linha de um arquivo
(append), mas se este não existir ele o cria.
< - redireciona entrada padrão para um comando.
<< - append de entrada padrão.
www.howtoday.com.br

2> - redireciona apenas saída de erros para um arquivo novo.


2>> - append de saída de erros.
&> - envia saída padrão e de erros para um arquivo novo.
&>> - envia saída padrão e de erros para um arquivo em modo append.

Exemplos:
Enviando o resultado do comando de verificação de uso de discos montados para o
arquivo /root/discos.txt :
#df -h > /root/discos.txt

Enviando mais um relatório de uso de discos para o mesmo arquivo sem


sobrescrevê-lo:
#df -h >> /root/discos.txt

Enviando um e-mail com o conteúdo do arquivo de log /var/log/syslog :


#mail -s “LOG” administrator@mcury.com.br < /var/log/syslog

Enviando o erro ao se executar o comando LS -L para o arquivo erro_ls.txt:


#LS -L 2> erro_ls.txt

#<comando> | tee <opção> <arquivo>


Além de enviar saída do comando para um arquivo, exibe a saída no terminal.

Exemplos:

Enviar últimas 15 linhas do log /var/log/auth.log para o arquivo log_auth.txt


exibindo a saída dele no display :
#tail -n 15 /var/log/auth.log | tee log_auth.txt

Enviar linhas numeradas do arquivo /etc/passwd para o mesmo arquivo sem


sobrescrevê-lo :
#nl /etc/passwd | tee -a log_auth.txt

Você também pode gostar