Terminal é um emulador de terminal. Ele interpreta várias sequências de controle enviadas por programas (caracteres de controle como CR, LF, BS e sequências de controle mais longas para comandos como “clear screen”, “move cursor up 3 lines”, etc.). Terminal é o mesmo tipo de programa que o xterm , rxvt , Konsole , ou Terminal GNOME . Quase todos os emuladores de terminal modernos suportam as sequências de controle "xterm", portanto, geralmente são altamente compatíveis (e a maioria dos programas usa a biblioteca ncurses e seu banco de dados terminfo para abstrair as seqüências de controle reais).
bash é um shell. Ele interpreta comandos que geralmente envolvem a execução de outros programas. No uso interativo normal, a entrada do shell vem de um usuário por meio de um emulador de terminal. O emulador de terminal e o shell são conectados por meio de um dispositivo "pseudo-tty" (por exemplo, /dev/pts/24
ou /dev/ttyp9
).
Como os dispositivos tty são a única interface entre Terminal e bash , eles são completamente independentes. Você pode usar bash com iTerm ao invés de Terminal , e você pode usar zsh ao invés de bash dentro de uma janela Terminal .
A versão do bash instalada em seus sistemas Mac OS X e Linux pode ser diferente, mas deve ser bem fácil de instalar em qualquer versão do bash desejado qualquer sistema. Você pode procurar em MacPorts , homebrew , ou Fink para saber como instalar versões recentes do bash (e outras shells) no Mac OS X. A distribuição do Linux que você está usando certamente vem com pacotes para shells comuns.