分離モードで実行中の画面が10個あります。これにより、screen -r pid
そのうちの1つの結果が表示されます。マニュアルページにはctrl-a + n
次の画面が表示されますが、そうすると次のように表示されます。No other window.
私は何を見逃していますか?
答え1
キーの順序はCtrl+ですa。次にキーを放し、キーを押しますn。
私はいつも次のタイトルのチートシートを参照しています。画面クイックリファレンス。
10のスクリーンセッションを繰り返そうとすると、まるでウィンドウのように見えますが、私が知っている限り、彼らはウィンドウではなくウィンドウにもなりません。画面の面では、セッションとウィンドウは完全に異なる2つです。
答え2
screen
各ウィンドウを事前設定して、複数のウィンドウでセッションを実行してみることができます~/.screenrc
。以下は実際の例です。
# Automatically running some programs in windows on screen startup.
# The following will open top in the first window, an ssh session to
# monkey in the next window, and then open mutt and tail in windows 8
# and 9 respectively.
screen top
screen -t monkey ssh monkey
screen -t mail 8 mutt
screen -t daemon 9 tail -f /var/log/daemon.log
そこから盗まれました。きれいで文書化された構成例が/etc/screenrc
たくさんあります。screen
答え3
以下は便利です。
- Ctrla space— 次のウィンドウ
- Ctrla backspace— 前のウィンドウ
- Ctrla "— ウィンドウリストメニュー
- Ctrla 0- ウィンドウ0を選択
(あなたも確認できますman screen
)
答え4
たとえば、シェルスクリプトを使用してこれを実行できます。
for s in `screen -ls | grep Detached | grep <regex to your screen names>`; do screen -r $s; done
このコマンドを実行したら、最初の画面でCtrl+と入力してオフにaしてから非表示d(分離用)を押します。現在の画面を終了すると、bashスクリプトはすぐに次の画面に移動します。
開いている画面がほとんどないとしましょう。また、業務とデータに分類するものとします。
for i in {10..13}; do screen -S `printf data%02d $i`; done; for i in {0..5}; do screen -S `printf work%02d $i`; done; ...
適用後の
screen -ls
画面は次のとおりです。There are screens on: 81592.data13 (Detached) 81539.work04 (Detached) 81527.work02 (Detached) 81586.data12 (Detached) 81574.data10 (Detached) 81533.work03 (Detached) 81488.work00 (Detached) 81607.ttys014.Mo (Attached) 81545.work05 (Detached) 81580.data11 (Detached) 81521.work01 (Detached) 81515.work00 (Detached) 12 Sockets in /var/folders/qs/cvlbhpr54fnb96vtx01bs9k00000gn/T/.screen.
それでは隔離分離画面を試してみましょう
grep
。screen -ls | grep Detached
あなたはこのような資格があります
81592.data13 (Detached)
81539.work04 (Detached)
81527.work02 (Detached)
81586.data12 (Detached)
81574.data10 (Detached)
81533.work03 (Detached)
81488.work00 (Detached)
81545.work05 (Detached)
81580.data11 (Detached)
81521.work01 (Detached)
81515.work00 (Detached)
それでは、もう一度使用して必要なもの(データなど)を選択してみましょう
grep
。screen -ls | grep Detached | grep data
これにより、データ画面のみが分離されます。正規表現を使用してgrepキーワード検索を変更して、検索をカスタマイズできます。
81592.data13 (Detached)
81586.data12 (Detached)
81574.data10 (Detached)
81580.data11 (Detached)
幸い、結果はよく構造化されており、タブで区切られています。次に、列をフィールドに分割し、2番目のフィールドを選択してみましょう
cut
。screen -ls | grep Detached | grep data | cut -d' ' -f2
その後に区切り記号パラメータを挿入するには、Tabキーを押す必要がありますctrl+v
。結果は次のとおりです。tab
-d
81592.data13
81586.data12
81574.data10
81580.data11
次に、引用符を使用してコマンドで囲み、
...
このような結果を繰り返します。実際に実行する前に、公式化されたコマンドを最初に確認してください。使ったecho screen -r
for s in `screen -ls | \ grep Detached | grep data | \ cut -d' ' -f2`; do \ echo screen -r $s; \ done
すべてが順調に進むなら
echo
。for s in `screen -ls | \ grep Detached | grep data | \ cut -d' ' -f2`; do \ screen -r $s; \ done
望むより。終了する各画面は次の画面に移動します。
楽しい上映してください!