画面内をスクロールするか、出力を一時停止します

画面内をスクロールするか、出力を一時停止します

私が使う画面作業中のサーバーを管理する際のコマンドライン タスクに使用します。通常は小さなコマンド (主にファイル システム タスク) を実行しますが、より大規模なタスク (DBA など) を実行することもあります。

出力これらのタスクの視覚化は私にとって重要です。私はタスクに Ubuntu と OS X (どちらもターミナル Windows) を使用していますが、画面を使用する必要があるため、スクロールが利用できず、長い出力 (選択からの 500 行のテーブルなど) は表示されません。マウス ホイールは問題外です。

「スクロールが私には見えない」と言うとき、私は次のことを意味します:

画面使用中、Mac OS X でスクロール中

私は2つの選択肢を考えていました:

  1. 一時停止(考えるページ付け) 特定のコマンドの出力を表示します。出力が始まると、何が起こっているかが読み取られ、次に「Enter」を押すと、表示するものがなくなるまで出力が続きます。

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

もちろん、それらの選択肢が実際に可能もしそうなら、どうすればそれを達成できるでしょうか?他の選択肢も歓迎されるでしょう。

答え1

画面は端末マルチプレクサであるため、独自のスクロールバッファを持ち、いくつかのバッファ。

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

  • 画面プレフィックスの組み合わせ (デフォルトではC-a/ control+ ) を押してから、または を押します。AEscape[

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

  • 完了したら、矢印キー、数字、特定の文字以外のキーを押してスクロールバッファの最後に戻ります。ほとんどの人は、qまたはを使用します。Escape

(終了する代わりにEnterまたは を押しSpaceてカーソルを移動すると、コピーするテキストの選択が開始され、 または をもう一度押すとEnterコピーSpaceされます。その後、 を押して貼り付けることができますC-a])

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

答え2

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

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

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

詳しい議論を読むここ

答え3

これらの回答はすべて、スクリーンセッション内でのナビゲーション方法についてのものでしたが、screenコマンドには、すべてをファイルに保存する機能が組み込まれています。マニュアル-Lに従って議論すると、次のようになります。

-L は、screen にウィンドウの自動出力ログをオンにするように指示します。

つまり、次のことができます。

screen -L -S testscreen

そして、現在のディレクトリに、その画面の 0 から始まる番号が付いscreenlog.#た名前のファイルが作成されます。#

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

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

答え4

moreたとえば、コンテンツを にパイプすることで基本的なページングを実現することに成功しました。

ls -l | more

または、構文の強調表示などのユースケースでカラー出力が必要な場合は、次のようにします。

ls -l --color=always | more

これにより、一度に 1 画面ずつ簡単にページングできる出力が得られます。@uther の変更を試したことはありません~/.screenrcが、マウスが使用できる場合の永続的なソリューションとしては、これが望ましいと思われます。

これを試すには、このBusyBoxエミュレータその後...

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

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

関連情報