tcsh
FreeBSDの公式シェルはであり、Debianの公式シェルはという記事をたくさん読んでいますdash
。しかし、私がecho $shell
(FreeBSD)またはenv
Debianにいるときは、シェルがcsh
最初の場合であるbash
か、Debianです。
新しくインストールしたものです。私はrootアカウントと通常のユーザーアカウントでテストしました。また、FreeBSDで新しいアカウントを作成するときに3つのシェルsh
または。選択しないと、その項目はアカウントのデフォルト値になります。csh
tcsh
csh
これらのシステムの公式標準シェルは何ですか?それともFreeBSDにtcsh
ありますか?csh
Debianですかdash
、bash
Debianですか?
私は何が間違っていましたか?それとも、これらの記事やウェブサイトが誤解を招くのでしょうか?
Debian用のシェルとFreeBSD用の2つのシェルを学びたいのですが、どちらが公式シェルかわからないので、どんなことを学ぶべきかわかりません。
また、どのシェルを学ぶ必要があるのかを探していたところ、次のことがわかりました。http://www.faqs.org/faqs/unix-faq/shell/csh-whynot/
ただ私たちが好きではない人ですかcsh
、それとも本当に避けるべきですかcsh
?
私は最新のDebianとFreeBSDのバージョンを使用しています。
私はこれらのすべてのシェルオプションで迷子になり始めました。彼らはすべて私に同じように見えます(構文を除いて、すべて同じ可能性を提供するようです)。だから正式なことを学びたいです。
答え1
特定のシステムのデフォルトシェルをまったく使用する必要はありません。 DebianとFreeBSDはどちらもさまざまなシェルを提供し、ほとんどまたはすべてのプリインストールまたは簡単にインストールして使用できます。
ネーミングに注意してください。/bin/csh
実際のtcsh、/bin/sh
bash、kshは珍しいことではありません。
sh
Bourneシェルは依然として一般的に使用されている最も古いUnixシェルです。 bash
おそらく最も広く使用されているsh派生語であり、ksh
非常zsh
に一般的です。
csh
Cシェルインは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を使用することをお勧めします。しかし、他のオプションも完全に合理的であり、一部はあなたにとってより良いかもしれません。