web-dev-qa-db-ja.com

実行中のプログラムが端末にデータを出力するときに自動的に下にスクロールしないようにLinux端末を設定するにはどうすればよいですか?

現在実行中のプログラムが標準出力にデータを出力するときに、最後の行までスクロールダウンしないように端末を設定することはできますか?

実行中のプログラムがあり、常にstdoutにデータを出力しているため、ターミナルが更新され、ターミナルは自動的に最後の行までスクロールダウンし、以前に出力されたデータや以前に実行した他のコマンドを読み取れません。

4
yoyo_fun

キーボードのCTRL-Sを押すと、スクロールを一時的に防ぐことができます。これにより、CTRL-Qを押すまで出力が一時停止します。これにより、現在画面上にあるものを読み取ることができますが、プログラムの動作方法によってはプログラムの続行を妨げることもあります。

画面が最新の出力にスクロールできないシェル自体の実際の設定は知りませんが、出力をlessにパイプすることで同等の結果を得ることができます。何かのようなもの

    my_command | less 
6
barbecue

使用している端末プログラムによって異なります。この情報は、そのドキュメントで見つけることができるはずです。ほとんどは私が使用しているオリジナルのxtermに基づいているので、それに基づいて答えます。

既存のxtermでこれをインタラクティブに行うには、[中マウスを制御]ボタンのメニューを使用できます。 「TTY出力で一番下にスクロールする」のメニューに項目があり、デフォルトで最初にチェックされています。クリックするだけでチェックマークが削除され、xtermはいつでも一番下にジャンプしなくなります出力があります。

特定のxtermをそのように開始したい場合は、チェックを外して開始するコマンドラインオプション-siがあります。これをすべてのxtermsのデフォルトにしたい場合は、scrollTtyOutputリソースを設定できます(Xリソースを設定する場所ならどこでも、Xresource構造体を使用して一部のリソースにのみ適用することができます) xterms)。

私はこれらのオプションがすべて存在することを知っていたので、今すぐman xtermを使用して詳細を取得しました。 UNIXの優れた機能の1つ(大部分はLinuxに続きます)は、すべてのドキュメントがそこにあることです。あなたはそれを見なければなりません。

3
MAP