FreeBSDの公式シェルはtcsh
であり、Debianではそのdash
であるという多くの記事を読みました。しかし、私がecho $Shell
(FreeBSD)またはDebianではenv
、最初のケースではシェルはcsh
、Debianではbash
であると表示されます。
これは新規インストールです。 rootアカウントと通常のユーザーアカウントでテストしました。また、FreeBSDで新しいアカウントを作成するとき、3つのシェルを選択できます。 sh
、csh
またはtcsh
。選択しない場合は、csh
がアカウントのデフォルトです。
それらのシステムの下での公式の標準シェルは何ですか? FreeBSDではtcsh
またはcsh
ですか? Debianではdash
またはbash
ですか?
何か悪いことをするのは私ですか?または、記事やサイトに誤った情報がありますか?
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であるのは珍しいことではありません。
BourneShellであるsh
は、現在も一般的に使用されている最も古いUnixシェルです。 bash
はおそらく最も広く使用されているsh派生物です。 ksh
とzsh
も普及しています。
Cシェルであるcsh
は、BillJoyによってBSD用に開発されました。 sh
よりも(または少なくとも当時存在していた古いバージョンのsh
よりも)便利なインタラクティブな使用を可能にするいくつかの機能があります。 tcsh
はcsh
から派生し、多くの新機能を追加します。それらのほとんどはインタラクティブな使用を目的としています。 csh.whynot を読んで見たように、cshとtcshは、インタラクティブではなくスクリプトに使用する場合にいくつかの問題があります。
個人的には、cshから始めて、利用可能になったときにtcshに切り替えました。私は現在、スクリプトにcshを使用することはめったになく、shまたはbash(またはかなり複雑なものにはPerl)を好みます。
(更新、数年後:tcshを放棄して以来、bashをインタラクティブに使用しています。)
私のアドバイスは、FreeBSDとDebianの両方でそれを使用して、単一のシェルを選び、それをよく学ぶことです。 tcshを選択した場合は、Debianにインストールする必要があると思います:Sudo apt-get install tcsh
。 bashを選択した場合、FreeBSDにプリインストールされているかどうかはわかりません。そうでない場合は、インストールするのも同様に簡単です。
同じシェルをインタラクティブに使用してスクリプトを作成する必要はありませんが、混乱を避け、学習曲線を短くすることができます。
kshはおそらくbashとほぼ同じくらい強力であり、zshはさらに強力です(そして、私が時間をかけて学ぶことのなかった多くの機能を備えています)。
FreeBSDとDebianの両方(および使用する可能性のある他のUnixライクなシステム)、およびインタラクティブな使用とスクリプトの両方に対して、bashをお勧めします。しかし、他の選択は完全に合法であり、いくつかはあなたにより適しているかもしれません。