Qual é a diferença entre “Shell” e “Terminal”? [duplicado]

7

Eu sou relativamente novo no Ubuntu e estou amando isso!

Mas eu não entendo muito bem a diferença entre o shell e o terminal. Alguém pode explicar? Alguém me disse que um terminal é apenas uma "ferramenta" para exibir o shell, semelhante ao uso de um navegador como o Firefox ou o Chrome para "visualizar" a Web.

A analogia dele é correta? Além disso, qual é o shell padrão do Ubuntu? Bash, tcshell ou alguma outra coisa?

    
por smilingbuddha 12.11.2010 / 03:59

6 respostas

9

Não é uma analogia ruim. Um terminal pode ser considerado apenas como um dispositivo para exibir informações e recebê-lo. Ele pode variar de um terminal estúpido que não faz nada além de interpretar caracteres imprimíveis, para um gigante com posicionamento de cursor cheio e capacidades de cor.

Um shell, que frequentemente (mas nem sempre) é executado em um terminal, é um ambiente poderoso para interpretar comandos e agir sobre eles. Você pode considerar os shells mais modernos como linguagens de programação completas.

A idéia básica por trás de um shell interativo é aceitar esses comandos do usuário (através do terminal) e agir sobre eles, seja fazendo suas próprias coisas ou executando programas externos para fazê-lo. Um shell não interativo é aquele que geralmente executa scripts pré-escritos para executar tarefas. Alguns scripts de shell serão executados sem um terminal, já que eles não precisam de interação com o usuário.

O shell padrão do Ubuntu é bash, embora seja fácil alterá-lo para o que você quiser.

    
por 12.11.2010 / 04:03
8

O shell é um programa que aceita seus comandos ( ls , cd , etc) e os processa executando funções internas (como cd ) ou chamando programas externos ( como ls ou gcc ).

O terminal é a coisa (quase sempre um programa nos dias de hoje, mas muitas vezes uma peça de hardware na era do bronze) que gerencia suas teclas e mostra texto para você - ambos os bits você digita e os bits que o shell ou outro programa retorna para você. Quando o terminal é um programa GUI, ele desenha a bela janela gráfica, informa ao X qual fonte usar, chama as rotinas de desenho de texto e assim por diante. Antigamente, poderia ter sido pouco mais do que uma máquina de escrever elétrica sofisticada, com papel dobrável.

    
por 12.11.2010 / 04:11
5

Isso está correto. O emulador de terminal fornece manipulação gráfica para exibir uma janela, menu, etc. e saída de texto, juntamente com entrada via teclado (e mouse, sob certas condições) para programas de linha de comando.

O shell fornece uma linha de comando flexível para a entrada de comandos a serem executados, juntamente com feedback sobre coisas como o diretório atual, o status do superusuário e assim por diante.

O shell padrão atual para o Ubuntu é o bash.

    
por 12.11.2010 / 04:04
2

O shell padrão no Ubuntu é o bash. Além disso, o shell é um programa que você usa para interagir com o sistema (uma das muitas maneiras de fazer isso). Por terminal, você quer dizer um 'emulador de terminal'. Um emulador de terminal pode ser considerado um 'monitor falso', se você quiser.

    
por 12.11.2010 / 04:05
0

O shell padrão no Ubuntu a partir de 6.10 e acima é Dash: link

    
por 12.11.2010 / 04:04
0

Nos velhos tempos, quando os computadores eram mais caros do que uma casa, eles eram chamados de mainframes . A computação era cara e muitas pessoas precisavam de acesso. A solução? Terminais !

Estes eram computadores "burros", nada mais que uma tela com um teclado e um computador muito básico. O terminal tinha uma conexão permanente com o mainframe. Os comandos foram processados pelo mainframe que retornou os resultados de volta para (a exibição do) terminal. A maior parte do que você fez foi baseado em texto, sem gráficos, sem mouse, então tudo que o terminal precisava fazer era enviar e receber texto e exibi-lo na tela.

Se você usa o Chrome OS, ou se você usa um navegador moderno com uma conexão permanente à Internet e alguém que faz tudo na nuvem, você tem mais ou menos a mesma ideia. Então sua analogia com o navegador é de fato muito boa.

A Wikipédia diz que um shell é uma interface de usuário para um computador e também pode ser gráfico. MS Windows é um shell. O shell UNIX ou Linux é uma CLI, interface de linha de comando. Novamente, a analogia do navegador também funciona aqui, com a página da web como interface para o site e seu banco de dados.

    
por 20.02.2015 / 17:32