主流* NIXシェルの基本的な違いは何ですか? [閉鎖]

主流* NIXシェルの基本的な違いは何ですか? [閉鎖]

主流* NIXシェルの基本的な違いは何ですか?どのような状況で他のものを使用するように誘導できますか?これらのいくつかはユーザーの好みによって変わることがあることを知っていますが、Bashだけを使ったことがあり、他のシェルがどこで役に立つかを知りたいです。

また、あるシェルまたは別のシェルで実行されたときにユーザーが作成したシェルスクリプトにどのような影響がありますか、それともファイルの上部にあるシェルのみを変更しますか?私の直感は簡単ではないと言います。

ベストアンサー1

インタラクティブな使用には2つの主要な競合他社があります。吹くそして扱いにくい、そして落ち込んでtcshそして新しく来た人

  • BashはGNUプロジェクトの公式シェルであり、ほとんどのLinuxディストリビューションのデフォルトシェルです。基本的なインストールの一部として適切なインタラクティブシェルが提供されていない他のユニスでは、人々は自分自身を強化します。また、見ることができますBashはなぜどこにいますか?(歴史的な内容が多いです。)

  • ZshはBashのほぼすべての機能とそれ以上の機能を備えています(有用です!)。最大の欠点は、よく知られていないことです。つまり、他の人が設定したシステムにインストールされていることを発見する可能性が少なく、これに関する他社文書が少ないことを意味します。また、見ることができますzshのどの機能を使用しますか?Bashで欠落しているzshで欠けている機能とは何ですか、その逆の場合も同じですか?BashとZshの実際の違いは何ですか?

  • Tcshは(1990年代初頭まで)以前のcshと同様に、最高のインタラクティブ機能を備えたシェルでした。これにより、インタラクティブな使用が人気になりました(しかしスクリプト用ではない)。 Zshはtcshに追いついてすぐに進化し、Bashは2000年代初頭に追いついた(プログラミング機能を介して行われた)、tcshは過去15年間でほとんど進歩がありませんでした。だから今はtcshを学ぶ理由はありません。

  • フィッシュは前任者よりもきれいになろうとしています。これには、いくつかのきれいな機能(より簡単な構文、コマンドラインの構文の色付け)がありますが、他の機能(作成者が気に入らない機能)が欠けています。魚のコミュニティはzshコミュニティよりはるかに小さいので、影響はより深刻です。


スクリプトの場合、スクリプトの移植性を望む程度に応じて複数の言語をターゲットにすることができます。

  • Unix系列であるふりをするすべてにから派生したシェルの周り/bin/shにいくつかの商用ユニットがあります。/bin/shPOSIX遵守する。

  • 今日実行されているほとんどすべてのUNIXは、少なくともshPOSIX.2-1992に準拠し、通常は少なくともPOSIX:2001(別名Single Unix v3)。シェルは、/usr/bin/posixなどの別のディレクトリに配置できます/usr/xpg6/bin。 POSIXエミュレーション層は、それをサポートするのに十分強力なほぼすべてのシステムに存在するため、魅力的なターゲットになります。

  • 多くのUNIXシステムではクッシュ 93これは、POSIX shにはないいくつかの非常に便利な機能(配列、連想配列、拡張グローブ(*(foo)、、、@(foo|bar)…)、ヌルグローブ(~(N)foo*)、…)を提供します。 Kshは商用ソフトウェアで始まり(いくつかの習慣が形成されてから2000年に無料になります)、多くの無料ユニス(Linux、* BSD)は古い無料クローン(*)のみを提供する習慣を持っています。PDKSH)には、これらの便利な機能がたくさんありません。 Pdkshは現在進行中です。ムケシOpenBSDの外では、mkshでさえ、すべてのksh93機能を実装していません。最近では、ksh93をどこでも使用できるとは期待できません。特にBashが標準であるLinuxではさらにそうです。

  • 吹くLinuxでは常に使用でき(一部の組み込みバリアントを除く)、通常は他のUnixでも使用できます。時には別の構文を使用しますが、ksh93の便利な機能がほとんどあります。

  • ジッシュksh93とBashの便利な機能のほとんどが装備されています。コア構文はよりきれいですが、Bourneと互換性がありません。 macOSを除いて、インストールしていないシステムでzshを使用できることを期待しないでください。

  • より高度なスクリプトをご希望の場合は、以下をご覧ください。真珠またはPython。これらの言語は、適切なデータ構造、優れたテキスト操作機能、優れたプロセス構成と通信メカニズム、利用可能な多数のライブラリを備えています。ほとんどのUNIXシステムには、オペレーティングシステムにバンドルされているか管理者がインストールしたスクリプトがあります(PerlスクリプトとPythonスクリプトが多すぎて少なくとも1つ以上のシステムがほとんどないため)。

おすすめ記事