Mandou que lhe mudassem as vestes de prisioneiro e, até o fim de sua vida, Joaquin comeu à mesa do rei da Babilônia.
Durante toda a sua vida, até o dia de sua morte, sua manutenção foi garantida pelos cuidados do rei de Babilônia.

A idéia de um shell foi concebida na época em que a interface pela qual os usuários de computadores podiam trabalhar com o computador era muito limitada. Além disso os recursos eram limitados, CPU e memória. Existia apenas um teclado, sem mouse, sem som, sem efeitos gráficos bonitos. O modo pelo qual o usuário se comunica com o computador nessa interface é escrevendo os programas que se deseja abrir (ou se quiser entender como ordens ao computador) no teclado e dando “enter”. Para quem é usuário de Windows só lembrar do Dos, que nada mais é que um sistema para operar discos com uma interface limitada de um shell. Os interpretadores são vários, ksh, csh, zsh, sh e bash. Entre os diversos interpretadores existentes os usuários de Linux utilizam mais o bash. É como se os programas fossem funções e o shell fosse a interação entre os programas.
O bash é uma camada que liga o usuário com o sistema operacional. Seu nome vêm de Bourne Again Shell uma intertextualização com Bourne Shell, mais conhecido com sh. O sh foi o pioneiro dos shells, a partir dele vieram os outros. O Bourne shell foi escrito por Stephen Bourne um pesquisador da AT&T Bell Labs. O bash é compatível com o sh e provê algumas funcionalidades do csh e do ksh. Ele segue o padrão IEEE Posix shell e inicialmente foi escrito para ser o shell padrão do sistema GNU. Ele tem uma portabilidade boa, existem implementações pra sistemas Windows, Mac OS X e, é claro, Linux e BSDs.
Para usuários de Windows ele pode ser usado através do projeto Cygwin. As funções são praticamente todas portadas, só tendo dependência em alguma funcionalidade do sistema Unix que o programador não pode usar(como o /proc). Com o passar do tempo o bash evoluiu junto com os sistemas abertos e hoje tem muitas mais funcionalidades e facilidades que antigamente. Saber como programar em shell ajuda também na administração do sistema. E praticamente se torna indispensável pra um bom administrador.
Dentre as várias, milhares, de implementações de sistemas Unix cada uma tem uma série de softwares padrões. Assim como os usuários de Linux gostam muito de utilizar o Bash, usuários de BSDs tem uma tendência a gostar do Csh, alguns utilizam o Ksh e existem até usuários de Linux que fervorosamente usam o Zsh. As vezes é interessante saber a sintaxe de outros interpretadores, afinal nada impede de misturar diversos interpretadores em seu script maior. As vezes também portar de um sistema pra outro exige que o programador faça essas mudanças. Cada interpretador segue uma filosofia:
O csh por exemplo foi escrito por Bill Joy na universidade de Berkeley e consiste num shell insipirado na linguagem C. Ele segue uma forma própria, perdendo muito a compatibilidade com o sh. A filosofia do csh é pensar da mesma forma como os desenvolvedores de ferramentas do Unix, sendo que a linguagem C é quase que irmã gêmea dos sistemas Unix. Ele utiliza algumas estruturas próprias da linguagem C que são até condenadas por muitos programadores:
O goto é uma prática que deve ser desencorajada. Com raríssimas exeções o goto não precisa ser usado. Mesmo assim ele é usado até mesmo muitas vezes no Kernel do Linux. Com goto e condicional já é possível fazer qualquer outra estrutura. A sintaxe é simples
Assim como em C utiliza-se int, void, float para incializar. Em csh é necessário incializar obrigatóriamente a variável com set (set mais o nome da variável). Entre outras coisas o csh não possui “for” e as sintaxes são diferentes. Para obter mais informações, a man page do csh oferece detalhadamente as instruções de uso.