回答:
ctrl+ Lターミナル画面をクリアします。
これは、コマンドに相当するキーボードショートカットclear -x
です。ref
これはのプロパティでbash
あるため、gnome-terminalのキーボードショートカットでは見つかりませんでした。からman bash
:
clear-screen (C-l)
Clear the screen leaving the current line at the top of the
screen. With an argument, refresh the current line without
clearing the screen.
Bashキーボードショートカットの詳細リストを参照してください。
clear
このコマンドclear
は、端末の履歴を消去しないため、デフォルトのコマンドと同等ではないことに注意してください。-x
引数を追加しない限り、コマンドは消去しますclear -x
。
使用しているシェルがインターセプトしていない場合、ターミナルで「フォームフィード」文字を入力しています。端末アプリケーションが何らかの方法でキーストロークをインターセプトまたは使用しない場合、Ctrl+ Letterは文字から64(1)を引いたASCIIコードに変換されます。65は 'A'のASCIIコード、 'L'は12文字目->コード76です。シェルがコードの処理方法を知らない場合は、それを出力します。
FF文字を印刷すると、ラインプリンターに新しいページが表示され、端末にクリアスクリーンが表示されます(はい、当時300ボーでVT-52を使用しました)。
だから、Ctrl+ LFFである12です。同様に、Ctrl+ IはTABで、Ctrl+ Gはベルを鳴らします。たとえば、Ctrl+のように、端末またはシェルがそれをインターセプトしないC場合です。
他の回答からの注意:bash はインターセプトを行い、CTRL- Lを行うようclear
です。bash
作成者がキーをコマンドに関連付けて、古い端末でASCIIコードを実行したのとほぼ同じことを行うという素晴らしい感じです!
一方、私zsh
の組み合わせではCTRL- Iとして動作しTAB、CTRL- (2)Hとして動作しBackspaceます。
古い素敵なASCII ...(文字Lは列4、行12にあり、ASCIIコード4 * 16 + 12 = 76であることに注意してください)。
オリジナル画像ここから、ASCIIのWikipediaの記事。
(1)Ctrlビット7をクリアするために実際に使用されます。
(2)これは、たとえば「これは悪い^ H ^ H ^ Hではないのでいいアイデアだった」などの「単語を削除できない」というジョークのソースです...(通常、悪いよりも強い言葉で!)
^H
sまたは^W
sを挿入すると便利です。:)
Control-L
は、bashによってインターセプトされ、解釈されます(実際には、コマンドラインでインタラクティブな編集を処理するreadline
libraryによって)。clear-screen
@souravcが書いたように、関数にバインドされています。
の意味に関する注意Control-L
: ASCII文字テーブルでフォームフィードとして定義されていますが、プログラムがそれに応じて解釈しない限り、これは何も意味しません。端末にフォームフィードが表示されても画面はクリアされませんcat
。ファイルに^ Lを保存し、でファイルを印刷することで確認できます。をbash/readline
見ると^L
、clear-screen
関数を実行します。これにより、端末エミュレーターによって認識される一連の文字(termcapまたはterminfoで説明)が送信され、画面がクリアされます。
非常に古いプリンタでは、a ^L
は用紙を進めて次のシートの印刷を開始するため、「フォームフィード」という名前が付けられます。しかし、最新の端末と端末エミュレータは、制御コマンドが(エスケープ)で始まる複数文字の「エスケープコード」である新しいANSI標準に従います^[
。bashがを見ると^L
、おそらく2コマンドシーケンスを送信しています。これはESC [ H ESC [ J
画面の左上に移動し、その下のすべてをクリアします(したがって、画面全体)。
ESC [ ESC [ J
はコマンド履歴もクリアしますが、シーケンスはクリアCTRL + L
しません。ターミナルに送信されるシーケンスはむしろESC [ H ESC [ 2 J
、次のコマンドを使用して自分で試してみてくださいprintf "\033[H\033[2J"
。