Вместо жестко закодированных последовательностей вы должны использовать библиотеку, такую как PHP Ncurses, которая, скорее всего, будет работать на других типах терминалов
Пример из Ncurses : [ ! d2]
Из ncurses_has_colors:
Проверяет, имеет ли терминал возможности цвета. Эта функция может использоваться для записи независимых от терминала программ.[emphasis mine]
Используйте ncurses_attr(NCURSES_A_BOLD); для жирного шрифта. Обратите внимание, что эта функция и связанные с ней помечены как экспериментальные.
Проверяет, имеет ли терминал цветовые возможности. Эта функция может использоваться для записи независимых от терминала программ.
не зависит от терминала Эта функция в настоящее время не документирована; доступен только список его аргументов.Предупреждение Эта функция ЭКСПЕРИМЕНТАЛЬНАЯ. Поведение этой функции, ее имя и окружающая документация могут быть изменены без предварительного уведомления в будущей версии PHP. Эту функцию следует использовать на свой страх и риск.
[emphasis theirs]
Вы можете найти другие библиотеки. Вы должны проверить, чтобы они использовали независимые от терминала методы. Я нашел несколько, которые используют жестко кодированные последовательности.
Написание собственной панели управления - небольшая задача. Особенно тот, который имеет три первых класса GUI. Учитывая, что вы начали эту задачу, разместив на AskUbuntu, я обеспокоен тем, что вы наивно полагаете, что это будет быстрый проект.
Если вы должны продолжить, вы можете попробовать начать с некоторого кода из YaST , «Еще один инструмент установки OpenSuse». У него нет веб-интерфейса, но у него есть консольные и графические интерфейсы, поэтому, по-видимому, есть некоторая разница в коде, который вы могли бы использовать. Очевидно, что компромисс заключается в том, что YaST построен для Suse, а не Ubuntu.
Но если серьезно, вы не используете Canonical Landscape, потому что это слишком дорого? Сколько стоит ваше время? Я не думаю, что гиперболично описывать ваш проект как находящийся в годы, а не месяцы, рабочей категории.