Я знаю, что существуют такие команды, как \! clear
, system clear
, используемые ctrl + l
в терминале для очистки терминала.
Но я понимаю, что при использовании функции clear просто остается пробел, а все предыдущие результаты по-прежнему находятся наверху, и при прокрутке мы все равно увидим результаты предыдущих команд.
Мне интересно, есть ли команда, которая полностью очищает терминал, если он новый и его можно так же легко открыть, как и прокрутить терминал вверх, то будут отображаться только результаты текущего действия.
решение1
Используйте команду " \! reset". В отличие от clear или Ctrl+L, reset фактически полностью переинициализирует терминал, а не просто очищает экран. Однако он не переинициализирует оболочку (bash). Это означает, что состояние bash такое же, как и раньше, как если бы вы просто очищали экран.
решение2
Вы можете использовать tput reset
.
Кроме того reset
, tput reset
вы можете использовать следующий скрипт оболочки.
#!/bin/sh
echo -e \\033c
Это отправит на консоль управляющие символы Esc-C, которые сбрасывают терминал.
Google Keywords: Linux Console Control Sequences
man console_codes говорит:
Последовательность ESC c вызывает сброс терминала, что вам и нужно, если экран весь искажен. Часто рекомендуемое "echo ^V^O" сделает текущим только G0, но нет гарантии, что G0 указывает на таблицу a). В некоторых дистрибутивах есть программа reset(1), которая просто делает "echo ^[c". Если ваша запись terminfo для консоли верна (и имеет запись rs1=\Ec), то "tput reset" также сработает.
ссылка:https://unix.stackexchange.com/questions/26975/how-to-clear-terminal-completely