segunda-feira, 12 de março de 2012

Aula 3 - Manipulação de Arquivos


Aula 3 - Comandos Básicos de Manipulação de Arquivos

Segue o resumo de comandos e conceitos vistos em Sala de Aula.
Este é um material de apoio aos meus alunos que tem todo embasamento durante as aulas presenciais.

O Exercício de fixação desta aula, pode ser acessado no seguinte link:
Em breve o Link

Você pode encontrar todos os resumos de aula no link abaixo:

Para criar um arquivo vazio
Use da seguinte forma: touch  nome_do_arquivo
Exemplo:
# touch arquivo_vazio

Para renomear o nome de um arquivo
Use da seguinte forma: mv nome-atual novo-nome
Exemplo:
# mv arquivo_vazio arquivo_cheio

Para copiar um ou mais arquivos
Use da seguinte forma: cp nome_do_arquivo destino
Exemplo:
# cp arquivo_cheio /tmp

Para apagar arquivos
Use da seguinte forma: rm nome_do_arquivo
Exemplo:
# rm arquivo_cheio

Para mover arquivos
Use da seguinte forma: mv nome_do_arquivo destino
Exemplo:
# mv arquivo_cheio /tmp

Para visualizar o conteudo de um arquivo
Use da seguinte forma: cat nome_do_arquivo
ou
Use da seguinte forma: more nome_do_arquivo (com pausa)
ou
Use da seguinte forma: less nome_do_arquivo (com pausa) - Para sair = q
Exemplo:
# cat /etc/services
ou
# more /etc/services
ou
# less /etc/services

Para Filtrar Comandos - Use o caracter pipe |
Use da seguinte forma:  Comando1 | Comando2 | Comando3 | Comando_n

# cat nome_do_arquivo | more
# cat nome_do_arquivo | less
Exemplo:
# cat /etc/services | more  (para sair: q)
# cat /etc/services | less (para sair: q)

Para exibir as estatísticas de um arquivo como:
Quantidade de Letras, linhas e palavras de um arquivo.
Use da seguinte forma:
wc  nome_do_arquivo (exibe quantidade de letras, palavras e linhas)
wc -c nome_do_arquivo (letras)
wc -l nome_do_arquivos (linhas)
wc -w nome_do_arquivo (palavras)
Exemplo:
# wc nome_do_arquivo
# wc -c /etc/services (exibe a quantidade de letras)
# wc -l /etc/services (exibe a quantidade de linhas)
# wc -w /etc/services (exibe a quantidade de palavras)

Para Ordenar um Arquivo na tela
Use da seguinte forma: sort nome_do_arquivo
Exemplo:
# sort /etc/services
# sort -r services (ao contrario)

Para Exibir o inicio de um arquivo (10 primeiras linhas)
Use da seguinte forma: head nome_do_arquivo
Exemplo:
# head /etc/services

Para exibir o fim de um arquivo (10 ultimas linhas)
Use da seguinte forma: tail nome_do_arquivo
                       tail -f nome_do_arquivo (lê o fim do arquivo em tempo real - Ideal para ler Logs em tempo real)
Exemplo:
# tail /etc/services
Para ler um log em tempo real
# tail -f /var/log/messages (Em distribuições baseadas em Redhat)
ou
# tail -f /var/log/syslog (Em distribuições baseadas em Debian)

Para Filtrar/Pesquisar expressões em arquivo
Use da seguinte forma: grep "expressão" nome_do_arquivo
Exemplo:
# grep "FTP" /etc/services
# grep -v "FTP" /etc/services (inverso)
# grep -n "FTP" /etc/services (numero da linha)
# grep -i "FTP" /etc/services (maiúscula ou minúscula)

Para Filtrar saida de comando
Use da seguinte forma: cut opções nome_do_aquivo
Principais Opções:
                -c = qtd de caracter
                -f = campo
                -d = delimitador
Exemplo:
# cut -c1 /etc/passwd
# cut -f1 -d: /etc/passwd (Exibir apenas o nome dos usuários do sistema)


Para exibir Mensagens na tela:
Use da seguinte forma: echo "Mensagem"
Exemplo:
# echo "Exibe uma msg na tela"


Para usar Redirecionadores de Saída de comandos
> Sobrescreve o arquivo destino
>> Adiciona ao arquivo destino
< ou << Input
Exemplo:
# date (Exibe a data na tela)
# date > data.txt (Grava o resultado do comando date no arquivo data.txt)
# tr 'a-z' 'A-Z' < /etc/services
# tr 'a-z' 'A-Z' < /etc/services > resultado.txt
# echo "Meu nome é João" > nome.txt

Utilizando Expressão Regular:
* --> Quer dizer todos
? --> Substitui um caracter
*.* --> Arquivos com extensão
Exemplo:
cp /etc/* /tmp (Copia todos os arquivos de /etc para /tmp)
cp /etc/*.* /tmp (Copia todos os arquivos de /etc que tenham extensão para /tmp)
cp /etc/??? /tmp (Copia todos os arquivos que tenham 3 letras no nome para /tmp)


Para criar variáveis
Use da seguinte forma: export NOME_VARIAVEL=CONTEUDO
Exemplo:
# export ALUNO=José
export NOME_COMPLETO="José da Silva"

Para exibir conteúdo de Variáveis:
# echo $ALUNO
# echo $NOME_COMPLETO

Para exibir conteúdo de Variáveis junto com alguma mensagem:
# echo "O Primeiro nome do Aluno é $ALUNO"
# echo "O Nome completo do Aluno é $NOME_COMPLETO"

Para exibir variáveis do SHELL Atual:
# env
ou
# export

Para exibir resultados de comandos junto com possíveis mensagens:
Exemplo:
# echo A Data e Hora atual é: `date`
# echo "A Data e Hora atual é: $(date)"
# echo "A Data e Hora atual é: $(date)"  > data.txt (Grava o conteúdo deste comando no arquivo data.txt

3 comentários:

  1. Professor, muito obrigado pelas postagens. Sou aluno do Professor Calado e ele me indicou esse site. Muito bom.

    Como faço para ver, no linux, em árvore? No windows eu digito comando "tree" e consigo ver.

    Obrigado.
    Edson Ricardo

    ResponderExcluir
  2. Edson,

    Muito obrigado.

    Basta você instalar o aplicativo:
    apt-get install tree (se você estiver usando debian/ubuntu)
    yum install tree (caso você use fedora/centos/redhat).

    Para ver a árvore, basta digitar tree ou tree /diretorio

    Para ver sem arquivos, use tree -d

    ResponderExcluir
    Respostas
    1. Professor, muito obrigado mesmo.
      Vou tentar instalar.


      Abraços.
      Edson Ricardo

      Excluir