Linux console (Русский)
Состояние перевода: На этой странице представлен перевод статьи Linux console. Дата последней синхронизации: 3 августа 2021. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.
- Конфигурация клавиатуры в консоли
- Screen capture#Virtual console
- Color output in console
- getty
Linux консоль — консоль, реализованная в ядре Linux, стала первой функциональностью ядра, разработанной в 1991 году. Является способом взаимодействия с пользователем — позволяет ядру и другим процессам отправлять пользователю текстовые данные, а также получать данные, введённые пользователем. Обычно для ввода используется клавиатура, а для вывода – монитор. Linux-консоль поддерживает так называемые виртуальные консоли — консоли, которые отделены логически, но используют те же клавиатуру и дисплей.
Данная статья описывает основы консоли Linux и как настроить отображения шрифтов. Настройка клавиатуры описана в подстранице Конфигурация клавиатуры в консоли.
Реализация
Консоль, в отличии от сервисов которые взаимодействуют с пользователем напрямую, является частью ядра системы. Это отличает ее от эмуляторов терминала, таких как xterm (Русский), которые реализованы на уровне пользовательского пространства и являются обычными приложениями. Консоль оставалась компонентом ядра Linux, но имела заметные изменения, такие как графический вывод (framebuffer) и поддержка Юникода.
Не смотря на все усовершенствования консоли, она до сих пор имеет полную обратную совместимость с прежним оборудованием, ограниченным в своих возможностях по сравнению с графическими эмуляторами терминала.
Виртуальные консоли
Консоль в представлении пользователя это набор виртуальных консолей. Они создают впечатление параллельной работы нескольких терминалов: в каждую из виртуальных консолей могут быть залогинены разные пользователи. Они могут работать в своих оболочках и иметь собственные настройки шрифтов. Каждая консоль использует устройство /dev/ttyX и вы можете переключится между ними сочетанием клавиш Alt+FX , где X номер виртуальной консоли начиная с 1. Устройство /dev/console автоматически привязывается к активной виртуальной консоли.
Текстовый режим
Изначально Linux был создан как ядро для управления оборудованием ПК, консоль была разработана по стандартам IBM CGA/EGA/VGA, которые поддерживали на тот момент все ПК. Графические возможности, предоставляемые этим стандартом предоставляли простое отображение 80*25 сетки символов с поддержкой 16 цветов. Этот устаревший режим был похож на принцип работы текстовых терминалов, таких как VT100. Все еще существует возможность загрузиться в текстовом режиме, если оборудование поддерживает его, но большинство современных дистрибутивов (в том числе Arch Linux) используют framebuffer консоль.
Framebuffer консоль
Так как Linux был портирован на различные архитектуры, которые не использовали VGA-совместимых графических адаптеров и не поддерживали текстовый режим, требовалась другая реализация. Framebuffer консоль была разработана для предоставления стандартной консоли среди всех доступных платформ и представляла собой VGA-подобный интерфейс независимый от используемого графического оборудования. Таким образом, консоль Linux — это не эмулятор терминала, а сам по себе терминал. Она использует тип терминала linux и в значительной мере совместима с VT100.
Горячие клавиши
| Горячие клавиши | Описание |
|---|---|
| Ctrl+Alt+Del | Перезапускает систему (указанно символической ссылкой /usr/lib/systemd/system/ctrl-alt-del.target ) |
| Alt+F1 , F2 , F3 , . | Переключает на n-ую виртуальную консоль |
| Alt+ ← | Переключает на предыдущую виртуальную консоль |
| Alt+ → | Переключает на следующую виртуальную консоль |
| Scroll Lock | Когда Scroll Lock активен, ввод и вывод заблокированы |
| Ctrl+c | Закрывает текущую задачу |
| Ctrl+d | Вставляет EOF |
| Ctrl+z | Прерывает текущую задачу |
Шрифты
Примечание: Эта секция написана для Linux консоли. Для альтернативных реализаций, поддерживающих большее количество функций (Полная поддержка шрифтов Юникод, современных графических адаптеров и т.д.) смотрите KMSCON или похожие проекты.
По стандарту, виртуальная консоль использует встроенный в ядро шрифт с набором символов CP437 [1] , но это можно изменить.
Linux консоль по умолчанию использует кодирование UTF-8, но из-за особенностей VGA-совместимого framebuffer, консольный шрифт ограничен стандартными 256 или 512 глифами. Если в шрифте более чем 256 глифов, то количество цветов уменьшается с 16 до 8. Для корректного отображения нужного символа требуется специальная карта трансляции, называемая unimap. В настоящее время большинство консольных шрифтов имеют встроенную unimap, но исторически она загружалась отдельно.
Пакет kbd предоставляет инструменты для смены шрифта и его отображения в виртуальной консоли. Доступные шрифты находятся в директории /usr/share/kbd/consolefonts/ . Шрифты с расширением .psfu или .psfu.gz имеют встроенную карту трансляций Юникод.
Списки раскладок, являющиеся связью между нажатой клавишей и символом используемым системой, находятся в директории /usr/share/kbd/keymaps/ , подробности смотрите на странице Конфигурация клавиатуры в консоли.
Примечание: Замена шрифта может вызвать проблемы в программах, которые рассчитаны на стандартный шрифт, например, использующие линейную графику.
Предпросмотр и временные изменения
$ showconsolefont
Показывает таблицу глифов или символов шрифта.
setfont временно меняет шрифт, если команде передано имя шрифта (находящегося в директории /usr/share/kbd/consolefonts/ ), например:
$ setfont lat2-16 -m 8859-2
Название шрифта чувствительно к регистру. Без параметров setfont возвращает консоли стандартный шрифт.
Для смены на маленький шрифт размера 8×8, можете использовать данный шрифт:
$ setfont -h8 /usr/share/kbd/consolefonts/drdos8x8.psfu.gz
Для большого шрифта, можете рассмотреть шрифт terminus-font , он доступен в различных размерах. Например ter-132n .
Совет: Все команды смены шрифта могут быть набраны «в слепую».
Примечание: setfont влияет только на активную консоль, в других консолях изменений не будет.
Постоянные изменения
Переменная FONT в /etc/vconsole.conf используется для применения шрифта при загрузке системы для всех консолей. Смотрите vconsole.conf(5) для деталей.
Для отображения символов Č, ž, đ, š or Ł, ę, ą, ś используйте шрифт lat2-16.psfu.gz :
/etc/vconsole.conf
. FONT=lat2-16 FONT_MAP=8859-2
Вторая часть набора символов ISO/IEC 8859 будет размера 16. Вы можете поменять размер шрифта используя другие значения (например lat2-08 ). Для регионов определяемых спецификацией ISO 8859, смотрите Части ISO 8859
Для использования шрифта в пользовательском пространстве при загрузке системы используйте хук consolefont в /etc/mkinitcpio.conf . Смотрите mkinitcpio (Русский)#HOOKS для подробностей.
Если шрифт не применяется после загрузки системы, или изменения временные, то скорее всего шрифт сбрасывается когда графический драйвер инициализируется и консоль меняется на framebuffer. Как решение, загружайте графический драйвер раньше, для примера смотрите Kernel mode setting (Русский)#Ранний запуск KMS, [2] или другими способами сделайте загрузку framebuffer перед применением /etc/vconsole.conf .
HiDPI
Звуковые сигналы
Смотреть также
11 лучших шрифтов для программирования
Много статей и сайтов сравнивают шрифты для программирования — всё это отличные ресурсы. Так зачем я опять поднимаю эту тему? Потому что сам всегда терялся в десятках шрифтов и не мог понять, какой лучше. Так что я опробовал много шрифтов и выбрал следующие для вас. Они довольно популярны и их легко получить. И самое главное, все эти шрифты бесплатны!
Я ранжировал шрифты по следующим показателям:
- Насколько различимы схожие символы, такие как 0O , 1lI .
- Легко ли читается шрифт (ширина строк, ширина/высота символов).
- И мои личные предпочтения!
1. Hack
Hack — свободный шрифт, специально разработанный для исходного кода и основанный на проектах Bitstream Vera и DejaVu. 0O и 1lI чётко различимы, а шрифт в целом легко читается. Особенно мне понравился ноль с вертикальной прорезью.

