Как очистить экран bash, сохранив при этом прокрутку?

Как очистить экран bash, сохранив при этом прокрутку?

Команда clearможет сделать следующую команду более удобной для чтения (если она выводит меньше страницы, то прокрутка не выполняется, а значит, и поиск начала не требуется). Однако она также очищает буфер прокрутки, что не всегда нужно.

решение1

Просто нажмите Ctrl-L на клавиатуре.

решение2

TL;DR

  • CtrlLпрокрутить текущую строку наверх. Прокрутка назад не стирается.

  • clear -xчтобы стереть все строки, которых нет в прокрутке.

  • clearчтобы стереть все строки, включая прокрутку.


CtrlL является привязкой библиотеки GNU readline, который, как сказано в руководстве Bash, обрабатывает вводимые данные при использовании интерактивной оболочки.

чистый экран (CL) Очистить экран, оставив текущую строку в верхней части экрана.

Привязку CtrlLможно переназначить в .inputrc.


clear, с другой стороны, является внешней командой.

$ type clear
clear is /usr/bin/clear

Из егостраница руководства,

clearочистите экран, если это возможно,включая его буфер прокрутки (если определена расширенная возможность «E3»).

OPTIONS
-x не пытаются очистить буфер прокрутки терминала с помощью расширенной возможности «E3».

решение3

решение4

В новых версиях clear, похоже, поведение по умолчанию было изменено. Чтобы очистить экран и сохранить прокрутку, используйте опцию -x. Чтобы вернуть предыдущее поведение, создайте псевдоним, например:

alias clear='clear -x'

Связанный контент