sábado, 15 de agosto de 2009

Comandos úteis de linha de comando

- Objetivo
  • Conhecer alguns comandos importantes para o dia-a-dia.
No mundo GNU/Linux, a maioria das operações são realizadas por meio de comandos escritos. Em geral, permitem um maior controle e flexibilidade de operações, além de poderem ser inclúidos em scripts. Neste artigo iremos aprender sobre alguns comandos básicos.



Trabalhando com entrada e saída de dados

Esta parte é extramamente importante, pois se trabalha bastante com isso. Por padrão, a entrada do shell é o teclado, a saída, a tela, e os erros são exibidos na tela também.

Os termos geralmente usados são:

  • entrada de dados, representada por stdin;
  • saída de dados, representada por stdout;
  • saída de erros, representada por stderr;
Mas isso pode ser mudado com o uso de caracteres de redirecionamento, veja abaixo: Para mudar saída padrão:

> - Redireciona a saída em um arquivo apagando o contéudo anterior (se existir);

exemplo:

# ls / > tst
# cat tst
# ls /var > tst
#cat tst

>> - Redireciona a saída no final de um arquivo, preservando-o;

exemplo:

#ls / >> tst

# cat tst
# ls /var >> tst
#cat tst

comandos auxiliares:

| - (pipe, pronuncia-se paipe): serve para canalizar saída de dado para outro comando;


Mostrando o contéudo e/ou concatenando

# cat teste.dat

O comando cat pode ser utilizado para mostrar o contéudo de um arquivo.


# tac teste.dat

De forma análoga, o comando tac também serve para mostrar o contéudo e concatenar arquivos.

Controlar o fluxo: more e less

O comando more permite a leitura continua de um arquivo.

# more /var/log/syslog

O comando less é mais sofisticado e permite ir e voltar na leitura de um arquivo.

# less /var/log/syslog
Porções específicas: head e tail

Para ler as 10 primeiras linhas de um arquivo, podemos usar:

# head /var/log/syslog

Para ler as 10 últimas linhas de um arquivo, podemos usar:

# tail /var/log/syslog

e para vermos as linhas atualizadas sendo criadar utilizamos o parâmetro.

# tail -f /var/log/syslog

Contagem: wc

Grande parte dos arquivos de configuração e de dados usa uma linha por registro. A contagem destas linhas pode nos fornecer informações muito interessante.

Por exemplo, a saída abaixo:

# wc /etc/passwd

Indica que o arquivo contem 32 linhas, 49 blocos (palavras) e 1528 caracteres. Caso seja necessário apenas o número de linhas, o comando wc pode ser usado com o parêmetro -l, como abaixo:

# wc -l /etc/passwd
Classificação: sort
Para diversas ações como eliminação de itens repetidos e rápida visualização de nomes é interessante que possamos classificar um arquivo texto. Na linha de comando, os arquivos textos podem ser classificados usando o comando sort.

A saída do comando abaixo não segue a ordem alfabética:

# cat /etc/passwd

Podemos mostrar a saída classificada em ordem alfabética, como abaixo:

# sort /etc/passwd

O comando sort pode ser modificado usando os parâmetros:

  • -f não considera se as letras estão na caixa alta ou baixa;
  • -n classificação númerica;
  • -r classifica na ordem invertida;
Mostrar algo: echo

O comando echo é usado para ecoar algo na tela ou direcionado para um arquivo.

#echo $HOME

Para saber qual o idioma definido no console:

#echo $LANG

Usando o caractere de redirecionamento >, podemos enviar a saída do comando echo para outro destino:

# echo $LANG > /tmp/teste

#cat /tmp/teste

No exemplo acima, o arquivo teste contém o valor da variável de ambiente $LANG.
Filtragem de arquivos: grep

Uma necessidade constante dos administradores é encontrar informações dentro dos arquivos.

Procure no google.com, informações sobre o grep ou então man grep.

# ifconfig |grep end.:
Filtrar colunas: cut

O comando cut pode ser muito utíl para conseguir listagens a partir de arquivos com separadores de colunas definidos.

Por exemplo, para conseguir a primeira coluna do arquivo /etc/passwd, cujo delimitador de colunas é o sinal:, podemos usar o comando:

# cut -f1 -d: /etc/passwd

Determinando o tipo de arquivo: file

No linux, extensões de arquivos têm apenas a função de nos auxiliar a nomear arquivos, a identifica-los e organiza-los facilmente. Não é a extensão que determina o tipo do arquivo, mas sim o seu contéudo.

O comando file determina o tipo do arquivo analisando o seu próprio contéudo. O exemplo abaixo mostra o uso deste comando:

# file arquivo

Administrativos
-Verificar espaço em disco: df

$ df -h
-Verificar espaço de uma pasta ou arquivo: du

$ du - h
- Mostrar o uso de memória RAM:free

O comando free mostra o consumo da memoria RAM e os detalhes sobre o uso de memória virtual (swap).

# free

- Mostrar e/ou ajustar a data do sistema:date

Esse comando mostra a data e a hora do sistema, e também para ajustá-las.

# date

Caso for alterar a hora do sistema precisa alterar conforme o padrão.

# date mmddHHMMYYYY
- Mostrar por quanto tempo o computador está ligado: uptime

# uptime
Mostrar informações sobre o sistema: uname

O comando uname pode ser usado para mostrar informações sobre a versão do kernel em uso e a arquitetura:

# uname -a

Diferença entre arquivos: diff
O programa diff nos permite verificar a diferença entre arquivos e diretórios.

# diff arquivo1 arquivo2

# diff -r dir1 dir2
Tempo de execução de um programa: Time


#time programa

# time updatedb

localização do sistema: find
O comando find procura por arquivo /diretórios no disco.

find /etc -name *.conf

Busque mais informações no google.com ou então man find.
Localização usando base de dados: locate

O comando locate é um comando rápido de busca de arquivos, porém não usa busca recursiva na sua árvore de diretórios.

# updatedb

#locate howto

Exercícios teóricos

1 - qual é a principal diferença entre os comandos find e locate?

2 - Qual é a função do comando tac?

3 - Qual é a função do comando echo?

4 - Qual é a diferença entre o comando du e o comando df ?

5 - Qual é a utilidade do comando time?

Dicas LPI:
O comando grep não é somente importante para a LPI, mas pode te ajudar muito todos os dias! =D

O comando head e tail podem trazer algumas surpresas!!


1 comentários:

Anonymous disse...

"Para saber qual o idiota definido no console"

Idioma, né?

30 de outubro de 2009 16:20

Postar um comentário