Відповіді:
ctrl+ Lпросто очистіть екран терміналу.
Це еквівалент клавіш швидкого клавіатури clear -x
. вип
Це властивість bash
, тому ви не знайшли його під комбінацією клавіш у своєму gnome-терміналі. Від 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 переводиться на ASCII код літери мінус 64 (1). 65 - код ASCII 'A', 'L' - 12-та літера -> код 76. Якщо оболонка не знає, що робити з кодом, вона друкує її.
Друк символу FF призвів до появи нової сторінки на лінійному принтері та чіткого екрана на терміналі (так, я тоді використовував VT-52 , при 300 бодах).
Отже Ctrl+ Lдорівнює 12, що є FF. Таким же чином Ctrl+ Iє TAB, і Ctrl+ Gдзвонить у дзвінок --- якщо термінал або оболонка не перехоплює його, як Ctrl+ Cнаприклад.
Зверніть увагу , з іншого відповідь: здається , що Баш робити перехоплення CTRL- Lі робити clear
. Приємно, що bash
автори асоціювали ключ із командою, яка зробить більш-менш те саме, що і ASCII-код на старих терміналах!
З іншого боку, у моєму zsh
поєднанні CTRL- Iпрацює як TABі CTRL- Hяк Backspace(2).
Старий хороший ASCII ... (зауважте, що літера L знаходиться у колонці 4, рядок 12, вона має код ASCII 4 * 16 + 12 = 76).
Оригінальне зображення тут , зі статті Вікіпедії про ASCII .
(1) Ctrlдійсно використовується для очищення біта 7.
(2) це джерело жарту "не вдалося вилучити", колись знайдеш, як, наприклад, "це було погано ^ H ^ H ^ Не так приємна ідея" ... (звичайно, слово сильніше, ніж погано!)
^H
s або ^W
s приємно, коли ви не можете використовувати закреслення. :)
Control-L
перехоплений і інтерпретується Баш ( на насправді з допомогою в readline
бібліотеці , яка обробляє інтерактивне редагування в командному рядку). Він пов'язаний з clear-screen
функцією, як писав @souravc.
Зауважте про значення Control-L
: У таблиці символів ASCII вона визначається як Feed Feed, але це нічого не означає, якщо якась програма не інтерпретує її відповідно. Термінал не очищає екран, коли він бачить канал форми, як це можна перевірити, збереживши ^ L у файлі та роздрукувавши файл із cat
. Коли bash/readline
бачить ^L
, він виконує clear-screen
функцію. Це посилає послідовність символів, яку розуміє ваш емулятор терміналу (як описано терміном cap або terminfo), і має ефект очищення екрана.
У дуже старих принтерах a ^L
заздалегідь почав би друкувати папір на наступному аркуші, звідси і назва "feed feed". Але сучасні термінали та емулятори терміналів відповідають новому стандарту ANSI, в якому команди управління - це багатозначні «коди втечі», які починаються з ^[
(escape). Коли bash бачить ваш ^L
, він, ймовірно, надсилає послідовність з двома командами ESC [ H ESC [ J
, яка рухається у верхній лівій частині екрана і очищає все, що знаходиться під ним (звідси і весь екран).
ESC [ ESC [ J
також очищає історію команд, в той час як CTRL + L
послідовність цього не відбувається. Послідовність відсилаються терміналу швидше ESC [ H ESC [ 2 J
, йти вперед спробуйте самі з цією командою: printf "\033[H\033[2J"
.
Оскільки всі вже досить добре пояснили, що означає Ctrl+ Lі що робити, але ніхто не пояснив, як "повернути" команду, ось кілька команд, які ви можете набрати, щоб повернути вас до того, що ви робили:
history
дасть вам останні 20 введених команд.
tail --lines=20 /var/log/dpkg.log
дасть вам останні 20 рядків виводу будь-якої інсталяції пакета, яку ви виконували