本当に端末をクリアするには?


385

私が発行することができclear、コマンドやプレスCtrl+をL、現在のUbuntuの端末をクリアするが、これは単に上向きに以前の出力をシフトして、マウスのスクロールや使用している場合PgUPPgDown、キーをそれが現在のコマンドの前のコマンドが終了するの出力と出力が始まる場所を区別するのは難しいです。

ターミナルを本当にクリアして、前のコマンド結果が表示されないようにする方法はありますか?


11
Ctrl + Lを2回押すと、空白になります!
パンディア14

回答:


456

はい、あなたが探しているコマンドは

reset

clear、またはCtrl+ Lresetは対照的に、単に画面をクリアするのではなく、実際に端末を完全に再初期化します。ただし、シェル(bash)を再インスタンス化することはありません。つまり、画面をクリアするだけのように、bashの状態は以前と同じです。

@Wallacolooがコメントで言及しているように、このコマンドは同じことをより迅速に行う必要があります。

tput reset

他の回答から:

  • towolfで説明されているように、端末にキーボードショートカットを設定できます。reset

  • Kubuntuを実行していて、端末がKonsoleである場合、UncleZeivが指摘しているように、そこでは同じように機能しないため、[ 編集]→[履歴を消去]に移動する必要がありますreset


9
おそらくほとんどのユーザーにとって重要ではありませんが、の動作はreset端末に依存します。
-cthom06

2
個人的には、を押したときにスクローラーに沿って何かが「上」に残っていることを気にしません^L。私はそれを見ません(私はそれが欲しいのです!)、私はそれを感じません、そして突然私がそこにあったものを元に戻す必要があるなら-問題ありません。reset対照的に、はるかに難しいツールです。ターミナルで何か問題が発生したときに使用します。たとえば、奇妙なエスケープシーケンスが誤ってディスプレイ全体を台無しにした場合などです。
-ulidtko

14
@ulidtko:大量の出力があるプログラムの連続セッションを実行する場合は重要です。スクロールバックすると、どの実行が何かを印刷したかについて混乱しやすくなります。これらのケースでは、より洗練されたソリューションを使用できることを完全に知っていますが、それでもそれは、迅速で汚れたデバッグセッションで頻繁に発生するシナリオです。
-UncleZeiv

7
tput reset目に見えて同じことをするが、瞬時に完了するものもありresetます(プロンプトが再表示されるまでに約2秒かかることがあります)。
ポンカドゥードル

1
これにより、putty.exeウィンドウのサイズが変更されます。
-void.pointer

100

私はしばらくこれを探していましたが、これを投稿した天才を見つけました:

clear && printf '\e[3J'

画面バッファー全体をクリアし、非常にきれいにします。OS Xで動作し、ほとんどの* nix端末で正常に動作すると信じています。

不思議なことに、この部分'\e[3J'はターミナルエスケープコマンドです。


2
うーん、xtermの、konsoleのとLinux VTで動作しますが、gnome-terminalの...ではない
ルスラン

1
おかげで、私のMacでうまく動作します-私は本当に本当のBashスタイルを逃しましたreset
ジョニーコーダー

9
おかげで、それは非常に便利です!どういうprintf '\e[3J'意味ですか?バッファをどのようにきれいにしますか?
フィリップスピリドノフ

4
エイリアシングに注意してくださいreset-端末をクリアするだけではありません。たとえば、端末を破損するランダムなゴミを含むバイナリファイルを誤って印刷した場合(たとえば、入力した文字のエコーを無効にした場合)、reset通常は修正できます。もちろん\override、エイリアスシャドウコマンドの使用方法を知っている限り、エイリアスは問題ありません。
-RubyTuesdayDONO

4
これは、Winderを介してSSHにアクセスするときにPuttyのスクロールバックをクリアするために機能する唯一の答えです。
ドーピン

45

[ 編集]→[キーボードショートカット]に移動して、gnome-terminalにショートカットを割り当てることもできます。Shift+ Ctrl+ Alt+ を使用しますC

ショートカットをリセットしてクリアする


