LinuxでClearコマンドをキャンセルする方法は?

LinuxでClearコマンドをキャンセルする方法は?

clear端末画面を消去します。

clear実行する前に元の画面の内容を復元して操作を効果的にキャンセルするコマンドはありますかclear

答え1

clear端末画面を消去する直接的な反対のコマンドはありません。

ただし、コマンドライン端末エミュレータのいくつかの実装ではスクロールバックバッファを提供します。このバッファは前の出力ラインを保持できます。たとえば、minttyCygwinでこれらのコマンドを使用してテキストを生成し、画面を消去すると、前の結果に再スクロールできることがわかりました。ただし、これは純粋に端末エミュレータの一部として実装されており、プログラムでアクセスする可能性はありません。

yes | head -n20 | nl     # Generate 20 lines of unique output
yes n | head -n20 | nl   # And some more

20ライン出力

clear

画面が消去されました

後ろにスクロールした後

バッファを後ろにスクロール

答え2

tmuxターミナルエミュレータ/マルチプレクサを使用している場合は、UNDOを次clearのように定義できます。

clear() {
  tmux capture-pane -eb c &&
    tput sc &&
    command clear "$@"
}

そしてunclear次のように:

unclear() {
  tput home && tmux show-buffer -b c && tput rc
}

whereはclear画面の内容をcバッファにキャプチャし、消去する前にカーソル位置を保存しs、カーソルを開始位置(左上)に移動し、そのバッファの内容をダンプしてカーソル位置を復元します。cunclearrc

答え3

元に戻すという意味では何もありません。これに加えて、コマンド履歴を表示してコマンドを再実行できます。コマンドが等しい場合は、同じ結果が得られます。

脚注:★何らかのロギングシステムを使用しない限り、何もありません。このロギングは、ターミナルプログラムの一部でもスタンドアロンでもかまいません。これはLinuxカーネルの一部ではありません。

関連情報