コマンドラインから直接複数の分割で画面を開始するにはどうすればよいですか?


12

私が使用しているscreen私がログインした後にssh私のサーバーへ。今のところ、次のスクリーンショットに示すように、画面ウィンドウに手動で分割を設定し、コマンドを手動で実行します。

ここに画像の説明を入力してください

  • 上部が実行されtail -n 1 -f /home/server/log/access.logます。
  • 右下部分を実行する必要があります htop
  • 左下のものは単にコマンドプロンプトでなければなりません

コマンド/スクリプトを使用してそれを行う方法はありますか?そのため、毎回手動でやり直す必要はありませんか?



@muruこれは、上記のように画面を直接注文する方法ではなく、個別の画面を開始する方法についてはかなり答えています。
Videonauth

画面のショートカットを使用して実行できることはすべて、のコマンドを使用して実行できます.screenrc。この配置にはsplitコマンドがあります。
ムール

回答:


15

ウィンドウ配置の特定の場合には、それらをファイルに保存するスクリーンコマンドがありますlayout dump。からman screen

layout dump [filename]

Write to a file the order of splits made in the current layout. This is
useful to recreate the order of  your  regions  used  in  your  current
layout.  Only  the  current  layout is recorded. While the order of the
regions are recorded, the sizes of  those  regions  and  which  windows
correspond  to  which regions are not. If no filename is specified, the
default is layout-dump, saved in the directory that the screen  process
was  started in. If the file already exists, layout dump will append to
that file. As an example:

           C-a : layout dump /home/user/.screenrc

will save or append the layout to the user's .screenrc file.

したがって、配置を手動で行ったら、を押してからCtrla:、を入力しlayout dump /path/to/some/fileます。レイアウトが保存され/path/to/some/file、次のコマンドを使用して新しいセッションで復元できます。

screen -c /path/to/some/file

素敵なものを+1。split -v文書化されていないようだ:)私は苦しんでいた理由です。
Videonauth

@Videonauthそれは実際にデフォルトのキーバインディングセクションの下に文書化されています。 C-a | (split -v) Split the current region vertically into two new ones.
セルギーKolodyazhnyy

はい、それが唯一の次に、manページに記載されます見えますC-a |が、ないGNUのドキュメントで
muru

あなたが言及するかもしれない奇妙な動作を見つけました:例えばlayout dump ~/layout、プロセスが失敗するようにタイプした場合、それはフルパス(すなわち/home/$USER/layout)に必要です
Videonauth

@Videonauthは、通常、チルダの展開がシェルによって行われるため、特定のコマンドが内部でサポートしていない場合も驚くことではありません。いくつかはそうで、ほとんどはそうではありません。
ムル

10

私は私の質問に示されている出力を作成するために以下を思いつき@ muruの優れた答えに従っています。を使用するlayout dumpと、次のことがわかりました。

split
focus
split -v
focus

注:チルダ(~)拡張は動作しませんlayout dumpので、代わりに~/layout.dmpあなたが使用する必要があります例えば/home/<username>/layout.dmp

その後、次のものを作成しました .screenrc

# create the top screen
chdir /home/server/log
screen -t "Apache Log" tail -n 1 -f access.log
# split the screen and focus onto the new created space
split
focus
#create the bash
chdir /home/server/log
screen
# split vertically and focus onto the new area
split -v
focus
# create the htop screen
screen -t "Htop" htop
# focus twice to end up with the bash area active
focus
focus

これで、必要なscreenレイアウトを入力して開始するだけで済みます。疑問に思っている人のための例としてここにそれを残しますが、@ muruの答えに投票することを忘れないでください。

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