FreeBSDの公式シェルはtcsh
であるという多くの記事を読みました。 、およびDebianでは、そのdash
。ただし、echo $shell
のいずれかを実行すると (FreeBSD)またはenv
Debianでは、シェルはcsh
であると書かれています 最初のケースでは、またはbash
Debianで。
これは新規インストールです。 rootアカウントと通常のユーザーアカウントでテストしました。また、FreeBSDで新しいアカウントを作成するときは、3つのシェルを選択できます。 sh
、csh
またはtcsh
。選択しない場合は、csh
アカウントのデフォルトです。
それらのシステムの下での公式の標準シェルは何ですか? tcsh
ですか またはcsh
FreeBSDでは? dash
ですか またはbash
Debianで?
何か悪いことをするのは私ですか?または、記事やサイトに誤った情報がありますか?
Debian用とFreeBSD用の2つのシェルを学びたいのですが、どちらが公式シェルであるかが明確でないため、どちらを学ぶべきかわかりません。
また、どのシェルを学ぶべきかを検索しているときに、これを見つけました:http://www.faqs.org/faqs/unix-faq/shell/csh-whynot/
それはただ好きではない人ですかcsh
、またはcsh
を本当に避ける必要があります ?
最新のDebianおよびFreeBSDバージョンを使用しています。
私はこれらすべてのシェルオプションに迷い始めました、それらはすべて私には同じように見えます(構文を除いて;私はそれらがすべて同じ可能性を提供するように見えることを意味します)。だから私は公式のものを学びたいのです。
承認された回答:
特定のシステムでデフォルトのシェルを使用する必要はまったくありません。 DebianとFreeBSDはどちらも多くの異なるシェルを提供しており、それらのほとんどまたはすべては、プレインストールされているか、簡単にインストールできるかの両方で利用できます。
命名に気をつけてください。 /bin/csh
では珍しいことではありません 本当にtcshになるか、/bin/sh
の場合 bashまたはkshになります。
sh
、Bourneシェルは、現在も一般的に使用されている最も古いUnixシェルです。 bash
おそらく最も広く使用されているsh派生物です。 ksh
およびzsh
広く普及しています。
csh
、Cシェルは、BillJoyによってBSD用に開発されました。 sh
よりも便利なインタラクティブな使用を可能にするいくつかの機能があります (または少なくとも古いバージョンのsh
より 当時存在していた)。 tcsh
csh
から派生 、および多くの新機能を追加します。それらのほとんどはインタラクティブな使用を目的としています。 csh.whynotを読んで見てきたように、cshとtcshは、インタラクティブではなく、スクリプトに使用する場合にいくつかの問題があります。
個人的には、cshから始めて、利用可能になったときにtcshに切り替えました。私は現在、スクリプトにcshを使用することはめったになく、shまたはbash(またはかなり複雑なものにはPerl)を好みます。
関連:lsの-Fオプション?(更新、数年後:tcshを放棄してから、bashをインタラクティブに使用しています。)
私のアドバイスは、FreeBSDとDebianの両方でそれを使用して、単一のシェルを選び、それをよく学ぶことです。 tcshを選択した場合は、Debianにインストールする必要があると思います:sudo apt-get install tcsh
。 bashを選択した場合、それがFreeBSDにプレインストールされているかどうかはわかりません。そうでない場合は、インストールも同様に簡単です。
同じシェルをインタラクティブに使用したり、スクリプトを作成したりする必要はありませんが、混乱を避け、学習曲線を短くすることができます。
kshはおそらくbashとほぼ同じくらい強力であり、zshはさらに強力です(そして、私が時間をかけて学ぶことのなかった多くの機能を備えています)。
FreeBSDとDebianの両方(および使用する可能性のある他のUnixライクなシステム)、およびインタラクティブな使用とスクリプトの両方に対して、bashをお勧めします。しかし、他の選択肢は完全に正当であり、いくつかはあなたにより適しているかもしれません。