Fundamentos do sistema Linux - comandos do Linux

A linha de comando é o método mais usado por administradores de sistemas, pois é o que oferece o maior número de possibilidades, além de ser o método mais rápido de fazer as coisas. Nesse artigo, você terá uma lista detalhada dos principais comandos do GNU/Linux, divididos em categorias, com exemplos práticos de aplicação, incluindo associações com outros aplicativos.

[ Hits: 488.472 ]

Por: Davidson Rodrigues Paulo em 28/05/2006 | Blog: http://davidsonpaulo.com/


Manipulação e filtragem de texto



grep


O grep é utilizado para encontrar padrões em arquivos de texto, ou, em outras palavras, procura num arquivo todas as linhas que possuem a palavra ou expressão informada e as exibe na tela.

Sintaxe:

$ grep [expressão] [arquivo]

Assim, se você quiser varrer o arquivo /etc/fstab procurando pelas linhas que contém o texto "/dev/fd0", digite:

$ grep /dev/fd0 /etc/fstab
/dev/fd0        /media/floppy0  auto    rw,user,noauto  0       0

Se o padrão informado não for encontrado no arquivo especificado, não é exibida nenhuma mensagem.

cut


O cut é utilizado para selecionar colunas de texto em um arquivo. Suponhamos que você tenha um arquivo da seguinte forma:

A1 B1 C1
A2 B2 C2
A3 B3 C3

E precise, por algum motivo, que somente a terceira coluna seja exibida na tela, dessa forma:

C1
C2
C3

É exatamente isso que o cut fará para nós.

Sintaxe:

$ cut [opções] [arquivo]

Opções:
  • -c: Especifica quais caracteres serão exibidos;
  • -d: Especifica qual o caracter será usado como delimitador de campo;
  • -f: Lista dos campos que serão exibidos;
  • -s: Não exibe as linhas que não contém os delimitadores especificados em -d;
  • --output-delimiter=[string]: Utiliza a string (seqüência de caracteres) especificada como o delimitador dos campos na saída.

Exemplos de uso:

Considerando o arquivo lista.txt com o conteúdo mostrado acima, se quisermos exibir somente o quinto caracter de cada linha, usamos:

$ cut -c 5 lista.txt
1
2
3

Se quisermos exibir os primeiros 5 caracteres, utilizamos -5 ao invés de 5:

$ cut -c -5 lista.txt
A1 B1
A2 B2
A3 B3

Se quisermos exibir do quinto caracter em diante, usamos 5-, assim:

$ cut -c 5- lista.txt
1 C1
2 C3
3 C3

Por fim, para exibir do segundo até o sexto caracter:

$ cut -c 2-6 lista.txt
1 B1
2 B2
3 B3

Repare agora que o delimitador de cada coluna é o espaço em branco. Assim, se quisermos exibir apenas o primeiro campo, usamos:

$ cut -f1 -d' ' lista.txt
A1
A2
A3

O parâmetro -f1 informa que queremos que seja exibido o primeiro campo, enquanto -d' ' (dois acentos agudos separados por espaço) informa que o separador de campos é o espaço em branco. O parâmetro -d não precisa ser utilizado no caso de o arquivo utilizar TAB (tabulação) como separador de campos.

Seguindo esse raciocínio, se quisermos exibir os campos 1 e 3, usamos:

$ cut -f1,3 -d' ' lista.txt
A1 C1
A2 C3
A3 C3

Com o uso do direcionador | (pipe) podemos processar o mesmo arquivo várias vezes com o cut, de modo a podermos fazer um processamento poderoso do arquivo de texto. Além disso, ele aceita a saída de outros programas como entrada, através do mesmo direcionador |.

head


Usamos esse comando para exibir as linhas iniciais de um arquivo.

Sintaxe:

$ head [opções] [arquivo]

Opções:
  • -c [-][n]: Sem o - (hífen), mostra os primeiros [n] bytes do arquivo. Com o -, mostra todos os bytes com exceção dos [n] últimos;
  • -n [-][n]: Sem o -, mostra as primeiras [n] linhas do arquivo. Com o -, mostra todas as linhas com exceção das [n] últimas;
  • -v: Imprime um cabeçalho com o nome do arquivo.

