Необходимость в этом маленьком терминологическом отступлении вызвана тем, что, судя по постам на форумах и обсуждениях в Джуйке, например, в нынешнее время появилась мода упорно смешивать теплое с мягким консольный режим с интерфейсом командной строки (CLI — Command Line Interface). Причём она распространилась не только среди начинающих пользователей, многие из которых и живой консоли-то уже не видели, но и среди применителей с большим стажем.

Отчасти в этом виновата среда KDE, штатная программа эмуляции терминала которой, предназначенная в первую очередь для работы в командной строке (то есть для применения CLI) носит имя konsole, что русскими буквами передаётся точно так же, как console — то есть именование консольного (условно «текстового» режима). Это, как сказал бы Венечка Ерофеев, позорно и преступно. Поэтому давайте для начала условимся о терминах.

Появление термина «консоль» приурочено к древним временам «больших» машин с терминальным доступом: так назывался терминал, который принадлежал root-оператору и потому был «равнее других». Однако в Linux’е и BSD-системах он традиционно используется как синоним термина «виртуальный терминал», используемого для эмуляции на одной машине нескольких терминалов физических, то есть сочетаний устройства ввода (клавиатуры и мыши) и вывода (дисплея).

Изначально виртуальные терминалы сами по себе были чисто текстовыми — они выводили на экран символы из набора, прошитого в знакогенераторе видеоадаптера. С появлением программируемых видеоадаптеров грань между текстовым и графическим режимом смазалась. Но по сей день понятия консольного и текстового режима употребляются как синонимы. Хотя на самом деле виртуальные терминалы в Linux’е нынче почти всегда работают в графическом режиме, реализуемом через кадровый буфер (frame buffer) видеоадаптера.

Консольный режим обычно применяется для работы в командной строке, то есть в CLI. Но это совсем не обязательно: в нём можно запускать программы, манипулирующие объектами, например, файлами (Midnight Commander, скажем), а при использовании frame buffer’а — просматривать картинки или воспроизводить всякую мультимедию.

Это одна сторона медали. Другая же проявляется в том, что CLI не менее эффективен и в графическом режиме, в эмуляторах терминала оконной системы X и её интегрированных средах. Однако применение CLI в программе konsole вовсе не означает, что это происходит в консольном режиме.

Существуют случаи, когда некоторые команды могут быть выполнены только в «голой» консоли, без всяких признаков сеанса графического режима. Мы с такой ситуацией сталкивались при переносе домашнего каталога пользователя на dataset в пуле ZFS.

В набросках этого цикла речь будет идти именно о такой «голой» консоли — этот термин я использую как синоним понятий «текстовый» режим (с учётом оговорки относительно frame buffer) и виртуальный терминал. Просто терминал (или терминальное окно) будет употребляться применительно ко всему семейству эмуляторов терминала в Иксах. Конкретный же представитель этого семейства в среде KDE будет именоваться konsole.

Настройка «голой» консоли включают в себя обеспечение

  • вывода на дисплей консоли, то есть подбор шрифтов, в том числе и кириллических,
  • загрузки подходящей кириллической раскладки, и, наконец
  • работы консольной мыши.

Да, все дальнейшие разговоры основаны на постулате, что при установке системы (не важно, с какого из носителей) были были выбраны русский язык и русская же раскладка клавиатуры, что влечёт за собой корректную локализацию (локаль ru_RU.UTF-8). Также предполагается, что перед первым обновлением в YaST’е не была включена опция Игнорировать рекомендованные пакеты — это гарантирует апдейт всех установленных программ языково-зависимыми модулями. При существовании оных, разумеется — ведь не все утопающие прикладывают руки к делу собственного спасения, и немалое число программ, особенно консольных, остаётся нелокализованными.

При вводе и выводе кириллицы я буду говорить только о наборе символов в кодировке UTF-8, каковая принята в openSUSE по умолчанию. Хотя восьмибитные кодировки и сохраняют в некоторых случаях актуальность (например, при необходимости работы со старыми казёнными документами, которые никто и никогда перекодировать уже не будет), на эту тему за первое десятилетие существования пользовательского Linux’а написано было без счёта — и ничего с тех пор не изменилось.


Содержание