Autor Tópico: Shell Script - Parte 02  (Lida 4311 vezes)

Onjahyr

  • Global Moderator
  • Hero Member
  • *****
  • Mensagens: 584
  • Karma: +0/-0
Shell Script - Parte 02
« Online: Agosto 28, 2006, 12:38:32 am »
Shell Script (Capítulo II)

Para dar início aos exemplos, vamos criar um diretório dentro do nosso usuário. Sempre será realizado referências a este diretório, até nos exemplos mais complexos, portanto faça como lhe é solicitado.

Use o Konqueror ou o Nautilus (ou outro gerenciador de arquivo gráfico) e crie um diretório em /home/Seu_User chamado:

   SHELL SCRIPT

Veja que está tudo em letras maiúsculas e um espaçamento entre as duas palavras, o Linux faz diferenciação de letras maiúsculas e minúsculas, diferente de outros Sistemas Operacionais. Falaremos sobre isso mais tarde. Não usei comandos do Shell porquê ainda não falamos sobre eles.

Seu_User é o diretório do seu usuário no Linux.

Observação:
Jamais entre com o usuário administrador (root) para fins de estudo, saia e entre como um usuário normal. É muito perigoso estudar Shell usando o superusuário, você pode danificar o sistema com um comando errado.




1. Prompt, comando...
O Shell é usado como mecanismo de entrada e saída, digitamos comandos e vêmos a saída no próprio local. O comando é dividido em partes separadas por espaçamentos, a primeira parte é o nome do programa (O Shell verificará se o mesmo existe), depois vem as opções do programa em questão ou os parâmetros exigidos por ele, ou ainda as variáveis e redirecionamentos. Quando o programa é encontrado, o Shell verifica as permissões dos arquivos envolvidos e retornará um erro se o usuário não tiver permissão de executá-lo.

a.) COMANDOS
Os comandos podem ser enviados de duas maneiras para o interpretador: interativa e não-interativa:

Interativa
Os comandos são digitados no aviso de comando e passados ao interpretador de comandos um a um. Neste modo, o computador depende do usuário para executar uma tarefa, ou próximo comando.

Não-interativa
São usados arquivos de comandos criados pelo usuário (scripts) para o computador executar os comandos na ordem encontrada no arquivo.
Neste modo, o computador executa os comandos do arquivo um por um e dependendo do término do comando, o script pode checar qual será o próximo comando que será executado e dar continuidade ao processamento.

Este sistema é útil quando temos que digitar por várias vezes seguidas um mesmo comando ou para compilar algum programa complexo.

O shell Bash possui ainda outra característica interessante: A complementação dos nomes. Isto é feito pressionando-se a tecla TAB. Por exemplo, se digitar ls tes e pressionar a tecla <tab>, o Bash localizará todos os arquivos que iniciam com "tes" e completará o restante do nome automaticamente. Caso a complementação de nomes encontre mais do que uma expressão que satisfaça a pesquisa, ou nenhuma, é emitido um beep. Se você apertar novamente a tecla TAB imediatamente depois do beep, o interpretador de comandos irá listar as diversas possibilidades que satisfazem a pesquisa, para que você possa escolher a que lhe interessa. Também funciona sem problemas para comandos internos.

b.) COMANDOS - LS
Vamos conhecer alguns comandos básicos para facilitar os exercícios e exemplos daqui prá frente.

ls: Lista os arquivos de um diretório

Sintaxe:
ls [opções] [caminho/arquivo] [caminho1/arquivo1] ...


onde:

caminho/arquivo
Diretório/arquivo que será listado.

caminho1/arquivo1
Outro Diretório/arquivo que será listado. Podem ser feitas várias listagens de uma só vez.

opções
-a, --all
Lista todos os arquivos (inclusive os ocultos) de um diretório.

-A, --almost-all
Lista todos os arquivos (inclusive os ocultos) de um diretório, exceto o diretório atual e o de nível anterior.

