Я хотел бы выполнить команду из скрипта bash, чтобы очистить терминал, из которого он запущен:
- Я не хочуочистить историю bash (history -c)
- Я не хочувыполнить команду очистки (которая перемещает терминал вниз к последнему приглашению, создавая впечатление, что терминал очищен, но предыдущий вывод остается видимым, если вы прокручиваете вверх)
- Я хочуполностью удалить все предыдущие выходные данные в моем терминале и сделать его чистым, как будто я открываю новый
Спасибо.
решение1
Попробуйте printf '\033c'
. Это отправит escape-последовательность на терминал, обычно очищая все содержимое, включая буфер прокрутки.
решение2
clear
Очищает экран терминала. Я полагаю, что вы получаете доступ к терминалу из графического интерфейса, и, следовательно, вы фактически используете интерфейс к консоли, а не саму консоль. Этот интерфейс автоматически «сохраняет» вашу историю вывода (то, что вы видите при прокрутке вверх). В настоящей консоли (без графического интерфейса) вы не можете просто прокрутить вверх. В этом случае терминал — это просто программа, которая ведет журналы вывода консоли.
Если вы откроете новое окно терминала и закроете текущее, вы начнете с нового окна. (Вы также можете выполнить повторную инициализацию вручную, выбрав Терминал -> Повторная инициализация и очистка)
Терминал, работающий в среде рабочего стола:
Консоль без среды рабочего стола:
решение3
Проверятьэтот пост SU ссылается на команды сброса и очистки Bash
В дополнение к reset
ответу также описан еще один способ очистки терминала.
решение4
Одним из вариантов может быть проверка возможности запуска терминала с отключенной прокруткой. Например, 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.