web-dev-qa-db-ja.com

実際の端末画面をクリアする

端末でclearコマンドを使用しても、画面がクリアされたと考えるようにユーザーを欺くだけです...マウスを使用してスクロールすると、前のコマンドからの出力を見ることができます。あなたがテキストの津波に溺れているとき、これは人生を困難にします。

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

では、どうやってLinuxの端末の内容を実際にクリアするのですか。

341
Autodidact

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

printf "\033c"

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

あなたはおそらくエイリアスを定義したいと思うでしょう...

alias cls='printf "\033c"'

説明

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

そのため、これは端末をリセットするためのVT100エスケープコードである<ESC>cになります。 ここで は端末エスケープコードに関するさらに詳しい情報です。

編集する

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

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"'

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

469
Autodidact

resetを試してください。これは端末画面をクリアしますが、前のコマンドは矢印またはどちらのキー割り当てを使ってもアクセスできます。

194
vpit3833
tput reset

これでうまくいくでしょう。

44
user1348669

私が読んだ答えはどれもPuTTYではうまくいきませんでしたので、私はこの記事 についてのコメントを見つけました

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

(私はUbuntuサーバーに接続しているのでOPには関係がありますが、あなたのサーバーが何を実行していても関係なく関係するようです)

7
TecBrat

次のリンクは、そのエイリアスを永続的にする方法を説明しているので、入力し続ける必要はありません。

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

これらはそのリンクで詳述されたステップです。

  1. vim〜/ .bashrcやgedit〜/ .bashrc、あるいはあなたが好きなテキストエディタ
  2. ファイルの末尾にエイリアスcls = 'printf "\ 033c"'を追加
  3. 保存して終了
  4. 。 〜/ .bashrc(そして、。と〜の間にはスペースが必要です)
  5. 今すべてがうまくいったかどうかを確認してください!

私はそれを伝えるだけでこの情報を信用しません。

6
N1mr0d

これに対する私のお気に入りの人間に優しい命令は以下のとおりです。

reset

XtermとVT100でテスト済み。プログラムの異常終了後にも役立ちます。コマンドバッファを保持するので、上向きの矢印は前のコマンドを順番に表示します。

歓声:D

5
elbedoit

KDEとUbuntu 12.04 LTSと "Konsole"端末では、投稿された答えはどれもうまくいきません。ただし、デフォルトのキーボードショートカットCTRL + Shift + Xを押しても機能します。ソース:

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

3
The111

改行の印刷を使用するソリューションはあまりサポートされていないことを私は知っていますが、それ以外のすべてが失敗した場合、どうしますか?特に、誰かが画面を見ることはできても、まだキーログインできないような環境で操作している場合は特にそうです。そのための1つの解決策は、次のようなエイリアスです。

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

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

2
nemesisfixx

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

1
Dai