web-dev-qa-db-ja.com

ターミナルでCtrl + L

誤って入力した ctrl + L ターミナルとターミナルウィンドウで、「スクリーンフル」サイズが1つ飛びました。 「編集」->「キーボードショートカット」でキーボードショートカットを調べましたが、そのショートカットが見つかりませんでした。

何をする ctrl + L どこで定義されていますか?

40
Parto

ctrl + L 端末画面をクリアするだけです。

コマンドclear -xと同等のキーボードショートカットです。 参照

これはbashのプロパティであるため、gnome-terminalのkeyboard shortcutsで見つかりませんでした。 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 Keyboard Shortcuts の詳細リストを参照してください。

57
souravc

使用しているシェルがインターセプトしていない場合、ターミナルで「フォームフィード」文字を入力しています。端末アプリケーションが何らかの方法でキーストロークをインターセプトまたは使用しない場合、 Ctrl+文字は、文字から64(1)を引いたASCIIコードに変換されます。 65は 'A'のASCIIコード、 'L'は12文字目->コード76です。シェルがコードの処理方法を知らない場合、それを出力します。

FF文字を印刷すると、ラインプリンターで新しいページが表示され、端末で画面がクリアされます(はい、当時300ボーで VT-52 を使用しました)。

そう Ctrl+L 12はFFです。同じやり方で、 Ctrl+I TABであり、 Ctrl+G ベルを鳴らします---端末またはシェルがそれを傍受しない場合、 Ctrl+C 例えば。

他の回答からの注意:bashdoインターセプト CTRL-L clearを実行します。 bashの作者がキーをコマンドに関連付け、それは古い端末でASCIIコードが行ったのとほぼ同じことを行うという素晴らしい感触です!

一方、zshの組み合わせ CTRL-I として働く TAB そして CTRL-H として Backspace(2)。

Old Nice ASCII ...(文字Lは列4、行12にあり、ASCIIコード4 * 16 + 12 = 76を持っていることに注意してください)。

Image from Wikimedia commons

元の画像 ここ 、from ASCIIに関するウィキペディアの記事


(1) Ctrl ビット7をクリアするために使用されます。

(2)これは、「Wordを削除できません」というジョークのソースです。たとえば、「これは悪い^ H ^ H ^ Hnot so Nice idea」でした...(通常、Wordは悪いより強い!)

17
Rmano

Control-Lは、bashによってインターセプトされ、解釈されます(実際には readlineライブラリー 。コマンドラインでのインタラクティブな編集を処理します)。 @souravcが書いたように、それはclear-screen関数にバインドされています。

Control-Lの意味に関する注意:ASCII文字テーブルでフォームフィードとして定義されていますが、これは何らかのプログラムがそれに応じて解釈しない限り、何もありません。ファイルに^ Lを保存し、catを使用してファイルを印刷することで確認できるように、端末はフォームフィードを表示しても画面をクリアしません。 bash/readline^Lを検出すると、clear-screen関数を実行します。これにより、端末エミュレーターが理解する一連の文字(termcapまたはterminfoで説明)が送信され、画面がクリアされます。

非常に古いプリンターでは、^Lは次のシートで印刷を開始する用紙を進めるため、「フォームフィード」という名前になります。しかし、最新の端末と端末エミュレータは、制御コマンドが複数文字 "エスケープコード" で始まり、^[(エスケープ)で始まる新しいANSI標準に従います。 bashが^Lを見ると、おそらく2つのコマンドシーケンスESC [ H ESC [ Jを送信しています。これは、画面の左上に移動し、その下のすべてをクリアします(したがって、画面全体)。

7
alexis

誰もがすでに十分に説明したように Ctrl+L ありますが、コマンドを「逆にする」方法を説明した人はいません。ここでは、実行中の操作に戻るために入力できるコマンドがいくつかあります。

history

最後に入力した20個のコマンドが表示されます。

tail --lines=20 /var/log/dpkg.log

実行したパッケージインストールの出力の最後の20行が表示されます。

0
Fabby