Exemplos de uso:

Para ver as primeiras 5 linhas do arquivo file, faça:

$ head -n 5 file
1
2
3
4
5

Se quiser exibir todas as linhas menos as 3 últimas:

$ head -n -3 file
1
2
3
4
5
6
7

more


Usamos esse comando para realizar a paginação de arquivos de texto cujo conteúdo não cabe na tela.

Sintaxe:

$ more [opções] [arquivo]

Opções:
  • -d: Exibe as mensagens [Press space to continue, 'q' to quit] (pressione espaço para continuar, 'q' para sair). Ao se pressionar espaço, a tela rola uma página inteira. Se for pressionada alguma tecla inválida, é exibida a mensagem [Press 'h' for instructions.] (pressione 'h' para instruções.);
  • -l: Evita que ocorram pausas toda vez que seja encontrado o caracter "^L" (alimentação de formulário) no texto;
  • -s: Se houver múltiplas linhas em branco num arquivo, trunca elas em apenas uma;
  • +/[padrão]: Começa a mostrar o texto a partir da primeira linha que contém o padrão informado;
  • +[número]: Especifica qual linha deve ser a primeira a ser mostrada;
  • -[número]: Especifica o tamanho da tela, em linhas.

Assim, quando quiser ler um texto muito extenso sem precisar abrir um editor de textos para isso, use o more. O texto será exibido até ocupar a tela inteira, e então aparecerá um prompt escrito "--More--(xx%)". Presssione Enter para rolar o texto linha por linha. Se quiser cancelar a exibição e voltar para o prompt de comando, pressione "q".

É possível usar o more para exibir vários arquivos seqüencialmente. Basta informar todos os arquivos separados por espaço.

less


O less tem a mesma utilidade do more, com a vantagem de poder rolar o texto exibido para cima e para baixo através do uso dos direcionais, além de contar com um localizador de texto. Para digitar o padrão que você deseja procurar precedido de / (barra).

Sintaxe:

$ less [arquivo]

sort


Usamos esse comando para classificar as linhas de um arquivo de texto.

Sintaxe:

$ sort [opções] [arquivo]

Opções:
  • -b: Ignora linhas em branco;
  • -d: Descarta quaisquer linhas iniciadas com caracteres que não sejam espaço em branco ou alfanuméricos;
  • -f: Ignora a diferença entre caracteres maiúsculos e minúsculos;
  • -r: Exibe a lista na ordem inversa;
  • -n: Organiza os números na ordem aritmética. Sem essa opção, a seqüência de caracteres 100, 10, 50 seria exibida na ordem 10, 100, 50. Com a opção -n, eles são exibidos na ordem 10, 50, 100;
  • -c: Verifica se o arquivo já está organizado. Se não estiver, retorna a mensagem disorder on [arquivo] (desordem em [arquivo]);
  • -o [arquivo]: Grava a saída do comando sort no arquivo especificado;
  • -m [arquivo1] [arquivo2]: Combina o conteúdo dos dois arquivos gerando um único arquivo. Esse comando só funciona se ambos os arquivos já estiverem ordenados;
  • -i: ignora os caracteres fora da faixa octal ASCII 040-0176;
  • -t [caracter]: Usa o caracter especificado ao invés de espaço em branco como delimitador durante a organização das linhas;
  • +[número 1] +[número 2]: Especifica qual campo (coluna) será usado como referência na organização. Os campos começam a ser contados de 0, e o separador de campos padrão é o espaço. Para selecionar outro delimitador, use o parâmetro -t. Os campos serão organizados de [número 1] até [número 2]. Se [número 2] não for especificado, os campos serão organizados de [número 1] até o final da linha;
  • -k [número 1] [número 2]: Idêntico ao parâmetro anterior, mas os campos começam a ser contados de 1.

Exemplos de uso:

Suponha que você tenha um arquivo file.list com o seguinte contéudo:

$ cat file.list
5 f j 33
2 a c 1
1 t 4 f
6 b c _
10 i r 3

Ao usarmos o comando sort, as linhas serão organizadas de acordo com a primeira coluna:

