
私が使う画面作業中のサーバーを管理する際のコマンドライン タスクに使用します。通常は小さなコマンド (主にファイル システム タスク) を実行しますが、より大規模なタスク (DBA など) を実行することもあります。
の出力これらのタスクの視覚化は私にとって重要です。私はタスクに Ubuntu と OS X (どちらもターミナル Windows) を使用していますが、画面を使用する必要があるため、スクロールが利用できず、長い出力 (選択からの 500 行のテーブルなど) は表示されません。マウス ホイールは問題外です。
「スクロールが私には見えない」と言うとき、私は次のことを意味します:
私は2つの選択肢を考えていました:
一時停止(考えるページ付け) 特定のコマンドの出力を表示します。出力が始まると、何が起こっているかが読み取られ、次に「Enter」を押すと、表示するものがなくなるまで出力が続きます。
画面内をスクロールします。ただし、これが可能かどうかはわかりません。
もちろん、それらの選択肢が実際に可能もしそうなら、どうすればそれを達成できるでしょうか?他の選択肢も歓迎されるでしょう。
答え1
画面は端末マルチプレクサであるため、独自のスクロールバッファを持ち、いくつかのバッファ。
もっと良い方法があるかもしれませんが、私は「コピー モード」を使用してスクロールすることに慣れています (画面自体を使用してテキストをコピーできますが、貼り付けコマンドも必要になります)。
画面プレフィックスの組み合わせ (デフォルトでは
C-a
/ control+ ) を押してから、または を押します。AEscape[矢印キー(↑と↓)で上下に移動します。
完了したら、矢印キー、数字、特定の文字以外のキーを押してスクロールバッファの最後に戻ります。ほとんどの人は、qまたはを使用します。Escape
(終了する代わりにEnterまたは を押しSpaceてカーソルを移動すると、コピーするテキストの選択が開始され、 または をもう一度押すとEnterコピーSpaceされます。その後、 を押して貼り付けることができますC-a。])
もちろん、よく使用される 2 つのページャーであるmore
とless
をいつでも使用することができ、一部のコマンドではこれで十分な場合があります。
答え2
答え3
これらの回答はすべて、スクリーンセッション内でのナビゲーション方法についてのものでしたが、screenコマンドには、すべてをファイルに保存する機能が組み込まれています。マニュアル-L
に従って議論すると、次のようになります。
-L は、screen にウィンドウの自動出力ログをオンにするように指示します。
つまり、次のことができます。
screen -L -S testscreen
そして、現在のディレクトリに、その画面の 0 から始まる番号が付いscreenlog.#
た名前のファイルが作成されます。#
これには多くの利点がありますが、私にとって最も重要なものは次のとおりです。
- 将来の参照用にプロジェクト フォルダーにログ ファイルを保存できるので、実行した操作を記録しておきます。
- プロセスを非アクティブおよびパッシブに監視できます。
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 行ずつ移動します。