ターミナルでコマンドを使用する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"'
ここからスクロールバッククリアコマンドを取得しました。
試してみてくださいreset
。ターミナル画面はクリアされますが、前のコマンドには矢印またはお持ちのキーバインディングからアクセスできます。
tput reset
それでうまくいきます!
私が読んだ答えはどれもPuTTYで機能しなかったので、この記事にコメントを見つけました:
接続の設定で、[ウィンドウ]-> [動作]の下に、[システムメニューがALTのみに表示される]設定があります。次に、CTRL+ 、、L(小文字のL)は画面をスクロールしてから、スクロールバックバッファをクリアします。ALTl
(私はUbuntuサーバーに接続しているため、OPに関連していますが、サーバーが何を実行していても明らかに関連しています。)
次のリンクは、そのエイリアスを永続的にして、入力し続ける必要がないようにする方法を説明しています。
https://askubuntu.com/questions/17536/how-do-i-create-a-permanent-bash-alias
これらは、そのリンクで詳しく説明されている手順です。
vim ~/.bashrc
またはgedit ~/.bashrc
またはあなたが好きなテキストエディタalias cls='printf "\033c"'
ファイルの一番下に置く. ~/.bashrc
.
(はい、との間に スペースが必要です~
)私は、この情報を渡すだけでは信用しません。
これに対する私のお気に入りの人間に優しいコマンドは次のとおりです。
reset
xtermおよびVT100でテスト済み。また、プログラムの異常終了後も役立ちます。コマンドバッファを保持するため、上矢印は前のコマンドを循環します。
そのスクロールバッファを追加するだけでは、、、またはtmux
でクリアされません。あなたがする必要があります。リンクを参照してください。clear
reset
printf
:clear-history
表示されている画面をきれいにする
clear
画面をクリーンアップし、バッファをクリアします
clear && clear
クリーンで1秒の遅延
reset
1秒の遅延なしでクリーニング
tput reset
新しい行の印刷を使用するソリューションがあまりサポートされていないことは知っていますが、他のすべてが失敗した場合は、どうしてですか?特に、他の誰かが画面を見ることができる可能性が高いが、キーログを作成できない環境で操作している場合。したがって、考えられる解決策の1つは、次のエイリアスです。
alias c="printf '\r\n%.0s' {1..50}"
次に、画面の現在の内容を「クリア」する(つまり、非表示にする)にc+Enter
は、端末で入力するだけです。
KDEとUbuntu12.04LTS、および「Konsole」ターミナルでは、投稿された回答はどれも機能しません。ただし、デフォルトのキーボードショートカットCTRL + Shift+Xを押しても機能します。ソース:
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;
}