ディスプレイに印刷されたものをGNU画面で保存する方法はありますか?


9

コマンドラインで行うすべてのことを保存したいです。たとえば、何かをアップグレードして、アップグレードがどのように行われたかを読み返したい場合などです。

通常Mac OSXとターミナルでは、好きなだけスクロールして、Cmd-Sで保存できます。しかし、gnu画面を使用してSSHを使用している場合、ターミナルから直接スクロールして戻ることはできません。

スクリーンセッションで発生するすべてをディスクに保存するにはどうすればよいですか?多分デフォルトで(すべてのセッションが自動的にディスクにファイルを作成します...)

ありがとう!

回答:


7

にはロギング機能がありscreenます。実行screenしてscreen -L(または内からscreen)開始したときに開始します。または、からも-をscreen押すことができます。Ctrla : H

デフォルトとしてログオンする場合は、次の行を~/.screenrcファイルに追加します。

deflog on

次のようなものを使用してファイル名を設定することができます。

logfile /tmp/screenlog.%n

1
通常は再起動時に(たとえば、電源障害が原因で)クリーンアップされるため、/ tmpに保存しないでください。
maxelost

@maxelost:それは考慮すべきことです。しかし、それは単なる例でした。デフォルトの動作ではログファイルが現在のディレクトリに作成されるため、絶対ディレクトリを含めることがポイントでした。また、screenセッションは(切り離されたものであっても)リブート後も存続しません。
追って通知があるまで一時停止。


2

オプション1:スクリプトコマンドを調べます。「man script」

「スクリプトは、端末に印刷されるすべてのタイプスクリプトを作成します。タイプスクリプトファイルは後でlprで印刷できるので、インタラクティブセッションのハードコピーレコードが課題の証明として必要な学生に役立ちます。」

基本的に「スクリプト」(引用符なし)と入力します-作業を行い、exitと1回入力してセッションを終了します。

オプション2:画面の「ハードコピー」モードを使用します。'Crtl-a'そして 'h'これは現在のセッションをファイルに保存します。

注:GNU Screenにはスクロール機能があります。'crtl-]'(右角かっこ)を使用してコピーモードに入り、次に 'ctrl-b'と 'ctrl-f'を使用してpを1ページずつ下に移動します。


1

通常はにバインドされている「log」操作を使用する必要がありますCtrl-a H。これにより、screenlogという新しいファイルが開きます。N 、Nはウィンドウ番号です。ファイルが存在する場合、出力はファイルに追加されます。そのウィンドウのすべての出力はスクリーンログに記録されます。もう一度押すと非アクティブ化されるまでNファイルCtrl-a H。この機能は、でも取得できCtrl-a :logます。logfile {filename}コマンドを使用して名前を変更できます。ファイルはscreenが最初に起動されたディレクトリに配置されますが、logfileコマンドまたはを使用して変更できますchdir [{directory}]

これはハードコピーやスクロールバッファと同じではないことに注意してください。これは、script(1)プログラムと同じ機能ですが、新しいプログラムを呼び出さずに単一のウィンドウに関連付けられています。

スクロールバッファの内容全体を保存する場合は、Ctrl-a ] g <space> G <space> Ctrl-a :writebuf これを使用して、スクロールバッファをファイル/ tmp / screen-exchangeに保存します。一部だけを保存する場合は、「g」と「G」を他の移動キーに変更します。

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