glance
今日、私はCPU使用率を監視するツールを使用してオフィスにいました。端末で実行すると、コマンドが画面をglance
消去し、すべての操作が完了した後に端末に戻ると、以前のプロンプトが画面に表示されます。前の行をすべて見ることができるという意味です。私の質問は、画面を消去する効果がどのように達成されるかです。このようなコマンドを使用すると、clear
全画面を消去する必要がありますが、以前のプロンプトをすべてどのように復元しましたか?いくつかのスクリプトに対して同じ機能を実装したいと思います。
同様に、コマンドを使用すると、vi
画面が完全に入力され、終了後に前のプロンプトを表示できます。
答え1
多くの端末エミュレータは、一般画面バッファと代替画面バッファの2つの端末出力コピーを維持しています。通常のバッファは、通常、カーソルを現在の行から移動せずにスクロールバック機能を提供するコマンドラインアプリケーションで使用されます。代替バッファはフルスクリーンアプリケーションに使用され、スクロールバック機能を提供しません。
Glance、vi、およびその他の機能は起動時に代替画面に切り替わり、終了時に戻ります。
xtermでは、マウスの中ボタンメニューで「代替画面表示」を切り替えることで、現在の画面以外の画面を表示できます。
スクリプトでtput smcup
(tput rmcup
画面間の切り替えのための制御シーケンスを取得します)を使用できますsmcup
。rmcup
用語情報フルスクリーンモードに切り替えるか、フルスクリーンモードで切り替える機能).