Eligiendo shell
|
|
Por Draco
departamento caparazones , Sección Desarrolladores Puesto a las Fri Dec 6th, 2002 at 05:39:05 PM CET
|
|
Muchos de nosotros diariamente nos relacionamos con nuestro sistema vía línea de comandos. Sin embargo pocos hemos hecho una elección consciente: los linuxeros usan mayoritariamente bash, los BSDeros desde hace bastante tiempo o los que llevan muchos años en Unix (t)csh, y los que vienen de Unix comerciales Ksh.
Voy a intentar hacer un pequeño repaso de los shells más comunes(hay muchos más), para que podamos reafirmarnos en nuestra elección o sentirnos tentados de probar algo nuevo. Los shells que voy a nombrar son Bourne Shell, C-Shell, TC-Shell, Korn Shell, Bourne Again Shell y Z-Shell, y me voy basar en buena parte en el capítulo 13 de UNIX Unleashed, System Administrator's Edition. Sólo con lo que digo aquí no se puede decidir, pero si hay punteros a sitios en los que se puede encontrar más información
|
- Bourne Shell Realmente no es una buena elección como shell interactivo, pero es el denominador común de todos los Unix, por lo que al programar uno debería ceñirse a él como ejercicio de buena costumbre. Un buen recopilatorio de información se puede encontrar aquí
- C Shell Realmente tampoco es demasiada buena elección, salvo que estemos trabajando con Unix antiguos. Fue el primero en crearse después de sh, pero la implementación no fue todo lo buena que podría haber sido, además de que rompía con la sintaxis del Bourne Shell para acercarse a una sintaxis parecida a C. Como lenguaje de script está totalmente desaconsejado. Por otra parte suele encontrarse por defecto o en instalaciones restringidas de muchos Unix.
- TC Shell Vistas las carencias de Csh, se crearon dos nuevos shells: el Korn Shell que tomaba ideas de csh con una sintaxis Bourne y el TC-Shell mantenía la sintaxis tcsh. Es un superconjunto de csh y la evolución natural de los usuarios del aquel. En los BSD en realidad csh no es más que un "hard link" a tcsh. No está tan presente en instalaciones mínimas pero es fácil encontrarlo en instalaciones no demasiado espartanas.
- Korn Shell Ésta suele ser una elección recomendada. Es bastante potente y está muy extendido en los Unix comerciales. Si quieres cierta portabilidad y sh no te da la sufciente potencia suele ser la elección más recomendable. En un principio no era libre ni gratuito sino que había que pagar a AT&T para usarlo. Por eso surgió pdksh(Public Domain Korn Shell) aunque no es 100% compatible con el "oficial", o mejor dicho no tiene todas sus características. En las distros Linux, suele ser pdksh el que se distribuye. Hoy en día se ofrece el fuente pero no sé si está considerada su licencia como Free Software o Open Source.
- Bourne Again Shell Como bien sabréis esta es el shell que se encuentra por defecto en las distribuciones Linux. Es similar en potencia al Korn Shell, si bien está mucho menos extendido fuera de Linux. Surgió como necesidad de tener un shell similar en potencia a ksh que fuese libre.
- Z Shell Es el más potente de todos con diferencia. Está totalmente dirigido hacia la interactividad, y tiene multitud de opciones, por lo que es difícil manejar un amplio rango de ellas. Tiene un autocompletado dependiente del contexto, de manera que $ xpdf [TAB] mostrará sólo los ficheros pdf de ese directorio, y un editor "integrado" en el propio shell. En su contra hay que decir que es el menos extendido de este "club" de los más usados, y es el que más recursos consume con diferencia.
|
|
|