He leído muchos artículos que dicen que el shell oficial de FreeBSD es tcsh
, y en Debian, es dash
. Sin embargo, cuando echo $shell
(FreeBSD) o env
en Debian, dice que el shell es csh
en el primer caso, o bash
en 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 3 shells; sh
, csh
o tcsh
. Si no elijo nada, csh
es el predeterminado para la cuenta.
¿Cuál es el caparazón estándar oficial bajo esos sistemas? ¿Es tcsh
o csh
en FreeBSD? ¿Es dash
o bash
en Debian?
¿Soy yo el que hace algo mal? ¿O los artículos y los sitios están mal informados?
Quiero aprender dos shells:uno para Debian y otro para FreeBSD, pero no puedo encontrar cuál debo aprender, ya que no está claro cuál es el shell oficial.
Además, mientras buscaba qué shell debo aprender, encontré esto:http://www.faqs.org/faqs/unix-faq/shell/csh-whynot/
¿Es alguien a quien simplemente no le gusta csh
, o deberíamos evitar 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 que todas buscan ofrecer las mismas posibilidades). Es por eso que quiero aprender el oficial.
Respuesta aceptada:
No es necesario 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.
Cuidado con los nombres. No es raro para /bin/csh
para ser realmente tcsh, o para /bin/sh
ser bash o ksh.
sh
, el shell Bourne, es el shell Unix más antiguo que todavía se usa comúnmente. bash
es probablemente el derivado del pescado más utilizado; ksh
y zsh
también están muy extendidas.
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 de sh
que existía en ese momento). tcsh
se deriva de csh
, y agrega muchas características nuevas, la mayoría de ellas destinadas al uso interactivo. Como ha visto al leer csh.whynot, 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, luego cambié a tcsh cuando estuvo disponible. Ahora rara vez uso csh para secuencias de comandos, prefiero sh o bash (o Perl para algo razonablemente complejo).
Relacionado:¿La opción -F para ls?(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 shell único y aprenderlo bien, usándolo tanto en FreeBSD como en Debian. Si elige tcsh, creo que tendrá que instalarlo en Debian:sudo apt-get install tcsh
. Si elige bash, no sé si está preinstalado en FreeBSD; si no es así, debería ser igual de sencillo instalarlo.
No es necesario usar 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 tomé el tiempo de aprender).
Sugiero bash, tanto para FreeBSD como para Debian (y para cualquier otro sistema similar a 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.