20 de jul de 2012

Comandos básicos do Linux

   Nesse artigo vou falar um pouco sobre alguns comandos básicos do Linux (http://www.paul.sladen.org/pronunciation/) lol, bastante útil para o dia a dia, pois de vez em quando acabo esquecendo alguns comandos, então nada melhor do que consultar algum lugar para lembrar!!

  • Ajuda:
man man
whatis lpc
apropos chmod

  O comando whatis é extraido da documentação no banco de dados chamado whatis, localizado no diretório /usr/man. Ele informa o que o comando faz.
     O comando apropos busca no banco de dados whatis todas as ocorrências relacionadas ao nome do comando. Usado para localizar comandos ou ações ligadas aos programas instalados no sistema.
  • Usando vários comandos:
cal; date; time

  • Dividindo linhas de comandos:
ls /tmp ;\
ls /boot ;\
ls /var/log/
  • Usando operadores de redireção >, >> e < :
cat texto1.txt > texto2.txt 
     O comando cat (concatenate) é usado para imprimir arquivos na tela. No comando acima, o operador de redireção de saída padrão > envia o conteúdo do texto1.txt para o texto2.txt.

cat > texto1.txt (envia a entrada digitada para o arquivo de texto)
> Primeira linha do texto
> segunda linha
> ultima linha.
cat texto1.txt (faz a leitura do texto)
cat < texto1.txt (o operador de entrada padrão faz a leitura do texto)
cat < texto1.txt >> texto2.txt (passa o conteúdo do texto1.txt para o texto2.txt)
cat << world (informa ao shell quando deve parar de fazer a leitura da entrada)
> hello
> world
hello

  •  Redirecionando erros:
     A entrada e saída padrão possuem números de arquivos atribuídos no shell. A entrada padrão usa o número 0, a saída padrão usa o número 1 e o erro padrão usa o número 2.
cat texto.txt > novotexto.txt
cat: texto.txt : Arquivo ou diretório não encontrado
cat texto.txt > novotexto.txt 2>>erros.log (Grava o erro no erros.log)
cat erros.log
cat: texto.txt : Arquivo ou diretório não encontrado

  • Canal na construção de comandos:
     O comando | é chamado de operador pipe ou canal, é usado para enviar a saída de um comando para outro.
cat texto.txt |  wc -l > linhas.txt (conta o número de linhas do texto.txt e grava no linhas.txt)
find / | wc -l > linhas.txt (verifica o número de arquivos e salva no linhas.txt)

  • Usando expressões regulares:
     As expressões regulares são padrões de curingas (usados para especificar um ou mais arquivos/diretórios de uma só vez), feitos a partir de comandos especiais. Você pode consultar a lista de expressões regulares nas páginas de manual ed e grep. Basicamente, o regex é formado por caracteres (letras e números) e metacaracteres (símbolos).
      O comando grep procura por um texto dentro dos arquivos no dispositivo de entrada padrão. Sintaxe: grep [expressão] [arquivo] [opções]

Lista de metacaracteres:
^ - início da linha. Ex: grep ^root /etc/passwd (pesquisa pelo usuário root)
$ - término da linha. Ex: grep bash$ /etc/passwd (Pesquisa todos os usuários além do root que usam o bash como shell)
. - qualquer caracter. Ex: grep '^.[aeiou]' /etc/passwd (Busca usuários onde o login possui uma vogal na segunda letra)
[] - lista de valores possíveis para um caracter. Ex: grep '^[aeiou]' /etc/passwd (Busca usuários que o login começa com uma vogal)
{} - especifica quantas vezes o caracter pode se repetir. Ex: egrep '^.{30,}$' /etc/passwd
 ( Verifica linhas com 30 caracteres ou mais)
| - operador lógico ou. Ex: egrep '^(root|zeldani):' /etc/passwd (Verifica os usuários root ou zeldani)
.* - qualquer coisa and. Ex: egrep '^[aeiou].*bash$' /etc/passwd (Verifica os usuários que começam com vogais e usam o shell bash)

Outros exemplos:
ls *.txt (o asterisco lista todos os arquivos que terminam em .txt)
ls *.*
ls *.t* (lista todos os arquivos onde o tipo começa com a letra t)

  • Arquivos e Diretórios:
     O linux foi feito com um pensamento em mente: Tudo é arquivo.
    Um papel em branco é chamado de arquivo no mundo dos computadores. Fazendo uma analogia, você pode usar um papel para escrever ou fazer um desenho, onde o texto ou desenho é chamado de informação. O root / contêm os seguintes diretórios:

/bin Armazena os comandos binários (para todos os usuários)
/boot Arquivos de inicialização do sistema
/dev Arquivos dos dispositivos do hardware
/etc Configurações do sistema
/home Diretórios do usuário. Aqui vc guarda suas informações pessoais
/lib Bibliotecas e módulos do kernel
/mnt Ponto de montagem para arquivos temporários tipo /mnt/cdrom
/opt Pacotes de atualizações do software
/usr É a segunda maior seção dos arquivos do sistema. Todas as informações de hosts específicos são salvos aqui
/var Contêm as variáveis dos diretórios, incluindo os administrativos, logs, arquivos transitórios e temporários
/proc Informações do sistema guardados em arquivos espelhos

  • Comando cat:
cat -n texto.txt  (exite o conteúdo do texto.txt com número de linhas)
1 primeira linha de texto.
2 segunda linha.
3 terceira linha.
cat texto1.txt >> texto2.txt (inclui o conteúdo do texto1.txt para o texto2.txt)
cat texto1.txt > texto2.txt (sobrepõe o conteúdo do texto1.txt para o texto2.txt)

  • Comandos less e more:
     Os comandos de paginação less e more são usados para ler de maneira interativa os aquivos de texto.
less texto1.txt texto2.txt (faz a leitura dos textos)
more texto1.txt

Propriedades do less:
Enter, e, j , cursor para baixo  - Avança uma linha
y, k, cursor para cima - Volta uma linha.
Espaço, z ou f - Avança uma tela.
b - Volta uma tela
h ou ? - Ajuda
:p - Arquivo anterior
:n - Arquivo seguinte
/ - String de procura
q - Sair

  • Comando touch:
     É usado para criar ou atualizar arquivos e diretórios.
touch arquivo1 arquivo2 arquivo3 (cria os 3 arquivos)
> arquivo1 (cria o arquivo1 caso não exista o comando touch)

  • Copiando, movendo e removendo arquivos:
cp -i arquivo1 arquivo2 (copia o arquivo1 no arquivo2)
cp: sobrescrever "texto.txt" ? y 
* -i (interative) gera um prompt para responder y ou n.
cp -bi arquivo1 arquivo2
* -b (backup) cria um backup dos arquivos.
cp -R arquivo1 arquivo2 (copia todos os diretórios dentro do arquivo1 para o arquivo2)
 * -R (recursive) seleciona todos os diretórios dentro do arquivo.
mv -i arquivo1 arquivo2 (renomeia o arquivo2 para arquivo1)
* mv (rename) pode ser usado para renomear ou mover arquivos e diretórios.
mv arquivo1 /tmp (move o arquivo1 para o diretório tmp)
rm -r temp (remove o todos os diretórios dentro do arquivo temp)

  • Criando vínculos simbólicos:
     Os vínculos simbólicos são os atalhos do Linux, usados para vincular arquivos ou diretórios existente com outros arquivos e diretórios.
ls -s texto.txt /home/usuario/texto2.txt (cria um atalho do texto2.txt no texto.txt)
* -s (simbolic link)

  • Localizando arquivos e diretórios:
find /home -name texto* -print -xdev (busca pelo arquivo texto e outros tipos em todos os arquivos e diretórios do /home)
find /home/usuario -type f -atime -1 -print (busca programas com um dia ou menos de vida)
find /usr/bin | xargs strings -f | fgrep Copyright | less (retorna os direitos autorais localizados no /usr/bin)
* O comando strings extrai strings de comandos binários.
find . -name "*[1k*]" (busca por arquivos de 1k)
      O comando find procura por arquivos e diretórios no disco. Ele faz as buscas pela data de modificação, tamanho, etc. Sintaxe: find [diretório] [opções/expressão]
 
locate *icon* (localiza todos os ícones do sistema)
     O comando locate pesquisa no banco de dados locatedb, localizado no /var/lib.

which ls
/bin/ls
which which
/usr/bin/which
      O comando which mostra a localização de um arquivo executável no sistema. A pesquisa é feita através do path no sistema.
       O path é o caminho de procura dos arquivos e comandos executáveis. Ele é armazenado na variável de ambiente PATH. Para ver seu conteúdo: echo $PATH

whereis emacs (busca o emacs)
     O comando whereis é usado para listar localizações de programas binários, arquivos relacionados e documentações.  A pesquisa é feita usando os caminhos das páginas dos manuais do sistema no /etc/manpath.config. Sintaxe: whereis [comando]
      É isso ai, espero ter ajudado. Em caso de dúvidas, RTFM!! ;)    

* Fontes:
Usando o Linux - Bill Ball
http://aurelio.net/regex/apostila-conhecendo-regex.pdf
http://www.guiadopc.com.br/artigos/771/prompt-do-linux-expressoes-regulares.html
http://www.ibm.com/developerworks/linux/library/l-lpic1-v3-103-3/
http://pt.scribd.com/doc/98155182/85/O-comando-find
http://www.marquesini.net/home/var/doc/guiafoca/iniciante/ch-run.html
http://linuxreviews.org/beginner/index.html.en
http://www.guiafoca.org/?page_id=14

0 comentários:

Postar um comentário