$ sort file.list
10 i r 3
1 t 4 f
2 a c 1
5 f j 33
6 b c _

Veja, entretanto, que temos um problema aqui: o 10 foi posto antes do 1, seguindo a ordem alfabética e não aritmética. Para corrigir isso, acrescentamos o parâmetro -n:

$ sort -n file.list
1 t 4 f
2 a c 1
5 f j 33
6 b c _
10 i r 3

Agora, se quisermos organizar as linhas tomando como referência a segunda coluna ao invés da primeira, fazemos o seguinte:

$ sort +1 file.list
2 a c 1
6 b c _
5 f j 33
10 i r 3
1 t 4 f

Podemos obter o mesmo resultado de outra forma:

$ sort -k 2 file.list
2 a c 1
6 b c _
5 f j 33
10 i r 3
1 t 4 f

Por fim, para gravar o resultado no arquivo fileorder.list, basta acrescetar o parâmetro -o fileorder.list.

tail


Esse comando é utilizando para mostrar as últimas linhas de um arquivo de texto.

Sintaxe:

$ tail [opções] [arquivo]

Opções:
  • -c [n]: Exibe apenas os últimos [n] bytes do arquivo;
  • -n [n]: Exibe as últimas [n] linhas do arquivo;
  • -f: Fica monitorando o arquivo, e exibe todas as novas linhas adicionadas a ele, em tempo real. Isso é muito utilizado para monitorar arquivos de log.

wc


Conta o número de linhas, palavras, caracteres e bytes nos arquivos.

Sintaxe:

$ wc [opção] [arquivo]

Opções:
  • -c: Exibe apenas o número de bytes;
  • -m: Exibe o número de caracteres;
  • -l: Exibe o número de linhas;
  • -L: Exibe o comprimento, em caracteres, da maior linha do arquivo;
  • -w: Exibe o número de palavras encontradas.

Se for usado sem argumentos, o wc exibe o número de linhas, palavras e caracteres do arquivo, respectivamente:

$ wc file.list
        20 42 file.list

Página anterior     Próxima página

Páginas do artigo
   1. Manipulação de arquivos e diretórios
   2. Manipulação e filtragem de texto
   3. Pesquisa e informações
   4. Administração do sistema
   5. Utilitários de terminal
Outros artigos deste autor

Grip, the GNOME Ripper

Instalando um sistema Debian GNU/Linux completo em 20 minutos

Fundamentos do sistema Linux - direcionadores

Vyatta, o concorrente livre dos roteadores Cisco

Hyperic HQ: monitore sua rede like a boss

Leitura recomendada

A Origem dos Nomes (parte 2)

Atualizando versões do openSUSE pela internet

O segredo do Linux - as partições

Fundamentos do sistema Linux - Permissões

Comandos básicos do Linux

  
Comentários
[1] Comentário enviado por PCMasterPB em 28/05/2006 - 20:46h

Excelente o artigo, será muito útil pra citar como referência para os novatos e mostrar-lhes como o modo texto é poderoso no linux hehehe. ;D

[2] Comentário enviado por nataliawanick em 28/05/2006 - 22:35h

Parabéns!! Mais um excelente artigo, professor!! Por artigos como esse é que me torno mais fã a cada dia...
natalia wanick

[3] Comentário enviado por tomaz.brasil em 29/05/2006 - 00:21h

Good job ;-)

[4] Comentário enviado por loammy em 29/05/2006 - 08:28h

Como assim, " ls -A" nao mostra os diretorios, se foi isto que entendi acho que vc esta equivocado, pois na minha maquina mostra os arquivos e diretorios ocultos...

[5] Comentário enviado por feraf em 29/05/2006 - 14:29h

Fala davidson!
Eu uso um comando aqui no servidor que eu uso, que é o seguinte:

last | cut -c-9 | sort | uniq -c | sort -n | tac | head -20

Ele pode parecer monstruosamente grande, mas faz algo bem simples, lista os 20 usuários em ordem de quantidade de logins realizados no último mês. Last lista todos os logins realizados num período de 1 mes. O cut retira somente o nome do usuário. O primeiro sort ordena alfabeticamente. o Uniq junta as linhas que forem iguais (no caso os logins iguais) e adiciona esse número na frente da linha. O segundo sort ordena por esse primeiro número, só que em ordem crescente. O tac inverte isso, assim temos uma lista em ordem decrescente. E o head pega os primeiros 20.

