単一のSSH接続を介して複数のターミナルセッションを使用するにはどうすればよいですか?


21

Ubuntuサーバーエディションを実行しており、SSHでさまざまなタスクを実行できます。私が望むのは、サーバーにSSHで接続してサーバーアプリケーションを開始し、(同じSSHインスタンス内で)別の「仮想」セッションに切り替えて、サービスに対してクライアントコールを実行する機能です。サービスを開始するとブロッキングコールが発生するため、別のSSHセッションを起動しないと、クライアントコールを実行できません。

UIが仮想デスクトップで行うような、より洗練された方法があるかもしれないと思っていました。

回答:


24

使用したいのは、screenまたはさらに良いのは、byobuと呼ばれる画面のユーザーフレンドリーなラッパーです。

画面を使用すると、同じsshセッションで複数の仮想端末セッションを実行できます。チュートリアルヘルプページが用意されています。

byobuは、ctrl-aのキーの組み合わせではなく、単純なファンクションキーを使用して新しい画面を簡単に開くことができるラッパーです。また、名前を付けることができるすべての開いている仮想端末を含むステータス行も表示します。

もう1つの優れた機能は、ssh接続が切断されている間、すべての画面を維持できるという事実です。sshを介して再度接続し、byobuを呼び出すだけで、すべては以前と同じです。

最後に、by風のスクリーンショットをいくつか。


5

GNU Screenはあなたが探していた答えです-しかしそれはViによく似ています。成功したScreen環境をセットアップするためのコマンドについて多くのことを学びました。ここから始めましょう。まず、この.screenrc http://paste.ubuntu.com/473764/を使用して、リモートサーバーのユーザーのホームフォルダーに保存します。リモートマシンの次のインストール画面(sudo apt-get install screen)次に、「画面を起動する」ためのコマンドをいくつか示します。

screen-これは非常に簡単です。新しいスクリーンセッションを開始します screen -ls-アクティブなスクリーンセッションをすべてリストします。はい、複数の画面内に複数の端末を配置できます。とても甘い。

サンプル

screen -ls
There is a screen on:
    16467.pts-0.ubuntu  (08/05/2010 07:47:53 PM)    (Detached)
1 Socket in /var/run/screen/S-marco.

screen -x <pid> -これにより、IEの切り離された画面セッションが再開されます。 screen -x 16467

画面が表示されたら(そしてサンプル.screenrcファイルを使用したら)、下部に次のように表示されます。

(LOAD) 0$* bash

サーバーの負荷と、開いているすべての「ターミナルタブ」のリストです。現在、1つのウィンドウのみ。何かを入力し、このキーの組み合わせCtrl + Aを押しcます:リリースしてからを押します。Ctrl + Aエスケープシーケンスです。すべてのコマンドはこの組み合わせで開始されます。c新しいタブを作成します。(LOAD) 0-$ bash 1$* bash別のタブが開いており、アクティブなタブが1番であることを示すフッターが表示されます。画面セッションごとに最大60個のタブを開くことができます。

あなたは画面を終了しかし、それは使用を実行しておきたい場合はCtrl + A、その後d、あなたのセッションをデタッチするであろう。最後にCtrl + A、then kを使用してタブを閉じることができます(タブがロックされる場合)。通常exit、ターミナルにいるかのように入力するだけで、そのタブが閉じられます。

最後にリストにすべてのウィンドウは、あなたが入力でき開いCtrl + Aた後"

Screenには多数のオプションがあり、詳細についてはmanファイルに注ぐ必要があります。いくつかの欠点があります。スクロールコントロールを使用してロールバックする必要がある画面でスクロールバーを使用することはできませんが、これで実行可能なオプションであるかどうかを確認するには、上記で十分です。これについての素晴らしいことと、私がシステム管理者として多くのことを扱ってきたこと-ネットワーク接続。ネットワークがドロップアウトしても、操作は失われません!画面はサーバー上で実行されているため。あなたは、単にその後、SSH経由で再度ログインする必要がありますscreen -lsし、screen -x自分のセッションに戻って。


txwikingerが役立つリンクで私を打ち負かしたようです!
マルコセッピ

Ctrl + A次に?、入力してヘルプページに移動します。すべてのコマンドとショートカットがそこにリストされています。入力Ctrl + A後、:名前を覚えているが、ホットキーを忘れてしまった場合は、名前でのコマンドのいずれかを使用します。
ダン


0

私はEmacsを使用しているため、screenのデフォルト設定は私の人生を難しくしています。

$ cat /home/cjac/.screenrc 

エスケープ^ \

やってみて!

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.