[ < ] [ > ]   [ << ] [ Acima ] [ >> ]         [Topo] [Conteúdo] [Índice] [ ? ]

1.2 O que é um Shell?

Basicamente, um shell é apenas um processador de macros que executa comandos. O termo processador de macros remete à funcionalidade de expandir o texto e os símbolos para criar expressões maiores.

Um shell UNIX é tanto um interpretador de comandos quanto também uma linguagem de programação. Como interpretador de comandos, o shell oferece a interface para o rico conjunto de utilitários GNU. As características de linguagem de programação permitem que esses utilitários possam ser combinados. Podem ser criados arquivos para agrupar comandos, assim estes passariam a ser comandos. Estes novos comandos tem o mesmo status que os comandos contidos no diretório de sistema ‘/bin’, permitindo que os usuários ou grupos possam desenvolver ambientes de trabalho personalizados para automatizar suas tarefas corriqueiras.

Shells podem ser usados de forma interativa ou não interativa. Em modo interativo, eles aceitam os comandos digitados no teclado. No modo não interativo os shells executam comandos lidos de um arquivo.

Um shell permite a execução de comando GNU, tanto de forma síncrona quanto de forma assíncrona. O shell espera que um comando síncrono seja completamente executado antes de aceitar mais; já os comandos assíncronos continuam a executar paralelamente enquanto o shell lê e executa comandos adicionais. As construções de redirecionamento permitem um controle refinado da entrada e saída desses comandos. Além disso, o shell permite o controle sobre o conteúdo dos ambientes de comandos.

Os shells também fornecem um pequeno conjunto de comandos nativos (builtins) implementando funcionalidades impossíveis ou inconvenientes para se obter através de utilitários separados. Por exemplo, cd, break, continue, e exec não podem ser implementados por fora do shell porque eles manipulam diretamente o próprio shell. Os códigos nativos history, getopts, kill, ou pwd, entre outros poderiam ser implementados via utilitários separados mas é mais conveniente a utilização deles como comandos nativos. Todos os comandos nativos do shell serão discutidos em seções subsequentes.

Agrupar a execução de comandos é essencial, a maior parte do poder (e complexidade) dos shells é devido as suas linguagens de programação incorporadas. Tal como qualquer linguagem de alto nível, o shell provê variáveis, construções de controle de fluxo, citações e funções.

Os shells oferecem recursos voltados especificamente para o uso interativo, em vez de aumentar sua capacidade de linguagem de programação. Esses recursos interativos incluem controle de trabalho, edição em linha de comando, histórico de comandos e aliases (apelidos). Cada um desses recursos é descrito neste manual.


[ < ] [ > ]   [ << ] [ Acima ] [ >> ]         [Topo] [Conteúdo] [Índice] [ ? ]

Esse documento foi gereado por Jeremias em 19 de Junho de 2013 usando texi2html 1.82.