Olha só que coisa poderosa podemos fazer com esses míseros comandos =)

Felipe

[6] Comentário enviado por removido em 29/05/2006 - 14:34h

Cara deixou a desejar. Mas o conteudo desse artigo está todo ele escrito na internet em outros sites. Peguei esse bem igual ao seu na semana passada pelo google.

[7] Comentário enviado por davidsonpaulo em 29/05/2006 - 14:54h

loammy,

-A faz o mesmo que -a, a diferença é que o -A não mostra os diretórios . (ponto) e .. (ponto-ponto).

iceman,

Sim, o conteúdo desse artigo está todo disponível na Internet, no Guia Bozolinux, como escrevi na última página do artigo.

feraf,

Sim! Com direcionadores podemos fazer coisas realmente formidáveis. Inclusive, o próximo artigo da série Fundamentos do Sistema Linux tratará deles.

E você, quando é que voltará a publicar? Seus textos fazem falta. Dá uma passada na Enciclopédia de vez em quando. :-)

Abraços,

Davidson

[8] Comentário enviado por deivid.veras em 30/05/2006 - 09:24h

Ola,

Realmente isto e muito bom para os novatos pois mostra o poder e a utlidade do modo texto, e o principal a agilidade que isto proporciona!


Tec. Deivid Veras Fontenele

[9] Comentário enviado por pedrocosta em 30/05/2006 - 10:18h

Parabens!!! Vai ser muito bom pra eu que estou começando, vlw!!! =)))

[10] Comentário enviado por fboliveira em 31/05/2006 - 09:03h

É um artigo excelente, bem claro e de fácil entendimento. Muito aplicável não só para iniciantes, de um modo geral, como também para quem deseja fazer um paralelo com funções do Windows. Parabéns!

[11] Comentário enviado por claudiolima em 31/05/2006 - 09:43h

Gostei muito deste Artigo, para mim que estou iniciando no Linux foi uma excelente oportunidade para dá o pontapé inicial. Parabéns!

[12] Comentário enviado por fellkevin em 29/06/2009 - 18:59h

Muito bom esse artigo tirou muitas duvidas minhas que sou um iniciante em LINUX

[13] Comentário enviado por Lisandro em 09/07/2009 - 12:38h

Bem completinho, um pequeno guia de referência. Vai pro FAVORITOS.

[14] Comentário enviado por cesar em 23/07/2009 - 11:17h

Muito bom,

1. Nota 10
2. Favoritos ;]

Parabéns.

[]'s

[15] Comentário enviado por Teixeira em 02/08/2009 - 09:13h

Vai para os meus Favoritos.
Assim como no antigo DOS, nem sempre é possível ter todos os comandos em nossa memória humana, pois sempre escapa alguma coisa ou outra, e por vezes até nos falta o entendimento de alguns pormenores.
Além do que, o artigo é uma excelente fonte de referência, uma espécie de livro de cabeceira, e está bem claro e abrangente.
Nota-se que é voltado para o usuário comum, do dia-a-dia, e não para aqueles que tentam dar nó em pingo d'água, mas já fornece o caminho das pedras.
Parabéns!

[16] Comentário enviado por jairus em 16/08/2009 - 09:52h

Bom dia !!!

Gostei muito da idéia de colocar as funções destes comandos, apesar de trabalharmos diariamente com o GNU/LINUX, as vezes esquecemos alguns parâmetros.
Por isso fiz uma cartilha de bolso, a partir do seu artigo, assim sempre consulto quando tenho dúvida sobre algum comando.


Valeu
Abraços
Jairus Lopes
Adm System Linux

[17] Comentário enviado por santiago_br em 27/08/2009 - 09:15h

Muito Bom !!

Sou novo aki no linux, vi a muito tempo atras uma versão do red hat 7, mas muito pouko, estou recomeçando muito boa ajuda. obrigado!



Santiago
Fedora 11

