clear
端末でコマンドを使用しても、画面がクリアされたとユーザーをだますだけです...マウスを使用してスクロールすると、以前のコマンドからの出力が引き続き表示されます。テキストの津波に溺れているとき、これは人生を困難にします。
インターネット上で見つけることができるさまざまなソリューション(エスケープコードなど)は、clearコマンドがすでに行っていることのバリエーションにすぎません。
では、Linuxで実際に端末のコンテンツをクリアするにはどうすればよいのでしょうか。
clear
端末でコマンドを使用しても、画面がクリアされたとユーザーをだますだけです...マウスを使用してスクロールすると、以前のコマンドからの出力が引き続き表示されます。テキストの津波に溺れているとき、これは人生を困難にします。
インターネット上で見つけることができるさまざまなソリューション(エスケープコードなど)は、clearコマンドがすでに行っていることのバリエーションにすぎません。
では、Linuxで実際に端末のコンテンツをクリアするにはどうすればよいのでしょうか。
回答:
単に新しい行を追加するのではなく、次のコマンドを使用して画面をクリアします...
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コンソール(Konsoleと呼ばれます)では動作しませんが、期待はあります!次の一連のコマンドを使用して、画面とスクロールバックバッファをクリアします...
clear && echo -en "\e[3J"
または、KDEで次のエイリアスを使用することもできます...
alias cls='clear && echo -en "\e[3J"'
ここからスクロールバッククリアコマンドを受け取りました。
"\033c"
であるESC c
「フルリセット(RIS)」のVT-XXXのエスケープシーケンスです。最近人々が実際に使用しているほとんどすべての端末はVT互換ですが、奇妙な端末を使用していることに気付いた場合、これは機能しない可能性があります。@ vpit3833の回答は、TERMが正しく設定されていると仮定すると機能する可能性が高くなります。
printf
はBashビルトインです(これも別個のバイナリであることは事実ですが、ビルトインが優先され、ほとんどの最新のシェルはそうですprintf
)。
お試しくださいreset
。端末画面をクリアしますが、前のコマンドには矢印またはキーバインドを使用してアクセスできます。
ESC c
おそらくUbuntuが使用する以外の端末を使用することはないので、使用することを好みます。reset
シリアルポートなどを介してリモートマシンをデバッグしているときにいつか重宝するかもしれませんが
reset
は、私には耐えられません。
tput reset
それでうまくいきます!
reset
が、それでも機能します!
reset
私が読んだ回答がPuTTYで機能しなかったため、この記事にコメントを見つけました。
接続の設定の「ウィンドウ->動作」で、「ALTだけでシステムメニューが表示される」という設定が見つかります。次に、CTRL + L、ALT、l(小文字のL)で画面がスクロールされ、スクロールバックバッファがクリアされます。
(私はUbuntuサーバーに接続しているのでOPに関連していますが、サーバーが実行しているものに関係なく、明らかに関連しています。)
CTRL+L
、その後ALT+Space
、U
ターミナルウィンドウは、その後、本物のためのスクロールをリセットする最初のクリア。
次のリンクでは、そのエイリアスを永続的にする方法を説明しているので、入力し続ける必要はありません。
/ubuntu/17536/how-do-i-create-a-permanent-bash-alias
これらはそのリンクで詳述されているステップです。
私はこの情報を単に渡すだけで信用しません。
KDEとUbuntu 12.04 LTSおよび「Konsole」ターミナルでは、投稿された回答はどれも機能しません。ただし、デフォルトのキーボードショートカットCTRL + Shift + Xを押しても機能します。ソース:
新しい行の印刷を使用するソリューションはあまりサポートされていないことを知っていますが、他のすべてが失敗した場合は、どうしてですか?特に、誰かが画面を見ることができる可能性があるが、キーログを行うことができない環境で動作している場合。その場合の1つの解決策は、次のエイリアスです。
alias c="printf '\r\n%.0s' {1..50}"
次に、画面の現在のコンテンツを「クリア」する(または非表示にする)にc+Enter
は、ターミナルで入力します。
echo -e "\e[3J"
これはLinuxマシンで動作します
このアプリをコンパイルします。
#include <iostream>
#include <cstring>
int main()
{
char str[1000];
memset(str, '\n', 999);
str[999] = 0;
std::cout << str << std::endl;
return 0;
}