2. DejaVu Sans Mono
Производный шрифт от Bitstream Vera. Это тоже хороший вариант со свободной лицензией. Sans Mono ясно различает 0O и 1lI . Точка внутри 0 не так заметна, как у Hack, но в целом шрифт удобен.

3. Monaco
Monaco использовался по умолчанию в OSX до выхода Snow Leopard. Символы хорошо различаются, поэтому трудно спутать 0O и 1lI . Этот шрифт мне нравится из-за его особого стиля, как будто снова возвращаешься в OSX (сейчас я в основном использую Ubuntu).

4. Source Code Pro
Source Code Pro разработан компанией Adobe. В целом текст выглядит чётче других шрифтов, не говоря уже о хорошей различимости символов.

5. Menlo
Menlo — новый шрифт по умолчанию в macOS для Xcode и Terminal. Это производная от DejaVu Sans Mono. Лично мне больше нравится Monaco, так как я давно использую OSX, но Menlo тоже хороший выбор для программирования.

Дополнение: Menlo больше не шрифт по умолчанию в macOS. В версии High Sierra шрифт по умолчанию изменили на San Francisco Mono, что тоже отличный выбор для программирования. Спасибо Ивану Кантарино и p13t3rm.
6. Consolas
Consolas — шрифт по умолчанию в Visual Studio. Он очень популярен, потому что поставляется с Windows. Лично мне не очень нравится символ l , потому что его легко спутать с 1 .