[18] Comentário enviado por Karen_Cahn em 14/12/2009 - 12:16h

Quala a resposta dessa questão: "QUAL O COMANDO UTILIZADO PARA CRIAR O DIRETÓRIO teste DENTRO DO DIRETÓRIO /mnt?
Att,
Karen Cahn

[19] Comentário enviado por B. Rodrigues em 28/12/2009 - 09:01h

Otimo!!!

Estou começando a trabalhar com linux e esse artigo e perfeito pra mim.

Valeu mesmo!!!

[20] Comentário enviado por doradu em 08/02/2010 - 18:49h

bem completo

[21] Comentário enviado por msajunior em 13/04/2010 - 14:14h

Tambem estou começando, por este motivo, me ajudou bastante. Vlw!

[22] Comentário enviado por jota88 em 14/04/2010 - 15:01h

Olá!!

Qual o comando que posso usar para ordenar alfabeticamente as linhas de um ficheiro de texto?

Obrigado ;)

[23] Comentário enviado por davidsonpaulo em 14/04/2010 - 15:04h

jota88, o comando é o sort, leia sobre ele na página 2 do artigo. Abraço.

[24] Comentário enviado por jota88 em 14/04/2010 - 15:23h

Já tinha descoberto isso. xD

Mas obrigado na mesma. ;)

Já agora.. eu tenho 2 ficheiros de texto (file.txt e newfile.txt) gostaria que concatenar o conteudo desses 2 ficheiros para um novo ficheiro catfile.txt.. só que não sei como fazer.. alguém sabe?

[25] Comentário enviado por diegopontes em 30/04/2010 - 16:06h

Jota88:
Primeiro você joga o arquivo para o novo arquivo (>), depois você joga o outro arquivo para o novo, mas dessa vez concatenando (>>) para não perder a 1° informação.

cat file.txt > catfile.txt ; cat newfile.txt >> catfile.txt

[26] Comentário enviado por ksa em 30/05/2010 - 21:49h

Meu caro ! parabéns e obrigado !
Sou um iniciante do linux que já estou começando a me "divertir" com a janela de terminal
valeu !!!

[27] Comentário enviado por miguel arcanjo3 em 22/02/2011 - 10:02h

valeu pela dica.

[28] Comentário enviado por mfop06 em 01/06/2012 - 19:22h

Olá, sou novato no Linux e gostaria de saber como criar um arquivo no Linux. Estou tentando instalar o modem da claro 3g e eles pedem para criar um arquivo no undev. Mas como se faz isso?

[29] Comentário enviado por henriquejp em 10/10/2012 - 15:47h

é..o bagulho eh doido,quanto mais sendo iniciante muahahahahaaahahaah

[30] Comentário enviado por MAPOGOS em 28/04/2014 - 19:29h

muito bom este artigo, não sei se é engano meu mjas o negócio esta começando a ficar bom aqui no VOL.
Legal isto amigo é isso que buscamos e o que queremos aprender...

[31] Comentário enviado por ricardones em 01/04/2015 - 10:03h

Para complementar o atributo -y permite executar os comandos ja atribuindo sim para todas as perguntas.

[32] Comentário enviado por DanielDutra em 17/07/2016 - 14:20h

Amigos boa tarde.

Uma duvida de iniciante.
O que significa a primeira linha que aparece quando abrimos o terminal? http://i.imgur.com/vEkG2Io.png
No meu caso é essa aqui: danieldutra@linux-eto9:~> gostaria de saber principalmente o que significa após o @(arroba)

[33] Comentário enviado por Teixeira em 17/07/2016 - 19:58h

Prezado iniciantegnu, esse é o prompt de comando do Linux.
Considerando-se que a arroba (@) significa "at" (ou "em", no Português), essa linha que você nos apresenta pode ser interpretada assim:
nome-do-usuário@nome-do-computador,
ou seja,
danieldutra(em)linux-eto9
o que significa que seu computador foi identificado no sistema Linux como sendo "linux-eto9", que é como foi registrado durante a instalação.
Para maiores informações e para tirar dúvidas básicas sobre o sistema gnu/linux, recomendamos o "guia foca linux" (www.guiafoca.org), que é excelente.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts