431

ターミナルでコマンドを使用するclearと、ユーザーは画面がクリアされたと思い込むだけです...マウスを使用してスクロールすると、前のコマンドからの出力を引き続き表示できます。これは、テキストの津波に溺れているときに人生を困難にします。

インターネット上で見つけることができるさまざまな解決策(エスケープコードなど)は、clearコマンドがすでに実行していることのバリエーションにすぎません。

では、Linuxでターミナルの内容を実際にクリアするにはどうすればよいでしょうか。

4

12 に答える 12

545

次のコマンドを使用して、単に新しい行を追加するのではなく、画面をクリアします...

printf "\033c"

はい、それはbashプロンプトの「printf」です。

ただし、エイリアスを定義することをお勧めします...

alias cls='printf "\033c"'

説明

\033 == \x1B == 27 == ESC

したがって、<ESC>cこれは、端末をリセットするためのVT100エスケープコードになります。ターミナルエスケープコードの詳細については、こちらをご覧ください。

編集

これを行う他のいくつかの方法があります...

printf "\ec" #\e is ESC in bash
echo -en "\ec" #thanks @Jonathon Reinhart.
# -e    Enable interpretation of of backslash escapes
# -n    Do not output a new line

KDE

上記はKDEコンソール(Konsoleと呼ばれます)では機能しませんが、希望はあります!次の一連のコマンドを使用して、画面とスクロールバックバッファをクリアします。

clear && echo -en "\e[3J"

または、KDEで次のエイリアスを使用することもできます...

alias cls='clear && echo -en "\e[3J"'

ここからスクロールバッククリアコマンドを取得しました。

于 2011-03-20T06:14:17.100 に答える
232

試してみてくださいreset。ターミナル画面はクリアされますが、前のコマンドには矢印またはお持ちのキーバインディングからアクセスできます。

于 2011-03-20T06:13:42.620 に答える
78
tput reset

それでうまくいきます!

于 2014-07-20T11:19:17.730 に答える
8

私が読んだ答えはどれもPuTTYで機能しなかったので、この記事にコメントを見つけました:

接続の設定で、[ウィンドウ]-> [動作]の下に、[システムメニューがALTのみに表示される]設定があります。次に、CTRL+ 、、L(小文字のL)は画面をスクロールしてから、スクロールバックバッファをクリアします。ALTl

(私はUbuntuサーバーに接続しているため、OPに関連していますが、サーバーが何を実行していても明らかに関連しています。)

于 2014-04-16T14:08:56.257 に答える
6

次のリンクは、そのエイリアスを永続的にして、入力し続ける必要がないようにする方法を説明しています。

https://askubuntu.com/questions/17536/how-do-i-create-a-permanent-bash-alias

これらは、そのリンクで詳しく説明されている手順です。

  1. vim ~/.bashrcまたはgedit ~/.bashrcまたはあなたが好きなテキストエディタ
  2. alias cls='printf "\033c"'ファイルの一番下に置く
  3. 保存して終了
  4. . ~/.bashrc.(はい、との間に スペースが必要です~
  5. 今、すべてがうまくいったかどうかを確認してください!

私は、この情報を渡すだけでは信用しません。

于 2014-01-29T17:55:32.130 に答える
6

これに対する私のお気に入りの人間に優しいコマンドは次のとおりです。

reset

xtermおよびVT100でテスト済み。また、プログラムの異常終了後も役立ちます。コマンドバッファを保持するため、上矢印は前のコマンドを循環します。

于 2015-02-13T07:54:51.057 に答える
5

そのスクロールバッファを追加するだけでは、、、またはtmuxでクリアされません。あなたがする必要があります。リンクを参照してください。clearresetprintf:clear-history

于 2019-05-13T02:16:33.427 に答える
5
  1. 表示されている画面をきれいにする

     clear 
    
  2. 画面をクリーンアップし、バッファをクリアします

     clear && clear 
    
  3. クリーンで1秒の遅延

     reset
    
  4. 1秒の遅延なしでクリーニング

     tput reset
    
于 2021-05-08T15:39:51.047 に答える
4

新しい行の印刷を使用するソリューションがあまりサポートされていないことは知っていますが、他のすべてが失敗した場合は、どうしてですか?特に、他の誰かが画面を見ることができる可能性が高いが、キーログを作成できない環境で操作している場合。したがって、考えられる解決策の1つは、次のエイリアスです。

alias c="printf '\r\n%.0s' {1..50}"

次に、画面の現在の内容を「クリア」する(つまり、非表示にする)にc+Enterは、端末で入力するだけです。

于 2018-08-31T17:11:51.217 に答える
3

KDEとUbuntu12.04LTS、および「Konsole」ターミナルでは、投稿された回答はどれも機能しません。ただし、デフォルトのキーボードショートカットCTRL + Shift+Xを押しても機能します。ソース:

https://bugs.kde.org/show_bug.cgi?id=288913

于 2013-12-12T20:47:23.840 に答える
-3
echo -e "\e[3J"

これはLinuxマシンで機能します

于 2018-07-04T12:05:13.360 に答える
-56

このアプリをコンパイルします。

#include <iostream>
#include <cstring>

int main()
{
  char str[1000];
  memset(str, '\n', 999);
  str[999] = 0;
  std::cout << str << std::endl;
  return 0;
}
于 2011-12-09T06:10:25.717 に答える