作業しているサーバーを管理している間、コマンドラインタスクに screen を使用しています。私は通常、小さなコマンド(主にファイルシステムタスク)を実行しますが、(DBAなどの)より広範なタスクを実行することもあります。
これらのタスクのoutputは私にとって重要です。私はタスクにUbuntuとOS X(両方のターミナルウィンドウ)を使用しているため、画面を使用する必要があるため、スクロールを使用できないため、長い出力(選択から500行のテーブルを考える)は見えません。マウスホイールは問題外です。
「スクロールは私には見えないのですが、これは次のことを意味します。
私は2つのオプションを考えていました:
特定のコマンドの出力を一時停止します(paginateと考えます)。出力が始まると、何が起こっているのかが読み取れるので、[Enter]キーを押します。表示するものがなくなるまで出力が続きます。
画面内をスクロールします。しかし、これが可能かどうかはわかりません。
もちろん、これらのオプションが実際に可能かどうかはわかりません。もしそうなら、どうすればそれらを達成できますか?他の代替品も好評です。
画面は端末マルチプレクサであり、数個バッファを処理する必要があるため、画面には独自のスクロールバッファがあります。
より良い方法があるかもしれませんが、私は「コピーモード」を使用してスクロールすることに慣れています(これは、貼り付けコマンドも必要ですが、画面自体を使用してテキストをコピーするために使用できます):
画面接頭辞の組み合わせ(C-a
/ control+A デフォルトでは)、次に Escape。
矢印キーで上下に移動します(↑ そして ↓)。
終わったら、 q または Escape スクロールバッファの最後に戻ります。
(の代わりに q または Escape あなたがた Enter または Return カーソルを移動すると、コピーするテキストを選択し、 Enter または Return もう一度コピーします。次に、C-a
に続く ]
。)
もちろん、more
とless
を常に使用できます。これらは2つの一般的に使用されるページャーであり、一部のコマンドではこれで十分な場合があります。
これらのすべての回答は、画面セッション内を移動する方法に対処しましたが、すべてをファイルに保存する画面コマンドに組み込み機能がありますを通じて、_-L
_引数を介して、 :
-Lは、ウィンドウに対して自動出力ロギングをオンにするようにスクリーンに指示します。
あなたができるように:
_screen -L -S testscreen
_
そして、現在のディレクトリに_screenlog.#
_という名前のファイルを作成します。ここで、_#
_はその画面の0から始まる番号です。
これには多くの利点があり、私にとって最も重要なものは次のとおりです。
tail -F
_を使用して、画面に接続せずにリアルタイムで進行状況を監視します。grep
を使用して、ログ内の特定の用語を確認し、通知(電子メール、ポップアップ、voipなど)を生成します。これは複数の画面に適用できますが、画面を積極的に見る必要はありません。コンテンツをmore
にパイプすることで、基本的なページングを取得できました。次に例を示します。
ls -l | more
または、構文の強調表示などの使用例でカラー出力が必要な場合は、
ls -l --color=always | more
これにより、一度に1つの画面を簡単にページングできる出力が得られます。私は@utherの~/.screenrc
への変更を試していませんが、マウスが利用可能な場合の永続的な解決策としては望ましいようです。
これを試すには、 このBusyBoxエミュレータ に移動してから...
cd ~/bin
ls -l --color=always | more
スペースバーを使用してls -l
コマンドの結果をページ送りするか、Enterキーを使用して結果を1行ずつ移動します。
Windows
を使用していて Bitvise SSH Client を使用している場合、screen
を使用すると出力を簡単にスクロールできます。いつも問題なく使用しています。画面をdetach
し、再びattach
を実行しても、その画面で以前の出力をスクロールできます。
PuTTYまたはMacターミナルを使用している場合、@ njsgによる提案は適切に機能します。