De los principales shells de Unix (bash, ksh, tcsh, zsh, otros?), ¿Hay alguna razón convincente para usar uno sobre otro?
- ¿Cuál es el más interactivo / amigable con la línea de comandos?
- ¿Cuál es el más propicio / intuitivo para escribir guiones?
- ¿Hay algunas características integradas importantes que ofrece un shell que otras no?
- ¿Alguno de estos caparazones es realmente bueno para un tipo de función, pero no para otro? ¿O son todos bastante redondeados / flexibles?
- ¿Es solo una cuestión de preferencia personal?
Puedo hacer este wiki de la comunidad si alguien lo prefiere.
pez es un nuevo shell que quizás sea más interesante que los demás, no porque necesariamente tenga más características, sino porque simplemente funcionan de manera predeterminada y porque fish se esfuerza por la usabilidad.
Algunas capturas de pantalla ( 1 , 2 , 3 , 4 ) son suficientes para dar una idea general.
fish es ahora el shell predeterminado en mi Mac en el trabajo. Imagínate.
fuente
Si vas a aprender un shell diferente a
sh
/bash
, también podrías ir conzsh
. No creo que nadie discuta seriamente que es el más poderoso y lleno de características de los shells alternativos; si es solo hinchazón, por supuesto, todavía está en debate.He oído cosas buenas
fish
, pero nunca me esforcé por molestarme con ellas.Los administradores que conozco consideran
csh
ytcsh
son abominaciones que deben evitarse a toda costa, y estoy de acuerdo con ellos a pesar de que nunca me vi obligado a pasar por ninguno de los dos.fuente
Recomendaría saber bash bien, ya que es uno de los más comunes (generalmente el predeterminado de Linux). Personalmente, me encanta zsh como mi shell interactivo. Tiene excelentes características de terminación. Por ejemplo, puede establecer una lista de hosts y, cuando haga algo como ssh Ser [tab], sabrá intentar completar automáticamente uno de esos hosts. También tiene gloging recursivo, por lo que si desea encontrar todos los archivos jpeg en el subdirectorio actual y puede utilizar
ls -ld **/*.jpg
. Hay muchas funciones divertidas con zsh (busca los archivos .zshrc de las personas), y puedes configurarlo como 'compatible con bash', por lo que es fácil cambiar entre los dos. Si combina esto con la pantalla GNU, es posible que trabajar con la línea de comandos sea un placer.fuente
No olvide su otra pregunta El shell Unix / Linux más común: el shell más popular es probablemente el más popular por una razón ;-)
Por lo que vale, la mayoría de las personas no se desconectan entre los shells con frecuencia, por lo que será difícil obtener una comparación completa de las diversas opciones; Es más probable que veas a diferentes personas defendiendo las virtudes de sus conchas favoritas. Por lo poco que he escuchado acerca de diferentes shells, todos ofrecen algunas de las mismas características básicas (como redirección de E / S, historial de comandos, etc.) por lo que es probable que la preferencia personal sea un componente importante.
fuente
Una razón convincente para usar ZSH que no se ha mencionado es el modo vi y el modo emacs .
Para aquellos que aman usar su memoria muscular vi en el caparazón, esta es una característica asesina.
Y para aquellos que prefieren emacs, también pueden usar esas combinaciones de teclas, pero los verdaderos creyentes de emacs probablemente dirían que emacs es su caparazón favorito.
;-)
fuente
La preferencia por el uso diario es realmente una cuestión de gusto personal, sin embargo, cuando escribo guiones, trato de cumplir con posix por razones de portabilidad.
fuente
Al igual que Heads Up: Ubuntu predetermina "sh" a "dash", lo que ocasionó algunos problemas en el pasado con la compatibilidad POSIX. Aparentemente, los comandos de eco difieren ligeramente.
fuente