¿Qué shell debería aprender para FreeBSD y Debian?

¿Qué shell debería aprender para FreeBSD y Debian?

He leído muchos artículos que dicen que el shell oficial en FreeBSD es tcsh, y en Debian, es dash. Sin embargo, cuando estoy echo $shell(en FreeBSD) o enven Debian, dice que el shell está cshen el primer caso, o bashen Debian.

Esto es en instalaciones nuevas. Probé con la cuenta raíz y una cuenta de usuario normal. Además, cuando creo una nueva cuenta en FreeBSD, tengo la opción de elegir entre 3 shells; sh, csho tcsh. Si no hago ninguna elección, cshes el valor predeterminado para la cuenta.

¿Cuál es el shell estándar oficial en esos sistemas? ¿Está tcsho cshen FreeBSD? ¿Está dasho bashen Debian?

¿Soy yo el que hace algo mal? ¿O los artículos y sitios están mal informados?

Quiero aprender dos shells: uno para Debian y otro para FreeBSD, pero no encuentro cuál debo aprender, ya que no está claro cuál es el shell oficial.

Además, mientras buscaba qué shell debería aprender, encontré esto:http://www.faqs.org/faqs/unix-faq/shell/csh-whynot/ ¿Es alguien a quien simplemente no le gusta csho realmente deberíamos evitarlo csh?

Estoy usando las últimas versiones de Debian y FreeBSD.

Empiezo a perderme con todas estas opciones de shell, todas me parecen iguales (excepto por la sintaxis; quiero decir, todas parecen ofrecer las mismas posibilidades). Por eso quiero aprender el oficial.

Respuesta1

No es necesario en absoluto que utilice el shell predeterminado para un sistema determinado. Tanto Debian como FreeBSD proporcionan varios shells diferentes, y la mayoría o todos ellos están disponibles en ambos, ya sea preinstalados o fácilmente instalables.

Ojo con los nombres. No es raro que /bin/cshrealmente sea tcsh, o /bin/shbash o ksh.

sh, el shell Bourne, es el shell Unix más antiguo que todavía se usa comúnmente. bashes probablemente el derivado del pescado más utilizado; kshy zshtambién están muy extendidos.

csh, el shell C, fue desarrollado para BSD por Bill Joy. Tiene algunas características que hacen que el uso interactivo sea más conveniente que sh(o al menos que la versión anterior shque existía en ese momento). tcshse deriva de cshy agrega muchas características nuevas, la mayoría de ellas dirigidas al uso interactivo. Como has visto leyendocsh.porqueno, csh y tcsh tienen algunos problemas cuando se trata de usarlos para secuencias de comandos en lugar de hacerlo de forma interactiva.

Personalmente, comencé con csh y luego cambié a tcsh cuando estuvo disponible. Ahora rara vez uso csh para secuencias de comandos, prefiero sh o bash (o Perl para cualquier cosa razonablemente compleja).

(Actualización, unos años más tarde: desde entonces abandoné tcsh y ahora uso bash de forma interactiva).

Mi consejo sería elegir un único shell y aprenderlo bien, usándolo tanto en FreeBSD como en Debian. Si eliges tcsh, creo que tendrás que instalarlo en Debian: sudo apt-get install tcsh. Si eliges bash, no sé si está preinstalado en FreeBSD; si no es así, debería ser igualmente sencillo instalarlo.

No es necesario utilizar el mismo shell de forma interactiva y para secuencias de comandos, pero puede evitar cierta confusión y acortar la curva de aprendizaje.

ksh es probablemente tan poderoso como bash, y zsh es aún más poderoso (y tiene muchas características que nunca me he tomado el tiempo de aprender).

Sugiero bash, tanto para FreeBSD como para Debian (y para cualquier otro sistema tipo Unix que pueda usar), y tanto para uso interactivo como para secuencias de comandos. Pero otras opciones son perfectamente legítimas y algunas podrían ser más adecuadas para usted.

información relacionada