Это то, что меня так смущало в течение долгого времени.
Я использую Linux, но у меня есть пробелы в моем понимании определенных аспектов, и один касается терминала.
Как я понял, что мы имеем в виду под консолью - это эмулятор старых терминалов.
Но я не могу понять, что за дело с этим.
Насколько я читал, лучшими старыми терминалами были серии VT и тип векторной графики (Tektronix).
Поэтому я предполагаю, что нынешние эмуляторы подражают им.
Теперь мои потребности в Linux в отношении отображения на дисплее достигли того, что я использую цветовую схему для vim и оцениваю цвета при выполнении различий в файлах.
Но когда у меня возникают проблемы, я обычно нахожу совет по их установке xterm-256
и screen-256
т. Д.
Кроме того, когда я делаю:ls /lib/terminfo/
Я вижу около десятка каталогов с конфигурацией для (я полагаю) различных типов эмуляторов.
Поэтому мой вопрос: как эти xterm-256
или screen-256
и все остальные вписываются в идею эмулировать только верхние терминалы в последние десятилетия?
Зачем нужно иметь так много типов терминалов? Это то, что я должен изучить больше?
И почему сегодня с помощью современных технологий нужно эмулировать такие старые терминалы, как VT, а не иметь что-то новое?
Возможно, мои нужды слишком просты, и я понимаю, насколько это тонко, но это было тем, что меня сильно озадачило. Так как, например, если у меня есть проблема с схемой цветов, я просто копирую вставить то, что я нахожу в Google о TERM и т.д., не понимая, что я делаю или в чем проблема.
Если бы кто-то помог мне осуществить это, я был бы очень признателен
screen
илиtmux
) ....bashrc
, в лучшем случае маскируют основную проблему и только могут вызвать дальнейшие проблемы.to support pretty much any terminal there might be..
Но почему? Зачем нам эмулировать терминал 70-х или 80-х без графики или зеленого экрана?Ответы:
Странные аспекты Unix обычно существуют по уважительной причине, так что вы правильно их найдете. В этом случае, тем не менее, веская причина давно устарела, и вы смотрите на старинный артефакт ушедшей эпохи.
Примерно единственным «терминалом», существующим сегодня, является xterm & варианты. Их возможности варьируются очень незначительно, так что это важно только для нескольких программ. Если вы просто используете xterm и никогда не трогаете переменную TERM или не заглядываете в базу данных terminfo, ваша жизнь, как правило, будет лучше.
Переменная TERM передает информацию о терминале к приложению через окружающую среду, ср человек xterm . Изменение не меняет терминал ; он просто представляет различные функциональные возможности терминала для приложения.
Во времена проводных терминалов необходимо было установить TERM для представления подключенного терминала. В случае xterm программное обеспечение может установить переменную самостоятельно. Краткий обзор vim docs показывает (как вы упоминаете в своем комментарии), что вы должны изменить его, чтобы поддерживать цвет. Это прогресс для вас.
Ответ как антропологический, так и технический.
До графического интерфейса доступ к Unix-машинам осуществлялся через тупые терминалы, например VT-100. Оболочки и утилиты типа top уже существовали. Когда графический интерфейс стал технологически практичным (в котором X сыграл свою роль) в 1980-х годах, пользователям Unix все еще нужно было использовать эти программы, поэтому был изобретен xterm для эмуляции старого VT-100.
Это было задумано как пробел. «Все знали», что терминалы - это прошлое, а графические интерфейсы - будущее, и все ожидали, что «все» будет доступно через графический интерфейс. Например, в оригинальном Macintosh не было клавиш со стрелками, потому что зачем они вам нужны ? Конечно, загадочная командная строка Unix, с отсутствующими гласными и беспомощной помощью
скоро пойдет по пути памяти барабанов и перфокарт. И это произошло, в некотором роде: 9 пользователей в 10 под управлением Windows или OS X никогда не видят командную строку, за исключением случаев, когда техническая поддержка приходит, чтобы что-то исправить.
Затем произошли две вещи с графическим интерфейсом Unix, как это было. В частности, Windows вывела деньги с рынка. Был предпринят большой шаг к его стандартизации (см. Sun News и OSF Motif), а затем он остановился примерно в 1990 году. Примерно в это же время начал работать Интернет, и графические объекты в Unix переместились в веб-браузер. Мотивация и деньги (почти одно и то же) на разработку полного графического интерфейса для Unix и отрисовку всего в разделе 8 руководства устарели исчезли.
Есть и другая причина, которую очень немногие предвидели: командная строка имеет определенные преимущества перед графическим интерфейсом. Конвейеры и регулярные выражения очень мощные, не говоря уже о том, что их можно повторять с помощью истории оболочки и сценариев. Даже в контексте графического интерфейса командная строка оставалась полезной . Настолько, что он продолжает расти даже сегодня.
Как следует из вашего вопроса, необходимо пересмотреть предположение о том, что графический интерфейс победит, и переосмыслить терминал как его неотъемлемую часть. Нам нужен новый терминал с пропорциональными шрифтами и графикой с битовой адресацией в терминале .
К сожалению, никто не готов к этому. Ни одно юридическое лицо не возьмется за это; Рынок огромен, но все еще лишь небольшая часть пользователей компьютеров. Логическим спонсором было бы правительственное агентство, такое как DARPA, но исследования по человеческому интерфейсу в наши дни считаются «выполненными» (разве мы не изобрели GUI?). Пока больше людей - гораздо больше людей - не осознают необходимость, xterm - ваш друг и, вероятно, тоже друг вашего внука.
источник
If you just use xterm, and never touch the TERM...
Как это возможно? Любая схема цветов для vim требует такой конфигурации. Еще больше при использовании ее внутри мультиплексора. Поэтому я не уверен, как я могу быть достаточно образованным, чтобы понимать изменения конфигурации, необходимые для каждой проблемы? 2)... today is xterm & variants
Как насчетscreen-*
? Это часть вариантов? Каков точный набор, о котором пользователь должен знать? 3) Если я правильно понимаю, им было проще поддерживать через эмуляторы все терминалы, которые когда-либо существовали, чем создавать что-то с нуля? ->The TERM variable communicates information about the terminal...Changing it doesn't change the terminal;
я не совсем понимаю этот момент. Я имею в виду, что еслиTERM
терминал не меняет, то из чего состоит терминал и как linux знает, какой файл terminfo db использовать?TERM
Действительно, содержимое переменной используется как индекс в базе данных terminfo. Когда вы измените его, вы изменяете значение переменной окружения в процессе оболочки , что Xterm является хостинг . Эта оболочка вполне может быть на другой машинеxterm -e 'ssh _machine_name_'
. Это не значение, которое видит xterm, и, следовательно, никак не влияет на поведение xterm. Это сбивает с толку, потому что xterm устанавливает переменную TERM (в пользу вас), отражающую ее конфигурацию (tryxterm -t
), в то время как vim требует, чтобы вы установили ее самостоятельно.