quarta-feira, 23 de dezembro de 2015

Programação SHELL bash COMEÇANDO


PROGRAMAÇÃO SHELL BASH

by Edson Pessotti /Programador Tecnólogo

Pra Começar:



1 -O shell e bem peculiar, poderoso interativo dinâmico versátil, oferece ao administrador de sistemas
facilidades que nenhuma outra linguagem possui, shell interage com o usuário com o sistema, e pode criar novos comandos, shell modifica as configurações do sistema se integra ao sistema, as possibilidades são infinitas, ele pode até dependendo das circunstancias se tornar mais lendo que outras linguagens, shell não é apenas uma linguagens de scripts e uma linguagem de programação completa.
Shell não se restringi a utilização no dia-a-dia, podendo ser empregado para criar programas complexos,. Estes programas são designados geralmente "shell scripts" ou "shell procedures". scripts Shell estão presentes em todo do o sistema linux, basta dar um
edhonm@edhonm-STI:~$ find /etc/ | grep sh$
/etc/acpi/ibm-wireless.sh
/etc/acpi/asus-wireless.sh
/etc/acpi/undock.sh
/etc/acpi/powerbtn.sh
/etc/acpi/asus-keyboard-backlight.sh
/etc/acpi/tosh-wireless.sh
/etc/apparmor.d/abstractions/bash
/etc/ssh
/etc/bash_completion.d/libreoffice.sh
/etc/pam.d/chsh
find: `/etc/cups/ssl': Permission denied
find: `/etc/ssl/private': Permission denied
find: `/etc/polkit-1/localauthority': Permission denied
/etc/libreoffice/soffice.sh
/etc/wpa_supplicant/ifupdown.sh
/etc/wpa_supplicant/functions.sh
-
edhonm@edhonm-STI:~$
Shell é muito útil para criar pequenos programas par realizar tarefas do dia-a-dia repetitivas, utilizando para isso apenas os comandos já existentes no UNIX.
O shell pussuí dezenas de comandos que realizam varias rotinas, como o sort , cat , find, sed etc, esses comandos quando usados de forma adequada podem formar scripts para resolver inúmeros problemas do dia a dia , e o autor não precisa  digitar uma linha de código sequer.


1.1 Um pequeno exemplo de shell script

Vamos começar criando um pequeno script que se utilize dos comandos nativos do shell para efetuar as seguintes tarefas:
- Mostrar o nome do diretório corrente.
- Listar o conteúdo do diretório corrente.
- Mostrar a data e hora do sistemas
- encerrar


Os comandos do shell podem ser digitados diretamente na linha de comando um a um ou intercalando vários comandos com | ' pipe ' , mas se queremos então automatizar temos que usar o shell script.
Estaco as tarefas acima poderiam ser executadas manualmente através da utilização dos comandos "pwd", "ls" e "echo". Para automatizar esta tarefa basta criar um script com os comandos dentro.
Para tanto e necessário utilizar um editor de texto não formatado, tipo gedit leafpad ou o note do Windows, pode o si nano ou o seu editor preferido, para criar um ficheiro chamado "mostradir" :
PS → Eu gosto do Geany → pra quem usa Debians/like → sudo apt-get install geany → na linha de comando do terminal.
Abra o editor e digite:
Note que a primeira linha e obrigatório em todos os scripts, isso alerta o sistema pra o fato de ser tratar de um shell BASH SCRIPT, E O ARQUIVO DEVERÁ SER SAlVO COM A TERMINAÇÃO .SH PARA QUE O SISTEMA O RECONHEÇA COMO SENDO UM SCRIPT SHELL.
#!/bin/bash
pwd
ls
Date
exit


Você já tem o seu primeiro programa escrito em shell! Para o executar basta, a partir do shell, digitar o seguinte comando:
./mostradir.sh → antes de executar e preciso dar permissão para o arquivo:
Com o comando:
sudo chmod +x mostradir.sh
feito isso e só executar o comando Assim:
edhonm@edhonm-STI:~$ ./mostradir.sh
/home/edhonm
Área de Trabalho Downloads Imagens mostradir.sh Público
Documentos ed Modelos Música Vídeos
Qua Dez 23 10:45:17 BRST 2015
edhonm@edhonm-STI:~$


1.2. Como criar um comando.

Para executar os comandos a partir de qualquer diretório, tal como os comandos do UNIX, que estão localizados nos diretórios /bin e /usr/bin. Vamos criar um sub-directório bin do nosso diretório.
Vamos configurar a variável de ambiente PATH de modo a que o shell passe a procurar comandos também neste nosso subdiretório.
ASSIM:


$ cd
$ mkdir bin
$ mv dl bin/dl
$ PATH=$HOME/bin:$PATH




Agora, se tudo correu bem, será possível chamar o novo comando mostradir.sh de qualquer diretório.
Experimente.
No diretório corrente:
edhonm@edhonm-STI:~$ mostradir.sh
/home/edhonm
Área de Trabalho Documentos ed Modelos Público
bin Downloads Imagens Música Vídeos
Qua Dez 23 11:01:06 BRST 2015


No diretório /var:


edhonm@edhonm-STI:~$ cd /var
edhonm@edhonm-STI:/var$ mostradir.sh
/var
backups cache crash lib local lock log mail opt run spool tmp
Qua Dez 23 11:03:24 BRST 2015
edhonm@edhonm-STI:/var$
Repare que o nome "bin" dado ao nosso sub-directório não é padrão. Poderia ser qualquer nome assim tipo Palmeiras, mas ficamos com a tradição UNIX - "bin" - que é usado para diretórios que contêm programas executáveis.
Avisos acerca dos nomes dos shell scripts você dar qualquer nome ao script, desde que este seja um nome de arquivo válido. Só não vá dar nomes já existentes no sistema obvio né.
Veja só um problema que poderia surgir caso lhe nomeasse de "ls", já que o próprio script invoca o comando ls. Seria criado um ciclo infinito, já que cada chamada ao nosso programa "ls" invocaria outro comando "ls" e nunca terminaria nenhum deles. Após algum tempo, o sistema emitiria a seguinte mensagem de erro: "Too many processes, cannot fork" que significa que foram criados demasiados processos, atingindo o limite imposto pelo sistema.
Os criadores do UNIX, sabiamente, limitaram o número de vezes que um ciclo infinito deste gênero.


Beleza né aprendemos a criar e a executar um script shell, e de quebra transformamos o script em um comando do nosso sistema, muito manero esse SHELL BASH NÉ..

Página Anterior                        Proxima Página

Nenhum comentário:

Postar um comentário