web-dev-qa-db-ja.com

Byobu vs. GNU Screen vs. tmux - スキルの有用性と譲渡性

これまで私は Konsole を使って複数のシェルセッションを管理していましたが、まだ試していません ByobuGNU Screen 、および tmux のほうが優れています。複数のシェルをサポートします。それらはすべて1つの主要な機能を共有します。それは現在のセッションをデタッチし、後でその古いセッションに再アタッチすることを可能にすることです。

私が学ぶためのツールを選ぶのを手助けするために、私は知りたいのですが:それらは以下の点でどう違うのですか?

  1. 特徴(明らかに)
  2. プロジェクトの成熟度あまり変化しているツールを学びたくはありません。機能拡張は大歓迎ですが、機能が消えるなどの驚きは好きではありません。
  3. 学習曲線
  4. 異なるプラットフォームでの可用性私がツールを学んだ場合、私はFreeBSDサーバ、SuSEデスクトップ、またはUbuntuでそれを使用できるようにしたいです。
  5. 他の対話型シェルプログラムとの互換性今までと同じ方法でvimおよびemacs -nw(非ウィンドウモードまたはテキストモード)を使用できますか?キーボードショートカットは他のツールのショートカットと競合しませんか?

私はそれらすべてを試したところ、ByobuはGNU Screenとtmuxの一種のフロントエンドのように見えます。では、なぜGNU screenプロジェクトに貢献して新しい機能を追加するのではなく、誰かがByobuを作成したのはなぜですか? ByobuがGNU画面のある種の高度なインターフェースモードではないのはなぜですか? GNU screenをバックエンドとして日常のツールとしてByobuを使用している場合、特定のマシンにGNUしかない場合はByobuなしでGNU Screenを使用するようにこの知識を転送できます。 _スクリーン?

90
Keitai

Tmux vs GNU画面の場合

ブログなどで見つけることができる他のいくつかの比較の化身。

しばしば繰り返されるいくつかの一般的な用語:

  • Tmuxは新しいです。これはそれが少し派手(単純な垂直分割、素敵な緑色の線)であることを意味します。互換性(その支持者によればごくわずかな程度まで)。
  • Tmuxはリソースに関して無駄がありません。
  • GNU Screenはいたるところに見られ、そしておそらくもっともっともっと使われるでしょう。

これとは別に、1つまたは他の選択肢のための特定の機能を見ることができ、個人的な好みが議論を支配するでしょう。私は個人的にGNU Screenを多用していました - 今はTmuxを使用します。

私には、Byobuに "キラー機能"があることがわかりませんでした。それは私のユースケースには何も必要ないと私が思うところで抽象化を提供します。


別の見方をすると、ByobuはバックエンドとしてGNU ScreenまたはTmuxのどちらかを使用できることに注意してください。これは、ユーザーのPOVとの違いがほとんど表面的であることを示しています。

29

いい質問です! それが価値があるのは、私が Byobの著者でありメンテナーです

Byob は、元々 GNU Screen の上に位置するように記述された構成レイヤーですが、現在は Tmux の上でも動作します。

Googleplex で多くのScreenおよびUbuntu Serverユーザーと会ったときに、私はByobuを 2008年12月 で書き始めました。そして、all私たちの~/.screenrc構成で、きちんとした/楽しい/役に立つハックの独自の束を維持しました。そして、使用した数十または数百のサーバー間でそれらを手動で移動する必要がありました。私たちはヒントとトリックの取引を開始し、それらを元の GPLv "screen-profiles"と呼ばれるプロジェクトに集め始めました。約6か月後、コミュニティ全体が「 screen-profiles 」を中心に発展し、プロジェクトは単なるスクリーンハック以上のものになりました。設定ユーティリティ、ライブステータスプラグイン、キーバインドがありました。 プロジェクトの名前を変更しました "Byobu"は、エレガントで折りたたみ式の "スクリーン"を表す日本語の単語であり、 "Byobu $ FOO"でGoogleよりも「スクリーン$ FOO」。

