193

Mac OS Xのデフォルトのシェルはbashです。これは、私が一般的に使用して満足しているものです。私はそれを当然のことと思っています。しかし、それがもっと多くのものを自動完了したなら、それは本当に素晴らしいことです、そして私はzshこの点に関して良いことを聞いたことがあります。しかし、コマンドラインでの生活はそれほど悪くないので、コマンドラインの使用法を少しだけ改善するために設定をいじるのに何時間も費やす傾向はあまりありません。

(私が理解しているように、bashより巧妙にオートコンプリートするように構成することもできます。それは私がそれほど熱心ではない構成です。)

zsh少数の場合でも、に切り替えると私の生活が楽になりますか?それとも、なぜそれが優れているのかを学ぶために時間を割いた場合、それはより優れたシェルにすぎませんか?(例もいいでしょう:)


@RodneyAmato と@VulcanEager は、それぞれに固執してに切り替える2つの理由を示しています。両方を調査する必要があるようです。しかたがないbashzsh:)

議論の両側から意見を持っている人はいますか?

4

6 に答える 6

85

個人的にはzshが好きです。

一般に、再帰的なグロビングのようなことをすぐにやりたいと思うまでは、おそらくそれと bash の違いに気付かないでしょう:

  • **/*.c例えば。

または、サフィックスエイリアスを使用して、特定のプログラムを異なるサフィックスに関連付けて、それらを直接「実行」できるようにします。以下のエイリアスを使用すると、プロンプトで入力するだけで C ソース ファイルを「実行」でき./my_program.cますvim ./my_program.c。(ファイルのアイコンをダブルクリックするのと同じようなものです。)

  • alias -s c=vim

または、今日変更されたファイルの名前を出力します。

  • print *(e:age today now:)

おそらくこれらすべてを bash で行うことができますが、zsh での私の経験では、やりたいことがあれば、おそらくzsh-loversで見つけることができます。「From Bash to Z-Shell」という本もとても役に立ちます。

選択肢が多すぎてドキドキするのも楽しい!

于 2008-09-17T14:22:46.320 に答える
70

カジュアルに使用する場合は、bashを使用して、bashコンプリーションをインストールすることをお勧めします。

インストールは非常に簡単です。http: //www.caliban.org/bash/index.shtml#completionからbash-completion-20060301.tar.gzを取得し、

tar -xzvf bash-completion-20060301.tar.gz

次に、bash_completion/bash_completionファイルを/etcにコピーします。

sudo cp bash_completion/bash_completion /etc

パスワードの入力を求められます。追加の完了スクリプト用に/etc/bash_completion.dディレクトリを作成することをお勧めします(たとえば、そこにgit完了スクリプトがあります)。

これが完了したら、最後のステップは、ホームディレクトリの.bash_profileファイルに次の内容があることを確認することです。

if [ -f /etc/bash_completion ]; then
     . /etc/bash_completion 
fi

ログイン時に完了ファイルをロードするためにその中にあります。

それをテストするには、新しいターミナルを開いて、cvsで完了してみてください。完了リストに、cvsオプションが表示されます。

于 2008-09-04T08:28:02.617 に答える
38

zsh に切り替えます。以下にアクセスできます。

  1. zmv: できること:zmv '(*).mp3' '$1.wma'何千ものファイルに対して。
  2. zcalc: 非常に快適な電卓で、 より優れていbcます。
  3. zparseopts: スクリプトに指定された任意の複雑なオプションを解析するためのワンライナー。
  4. autopushd:以前のディレクトリに戻るにはpopd、後でいつでも実行できます。cd
  5. 浮動小数点のサポート。時々必要です。
  6. ハッシュのサポート。場合によっては、重要な機能にすぎないこともあります。
于 2009-05-26T08:45:16.620 に答える
13

ZSH を使用して完成度を高めたい場合、構成は非常に簡単です。これを ~/.zshrc に置きます:

autoload -U zutil      # [1]
autoload -U compinit   # [2]
autoload -U complist   # [3]
compinit

ただし、ZSH の他のすべての優れた機能をチェックする価値があります。上記の例では、十分に補完された非常に単純なプロンプトが表示されます。構成をいじりたくないが、ZSH でできることを確認したい場合は、Google で「zshrc」を検索すると、すぐに使用できる構成が得られます。

于 2008-09-19T23:12:57.767 に答える
6

zshにはコンソールGUI構成があります。構成ファイルをいじる必要なしに、非常に迅速かつ簡単にセットアップできます。セットアップにそれほど時間はかからないと思います。デフォルトを使用するだけでおそらく10秒かかるので、先に進んで試してみてください。

于 2008-09-04T08:08:30.217 に答える
3

Staaleは、zshを初めて実行したときに自動実行されるプログラム(CUI)のようなウィザードについて話しています。いくつかの質問に答えて、デフォルトとその設定を表示/変更してください。

IBMdeveloperWorksにはzshに関する優れたリソースがあります。

私は非常に高度な機能を使用したことがなく、これまでのところ、bashから来る人を妨げるような深刻な違いに遭遇したことはありません。

いくつかの例:

  • !?pattern <Tab>は、履歴一致パターンの最後のコマンドまでオートコンプリートします。非常に便利。

  • RHSでプロンプトを構成できます。1つの使用法は、左側に固定幅のプロンプトを保持して、右側のプロンプトとしてpwd(または可変幅のもの)を表示しながら、すべてのコマンドが適切に整列するようにすることです。

  • 複数のファイルからの入力をリダイレクトできます(まだこれを試してみてください):cat <file1 <file2 <file3

于 2008-09-04T08:27:10.403 に答える