Shell, Bash e Scripts: Tudo sobre Shell Scripting.

Nesta nova oportunidade (entrada # 8) em "Aprenda Shell Scripting" vamos nos concentrar mais na teoria do que na prática. ou seja, não vamos instalar ou estudar um código ou instalar um software específico (pacote), mas vamos nos aprofundar no que é o mundo de Shell Scripting falando propriamente, por meio das respostas a perguntas pequenas mas diretas, apresentadas a seguir, para esclarecer muito do que foi ensinado, o que não se refere diretamente ao código interno que está programado:

Shell Scripting

O que é o Shell em um sistema operacional GNU / Linux?

Concha que em espanhol significa CONCHA (concha, cobertura, proteção). Aplicado este termo em Sistemas Operacionais refere-se ao interpretador de comandos do Sistema Operacional. Em geral, é uma interface de texto de alto desempenho, manifestada na forma de um Terminal (Console) e utilizada essencialmente para 3 importantes áreas de trabalho:

1.- Gerenciar o sistema operacional,
2.- Executar aplicativos e interagir com eles, e
3.- Servir como ambiente básico de programação.

Muitos SO, GNU / Linux eles são gerenciados de forma ainda mais eficiente editando seus arquivos de configuração, via Terminal. Como regra geral, eles estão no caminho de destino: «/ etc "e em diretórios específicos para cada aplicativo. Por exemplo, o programa lilo (que significa Linux Loader) é configurado editando o arquivo de texto localizado e chamado como "/Etc/lilo/lilo.conf". No caso de programas (aplicações), estes são lançados (executados / ativados) escrevendo o nome do executável, se este se encontrar no caminho (caminho padrão) para todos os executáveis, como normalmente é "/ Usr / bin" , ou digitando o nome do executável precedido por: ./, do diretório onde estão localizados.

Tudo isso é bem conhecido de qualquer usuário Shell. No entanto, não são tão conhecidos e apreciados seus recursos como um ambiente de programação. Scripts (programas) feitos no Shell não precisam ser compilados. O Shell os interpreta linha por linha. Portanto, eles são conhecidos ou nomeados como Shells Scripts e podem variar de comandos simples a séries complexas de instruções para iniciar o próprio sistema operacional. ter uma sintaxe bastante limpa (óbvia) (construção, ordenação), o que os torna um bom ponto de partida para começar no mundo da programação.

O que é Shell Scripting?

É a técnica (habilidade / destreza) de projetar e criar Script (arquivo de automação de tarefas) utilizando um Shell (preferencialmente) de um Sistema Operacional, ou Editor de Texto (Gráfico ou Terminal). Este é um tipo de linguagem de programação geralmente interpretado. Ou seja, enquanto a maioria dos programas são compilados (codificados), porque são permanentemente convertidos em um código específico (especial) antes de serem executados (processo de compilação), um script de shell permanece em sua forma original (seu código fonte de texto) e são interpretados comando a comando cada vez que são executados. Embora seja possível que os scripts possam ser compilados também, embora não seja comum.

Quais são as características dos programas baseados em programação em Shell Scripting?

1.- São mais fáceis de escrever (programar), mas com maior custo de processamento na hora de sua execução.

2.- Eles usam interpretadores em vez de compiladores para executar

3.- Eles têm uma relação de comunicação com componentes escritos em outras linguagens de programação.

4.- Os arquivos que os contêm são armazenados como texto simples.

5.- O desenho final (código) é geralmente menor do que o equivalente em uma linguagem de programação compilada.

Quais são os tipos de linguagens mais populares em Shell Scripting?

1.- Linguagem de controle de tarefas e shell:

a) cmd.exe (Windows NT, Windows CE, OS / 2),
b) COMMAND.COM (DOS, Windows 9x),
c)csh, Bash, AppleScript, sh,
d) JScript via Windows Script Host,
e) VBScript via Windows Script Host,
f) REXX, entre muitos outros.

2.- GUI Scripting (Macros Linguagens):

a) Tecla de atalho automática,
b) AutoIt,
c) Espere,
d) Automator, entre outros.

3.- Linguagem de script de aplicativos específicos:

a) ActionScript em Flash,
b) MATLAB,
c) script mIRC,
d) QuakeC, entre outros.

4.- Programação web (para páginas dinâmicas):

a) No lado do servidor:

- PHP,
- ASP (Active Server Pages),
- JavaServer Pages,
- Fusão a frio,
- IPTSCRAE,
- Lasso,
- Script MIVA,
- SMX,
- XSLT, entre outros.

b) Do lado do cliente:

- JavaScript,
- JScript,
- VBScript,
- Tcl, entre outros.

5.- Linguagens de processamento de texto:

- AWK,
- Perl,
- Sede,
- XSLT,
- Bash, entre outros.

6.- Linguagens dinâmicas de uso geral:

