FreeBSDとDebianではどのシェルを学ぶべきですか?

FreeBSDとDebianではどのシェルを学ぶべきですか?

tcshFreeBSDの公式シェルはであり、Debianの公式シェルはという記事をたくさん読んでいますdash。しかし、私がecho $shell(FreeBSD)またはenvDebianにいるときは、シェルがcsh最初の場合であるbashか、Debianです。

新しくインストールしたものです。私はrootアカウントと通常のユーザーアカウントでテストしました。また、FreeBSDで新しいアカウントを作成するときに3つのシェルshまたは。選択しないと、その項目はアカウントのデフォルト値になります。cshtcshcsh

これらのシステムの公式標準シェルは何ですか?それともFreeBSDにtcshありますか?cshDebianですかdashbashDebianですか?

私は何が間違っていましたか?それとも、これらの記事やウェブサイトが誤解を招くのでしょうか?

Debian用のシェルとFreeBSD用の2つのシェルを学びたいのですが、どちらが公式シェルかわからないので、どんなことを学ぶべきかわかりません。

また、どのシェルを学ぶ必要があるのか​​を探していたところ、次のことがわかりました。http://www.faqs.org/faqs/unix-faq/shell/csh-whynot/ ただ私たちが好きではない人ですかcsh、それとも本当に避けるべきですかcsh

私は最新のDebianとFreeBSDのバージョンを使用しています。

私はこれらのすべてのシェルオプションで迷子になり始めました。彼らはすべて私に同じように見えます(構文を除いて、すべて同じ可能性を提供するようです)。だから正式なことを学びたいです。

答え1

特定のシステムのデフォルトシェルをまったく使用する必要はありません。 DebianとFreeBSDはどちらもさまざまなシェルを提供し、ほとんどまたはすべてのプリインストールまたは簡単にインストールして使用できます。

ネーミングに注意してください。/bin/csh実際のtcsh、/bin/shbash、kshは珍しいことではありません。

shBourneシェルは依然として一般的に使用されている最も古いUnixシェルです。 bashおそらく最も広く使用されているsh派生語であり、ksh非常zshに一般的です。

cshCシェルインはBill JoyがBSD用に開発しました。これにはsh(または少なくとも当時存在していた以前のバージョンよりも)shインタラクティブな使用に便利ないくつかの機能がありました。tcshから派生し、csh多くの新機能が追加され、ほとんどはインタラクティブな使用のためのものです。読んでみるとわかりますがcsh.whynot、csh、およびtcshは、対話型ではなくスクリプトに使用するときにいくつかの問題があります。

個人的に私はcshで始まり、tcshが利用可能になったら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を使用することをお勧めします。しかし、他のオプションも完全に合理的であり、一部はあなたにとってより良いかもしれません。

関連情報