Dos principais shells do Unix (bash, ksh, tcsh, zsh, outros?), Existem razões convincentes para usar um sobre o outro?
- Qual é o mais interativo / amigável à linha de comando?
- Qual é o mais propício / intuitivo para escrever scripts?
- Existem recursos principais que um shell oferece e outros não?
- Alguma dessas conchas é realmente boa para um tipo de função, mas não para outra? Ou eles são todos bem-arredondados / flexíveis?
- É apenas uma questão de preferência pessoal?
Eu posso criar este wiki da comunidade se alguém preferir.
fish é uma nova concha que talvez seja mais interessante que as outras, não porque necessariamente tenha mais recursos, mas porque eles simplesmente funcionam por padrão e porque o peixe se esforça para ser mais fácil.
Algumas capturas de tela ( 1 , 2 , 3 , 4 ) são suficientes para dar uma idéia geral.
fish agora é o shell padrão no meu Mac no trabalho. Vai saber.
fonte
Se você quiser aprender um shell que não seja
sh
/bash
, é melhor continuar com elezsh
. Eu não acho que alguém contesta seriamente que é a concha alternativa mais poderosa e cheia de recursos; se é apenas inchaço, é claro, ainda está em debate.Ouvi coisas boas
fish
, mas nunca trabalhei no esforço de me preocupar com elas.Os administradores que conheço consideram
csh
etcsh
devem ser abominações que devem ser evitadas a todo custo, e eu concordo com eles, apesar de nunca terem sido forçados a me colocar em nenhuma das partes.fonte
Eu recomendaria conhecer bem o bash, pois é um dos mais comuns (geralmente o padrão do Linux). Pessoalmente, eu amo o zsh como meu shell interativo. Possui ótimos recursos de conclusão. Por exemplo, você pode definir uma lista de hosts e quando fizer algo como ssh Ser [tab], ele saberá tentar tabular automaticamente a conclusão de um desses hosts. Ele também possui globos recursivos, portanto, se você quiser encontrar todos os arquivos jpeg no atual e subdiretório, poderá usá-lo
ls -ld **/*.jpg
. Existem muitos recursos divertidos com o zsh (procure os arquivos .zshrc das pessoas) e você pode configurá-lo como 'compatível com bash', para que seja fácil alternar entre os dois. Se você combinar isso com o GNU Screen, poderá achar que a linha de comando se torna um prazer para trabalhar.fonte
Não esqueça sua outra pergunta Shell mais comum do Unix / Linux - o shell mais popular é provavelmente o mais popular por uma razão ;-)
Pelo que vale a pena, a maioria das pessoas não alterna entre conchas com frequência, por isso será difícil obter uma comparação abrangente das várias opções; será mais provável que você veja pessoas diferentes defendendo as virtudes de suas conchas favoritas. Pelo pouco que ouvi sobre shells diferentes, todos eles oferecem alguns dos mesmos recursos básicos (como redirecionamento de E / S, histórico de comandos etc.), de modo que a preferência pessoal provavelmente será um grande componente.
fonte
Um motivo convincente para usar o ZSH que não foi mencionado é o modo vi e o modo emacs .
Para quem gosta de usar sua memória muscular vi no shell, esse é um recurso matador.
E para aqueles que preferem o emacs, você também pode usar essas teclas, mas os verdadeiros crentes do emacs provavelmente diriam que o emacs é o seu shell favorito.
;-)
fonte
A preferência pelo uso diário é realmente uma questão de gosto pessoal; no entanto, ao escrever scripts, tento ser compatível com posix por questões de portabilidade.
fonte
Assim como o Heads Up: O Ubuntu padroniza "sh" para "dash", o que levou a alguns problemas no passado com a compatibilidade do POSIX. Aparentemente, os comandos de eco diferem um pouco.
fonte