Unix / Linux - O que é Shells?

UMA Shellfornece uma interface para o sistema Unix. Ele coleta sua entrada e executa programas com base nessa entrada. Quando um programa termina de ser executado, ele exibe a saída desse programa.

Shell é um ambiente no qual podemos executar nossos comandos, programas e scripts de shell. Existem diferentes sabores de shell, assim como existem diferentes sabores de sistemas operacionais. Cada tipo de shell tem seu próprio conjunto de comandos e funções reconhecidos.

Shell Prompt

O prompt, $, que é chamado de command prompt, é emitido pelo shell. Enquanto o prompt é exibido, você pode digitar um comando.

Shell lê sua entrada depois que você pressiona Enter. Ele determina o comando que você deseja executar observando a primeira palavra de sua entrada. Uma palavra é um conjunto ininterrupto de caracteres. Espaços e guias separam palavras.

A seguir está um exemplo simples do date comando, que exibe a data e hora atuais -

$date
Thu Jun 25 08:30:19 MST 2009

Você pode personalizar seu prompt de comando usando a variável de ambiente PS1 explicada no tutorial de ambiente.

Tipos de casca

No Unix, existem dois tipos principais de shells -

  • Bourne shell - Se você estiver usando um shell do tipo Bourne, o $ caractere é o prompt padrão.

  • C shell - Se você estiver usando um shell do tipo C, o caractere% é o prompt padrão.

O Bourne Shell possui as seguintes subcategorias -

  • Bourne shell (sh)
  • Korn shell (ksh)
  • Shell Bourne Again (bash)
  • Shell POSIX (sh)

Os diferentes shells tipo C seguem -

  • C shell (csh)
  • Shell TENEX / TOPS C (tcsh)

O shell Unix original foi escrito em meados da década de 1970 por Stephen R. Bourne enquanto ele estava no AT&T Bell Labs em Nova Jersey.

Bourne shell foi o primeiro shell a aparecer em sistemas Unix, portanto, é conhecido como "o shell".

Bourne shell geralmente é instalado como /bin/shna maioria das versões do Unix. Por esse motivo, é o shell de escolha para escrever scripts que podem ser usados ​​em diferentes versões do Unix.

Neste capítulo, vamos cobrir a maioria dos conceitos da Shell que são baseados na Borne Shell.

Scripts Shell

O conceito básico de um script de shell é uma lista de comandos, que são listados na ordem de execução. Um bom script de shell terá comentários, precedidos por# assinar, descrevendo as etapas.

Existem testes condicionais, como o valor A é maior do que o valor B, loops que nos permitem percorrer grandes quantidades de dados, arquivos para ler e armazenar dados e variáveis ​​para ler e armazenar dados, e o script pode incluir funções.

Vamos escrever muitos scripts nas próximas seções. Seria um arquivo de texto simples no qual colocaríamos todos os nossos comandos e várias outras construções necessárias que informam ao ambiente do shell o que fazer e quando fazer.

Scripts e funções de shell são interpretados. Isso significa que eles não são compilados.

Script de exemplo

Suponha que criamos um test.shroteiro. Observe que todos os scripts teriam o.shextensão. Antes de adicionar qualquer coisa ao seu script, você precisa alertar o sistema de que um script de shell está sendo iniciado. Isso é feito usando oshebangconstruir. Por exemplo -

#!/bin/sh

Isso informa ao sistema que os comandos a seguir devem ser executados pelo shell Bourne. É chamado de shebang porque o#o símbolo é chamado de hash, e o! o símbolo é chamado de estrondo .

Para criar um script contendo esses comandos, você coloca a linha shebang primeiro e depois adiciona os comandos -

#!/bin/bash
pwd
ls

Comentários Shell

Você pode colocar seus comentários em seu script da seguinte maneira -

#!/bin/bash

# Author : Zara Ali
# Copyright (c) Tutorialspoint.com
# Script follows here:
pwd
ls

Salve o conteúdo acima e torne o script executável -

$chmod +x test.sh

O script de shell agora está pronto para ser executado -

$./test.sh

Após a execução, você receberá o seguinte resultado -

/home/amrood
index.htm  unix-basic_utilities.htm  unix-directories.htm  
test.sh    unix-communication.htm    unix-environment.htm

Note - Para executar um programa disponível no diretório atual, use ./program_name

Scripts de shell estendido

Os scripts de shell têm várias construções necessárias que informam ao ambiente de shell o que fazer e quando fazer. Obviamente, a maioria dos scripts é mais complexa do que o anterior.

Afinal, o shell é uma linguagem de programação real, completa com variáveis, estruturas de controle e assim por diante. Não importa o quão complicado um script se torne, ele ainda é apenas uma lista de comandos executados sequencialmente.

O seguinte script usa o read comando que pega a entrada do teclado e a atribui como o valor da variável PERSON e finalmente a imprime em STDOUT.

#!/bin/sh

# Author : Zara Ali
# Copyright (c) Tutorialspoint.com
# Script follows here:

echo "What is your name?"
read PERSON
echo "Hello, $PERSON"

Aqui está um exemplo de execução do script -

$./test.sh
What is your name?
Zara Ali
Hello, Zara Ali
$