Um Emulador de terminal fornece uma interface para executar um shell , que novamente é uma interface para acessar as funções do sistema operacional.
Os terminais costumavam ser máquinas reais, por ex. um monitor com um teclado conectado, que enviava as teclas digitadas para o computador real na outra extremidade e recebia a saída desse computador. Por exemplo, o famoso VT100 :
Hoje em dia, isso é emulado por esses aplicativos, como o Terminal.app no OS X, ou o Terminal GNOME para a interface gráfica do GNOME nas distribuições Linux.
Como ele é desacoplado do shell que você pode executar (por exemplo, bash , zsh , ... ), você está livre para usar qualquer outro emulador de terminal. Por exemplo, no OS X, você pode usar o iTerm 2 , que oferece um pouco mais do que o aplicativo normal do terminal.
Como o terminal é a ponte entre a GUI e o shell de texto, sua funcionalidade deve ir além da aceitação da entrada do teclado e da exibição da saída do shell. Um terminal deve fornecer-lhe meios de:
- copiando e colando na GUI
- enviando comandos especiais para o shell (chamadas de seqüências de escape ; seu terminal, por exemplo, mapeará
Cmd - Right Arrow
para um seqüência de shell apropriada para ir até o final da linha *) - permitindo outros atalhos com teclas de atalho
- permitindo que o shell rastreie o mouse
- permitindo várias guias com diferentes shells sendo executados ao mesmo tempo
- permitindo que você arraste um ícone de arquivo para o shell para obter seu caminho real
- notificando a GUI de eventos (como uma tela piscando ou saída Growl )
- etc.
Resumindo: Terminais diferentes oferecem funcionalidades diferentes com relação a como eles interagem com o sistema operacional, por um lado, e o shell, por outro. Você pode encontrar uma comparação de emuladores de terminal na Wikipedia.
Dito isto, não há uma diferença importante. A maioria das pessoas cria terminais de acordo com o gosto deles, por exemplo alguns gostam de um fundo transparente, enquanto outros não. Alguns gostam deles para exibir sua concha preta em branco, outros como verde sobre preto. **
Alguns terminais permitem que você configure diferentes perfis de atalhos de teclado, ou até mesmo outros perfis que iniciam diferentes shells na inicialização, com um tamanho de janelas diferente, etc.
* Observe que esta é uma declaração bastante simplificada. O terminal só precisa encontrar uma maneira de mapear chaves especiais - especialmente em Macs, onde há um Command
key - para comandos que um shell pode entender.
** Esta também é uma funcionalidade do terminal: Exibindo cores. Você pode realmente ajustar seu terminal para mostrar coisas que o shell pretende ser verde como vermelho . É principalmente uma questão de personalização.