Shell (computação): diferenças entre revisões

Conteúdo apagado Conteúdo adicionado
Marcoapc (discussão | contribs)
Marcoapc (discussão | contribs)
Linha 38:
O primeiro [[shell Unix]], o sh criado por [[Ken Thompson]], foi modelado depois do shell [[Multics]],<ref>http://www.multicians.org/unix.html</ref> em si modelado com base no programa [[RUNCOM]] de [[Louis Pouzin]]. O sufixo 'rc' presente em alguns arquivos de configuração do unix (".vimrc"), é um remanescente do ancestral RUNCOM dos shells Unix
 
Quase todos os shells dos sistemas operacionais modernosdos 1970 podem ser usados de duas formas: interativa e modo ''batch'' ou lote. O modo batch envolve estruturas, condicionais, variáveis e outros elementos de linguagem de programação. Alguns tem as apenas o necessário para um propósito específico, outras atendem propósitos mais diversos e sofisticados.
 
== Texto (CLI) shells==
{{VT|Lista de interpretadores de linha de comando}}
 
== Utilização ==
A tradução de Shell para português neste caso, pode significar "[[concha]]" ou "casca". Na informática o Shell, de maneira genérica, é um programa que intermedeia o contato entre o usuário e o computador. É a interface entre o usuário e o sistema operacional (kernel).
Aqui descreveremos o termo mais comum usado cotidianamente, que se refere aos interpretadores de comandos dos sistemas [[Unix]] e seus similares.
 
A [[interface de linha de comando]] (CLI) é um shell do sistema operacional que utiliza caracteres alfanuméricas digitadas em um teclado para fornecer instruções e dados para o sistema operacional, de forma interativa. Por exemplo, um [[teletypewriter|teletipo]] pode enviar códigos que representam combinações de teclas para um programa interpretador de comandos em execução no computador, o interpretador de comandos analisa a seqüência de teclas e responde com uma mensagem de erro se não puder reconhecer a sequência de caracteres, ou pode realizar algum outro programa de ação, tais como o carregamento de um programa de aplicação, listando os arquivos, login de um usuário e muitos outros. Sistemas operacionais como o UNIX tem uma grande variedade de programas [[Unix shell|shell]] com diferentes comandos, sintaxe e capacidades. Alguns sistemas operacionais tiveram apenas um único estilo de interface de comando, sistemas operacionais de commodities, como [[MS-DOS]] veio com uma interface de comando padrão, mas as interfaces de terceiros também foram frequentemente disponíveis, fornecendo recursos ou funções, como menuing ou execução remota de programas adicionais.
 
Programas de aplicação também pode implementar uma interface de linha de comando. Por exemplo, em sistemas Unix-like, o [[telnet]] programa tem uma série de comandos para controlar um link para um sistema de computador remoto. Uma vez que os comandos para o programa são teclas digitadas como os dados a serem transmitidos para um computador remoto, alguns meios de distinguir os dois são necessários. Uma [[sequência de escape]] pode ser definida, usando uma combinação de teclas especiais no local que nunca é passado, mas sempre interpretada pelo sistema local. O programa torna-se restrito, alternando entre interpretar os comandos do teclado ou passando batidas de teclas como os dados a serem processados.
 
Uma característica de muitos shells de linha de comando é a capacidade de salvar sequências de comandos para re-uso. Um arquivo de dados pode conter sequências de comandos que o CLI podem ser feitas a seguir como se digitado pelo usuário. Recursos especiais no CLI pode aplicar quando se está levando a cabo estas instruções armazenados. Esses [[arquivo Batch|arquivos em Batch]] (arquivos de script) pode ser usado repetidamente para automatizar operações de rotina, como a inicialização de um conjunto de programas quando o sistema é reiniciado. O shell de linha de comando pode oferecer recursos como [[conclusão de linha de comando]], onde o intérprete se expande comandos com base em uma entrada de alguns personagens pelo usuário. A intérprete de linha de comando pode oferecer uma função de histórico, de modo que o usuário pode chamar comandos anteriores emitidos para o sistema e repeti-los, possivelmente com alguma edição.
 
Uma vez que todos os comandos para o sistema operacional tinha de ser digitado pelo usuário, nomes de comandos curtos e sistemas compactos para que representam opções do programa eram comuns. Nomes curtos eram às vezes é difícil para um usuário para se lembrar, e os sistemas de início não tinha os recursos de armazenamento para fornecer um guia de instruções do usuário on-line detalhado.
Existem diversas implementações de Shell, dentre os quais podemos mencionar o [[csh]], [[tcsh]], [[Bourne shell|sh]], [[bash]], [[ksh]], [[zsh]] e muitos outros. Cada um pode executar comandos gerais do sistema de maneira semelhante, porém possuem estruturas e comandos próprios que os diferenciam. Outra grande diferença entre os diversos tipos de Shell são as facilidades que eles oferecem para o reaproveitamento de comandos e manipulação da linha de comandos.
 
Todo o usuário em sistemas Unix e similares tem um shell associado a si em seu cadastro. Podemos dizer que o Shell do usuário "fulano" é o csh, por exemplo, se este for o Shell cadastrado para o usuário. Embora o cadastro só permita associar um shell a cada usuário é muito simples passar de um shell para outro, passando a usar outro interpretador de comandos, bastando para isso chamar o outro shell desejado, da mesma maneira que qualquer comando é executado. Se um usuário, por exemplo, está no shell "sh" e executa o comando "csh", passa neste momento a usar o shell "csh" como interpretador de comandos até que saia dele com o comando "exit" ou outro comando para sair do shell.
 
== Shells gráficos ==
Existem muitos comandos de shell descritos na internet, uma dica seria reparar antes dos comandos geralmente tem simbolos como: "$" ([[dollar]]) ou "#" ([[tralha]]) isso indica que o texto a frente deve ser usado num interpretador de comandos (shell). Muitos se confundem na hora de seguir passos postados em [[foruns]] ou em [[listas de discussão]], pois não conhecem esse pequeno detalhe.
Exemplo:
$ sudo ettercap -Tq -M arp -i eth2 /192.168.1.2-255/ //
$ sudo ettercap -Tq -M arp -i eth2 /192.168.1.2-255/ //
 
A interface gráfica do usuário (GUI) representa programas e dados através de símbolos visuais em vez de texto. Interfaces gráficas tornou-se viável com o custo diminuiu do hardware de computação gráfica interativa. Interfaces gráficas desenvolvem a metáfora de um "ambiente de trabalho eletrônico", onde os arquivos de dados são representados como se os documentos em papel em uma mesa, e os programas de aplicação semelhante tem representações gráficas em vez de serem chamados por nomes de comandos.
Os comandos descritos acima são idênticos e devem ser escritos na mesma linha, até que aparece outro $.
 
{{referências}}
Linha 61 ⟶ 67:
* [[Bash]]
* [[Linha de comando]]
* [[DOS Shell]]
* [[Internet Explorer shell]]
* [[Secure shell]]
* [[Shell account]]
* [[Shell builtin]]
* [[Unix shell]]
{{Portal|Tecnologias de informação}}