Soy nuevo en Linux y tengo algunas preguntas sobre scripts de shell:
- caparazón
- caparazón C
- cáscara de golpe
- concha de bourne
- cáscara de maíz
¡Tantas "conchas"! Respecto a estos, ¿cómo puedo saber para qué intérpretes está configurado mi sistema Linux? Si no tengo soporte para, digamos korn
, ¿cómo configuraría mi sistema para que lo admita?
Además, ¿cuál de estos shells es más "activo" (se actualiza y mantiene con más frecuencia)?
¡Gracias de antemano!
Respuesta1
El problema que abordaste es la razón misma por la que tenemos la noción deCarcasas compatibles con POSIXy la capacidad de crear código "portátil". Siempre que cumpla con la sintaxis compatible con POSIX establecida en ese enlace, puede estar seguro de que su código es portátil.
Dicho esto, si su público objetivo es solo Linux, todas las distribuciones de Linux que he visto vienen con bash
un shell predeterminado, por lo que puede estar bastante seguro de que un script compatible con Bash 3.x funcionará en casi cualquier distribución de Linux que exista. .
Respuesta2
El primer UNIX fue en AT&T. El primer proyectil fue el proyectil Bourne. Fue genial, pero tenía algunas limitaciones serias.
Cuando los chicos deberkeleyEmpecé a jugar con UNIX y traté de mejorarlo, sacaron el shell C. Tenía un lenguaje de programación diferente (aunque también defectuoso a su manera) pero fue mucho mejor en el uso interactivo. Debido a sus ventajas en el uso interactivo, se hizo muy popular en cualquier UNIX que descendiera de Berkeley UNIX.
C shell (o csh) generó un clon de código abierto llamado tcsh. Si usa csh, probablemente no use csh 'verdadero' u original, sino tcsh.
Mientras tanto, los chicos de UNIX no se quedaron de brazos cruzados. Dave Korn (buen chico) creó un nuevo shell llamado... Korn shell. Siguió el modelo de programación que creó Bourne Shell (posiblemente superior al modelo csh). Se hizo muy popular, se convirtió en el caparazón del día a día de muchas personas. También pasó a formar parte de la especificación UNIX. Esto generó un clon de código abierto bastante popular llamado pdksh, que es bastante compatible (aunque no 100%). Finalmente, AT&T lanzó el código como código abierto.
Los chicos de GNU querían crear su propio sistema tipo UNIX, por lo que necesitaban un shell, uno que pudieran incluir sin preocuparse por problemas de licencia. Crearon bash, Bourne Again SHell. Principalmente compatible con el Bourne original y tomando ideas tanto de Csh como de Ksh, se hizo popular tanto por su facilidad de uso como porque venía con todos los Linux. Ha habido varias versiones, la versión 2 es la primera muy usable y ahora está en la versión 4 con nuevas características.
Luego vino zsh. También siguió la sintaxis del shell Bourne y copió lo que era bueno en el shell Bourne, ksh, csh y bash. Podría decirse que tiene la sintaxis más avanzada con características que no se encuentran en otros shells.
TL;DREntonces, ¿qué usar? Si está codificando un script de inicio, querrá usar /bin/sh, que es compatible con POSIX/Original Bourne. El lenguaje es escaso, pero se ejecutará incluso si discos como /usr no están disponibles.
Si no son scripts de inicio, tienes un poco más de opciones. Si está solo en su máquina, use cualquier cosa que esté disponible actualmente. Tú controlas tu máquina. Si escribes para regalar a otras personas, usaría /bin/sh o bash. /bin/sh aunque simple, siempre está disponible. bash es de código abierto, por lo que casi siempre está disponible, es lo suficientemente antiguo como para estar en todas partes, pero lo suficientemente nuevo como para tener algunas características nuevas. Csh no está disponible en todas partes y tampoco zsh.