Qual shell devo aprender para o FreeBSD e o Debian?

7

Eu li muitos artigos que dizem que o shell oficial no FreeBSD é tcsh , e no Debian, seu dash . No entanto, quando eu ou echo $shell (FreeBSD) ou env no Debian, ele diz que o shell é csh no primeiro caso, ou bash no Debian.

Isso está em instalações novas. Eu testei sob a conta root e uma conta de usuário normal. Além disso, quando eu crio uma nova conta no FreeBSD, eu tenho a opção de 3 shells; sh , csh ou tcsh . Se eu não tiver escolha, csh é o padrão para a conta.

Qual é o shell oficial padrão nesses sistemas? É tcsh ou csh no FreeBSD? É dash ou bash no Debian?

Sou eu que faz algo errado? Ou os artigos e sites estão mal informados?

Eu quero aprender dois shells: um para o Debian e outro para o FreeBSD, mas não consigo encontrar qual deles devo aprender, já que não está claro qual deles é o shell oficial.

Além disso, enquanto procurava por qual shell eu deveria aprender, eu encontrei isto: link É alguém que simplesmente não gosta de csh , ou deveríamos realmente evitar csh ?

Estou usando as versões mais recentes do Debian e do FreeBSD.

Eu começo a me perder com todas essas opções de shell, elas parecem todas iguais para mim (exceto pela sintaxe; quero dizer, todas procuram oferecer as mesmas possibilidades). É por isso que quero aprender o oficial.

    
por user1115057 21.03.2012 / 03:41

1 resposta

13

Não há necessidade de você usar o shell padrão para um determinado sistema. Tanto o Debian quanto o FreeBSD fornecem um número de shells diferentes, e a maioria ou todos eles estão disponíveis em ambos, pré-instalados ou facilmente instaláveis.

Cuidado com os nomes. Não é incomum que /bin/csh seja realmente tcsh ou que /bin/sh seja bash ou ksh.

sh , o shell Bourne, é o shell Unix mais antigo que ainda está em uso comum. bash é provavelmente o derivado sh mais amplamente utilizado; ksh e zsh também são difundidos.

csh , o shell C, foi desenvolvido para o BSD por Bill Joy. Ele tem alguns recursos que facilitam o uso interativo do que sh (ou pelo menos a versão antiga de sh que existia na época). tcsh é derivado de csh e adiciona muitos recursos novos, a maioria deles voltada para uso interativo. Como você viu lendo csh.whynot , o csh e o tcsh têm alguns problemas quando trata-se de usá-los para scripts, em oposição a interativamente.

Pessoalmente, comecei com csh, depois mudei para tcsh quando ficou disponível. Eu agora raramente uso csh para scripts, preferindo sh ou bash (ou Perl para qualquer coisa razoavelmente complexa).

(Update, alguns anos depois: Eu já abandonei o tcsh e agora uso o bash de forma interativa).

Meu conselho seria escolher um único shell e aprendê-lo bem, usando-o tanto no FreeBSD quanto no Debian. Se você escolher o tcsh, eu acho que você terá que instalá-lo no Debian: sudo apt-get install tcsh . Se você escolher o bash, eu não sei se ele está pré-instalado no FreeBSD; se não for, deve ser igualmente simples instalá-lo.

Não é necessário usar o mesmo shell de forma interativa e para scripts, mas isso pode evitar confusão e criar uma curva de aprendizado mais curta.

O ksh é provavelmente tão poderoso quanto o bash, e o zsh é ainda mais poderoso (e tem muitos recursos que eu nunca tive tempo de aprender).

Eu sugiro o bash, tanto para o FreeBSD quanto para o Debian (e para qualquer outro sistema similar ao Unix que você possa usar), tanto para uso interativo quanto para scripts. Mas outras escolhas são perfeitamente legítimas, e algumas podem ser mais adequadas para você.

    
por 21.03.2012 / 04:51