- APL,
- Vaia,
- Dylan,
- Ferite,
- Groovy,
- IO,
- Lisp,
- Lua,
- MUMPS (M),
- NewLISP,
- Nuva,
- Perl,
- PHP,
- Pitão,
- Ruby,
- Esquema,
- Conversa fiada,
- SuperCard,
- Tcl,
- Revolução, entre outros.

O que é Bash no GNU / Linux?

É um programa de computador cuja função é interpretar ordens. É baseado no Shell Unix e é compatível com POSIX. Ele foi escrito para o projeto GNU e é o shell padrão para a maioria das distribuições Linux.

O que é um Shell Script no GNU / Linux?

Os scripts de shell eles são extremamente úteis. É uma boa ideia escrever as necessidades que temos e, em seguida, editar os scripts que fazem esse trabalho para nós. Agora, é hora de perguntar o que exatamente é um script. É um arquivo de texto, contendo uma série de comandos shell, que o sistema executa de forma ordenada, de cima para baixo. Para editá-los, você só precisa de um editor de texto, como Emacs, Vi, Nano, entre muitos existentes. Eles são salvos com a extensão “.sh” (ou sem ela, em alguns casos) e são executados a partir do Shell usando o comando: sh script name.sh. Os scripts se comportam da mesma maneira que os comandos do shell.

A abordagem de ensino que eu pessoalmente uso para "Aprenda Shell Scripting" É muito prático e direto, ou seja, examinar um Script totalmente funcional, decompô-lo, estudá-lo frase por frase, linha por linha, comando por comando, variável por variável, até entender como cada elemento funciona separadamente e como ele se engaja no código geral. É um tipo de Engenharia reversa ou reengenharia de software. Tudo isso para se apropriar do conhecimento, aprimorá-lo (otimizá-lo) e compartilhá-lo, para o benefício coletivo e uma melhor administração e otimização dos Sistemas Operacionais gratuitos.

Como funciona e funciona em um GNU / Linux Shell?

A primeira etapa para trabalhar com um Shell é executá-lo. O que parece um truísmo tem sua razão de ser. Em algumas distribuições GNU / Linux orientadas para o usuário final, o shell fica bastante oculto. Normalmente, é chamado de: Konsole, Terminal, Terminal X ou algo semelhante. Outra opção é usar um console virtual. Usando: Ctrl + Alt + f1, ou f2, ou f3 a f7 ou f8, dependendo da distribuição GNU / Linux que você usa. O Shell mais usado no GNU / Linux é o Bash, embora existam outros, como ksh ou C Shell. No meu caso, muito particular para minhas publicações, uso o Bash Shell.

Dado um script feito em Bash Shell chamado hello_world.sh o seguinte pode ser explicado:

conteúdo:

#! / Bin / bash
eco olá mundo

Demolir:

Primeira linha do script
#! / Bin / bash

Indica o programa que o script deve executar. Se o programa não puder ser encontrado, ocorrerá um erro.

Segunda linha do script
eco olá mundo

Execute o comando echo com os argumentos Hello World, fazendo com que sejam exibidos na tela.

Execução: Podemos executar o script de duas maneiras

Invocar o intérprete para executar o script:
# bash hello_world.sh

Também pode ser executado como:
# sh hello_world.sh

Mas, como o Shell correto não é invocado, ele pode funcionar pela metade. Idealmente, o Shell invocado na primeira linha é o usado para executá-lo.

Você também pode executar o script diretamente da seguinte maneira:
# ./hello_world.sh

Nota: ./ indica execução do diretório atual.

O resto que falta analisar é o código que você insere nele. Espero que como sempre você esteja gostando (uns mais do que outros, de acordo com as necessidades de aprendizagem e conhecimento) desta série de Shell Scripting.

Existem muitos links bons sobre esse assunto na web, mas deixo este pequeno guia localizado aqui em DesdeLinux.net E este outro Guia Externo.

Até o próximo post!


Deixe um comentário

Seu endereço de email não será publicado. Campos obrigatórios são marcados com *

*

