В командной строке терминала для OS XI можно ввести echo $'\ec'
и ti очистит консоль. Я понятия не имею, почему это работает, хотя. Что это делает?
Я предполагаю, что это будет работать и на других версиях Linux. Может кто-нибудь пролить свет?
Терминал обычно не имеет API как такового, поэтому драйвер терминала прослушивает определенные последовательности символов, отправляемых на терминал, и предпринимает действия на основании полученных последовательностей. Последовательность ^[c
вызывает очистку терминала и является лишь одной из многих таких последовательностей.
\e
- это символ ESC (0x1B). Это известно как «escape-последовательность».
В Интернете есть их полный список для терминала VT100 или ANSI, с которым вы можете ознакомиться, чтобы понять, как они работают.
К вашему сведению, вы можете сделать то же самое с printf "\x1bc\n"
или полностью очистить экран, пропустив этот последний \n.
Конкретная последовательность отправляется как
ESC c
(escape-символ, за которым следует c
). Это происходит с помощью функции аппаратного сброса VT100. На реальном терминале это нарушит вашу связь. Эмуляторы терминала (которые вы, скорее всего, используете) просто переустановят терминал в его состояние по умолчанию, случайно очистив дисплей. Поскольку они обычно эмулируют (имитируют) VT100, подходящим местом для начала чтения является документация для VT100:
Что касается ссылки "vtansi", которая была отмечена в FAQ в течение нескольких лет: Как получить цвет с VT100?