web-dev-qa-db-ja.com

画面内をスクロール、または出力を一時停止

作業しているサーバーを管理している間、コマンドラインタスクに screen を使用しています。私は通常、小さなコマンド(主にファイルシステムタスク)を実行しますが、(DBAなどの)より広範なタスクを実行することもあります。

これらのタスクのoutputは私にとって重要です。私はタスクにUbuntuとOS X(両方のターミナルウィンドウ)を使用しているため、画面を使用する必要があるため、スクロールを使用できないため、長い出力(選択から500行のテーブルを考える)は見えません。マウスホイールは問題外です。

「スクロールは私には見えないのですが、これは次のことを意味します。

top while using screen, in Mac OS X, while scrolling

私は2つのオプションを考えていました:

  1. 特定のコマンドの出力を一時停止します(paginateと考えます)。出力が始まると、何が起こっているのかが読み取れるので、[Enter]キーを押します。表示するものがなくなるまで出力が続きます。

  2. 画面内をスクロールします。しかし、これが可能かどうかはわかりません。

もちろん、これらのオプションが実際に可能かどうかはわかりません。もしそうなら、どうすればそれらを達成できますか?他の代替品も好評です。

441
AeroCross

画面は端末マルチプレクサであり、数個バッファを処理する必要があるため、画面には独自のスクロールバッファがあります。

より良い方法があるかもしれませんが、私は「コピーモード」を使用してスクロールすることに慣れています(これは、貼り付けコマンドも必要ですが、画面自体を使用してテキストをコピーするために使用できます):

  • 画面接頭辞の組み合わせ(C-acontrol+A デフォルトでは)、次に Escape

  • 矢印キーで上下に移動します( そして )。

  • 終わったら、 q または Escape スクロールバッファの最後に戻ります。

(の代わりに q または Escape あなたがた Enter または Return カーソルを移動すると、コピーするテキストを選択し、 Enter または Return もう一度コピーします。次に、C-a に続く ]。)

もちろん、morelessを常に使用できます。これらは2つの一般的に使用されるページャーであり、一部のコマンドではこれで十分な場合があります。

606
njsg

指摘されたようにscreenバッファーを使用する by njsg は良い解決策です。画面内のxterm termcap情報で代替テキストバッファを無効にすることもできます。無効にすると、スクロールバー(およびマウスホイール)を使用して上下にスクロールできます。

これを~/.screenrcに追加します。

# Enable mouse scrolling and scroll bar history scrolling
termcapinfo xterm* ti@:te@

あなたはより多くの議論を読むことができます ここ

189
George M

これらのすべての回答は、画面セッション内を移動する方法に対処しましたが、すべてをファイルに保存する画面コマンドに組み込み機能がありますを通じて、_-L_引数を介して、 :

-Lは、ウィンドウに対して自動出力ロギングをオンにするようにスクリーンに指示します。

あなたができるように:

_screen -L -S testscreen
_

そして、現在のディレクトリに_screenlog.#_という名前のファイルを作成します。ここで、_#_はその画面の0から始まる番号です。

これには多くの利点があり、私にとって最も重要なものは次のとおりです。

  1. 将来の参照のためにログファイルをプロジェクトフォルダに保存できるので、私が行ったことの記録を保持します。
  2. プロセスを非アクティブおよびパッシブで監視できます。
    • _tail -F_を使用して、画面に接続せずにリアルタイムで進行状況を監視します。
    • grepを使用して、ログ内の特定の用語を確認し、通知(電子メール、ポップアップ、voipなど)を生成します。これは複数の画面に適用できますが、画面を積極的に見る必要はありません。
35

コンテンツをmoreにパイプすることで、基本的なページングを取得できました。次に例を示します。

ls -l | more

または、構文の強調表示などの使用例でカラー出力が必要な場合は、

ls -l --color=always | more

これにより、一度に1つの画面を簡単にページングできる出力が得られます。私は@utherの~/.screenrcへの変更を試していませんが、マウスが利用可能な場合の永続的な解決策としては望ましいようです。

これを試すには、 このBusyBoxエミュレータ に移動してから...

cd ~/bin
ls -l --color=always | more

スペースバーを使用してls -lコマンドの結果をページ送りするか、Enterキーを使用して結果を1行ずつ移動します。

3
Michael Hogan

Windowsを使用していて Bitvise SSH Client を使用している場合、screenを使用すると出力を簡単にスクロールできます。いつも問題なく使用しています。画面をdetachし、再びattachを実行しても、その画面で以前の出力をスクロールできます。

PuTTYまたはMacターミナルを使用している場合、@ njsgによる提案は適切に機能します。

0
AbsarAkram