7. Space Mono
Space Mono разработан Colophon Foundry и это отличный моноширинный шрифт. Отмечу два недостатка: 1) l можно спутать с 1 ; 2) , не отличается от . на размере шрифта в 14 пунктов.

8. FiraCode
FiraCode поддерживает лигатуры, то есть может объединить два или более символов в один символ, чтобы облегчить чтение кода. Обратите внимание на != ,

Примечание: для активации лигатур в VSCode нужно добавить следующую строку.
"editor.fontLigatures": true,
9. Anonymous Pro
Мне нравится Anonymous Pro, потому что он даёт ощущение пишущей машинки. Кроме того, здесь символ < более узкий, чем в Hack, так что он больше похож на знак.

10. IBM 3270
IBM 3270 основан на шрифте, который использовался в консоли IBM 3270, выпущенной IBM в 1971 году. Этот шрифт отлично подходит для программирования и выполнен в стиле ретро (хотя мне он не совсем привычен).

Обратите внимание, что этот шрифт относительно небольшой, поэтому предлагаю увеличить размер шрифта и уменьшить высоту строки, чтобы сделать его более читаемым на экране.
"editor.lineHeight": 20, "editor.fontSize": 14,
11. Droid Sans Mono
Droid Sans создан для Android и очень красив. Но самая большая проблема в том, что у него нет нуля с прорезью, поэтому 0 и O не различимы.

Дополнение: Для Droid Sans Mono созданы варианты, где есть ноль с перечёркиванием и точкой. Спасибо hawtre smith.
Спасибо за чтение! Надеюсь, эта статья поможет вам найти новый шрифт для IDE или консоли! Пожалуйста, порекомендуйте эту статью другим, если она вам понравилась!
Я получил отклики о других шрифтах для программирования. Да, все они замечательные, полностью согласен! Основная цель этой статьи — обеспечить начальную базу для тех, у кого мало опыта с разнообразными шрифтами, поэтому постараюсь сохранить минимальный список и не перегружать людей. Но спасибо всем за отзывы. С удовольствием попробую в повседневной работе шрифт, которые вы упомянули.
- Типографика
- Программирование
22 правила сочетания шрифтов
Для того, чтобы создать правильную и гармоничную комбинацию шрифтов, есть несколько принципов и методов, которые могут вам помочь.
Указанные ниже способы не являются панацеей, их не обязательно использовать все сразу, просто внимательно прочтите этот список идей и обратите внимание на самые интересные для вас, а затем продолжайте создавать свои собственные сочетания.
На самом деле, здесь нет порядка важности…

