6

Я хотел бы выдать команду из скрипта bash, чтобы очистить терминал, с которого он работает:

  • Я не хочу очищать историю bash (history -c)
  • Я не хочу давать команду очистки (которая перемещает терминал вниз до последней подсказки, создавая впечатление, что терминал был очищен, но предыдущий вывод остается видимым, если вы прокрутите вверх)
  • Я хочу полностью удалить весь предыдущий вывод на мой терминал и сделать его чистым, как будто я открываю новый

Благодарю.

5 ответов5

11

Попробуйте printf '\033c' . Это отправляет escape-последовательность на терминал, обычно очищая все содержимое, включая буфер обратной прокрутки.

2

clear ДЕЛАЕТ очистить экран терминала. Я предполагаю, что вы получаете доступ к Терминалу из графического интерфейса и, следовательно, на самом деле вы используете интерфейс с консолью, а не консоль ActUAL. Этот интерфейс автоматически "сохраняет" вашу историю вывода (то, что вы видите при прокрутке вверх). В реальной консоли (без графического интерфейса) вы не можете просто прокрутить вверх. В этом случае терминал - это просто программа, которая ведет журналы вывода консоли.

Если вы откроете новое окно терминала и закроете текущее, вы начнете с нового окна. (Вы также можете повторно инициализировать вручную, перейдя в Терминал -> Повторная инициализация и очистка ")


Терминал работает в среде рабочего стола:

Консоль без рабочего стола:

0

Проверьте этот SU, ссылающийся на команды сброса и очистки Bash

Помимо reset ответа также описан еще один способ очистки терминала.

-1

Одним из вариантов может быть проверка возможности запуска терминала с отключенной прокруткой. Например, xterm -sl 0 запустит xterm с 0 saveLines. Смотрите файл man:

   -sl number
           This option specifies the number of lines  to  save  that  have
           been  scrolled  off the top of the screen.  This corresponds to
           the saveLines resource.  The default is 64.
-1

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

Если вы хотите очистить терминал, то, вероятно, самый переносимый подход - использовать tput clear (это выведет зависящую от терминала строку, которая очистит экран).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .