Byobu vs. GNU Screen vs. tmux —スキルの有用性と移転可能性[非公開]


95

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

学ぶためのツールを選択するのに役立つように、次の点でどのように異なるのかを知りたいと思います。

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

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


1
自分の質問にコメントする。投稿した後、StackExchangeで各タグが使用された回数を見ました:gnu-screen:199回tmux:125回byobu:18回それは、byobuがまだ人気がないということですか?または、by風は非常に直感的であるため、使用方法について誰も質問していませんか?
ケータイ

1
なぜなら、追加機能を備えたbyobu単なる分岐であるscreenため、gnu-screenタグが適用されます。
悲しみ

2
ドキュメント(manpages.ubuntu.com/manpages/precise/en/man1/byobu.1.html)によると、Byobuのデフォルト設定では、tmuxをデフォルトのバックエンドとして使用します。byobuがgnu screenのフォークの場合、tmuxはgnu screenよりも優れているのでしょうか?
ケータイ

1
興味深いことに、現在はtmuxをサポートしていることを知りませんでしたが、それは単なるラッパースクリプトであり、明らかにフォークでもありません。しかし、はい、tmuxはいくつかの点でScreenよりも優れています(少なくとも彼らのFAQはそう主張しています)。
悲しみ

22
びょうぶは何の分岐でもありません!Gnome / KDEがXorgの上にあるレイヤーに似ている、ScreenとTmuxの上にあるレイヤーです。
ダスティンカークランド

回答:


32

Tmux対GNU Screenについては、

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

頻繁に繰り返されるいくつかの一般的な用語:

  • Tmuxは新しいです。これは、少し手の込んだもの(単純な垂直分割、素敵な緑の線)であり、互換性などのテストが少し劣っていることを示しています(支持者によると、無視できる程度)。
  • Tmuxはリソースに頼っています。
  • GNU Screenはいたるところに見られ、おそらくより多く使用されています。

これとは別に、いずれかの選択肢の特定の機能を見ることができ、個人的な好みが議論を支配します。私は個人的にGNU Screenを頻繁に使用していましたが、今はTmuxを使用しています。

o風が私にとって「キラー機能」を持っているとは思いません。私のユースケースには何も必要ないと思う抽象化を提供します。


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


268

いい質問です! 価値のあることについては、私はByobuの著者であり、メンテナーです。

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

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

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

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

私は約2年前にTmuxについて学びましたが、ソースコード、デザイン、インターフェイス、アクティブなコミュニティに本当に夢中になりました!上流のTmuxに修正を提供し、メーリングリストでトピックを議論するのがずっと楽になりました。そして、どこでもそれを使用するBy風ユーザーとして、私はTmuxセッションに4年以上のBy風で楽しんでいたものと同じルックアンドフィールを望んでいました。そこで、私はすべてのByobuコードを移植して、Tmuxをバックエンドとして、Screenと同じようにうまく機能するようにしました。以下のよう屏風5.0リリースはまだレガシーモードでサポートされている画面で、tmuxは、今のデフォルトのバックエンドです。現在、Byobuは、大幅に改善された256色サポート、UTF8文字、水平/垂直ウィンドウ分割など、Tmux over Screenの多くの最新機能を活用しています。

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

乾杯、ダスティン


16
良い説明。この画面には非常に多くのパッチが適用されているのは驚くべきことです。新しいメンテナーなどが必要ですか?そして、by風は素晴らしいです-ありがとう。
nealmcb

10
2回投票できるといいのですが。私はもう何年もby風を使用してきましたが、最近になって私に隠れている複雑さを知ったのはごく最近のことです。
ジェイミークック

2
私は常にCTRL+` as escape. With screen`を使用していますが、tmuxこれは魅力のように機能しますが、byobu(Debian 7.1 Wheezy)では機能しません。
ティノ

1
これでscreen新しいメンテナーができ、開発が勢いを増しているようですが、状況は変わりますか?
ムル14年

これらの意見のデフォルトは、それをより若いtmuxプロジェクトにできなかったでしょうか?答えには「なぜtmuxプロジェクトに貢献しないのか?」という段落が欠けているようです。xkcd.com/927
user2707671

12

実際のユースケースからの最大の違いはscreentmux分割ウィンドウの処理方法です。

のウィンドウscreenは、単一の疑似端末です。screenセッションに接続すると、端末を複数のリージョンに分割でき、各リージョンでscreenウィンドウを表示できます。複数のリージョンで同じウィンドウを表示できます。分割はセッションの一部ではありません。デタッチすると、スプリットはなくなります。

ウィンドウはtmux、ペインごとに1つ以上の疑似端末で構成されます。これは、後でデタッチして再アタッチしてもペインが保持されることを意味します。また、で一度に表示できるウィンドウは1つだけであり、tmux複数のウィンドウ間でペインを共有できないことも意味します。ただし、複数のセッション間でウィンドウを共有することtmuxできます。

で使用されるモデルを好みtmuxますが、で使用されるモデルよりも優れていると主張することはできませんscreen


3
引数pro tmuxは、ドイツ鉄道です。高速列車に乗っsshて、モバイル接続を使用して作業を試みるとtmux、頻繁に接続が切断された後、再ログイン後にジャンプホスト上のすべてのペインを再配置する必要がないため、モデルがはるかに優れていることがすぐにわかります。SCNR-
ティノ

3
あなたが頻繁に切断に直面している場合、私はに探してお勧めモッシュとは違って、失われた信号から自動的に回復することができますssh
シプリアンTomoiagă

4

私にとって、tmuxの最大の課題は、セッション共有の実装でした。

GNU Screenでは、別のユーザーがセッションに接続できるようにするか、単にセッションを複数の端末に接続させると、ユーザーは独立して操作できます(端末BからセッションAの画面を切り替えても、端末Aは画面を切り替えませんセッションA)。

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

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


6
tmuxには「リンク」セッションの概念がありますnew-session -t shared。「共有」のウィンドウは新しいセッションに表示され、一方の新しいウィンドウは他方に表示され、一方のウィンドウを閉じると他方のウィンドウが閉じます。ただし、各クライアントが表示するウィンドウは、接続する実際のセッションに固有です。
chepner
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.