-B, --ignore-backups
Não lista arquivos que terminam com ~ (Backup).

--color=PARAM
Mostra os arquivos em cores diferentes, conforme o tipo de arquivo. PARAM pode ser:

      * never  - Nunca lista em cores (mesma coisa de não usar o parâmetro --color).
      * always - Sempre lista em cores conforme o tipo de arquivo.
      * auto   - Somente colore a listagem se estiver em um terminal.

-d, --directory
Lista os nomes dos diretórios ao invés do conteúdo.

-f
Não classifica a listagem.

-F
Insere um caracter após arquivos executáveis ('*'), diretórios ('/'), soquete ('='), link simbólico ('@') e pipe ('|'). Seu uso é útil para identificar de forma fácil tipos de arquivos nas listagens de diretórios.

-G, --no-group
Oculta a coluna de grupo do arquivo.

-h, --human-readable
Mostra o tamanho dos arquivos em Kbytes, Mbytes, Gbytes.

-H
Faz o mesmo que -h, mas usa unidades de 1000 ao invés de 1024 para especificar Kbytes, Mbytes, Gbytes.

-l
Usa o formato longo para listagem de arquivos. Lista as permissões, data de modificação, donos, grupos, etc.

-n
Usa a identificação de usuário e grupo numérica ao invés dos nomes.

-L, --dereference
Lista o arquivo original e não o link referente ao arquivo.

-o
Usa a listagem longa sem os donos dos arquivos (mesma coisa que -lG).

-p
Mesma coisa que -F, mas não inclui o símbolo '*' em arquivos executáveis. Esta opção é típica de sistemas Linux.

-R
Lista diretórios e sub-diretórios recursivamente.


Uma listagem feita com o comando ls -la normalmente é mostrada da seguinte maneira:

-rwxr-xr--  1  lula-pt user    8192 nov 4 16:00 teste


Abaixo as explicações de cada parte:


-rwxr-xr--
São as permissões de acesso ao arquivo teste (falaremos em permissões em outro tópico mais a frente). A primeira letra (da esquerda) identifica o tipo do arquivo, se tiver um d é um diretório, se tiver um "-" é um arquivo normal.

1
Se for um diretório, mostra a quantidade de sub-diretórios existentes dentro dele. Caso for um arquivo, será 1.

lula-pt
Nome do dono do arquivo teste.

user
Nome do grupo que o arquivo teste pertence.

8192
Tamanho do arquivo (em bytes).

nov
Mês da criação/ última modificação do arquivo.

4
Dia que o arquivo foi criado.

16:00
Hora em que o arquivo foi criado/modificado. Se o arquivo foi criado há mais de um ano, em seu lugar é mostrado o ano da criação do arquivo.

teste
Nome do arquivo.


Pode também ser representado dessa forma: 2006-11-04 16:00 (para: nov 4 16:00)


Exemplos do uso do comando ls:

    * ls                  - Lista os arquivos do diretório atual.
    * ls /bin /sbin - Lista os arquivos do diretório /bin e /sbin
    * ls -la /bin     - Listagem completa (vertical) dos arquivos do diretório /bin inclusive os ocultos.


Exercício de treinamento:

a.) Abra o terminal e use apenas o comando ls com cada uma das opções existentes indicadas acima. Você vai ver na prática o que acontecerá com cada uma delas, não tenha pressa em terminar!




Perguntas? envie uma MP prá mim, as perguntas interessantes eu colocarei no tópico referente.




Na próxima aula você conhecerá outros comandos, dependendo do meu tempo eu
poderei preparar e liberar ainda esta semana.



A sequência padrão será de um capítulo por semana ou segundo o meu tempo
« Última modificação: Setembro 05, 2006, 12:19:47 am por Onjahyr »
Linux Registered User  # 341068
Record was created: 2004-01-02

Comunidade de Usuários do openSUSE

Shell Script - Parte 02
« Online: Agosto 28, 2006, 12:38:32 am »