DragonFlyBSD. Особенности консольного режима

Алексей Федорчук

Сразу после установки DragonFly в системе имеется только базовый комплекс утилит командной строки — ни малейшими Иксами и тем более десктопами здесь и не пахнет. И то и другое придётся устанавливать самому из портов или пакетов, о чём речь пойдёт своевременно или несколько позже. Поэтому вкратце опишу особенности консольного режима для тех применителей, которые привыкли к консоли Linux’а (и тем более для тех, кто живой консоли в глаза не видел).

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

В отличие от Linux’а, в DragonFly по умолчанию имеется восемь виртуальных консолей. Хотя, строго говоря, это название следует применять только к первой, или системной, консоли, которому соответствует устройство /dev/tty0. Прочие же устройства от /dev/tty1 до /dev/tty7 именуются виртуальными терминалами. Но для краткости я буду употреблять термин «консоль» (с добавлением номера) применительно к ним всем. Переключение между этими консолями, как и в Linux’е, комбинацией клавиш Alt+F#, где # — номера консолей, с 1-й по 8-ю.

Девятая консоль (устройство /dev/tty8) зарезервирована по умолчанию для запуска Иксов и дисплейного менеджера для авторизации в них. Ничего такого у нас пока нет, так что до установки соответствующих пакетов оставим её в покое. Тем более что и переключиться на неё сейчас не удастся.

В Linux’е все консоли абсолютно одинаковы, в BSD-системах же это не совсем так: они все равны между собой, но первая — чуть-чуть равнее других. Это реликт тех времён, когда машины были большими и управлялись с консоли root-оператора. И поныне в DragonFly по умолчанию сыпятся сообщения, предназначенные для администратора системы — почему она и называется системной. Полностью отключить вывод этих сообщений никак нельзя, хотя можно существенно его урезать. Тем не менее, использовать первую консоль для работы не очень удобно.

Одна из основных особенностей BSD-консоли — способ пролистывания буфера её истории (который не следует путать с историей командной оболочки — это две большие разницы). Линуксоиды, видевшие дистрибутивы без автоматической загрузки Иксов при старте, вероятно, знают, что там это делается клавишами PageUp и PageDown при нажатом Shift‘е. В DragonFly доступ к консольному буферу требует переключения в режим скроллинга — нажатием одноимённой клавиши. Зато после этого буфер можно просматривать не только постранично (точнее, поэкранно) — теми же клавишами PageUp и PageDown, но и построчно, стрелками управления курсором Up и Down. Повторяю, ничего общего с просмотром истории команд в шелле, выполняемом теми же клавишами, этот процесс не имеет.

Следующая очень важная особенность консоли DragonFly — независимость буфера каждой виртуальной консоли. Если в Linux’е, переключившись на другую виртуальную консоль, мы безвозвратно теряем историю предыдущей. В DragonFly же можно спокойно переходить с консоли на консоль, в каждой при заходе обращаясь к своей истории.

Вообще консоль DragonFly по сравнению с Linux’овой существенно богаче возможностями и гораздо логичней управляется — для этого требуется всего две команды, vidcontrol и kbdcontrol, назначение которых очевидно.

Консольная мышь в DragonFly подхватывается автоматически — если она имеет USB-интерфейс. Если же мышь работает по протоколу PS/2 (а из актуальных устройств это не только игровые мыши, но и тачпады ноутбуков), включить её можно правкой файла /etc/rc.conf — в своё время я это подробно описывал (там же есть ещё некоторые сведения по настройке консоли). Важно помнить, что мышь в консоли DragonFly — ни разу не указательно-позиционирующее устройство, а служит исключительно для помещения в буфер выделенной области экрана и вставки содержимого буфера в позицию текстового (не мышиного!) курсора.

В качестве командной оболочки входа (login shell) в DragonFly выступает /bin/tcsh — как для root’а, так и для обычного пользователя. Правда, по умолчанию настроена она на режим совместимости с мифической /bin/csh, и потому кажется бедной функциями для интерактивной работы. Альтернативой ей может служить только /bin/sh — так называемый POSIX Shell (на самом деле это один из вариантов шелла Альмквиста, ash), который по этой части ещё более убог. А установить привычный большинству линуксоидов bash или, скажем, zsh, столь милый некоторым, которые с претензиями (вроде автора этих строк) не получится до настройки системы dports и pkgng.

Поэтому действующим линуксоидам предлагается паллиатив. Во-первых, немного почитать про tcsh (например… нет, не у Бернарда Шоу, а всего только у меня). Во-вторых, воспользоваться приводимым там конфигурационным файлом ~/.tcshrc — мне работа в tcsh с ним представляется очень комфортной, и не исключено, что вы к моему мнению присоединитесь. В любом случае, это позволит пережить трудное время установки и настройки системы dports. А там — кто знает? Может быть, он вам и понравится сам таким, каким есть. Со мной случилось именно так — не смотря на пламенную любовь к zsh‘у, в BSD-системах я для администратора всегда оставляю в качестве login shell’а tcsh. Обосновывать это рационально не собираюсь: просто мне так нравится.

Про конфиг для tcsh‘а я уже сказал. И добавлю, что он, подобно марксизму, является не догмой, а руководством к действию. То есть — к внесению в него правки, которая покажется целесообразной. И тут встаёт вопрос об инструменте для этого — то есть текстовом редакторе.

Разумеется, в соответствие со стандартом POSIX, в базовой установке DragonFly имеется vi — именно он, а не его продвинутый потомок Vim (каковой, при желании, придётся устанавливать после настройки портов). Однако для тех, кто не впитал знание его команд с молоком матери, предлагается штатная альтернатива — mined, происходящий из того самого MINIX, который подвиг Линуса Торвальдса на сочинение Linux’а. Это редактор класса nano (или ee из FreeBSD), простой в использовании и снабжённый достаточным на первое время help’ом. В котором и можно выполнять несложную правку конфигурационных файлов (а сложной у нас пока не предвидится).

Вот вроде и все вводные установки. Можно начинать работу по приведению DragonFly в состояние, пригодное для практического применения. И первый этап здесь — установка системы dports и настройка доступа к бинарным пакетам pkgng. О чём — на следующей странице.

Предварение | Оглавление | Продолжение