スクリーンセッションの名前を設定する


44

UNIXスクリーンセッションに特定の名前を付ける方法はありますか?たとえば、同じプログラムを複数回実行し、それぞれが異なるパラメーターを使用しており、どれがどれであるかを伝えたいとします。


プログラミングの質問ではありません。SuperUserまたはUnixに移動する必要があります。
-0xC0000022L

回答:


54

-S nameオプションを使用して、開始時にセッションに名前を付けることができます。実行中の画面内から、を入力して変更できますCTRL-a, :sessionname name。で実行中のスクリーンセッションを表示しscreen -ls、で名前でセッションに接続できますscreen -xS name

単一の画面セッション内で、各ウィンドウに名前を付けることもできます。これを行うには、目的CTRL-a, Aの名前を入力します。を入力してCTRL-a, "、名前付きウィンドウの対話型リストを表示し、そのリストから切り替えるウィンドウを選択できます。

画面と画面内の端末の両方に名前を付けると、それらが何であるか、そもそもなぜそれらを起動したのかを覚えておくのに非常に役立ちます。


開始後にスクリーンセッションの名前を変更することは可能ですが(「を使用」:sessionname NEWNAME)、「一般的にはお勧めできません」。$STY環境変数は、まだ元の名前を指します。参照screen:マニュアルgnu.org/software/screen/manual/html_node/Session-Name.html
キース・トンプソン

22

ここには2つの概念があり、どちらを念頭に置いているのかわかりません。

  • 複数の画面ウィンドウを使用できます。各ウィンドウは、シェルまたは他のプログラムを実行します。すべてのウィンドウは同じプロセスによってホストされます。C-a cウィンドウを作成し、C-a nそしてC-a pその次/前のウィンドウに切り替え、および。
  • 複数のスクリーンセッションを使用できます。各セッションは独自のプロセスによってホストされ、他のすべてのセッションから独立しています。再接続(-rまたは-R)オプションを指定しないで画面を開始すると、新しいセッションが作成されます。

Windowsにはタイトルがあります。タイトルは、-tコマンドラインオプション、C-a Aキーバインド、titleコマンド、または\ekエスケープシーケンスで設定できます。詳細については、シェルターの回答を参照してください。

セッションには名前を付けることができます。通常、コマンドラインで-Sオプションを使用して名前を設定します。名前を指定しない場合、画面が名前を構成します。複数のスクリーンセッションを使用する場合、通常はそれらに異なるセッション名を付けます。を使用して、実行中のスクリーンセッションをリストできscreen -lsます。各セッション行の最初の単語は12345.sessionname、12345がスクリーンプロセスIDであるところです。screen -r sessionnameまたはscreen -r 12345を使用して、名前またはプロセスIDで示されたセッションを再開します。


1
デフォルトのキーバインディングでは、タイトルを変更するにはCa Aを使用する必要があります。
enzotib11年

11

ああ...画面、それは私を取り戻す;-)

1つのウィンドウ

-t name
    sets the title (a.k.a.) for the default shell or specified program. 
    See also the "shelltitle" .screenrc command.

.screenrcから開始される複数のセッションの場合

screen -t top 2 nice top
screen -t ....

以下に、スクリーン用のマンページのオンラインコピーへのリンクを示します。

編集:追加

現在の画面名を変更するには、次のようなシェルスクリプトツールを作成します

cat scrnTitle.sh
#/bin/bash
echo -ne '\ek${0}\e\\'

テストされていないため、作業中のシステムで使用可能な画面がありません。


おかげで、これは大いに役立ちます。とにかく既存のスクリーンセッションの名前を変更する方法はありますか?
実際には

@Charlotte:編集を参照してください。投票ありがとうございます!
シェルター

素敵な答え@shellter!私は好奇心が強いです、あなたは最近あなたが何か他のもの(例えばtmux)を使うことを意味するために「私を取り戻します」と言ったのですか、それとも32歳以上だというだけですか?
tutuDajuju

1
@tutuDajuju:気をつけて、今考えてみると、私はscreen少なくとも25年使っています。今私を連れて行くのは特別なユースケースだからscreenです。通常は開いたままX-TermsですがX、486 PCでは実行できないと思われたときのことを覚えています;-)乾杯!
シェルター

@shellter参考までに、私は1992年に8Mb RAMを搭載した486 PCでXを実行しました...
Eno

4

実行中screen

Ctrl+a(またはscreenエスケープシーケンスが何であれ)A


3

上記の回答は、起動時に画面に名前を付ける方法をすでに示しています。また、画面の起動後に名前を変更できないことも指摘しています。ウィンドウのタイトルは設定できますが、画面への接続に使用される名前はpid.pty.hostのままです。

しかし、有用な効果を達成するために、エイリアスを使用するとかなりうまくいくことがわかりました。画面に名前を付けるのを忘れたり、特定のタスクの画面に自然になった多数の画面のセッションにいることに気づいた場合、それらにアタッチするコマンドのエイリアスを設定するだけです。

例:

alias goncompile='screen -r 2354'

aliasコマンドを単独で発行すると、現在の画面とそれらに接続するように設定したコマンドが思い出されます。

unaliasそれらを削除するために使用します。

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