「スクリーン」使用時のタブ


20

Ubuntu 10.04 を使用してます。インストールした後screen

sudo apt-get install screen

次のことをステップごとに実行して、2つのリモートサーバーへの2 つのssh接続を作成しました(ここドキュメントに従って、次の手順を実行します)。

1.端末ウィンドウを開き、コマンドを実行しますscreen

2.Ctrl + A+ cを押して、新しい仮想コンソールを作成します

3。 ssh usr@IP1

この時点で、リモートサーバー(IP1)に接続したことを示す1つの仮想コンソールがあります。

4.Ctrl + A+ cを押して、新しい仮想コンソールを作成します

5。 ssh usr@IP2

そのため、2つのリモートサーバー(IP1とIP2)に接続しました。ただし、1つのターミナルウィンドウに2つのタブはありません。代わりに、Ctrl+ A+ pCtrl+ A+ nを使用して、1つのターミナルウィンドウで2つの仮想コンソールを切り替える必要があります。

それは使用してそうということではありませんscreen、私が持っている可能性があり、2つのタブが 1台のリモートサーバへの各タブの表示1接続で、1つのターミナルウィンドウで。ターミナルウィンドウにタブがないのはなぜですか?

回答:


26

これは、ウィンドウの下部にタブとして、またタブの上に情報行として番号を表示.screenrcするためにどこでも使用しているものです。本当に必要なのは「ルックアンドフィール」です。screen

# skip the startup message
startup_message off

# go to home dir
chdir

# Automatically detach on hangup. 
autodetach on

# Change default scrollback value for new windows
defscrollback 10000

# start with visual bell as default
vbell on
vbell_msg "bell on %t (%n)"

# look and feel
caption always "%{= bb}%{+b w}%n %t %h %=%l %H %c"
hardstatus alwayslastline "%-Lw%{= BW}%50>%n%f* %t%{-}%+Lw%<"

activity "Activity in %t(%n)"

shelltitle "shell"
shell -$SHELL

以下を追加して、タブscreenが最初に作成されたときに2つのタブを自動的に追加できます

screen ssh usr@IP1
screen ssh usr@IP2

また、シェルコマンドおよびプロンプトから発行されたエスケープコードを使用して、ステータスの内容を更新できます。たとえば、myでこれを使用して、現在のディレクトリのステータスを更新します.bashrc

if [ 'screen' == "${TERM}" ]; then
  export PROMPT_COMMAND='printf "\e]2;%s %s\a" "${USER}" "${PWD}" '
fi

4
私はいつも、なぜ画面がうまく動かないようにするためにハードコア設定が必要なのか不思議に思っていました。PS shelltitle "$ |shell:"タイトルにコマンド名を追加してみてください。
amphetamachine

7

押すとCtrl+ a"あなたが画面「タブ」を参照してくださいすることができ、彼らはあなたのターミナルGUIのタブことになっていない、あなたが使用しているターミナルGUIで新しいタブを作成することによって、手動でそれを行うと、新しいで実行することができますタブscreen -r画面セッションに戻るには、その後、あなたの希望とのセッションに移動Ctrl+ aおよび数または"すべてのタブとメニューを見て。

Ctrl + a を押して、画面の「タブ」に名前を付けることができますA


1
screen -r -xその画面がすでに最初のタブに接続されている場合、実行する必要があります。
アルゲージュ

3

konsoleのようなグラフィック端末のタブと画面のタブを混同していると思います。画面では、前述の^ A-Kombinationsを使用してウィンドウのコンテンツのみを切り替えます。これは、非グラフィック環境でも機能します。


2

screen多くのことを通知できるステータス行を表示するように設定できます。また、どの画面ウィンドウにいるのかを想定していますが、ステータス行を使用していないため、はっきりとは言えません。

私が知っていることのために、screenタブを作成しないでください、しかし、あなたが示したコマンドで、または私が好むように、画面を切り替える必要がありますCtrl- A 1Ctrl-A 2など。

一つのタブは、使用できる多くのことを持っているためにgnome-terminal、画面せずに、機能:Ctrl- Shift- T新しいタブを作成し、Alt- 1Alt - 2、などがタブを切り替えるます。

また、サーバーでscreenを実行しないので、ssh接続を1つだけ使用します(ただし、この場合、タブは使用しません)。


2

これはかなり古いことは知っていますが、Googleが私をここに導いたので、他の人もこれを読むかもしれません。そこで、「スクリーン」セッション内でタブを模倣するための0.02ドルのハックを以下に示します。

ステータス行を作成します:

  • 左側:日付/時刻
  • 右側:ローカルホスト名+平均負荷
  • 中央:画面の名前「windows」
    • 現在のウィンドウ:黒の背景に赤のテキスト
    • 他のウィンドウ:ステータスラインの背景色に白いテキスト(青、ここ)

入れる~/.screenrc

hardstatus alwayslastline "%{kb}%{c}[%{w}%D %d/%m/%Y %c:%s%{c}] %{w}%-w%{rk}%n %t%{wb}%+w %=%{c}[%{W}%H %l%{c}]"

(たぶん私はこれにかなりの時間を費やしたので、これは$ 0.02以上の価値があります;-)

F6/ F7キーで現在のウィンドウから前の/次のウィンドウに切り替えるには:

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