*

  1. Responsável pelos dados: Miguel Ángel Gatón
  2. Finalidade dos dados: Controle de SPAM, gerenciamento de comentários.
  3. Legitimação: Seu consentimento
  4. Comunicação de dados: Os dados não serão comunicados a terceiros, exceto por obrigação legal.
  5. Armazenamento de dados: banco de dados hospedado pela Occentus Networks (UE)
  6. Direitos: A qualquer momento você pode limitar, recuperar e excluir suas informações.

  1.   d4ny dito

    Lilo .. Linux Loader .. o resto informações muito boas .. obrigado .. salu2 d4ny.-

  2.   Eng. José Albert dito

    Saudações a todos que estão acompanhando o Curso Online de “Aprendizagem Shell Scripting” em breve continuaremos com outros scripts básicos para continuar se apropriando do conhecimento e continuar socializando a todos.

    Espero que fique ligado porque em breve começarei com códigos mais avançados, mas expostos de uma forma que seja visualmente compreensível apesar de sua complexidade.

    Lembre-se de que com o Shell Scripting você pode fazer muitas coisas complexas que são multiplataforma (distros diferentes) usando arquivos muito pequenos. Vou deixar para vocês esse pequeno screencast de algo que vou te ensinar em breve, para aqueles que continuarem assistindo o curso, e que com apenas 50Kb promete muito! E é apenas metade do que pode ser feito com o Shell Scripting.

    LPI-SB8 Test ScreenCast (LINUX POST INSTALL - SCRIPT BICENTENARIO 8.0.0)
    (lpi_sb8_adaptation-audiovisual_2016.sh / 43Kb)

    Veja o Screencast: https://www.youtube.com/watch?v=cWpVQcbgCyY

    1.    Alberto Cardona dito

      Olá, sua contribuição é incrível, muito obrigado mesmo !!
      Tenho uma pequena dúvida, posso programar um compilador com o bash?
      Ou pelo menos um analisador léxico?
      tem esse poder?

  3.   Eng. José Albert dito

    Saudações a todos que estão acompanhando o Curso Online de “Aprendizado Shell Scripting” em breve continuaremos com outros scripts básicos para continuar se apropriando do conhecimento e continuar a socializá-lo a todos. Espero que fique ligado porque em breve começarei com códigos mais avançados, mas expostos de uma forma que seja visualmente compreensível apesar de sua complexidade.

    Lembre-se de que com o Shell Scripting você pode fazer muitas coisas complexas que são multiplataforma (distros diferentes) usando arquivos muito pequenos. Vou deixar para vocês esse pequeno screencast de algo que vou te ensinar em breve, para aqueles que continuarem assistindo o curso, e que com apenas 50Kb promete muito! E é apenas metade do que pode ser feito com o Shell Scripting.

    LPI-SB8 Test ScreenCast (LINUX POST INSTALL - SCRIPT BICENTENARIO 8.0.0)
    (lpi_sb8_adaptation-audiovisual_2016.sh / 43Kb)

    Veja o Screencast: https://www.youtube.com/watch?v=cWpVQcbgCyY

  4.   Alberto dito

    Olá Jose,
    Primeiramente, obrigado por compartilhar seu conhecimento. Seus artigos são muito interessantes.

    Duas coisas, eu acho que é muito importante usar aspas duplas "Hello World" e ter uma saída limpa de nosso script com a saída 0

  5.   Eng. José Albert dito

    Obrigado por suas contribuições, no próximo Script você verá o uso de exit 0, break e outros!

  6.   willarmand dito

    Saudações.
    Muito interessante, você faz com que pareça simples; Agora, descobri que não posso programar no Linux com cron ou no shutdown / suspend / hibernate, com a consequente inicialização automática usando o comando rtc wake, não sei se um script com esse comando ajudaria, ou eles seguiriam o cron e t sem fazer nada, ou simplesmente não pode ser feito, ou é feito de outra maneira, ou sou muito ambicioso, mas no Windows é relativamente simples de fazer. Quero mudar para o Linux, mas é importante para mim agendar o desligamento / suspensão / hibernação e que o PC seja inicializado sozinho. Saudações.

  7.   Eng. José Albert dito
  8.   willarmand dito

    Obrigado, vou lê-los atentamente, algo vai me ajudar. Saudações.

  9.   Eduardo cuomo dito

    Há algum tempo iniciei um projeto, que considero único. É um protótipo para um Framewok Bash. Requer apenas o Bash no sistema.
    Se outra pessoa estiver interessada, ela está convidada a experimentar e colaborar!

    https://github.com/reduardo7/bashx

    Saudações!

    1.    Lagarto dito

      Caro Eduardo, acho um ótimo projeto, talvez você pudesse compartilhá-lo com toda a comunidade de desdelinux, lembre-se que você pode publicar um artigo sobre o seu projeto em nosso site, se não sabe como fazer recomendo a leitura https://blog.desdelinux.net/guia-redactores-editores/ onde estão as melhores práticas para a criação de artigos em desdelinux e o procedimento a ser realizado. Possivelmente para a comunidade seja muito bom primeiro conhecer os benefícios do seu projeto e depois aprender como fazer este tipo de coisas. Convidamos você e convidamos outras pessoas a compartilhar seus projetos conosco e com a grande comunidade que nos rodeia.

  10.   Imagem de marcador de posição de Miguel Urosa Ruiz dito

    Olá, bom dia.
    Sou novo no mundo da administração de máquinas Linux e gostaria de saber o que você recomenda para ela: ksh, bash, perl, php, python….
    Muito obrigado e os melhores cumprimentos.
    Miguel.