Заметки о консоли. Что же это такое?

Как уже было сказано, в случае настольной машины консоль — это сочетание экрана монитора и клавиатуры (мышь пока оставим в покое). То есть некая физическая реалия, правда? Правда, чистая правда, но — не вся правда.

Потому что одно из первых открытий, которое совершал ранее начинающий линуксоид, — так называемые виртуальные консоли. Помнится, меня на первой фазе знакомства с Linux’ом они просто привели в восторг (каковой не ослабевает и по сей день). Нынче — не то, что давеча: пользователь ну очень дружественного к нему дистрибутива, где по умолчанию устанавливается графический вход в систему, имеет шанс просто не узнать о их существовании…

Виртуальные консоли — это (почти) самостоятельные системы (правда, работающие за счет ресурсов одной и той же машины), в каждой из которых может быть открыт отдельный сеанс работы пользователя (или пользователей — а даже в самой-рассамой персональной Linux-системе их как минимум двое, включая root’а) и запущен совершенно независимый круг задач (включая оконную ситсему X), со своими собственными настройками, наиболее для этого круга подходящими.

По умолчанию в большинстве дистрибутивов Linux активизировано шесть виртуальных консолей (во FreeBSD, например, — восемь). Переключение между ними традиционно осуществляется комбинацией клавиш Alt+(F1/F6), клавиша PrtScr перемещает в следующую, после текущей, виртуальную консоль. Кроме того, т.н. Win-клавиши, без которых не обходится ни одна современная “доска”, по умолчанию также служат для навигации по виртуальным консолям, позволяя перейти, скажем, к последней использовавшейся, и т.д. — точно не помню, потому что всегда переопределяю их назначение.

Раз уж зашла речь о переопределении — сделаю два маленьких замечания. Во-первых, комбинация Alt+F# для перехода между консолями не являет собой нечто предопределенное божественным промыслом. Ибо зависит исключительно от текущей раскладки клавиатуры, о чем подробнее будет говориться в одной из следующих заметок. Другое дело, что во всех известных мне штатных раскладках для Linux (и FreeBSD) именно эта комбинация задействована под навигацию по консолям (тогда как в раскладках OpenBSD, например, используется комбинация Alt+Control+F#). Но при желании такое положение дел можно изменить (и об этом также речь пойдет впереди) — другой вопрос, нужно ли это делать?

Во-вторых, на некоторых мультимедийных клавиатурах и компактных клавиатурах ноутбучного типа, с которыми мне приходилось сталкиваться, дополнительные win-клавиши категорически отказывались выполнять свои навигационные функции. И вообще, следует помнить, что во всех Unix-системах, вследствие их природной кросс-платформенности, гарантированно однозначно ведут себя только основные алфавитно-цифровые клавиши, прочие же (стрелки управления курсором, клавиши на цифровом блоке, даже Delete и Backspace) в общем случае отнюдь не обязаны выполнять привычные пользователям связки PC-Windows обязанности.

Отступление. К слову сказать — именно в этом одна из причин неувядающей популярности текстового редактора vi (и его клонов) среди системных администраторов: в какой бы системе своего подшефного зоопарка он ни оказался, его не оставит чувство уверенности в том, что привычные клавиши командного режима (под которые задействована только основная часть “доски”) будут всегда вести себя совершенно однозначно.

Однако я отвлекся, вернемся к нашим консолям. Я уже говорил, что каждая виртуальная консоль может рассматриваться как самостоятельная, индивидуально настроенная, система. С оговоркой — “почти”. Потому что в том, что касается пользовательских настроек программного уровня, это верно безусловно: авторизовавшись на второй консоли от лица другого пользователя, мы получаем рабочую среду, свойства которой описаны в его пользовательских конфигурационных файлах. Однако что касается собственно свойств консоли — тут существуют многочисленные ограничения.

Одни из свойств консоли (такие, как цвет шрифта и фона) действительно могут быть настроены независимо для каждой виртуальной консоли. Однако самые важные для пользователя характеристики — шрифт и раскладка клавиатуры, — загружаются для всех консолей сразу. Также на все консоли распространяется и карта соответствия (так называемая mapscreen) кодировки ввода (то есть раскладки клавиатуры) и кодировки вывода (то есть экранного шрифта), о чем подробнее будет говориться в заметке о русификации. Хотя (и это важно) карта соответствия не активизируется одновременно с активизацией произвольной виртуальной консоли. Тем не менее, настроить одну консоль на вывод русских текстов в кодировке KOI8-R, другую — в Windows-кодировке, а третью — так вообще в Unicode, без дополнительных ухищрений (о которых я скажу в свое время) не удастся.


Содержание . .

. .