-
- Комбинируйте шрифт с засечками и шрифт без засечек, чтобы создать контраст. Чем больше стили шрифтов не похожи друг на друга, тем больше у вас шансов создать удачную пару. Шрифты, которые слишком одинаково выглядят, плохо смотрятся вместе. (Попробуйте совместить Helvetica и Univers, чтобы убедиться на примере, что это плохой вариант). Можно выбрать два шрифта с засечками или два без засечек для создания комбинации только в том случае, если они радикально отличаются друг от друга.
-
- Избегайте выбора шрифтов из одной категории, например, рукописные шрифты или брусковые. (Шрифты Clarendon и Rockwell смотрятся вместе не очень хорошо).
-
- Определите каждому шрифту его задачу и придерживайтесь её.
-
- Попробуйте шрифты из различных категорий, которые имеют одинаковую высоту строчных знаков и ширину глифов. (Например, Futura вместе с Times New Roman смотрятся плохо, потому что у них большая разница между х-высотой и шириной. )
-
- Найдите какие-либо отношения между основными формами. Например, посмотрите на букву «О» в верхнем и нижнем регистре. Круглые и овальные буквы «О» не любят друг друга, поэтому их лучше не сочетать.
-
- Сравните начертание шрифтов: оно должно быть разным. (Например, Didot и Rockwell выглядеть очень плохо вместе по многим причинам, но одна из главных — потому что они оба имеют жирное начертание).
-
- Используйте разную цветность. Простой способ проверить цветность—это прищурившись посмотреть на блок со шрифтами: главное, чтобы ваш дизайн не превращался в одно размытое пятно, а сохранял визуальную иерархию. Если оба ваши образца шрифтов примерно одинакового цвета, попробуйте поиграть с размером шрифта, межстрочным интервалом, кернингом или замените начертание.
-
- Найдите умный способ для создания контраста. Увеличьте трекинг для одного шрифта и проверьте, как смотрится сочетание.
-
- Не пренебрегайте тем, чтобы использовать различные шрифты из одного семейства. Например, можно выбрать Helvetica Black для заголовка и Helvetica normal для основного текста.
-
- Попробуйте сочетать шрифты из одного исторического периода. Это займет немного времени, но оно того стоит.
-
- Не забудьте проверить, как смотрится курсивное начертание каждой гарнитуры. Вы можете получить хорошую комбинацию, а затем обнаружить, что курсивы не сочетаются. Не забывайте об этом!
-
- Попробуйте свои вариации с большим и меньшим количеством текста. Измените количество текста, чтобы проверить, как шрифты смотрятся вместе.
-
- Учите классические шрифты. Распечатайте их и смотрите на них во время обеда. После того как вы выучите все популярные шрифты, подумайте о том, как комбинировать их с другими шрифтами. Так вы сможете быстрее и проще создавать различные пары.
-
- Используйте контраст выразительных и нейтральных шрифтов. Если один шрифт обладает выразительным характером (например, жирным начертанием), сочетайте его с нейтральным шрифтом.
-
- Найдите любую удачную комбинацию, созданную не вами, обратите внимание на то, что вам нравится и попробуйте понять, почему это работает. Весь интернет в вашем распоряжении для этого исследования.
-
- Бесплатные шрифты — это палка с двумя концами. Многие бесплатные или дешевые гарнитуры часто пропускают важные символы, проблемы начнутся позже, если вы не позаботитесь об этом заранее.
-
- Используйте не больше 2 гарнитур. Это даст вам до 8 шрифтов для работы: нормальный, полужирный, курсив и полужирный курсив. Можно добавить третий уникальный шрифт в очень ограниченном количестве, например, в заголовке журнала или в логотипе сайта.
-
- Измените размер кегля. Сочетание шрифтов может не согласоваться, но если вы измените размер одного из шрифтов, всё станет на свои места.
-
- Избегайте смешивания моноширинных шрифтов с пропорциональными шрифтами. Вы можете попробовать это сделать, но не говорите, что мы вас не предупреждали.
-
- Не смешивайте настроение шрифтов. Беззаботный Gill Sans не захочет стоять рядом с деловым Didot, по крайней мере, смотреться вместе они будут плохо. Сочетайте два шрифта с одинаковым или похожим настроением.
-
- Следите за удобочитаемостью шрифта. Комбинации шрифтов должны иметь четкие различия для того, чтобы документ мог хорошо читаться. Если не хватает контраста, визуальная иерархия нарушается, и роли, которые вы назначили различным шрифтам не будут ясны.
-
- Нарушайте правила. Найдите свой уникальный способ. Не бойтесь экспериментировать, но делайте это разумно!
Настройка шрифтов в Linux
обычно всё это просто прописывается в системных конфигах и ни кто не задаётся целью запрашивать эту информацию у системы. так что вопрос желательно сдабдить хоть какой-то мотивацией, еже ли это не просто праздный интерес. и для определённости, какая консоль всё же имеется ввиду, VGA’шная, фреймбуферная (с каким драйвером фреймбуфера?) или X-терминал. затравки ради, для дебиана можно почитать, например man 5 console-setup .
7 авг 2018 в 17:36
@user8501933 у вас эмулятор в GUI или tty?