現在、ほとんどのLinuxディストリビューションのByobu( buntDebianFedoraArch )、およびほとんどのMacで機能/ BSDおよび他のUNIX、同じルックアンドフィール、便利なキーバインド、アクセスする必要のある端末での動的システムステータス情報を提供します。

GNU Screenプロジェクトに貢献しませんか?いくつかの理由...構成オプションだけでなく、By風の動作のすべて。どれも機能するためにScreenソースベースに含める必要はありません。 Screenがデフォルトでそれらを含んでいる場合、いくつかの事柄はより良く動作するか、より良く動作するかもしれませんが、変更の多くは非常に「意見があります」- 25-year-old アップストリームプロジェクトに貢献することは通常困難または不可能。また、GNU Screenプロジェクトは、非常にゆっくりと動いています。それは25歳以上で、 2008年8月 以降公式リリースされていません。すべてのディストリビューションは、/ usr/bin/screenの動作とセキュリティを維持するためだけに、膨大な数のパッチを提供しています。たとえば、UbuntuとDebianは現在、〜48 patches で19K行のコードを保持しています。

私は約2年前にTmuxについて学びましたが、ソースコード、デザイン、インターフェイス、アクティブなコミュニティに本当に夢中になりました!私ははるかに簡単な時間を過ごしました 貢献する修正 上流のTmuxとメーリングリストのトピックについて議論します。そして、あらゆる場所でそれを使用するBy風ユーザーとして、私はTmuxセッションに4年以上のo風で楽しんでいたものと同じルックアンドフィールを望んでいました。つまり、 ported すべてのByobuコードは、Tmuxをバックエンドとして、Screenと同じようにうまく機能します。 Byobu 5.0 release の時点で、Tmuxがデフォルトのバックエンドになり、Screenは引き続きレガシーモードでサポートされます。現在、Byobuは、大幅に改善された256色のサポート、UTF8文字、水平/垂直ウィンドウ分割など、Tmux over Screenの多くの最新機能を活用しています。

ScreenまたはTmuxのデフォルト設定に満足している場合、または独自の構成ファイルをゼロから作成したい場合は、どうしてもScreenとTmuxが私たちの生活に長年の効率を追加した素晴らしいユーティリティとして。 ScreenとTmuxがすぐに使えることを実際に拡張および拡張する一連の構成に興味がある場合は、By風をご覧ください!

乾杯、ダスティン

264
Dustin Kirkland

実際の使用例では、screentmuxの最大の違いは、分割ウィンドウの処理方法です。

screen内のウィンドウは単一の疑似端末です。 screenセッションにアタッチすると、端末を複数の領域に分割し、それぞれの領域にscreenウィンドウを表示できます。複数の地域で同じウィンドウを表示できます。分割はセッションの一部ではありません。あなたがデタッチすると、あなたの分割は消えてしまいます。

tmuxのウィンドウは、1つのペインに1つずつ、1つ以上の疑似端末で構成されています。これは、後で取り外して再取り付けしても、ペインは存続することを意味します。また、tmuxでは一度に1つのウィンドウしか表示できず、複数のウィンドウでペインを共有することはできません。ただし、tmuxウィンドウを複数のセッションで共有できるようにします

私はtmuxで使用されているモデルを好みますが、screenで使用されているモデルより優れているとは言えません。

12
chepner

私にとって、tmuxの対処法はセッション共有の実装でした。

GNU画面で、他のユーザーにセッションへの接続を許可したり、単にセッションを複数の端末に接続させたりしても、それらのユーザーは独立して操作できます。端末Aはまた、セッションA)において画面を切り替える。

上記はtmuxのケースではありません(まだですか?)または動作を変更する方法をまだ見つけることができませんでした。

Tmuxでこの動作を変更する方法を誰かが知っている場合、またはこの動作を変更するようにtmuxが更新された場合、またはこの動作を変更するオプションを指定した場合は、コメントを残してください。

4
therealklanni