+1。メニューバーは常に非表示になっています。だから何年も何年もgnomeを使っていたとしても、私はこれを探すとは思わなかった。ありがとう:-)
ステファノパラッツォ

3
「リセット」は私には何もせず、「リセットとクリア」はすべてをクリアしますが、プロンプトは再表示しません。これらのメニューエントリはいずれも、端末からの「リセット」コマンドのようには動作しません。
Hibou57 14

@ Hibou57が言ったように、「リセット」のキーボードショートカットは何もしないようです。この機能は14.04で壊れていますか?
マイケル・マーティン・スマッカー14

「この機能は14.04で壊れていますか?」:これは12.04と同じです。
Hibou57 14

1
@ Hibou57 "Reset and Clear"はプロンプトを再表示することを期待していませんが、その後Enterを押すとプロンプトを再表示するはずです。それはあなたのために働きますか?
ドンハッチ

19

stackoverflowから私の答えをクロス投稿します。

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

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

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


18

次のコマンドを実行します:

reset

これは、新しいターミナルを起動するのと同じ効果があります。


6
puttyを使用している場合、を実行した後でもreset、上にスクロールして以前のものを見ることができます。これはむしろPuTTYの問題resetですか?
Svish

@svish-それは単なるパテ実装の問題または決定です。
ベラク

@jgbelacqua、ディール:)
Svish

MAC OSターミナルでの
作業

2
@Biraいいえ、resetmacOS 10.14 Mojaveのスクロールバックはクリアされません。あなたはseq 100; resetまだそこにスクロールバックを見ようとすることができます。macOS端末でCmd+Kは、画面をクリアしてスクロールバックできます。
ジョニー・ウォン

8

私のお気に入りはprintf "\ec"。これはprintf "\033c"またはにもなりますprintf "\x1bc"。それは奇跡的に端末出力用の画面とバッファをクリアするANSIエスケープシーケンスです(私が働いたほとんどの標準的な端末では、Ubuntuのようなgnome-terminal、terminator、xtermなどで動作することを知っています) Linuxes)

これがLinux MintとUbuntu 14.04で機能することは知っていclear && echo -ne "\033cます。printf "\ec"いつも私のために働いてきました。

さらに、.bashrc私の場合、次のようなバインディングがあります。

bind -x '"\C-t": printf "\ec"';

今、私はいつも押しctrltています。


Windowsキーを使用してマッピングを作成する方法を知っていますか?このスニペットは非常に優れており、MacのCommand-Kとまったく同じように機能します。ありがとうございました。
ニロクト

@Niloctを使用すると、端末でサポートされているかどうかを確認できますxevxevxセッション内で端末を入力するだけです)。私の知る限り、urxvtはそれをサポートしていません。ttyで試したことはありませんが、サポートされないと確信しています。また、xtermやgnome-terminalがこれをサポートするのではないかと疑っています。ANSIエスケープには注意が必要です。返信ありがとうございます。
dylnmc

わかりました@dylnmc、感謝します。コメントありがとう。
ニロクト

5

Konsoleたとえば、使用している場合でもreset、最初の行を超えてスクロールすることはできます。その場合、使用している特定の端末の機能を使用する必要があります。のためKonsoleEdit > Clear Historyです。


3

Kubuntuでは次のことが非常に成功していることがわかりました。

alias clc="echo -en '\033c\033[3J'"

clsWindowsの伝統を守り、Matlabバージョンclc、または独自のバージョンを使用するために使用できます。幸運を!



2

@ Hibou57回答の別の代替案:

# The Octal Way
alias clear="echo -e '\033c\c'"

または

# The Hex Way
alias clear="echo -e '\x1b\c'"

基本的にこれはまったく同じ効果を持ち、^[文字を出力し(端末をクリアします)、末尾の改行を出力しません。


わずかな修正:文字だけではなく、^[文字(ESC)のc文字が続き^[ます。合計すると、これらは「RIS」端末コードになり、リセットが発生します。詳細:xfree86.org/4.8.0/ctlseqs.html
jwd

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.