過去のGNU画面出力をファイルとして保存

過去のGNU画面出力をファイルとして保存

私は数日間GNUスクリーンセッションを実行してきました。私は端末の内容(上にスクロールして見ることができます)をファイルに保存する必要がある状況にありました。可能ですか? 5000行を超えないと予想されます。

画面録画を設定する方法を見つけました未来ファイルに出力します。ただし、この場合は、過去の出力(またはできるだけ多くの既存の出力)も保存する必要があります。

答え1

hardcopy -hコマンドを使用して、現在のスクロールバッファの内容をファイルに保存できます。に記載されているようにman screen:

   hardcopy [-h] [file]

   Writes out the currently displayed image to the file file, or,
   if no filename is specified, to hardcopy.n in the default
   directory, where n is the number of the current window.  This
   either appends or overwrites the file if it exists. See below.
   If the option -h is specified, dump also the contents of the
   scrollback buffer.

あなたは言う:

5000行を超えないと予想されます。

5000行は本当に大量です。スクロールバッファのデフォルトの長さは、 screen5000行ではなく100行です。より大きなスクロールバッファ設定でセッションを開始しないと、 screen約5000行のスクロールバッファはすべて取得されません。

答え2

1つの方法は、コピーモードを使用してロールバック履歴全体をコピーしてからファイルにダンプすることです。 (より良い方法があるかもしれません。)

主キーバインディングを使用すると、次のようになります。

  • Ctrl-A は画面にコマンドを送信します。
  • [コピーモード開始
  • gトップに戻る
  • スペースバーは、スクロールバックバッファ(現在位置)の先頭をコピーするテキストの先頭として表示します。
  • G最後まで行く
  • コピーしたいテキストの末尾を入力してコピーします。

次に、vimを開いて実行して:set paste自動インデントなどの問題を回避し、貼り付けをCtrl-A ]使用します。

関連情報