端末画面を実際にクリアします
-
27-10-2019 - |
質問
を使用して clear
端末のコマンドは、ユーザーが画面がクリアされていると思わせるだけで愚かです...マウスを使用してスクロールするとき、以前のコマンドから出力を見ることができます。これは、あなたがテキストの津波にdrれているとき、人生を困難にします。
インターネット上で見つけることができるさまざまなソリューション(エスケープコードなど)は、Clear Commandがすでに行っていることのバリエーションにすぎません。
では、Linuxの端末の内容を実際にどのようにクリアしますか?
解決
次のコマンドを使用して、単に新しい行を追加するのではなく、クリア画面を実行します...
printf "\033c"
はい、それはバッシュプロンプトの「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"'
スクロールバッククリアリングコマンドを取得しました ここ.
他のヒント
試す reset
. 。端子画面をクリアしますが、以前のコマンドは矢印またはあなたが持っているキーバインディングを介してアクセスできます。
tput reset
それはトリックをします!
私が読んだ答えはどれもPuttyで働いていなかったので、コメントを見つけました この記事:
接続の設定では、「ウィンドウ - >動作」の下で、「[システム]メニューがAlt Aloneに表示される[システム]メニューが表示されます。次に、Ctrl+L、Alt、L(それは小文字L)が画面をスクロールし、スクロールバックバッファーをクリアします。
(私はUbuntuサーバーに接続しているため、OPに関連していますが、サーバーが何を実行していても明らかに関連性があります。)
次のリンクでは、そのエイリアスを永続的にする方法を説明しているため、入力し続ける必要はありません。
https://askubuntu.com/questions/17536/how-do-i-create-a-permanent bash-alias
これらは、そのリンクで詳述されている手順です。
- vim〜/.bashrcまたはgedit〜/.bashrcまたはあなたが好きなテキストエディター
- エイリアスcls = 'printf " 033c"'をファイルの下部に置く
- 保存して終了
- . 。 〜/.bashrc(そして、はい、間にスペースがあるはずです。
- さあ、すべてがうまくいくかどうかを確認してください!
私はこの情報を渡すだけでこの情報を信用していません。
私のお気に入りの人間に優しいコマンドは次のとおりです。
reset
XtermおよびVT100でテストされました。また、異常なプログラム終了後に役立ちます。コマンドバッファーを保持するため、Up-Arrowは以前のコマンドを循環します。
乾杯:d
KDEとUbuntu 12.04 LTSと「Konsole」端末では、投稿された回答作業はありません。ただし、デフォルトのキーボードショートカットCTRL+Shift+Xを押すと機能します!ソース:
新しいラインの印刷を使用するソリューションはあまりサポートされていないことを知っていますが、他のすべてが失敗した場合、なぜですか?特に、他の誰かが画面を見ることができる環境で動作している場合、キーログができない場合。潜在的な解決策の1つは、次のエイリアスです。
alias c="printf '\r\n%.0s' {1..50}"
次に、画面の現在の内容を「クリア」する(またはむしろ、それらを非表示にします)、タイプするだけです c+Enter
ターミナルで。
それを追加するためだけに tmux
スクロールバッファーはクリアされません clear
, reset
また printf
. 。必要がある :clear-history
. 。見る リンク.
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;
}