Сироты командира Нортона

Автор: Алексей Федорчук
2001 г

Всенародная наша любовь к файловому менеджеру коммандера Нортона и многочисленным его потомкам для любых платформ известна и в комментариях не нуждается (о причинах ее — в заметке про konqueror). Не миновала эта любовь и открытые Unix-подобные системы. Где роль главного наследника славного коммандера прочно закрепилась за Midnight Commander’ом (выступающим под псевдонимом mc), весьма точно воспроизводящим внешний облик своего родителя, но далеко превзошедшим его функционально.

— Кто твоя мать, рядовой Петров?
— Коммунистическая партия Советского Союза!
— Кто твой отец?
— Вы, товарищ командир!
— Какова твоя заветная мечта?
— Сиротой бы остаться…
Из старого советского анекдота

Должен сознаться, что на заре моего приобщения к Linux’у без mc я не обходился: именно он, наряду с KDE, помог сломать психологический барьер перед командной строкой, выросший за годы тлетворного влияния Windows.

Однако время шло, я постепенно проникался величием традиционных Unix-средств для управления файлами, далеко превосходящими по скорости и эффективности любые Commander’ы (не говоря уж об Explorer’ах). И к волшебному сочетанию символов mc обращался все реже и реже — хотя по привычке устанавливал его всегда, чтобы было. Ну и для визуализации результатов своих действий он часто оказывался не лишним.

Первое разочарование в mc постигло меня на стадии приобщения к FreeBSD. Если его версия для Linux могла носить имя сына коммандера Нортона с гордостью, то FreeBSD-версию иначе чем командирской сироткой язык назвать не поворачивался (речь идет о 2001 годе — ныне былые недостатки Free’шной версии изжиты, подобно пьянству при Михал Сергеиче). Начать с того, что по непонятным причинам вызывался он там не волшебной аббревиатурой mc, а весьма неуклюжим и непривычным буквосочетанием midc. Что, конечно, решалось просто введением дополнительного псевдонима в профильном файле, например, для csh

alias mc midc

однако все равно раздражало. Но это еще полбеды. Далее обнаружилось отсутствие встроенного редактора: если соответствующая опция в mc (пардон, в midc) была включена, по нажатию на F4 вызывался не кто иной, как vi.

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

Но с было трудно примириться любому старому командирскому комбатанту — так это с непотребным поведением клавишных комбинаций по умолчанию. Так, комбинация Control+Enter отнюдь не помещала файл под курсором в командную строку, а Control+O вместо отключения панелей вызывала просто немедленный (и — без предупреждения) выход из midc. И Midnight Commander под FreeBSD был мной окончательно заброшен.

Во избежание недоразумений повторяю — все сказанное относится именно к midc под FreeBSD. В Linux-своей версии mc — это мощный, полнофункциональный файловый менеджер, ничуть не уступающий FAR’у для Windows. Да и под FreeBSD умолчальные его недостатки могут быть ликвидированы путём пересборки с соответствующими настройками.

И тут наступил психологический момент вспомнить о другом коммандерском отпрыске для FreeBSD — Demos Commander’е (или, сокращенно, deco). Получившего свое имя, разумеется, не от древнегреческих демократов, а от пионера российского провайдерства (автор — Serge Vakulenko). И конечно, ничего специфически FreeBSD’шного не содержащего: просто в дистрибутивах Linux он обычно не встречается, а во FreeBSD (и — OpenBSD также) входит стандартно, как в виде пакета, так и порта.

Надо заметить, что с первого взгляда deco производит еще более сиротское впечатление: съежившиеся на пол-экрана панели удручающе-черного цвета (на некоторых терминалах приобретающие почему-то окраску в династических цветах дома Романовых), крайне ограниченные возможности интерактивной настройки, возможности файловых манипуляций — на уровне 1-х версий Norton Commander (в частности, невозможно скопировать, переместить или удалить каталог целиком, с содержащимися в нем файлами).

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

Однако если набраться некоторого терпения, начинаешь понимать всю сермяжную правду, заложенную в deco. Во-первых, поведение клавишных комбинаций в нем привычно (пользователю mc) и предсказуемо. Во-вторых, возможности настройки его не столь уж бедны, как кажется на первый взгляд. Есть возможность создания пользовательского меню (вызываемого по клавише F2) — неотъемлемого атрибута «командирских» файловых менеджеров. К любым типам файлов, определяемых по маскам, можно привязать не только команды, но и сколь угодно сложные их конструкции. А самое главное — в deco обнаружился замечательный режим командной строки.

Включение этого режима (через меню или комбинацией клавиш Control+P) приводит к тому, что действия в панелях становятся невозможными, но зато открываются самые широкие возможности манипулирования непосредственно командами оболочки. После чего становится ясным, почему по умолчанию панели deco свернуты на половину экрана (что, впрочем, легко изменить — включив через меню или комбинацией Control+F режим Full Screen: нижняя его часть, в сущности, представляет собой обычное терминальное окно.

Сам по себе deco предлагает на выбор одну из двух встроенных командных оболочек — /bin/sh и /bin/csh. Правда, интерактивные их возможности очень бедны: не поддерживаются ни пролистывание истории команд (хотя таковая само по себе и поддерживается), ни автодополнение, ни псевдонимы, ни прочие давно уже привычные радости. Попытки настройки оболочек также остаются безуспешными. по крайней мере, никакие мои манипуляции с профильными файлами (типа ~/.csh или ~/.profile) эффекта не возымели ни малейшего. Честно говоря, для меня так и осталось загадкой, откуда deco черпает сведения о переменных оболочки и окружения.

Тем не менее, работа в режиме командной строки оказывается весьма комфортной. При этом начинаешь понимать, что программа эта, в сущности, никакой не файловый менеджер; или, мягче сказать, эта ее функция — лишь дополнение к основной, а именно: визуализации действий в командной строке. То есть именно то, что восхитило меня в свое время в Konqueror’е — файловом менеджере-браузере из KDE. Кстати сказать, в экранной документации deco так и называется — visual shell, а отнюдь не файловый менеджер.

Конечно, хотелось бы, чтобы терминальное окно под визуализационными панелями использовалось наиболее эффективно. То есть — подключить к deco какую-либо мощную современную командную среду (типа bash, tcsh или zsh). Однако возможности для этого не предусмотрено: так называемые /bin/sh и /bin/csh встраиваются в него статически, и изменить это мне не удалось.

К сожалению, ожидать совершенствования deco не приходится: судя по всему, развитие программы прекратилось во второй половине 90-х годов. Однако сам по себе факт ее существования вселяет надежду: а вдруг кому придет в голову создать аналогичный визуализатор командных оболочек, но уже на современном этапе их развития?

Добавить комментарий