qual é a diferença entre terminal no Mac OS X e Ubuntu

2

Tanto o Mac OS X quanto o Ubuntu (e outros sistemas operacionais Linus) possuem terminal / linha de comando.

Esses terminais são idênticos em diferentes sistemas operacionais? Se não, quais são as diferenças importantes?

    
por KMC 30.12.2011 / 09:39

2 respostas

4

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.

    
por 30.12.2011 / 10:15
1

nota: o terminal é um programa wrapper que executa o shell. o termo deriva de tempos em que ainda era um dispositivo físico (teclado).

o shell (ou interpretador de comandos) executa comandos e retorna os resultados. basicamente você pode executar os mesmos shells em ambos os sistemas operacionais:

  • bash
  • csh
  • ksh
  • zsh

shells dos sistemas operacionais mencionados (em tags de pergunta) estão todos usando os mesmos comandos do núcleo porque são do tipo UNIX e precisam preencher o POSIX padrão. É por isso que você se sentirá familiar em ambos os sistemas operacionais.

    
por 30.12.2011 / 10:14