|
| ||||||||||||
| ||||||||||||
Введение в POSIX'ивизм(C) Алексей Федорчук, 2005Опубликовано на сайте LinuxCenter Интермедия: универсальный konquerorЭта интермедия посвящается центральной программе KDE - konqueror'у, универсальному инструменту для управления файлами, выполняющему также роль браузера. Содержание
ВведениеКаждому пользователю любой ОС, будь то Windows или Linux, DOS или Solaris, не избежать операций с файлами - их просмотра, копирования, перемещения, а иногда - страшно сказать - даже удаления. Хорошо юниксоидам-позиксивистам, привыкшим к консольному режиму: для всех этих действий им достаточно командной оболочки, сиречь шелла (shell) и десятка команд. Данные с необходимыми опциями и в должных сочетаниях, команды эти, подобно конторе Кука, предоставят полную информацию о файловой системе, дадут возможность отобрать из изобилия созданных документов те, что потребны в данный момент, и произвести над ними те действия, которые позволят прийти к поставленной цели кратчайшим путем (разве что верблюда не пришлют для доставки к оной). А как быть пользователям, с младых ногтей подвергшимся тлетворному влиянию графических интерфейсов, которым командная строка кажется столь же таинственной, как Книга Мертвых древних египтян? Конечно, радикальный выход для них - скорее ознакомиться с командами управления файлами (хотя бы в объеме соответствующей интермедии). Но пока суть да дело - им на помощь придут программы, именуемые файловыми менеджерами. О древовидниках и двухпанельникахНе скажу за Windows - каюсь, по незнанию, - но в POSIX-системах (и в этом пользователь должен четко отдавать себе отчет) файловые менеджеры не делают ничего такого, что не могли бы сделать встроенные команды оболочки и штатные утилиты операционной системы (т.н. классические Unix-утилиты). Более того, ни на что большее они не способны в принципе: ведь при любой файловой операции они используют те же базовые функции ядра ОС (то есть системные вызовы), специально для этой цели предназначенные. Которые уже испокон веков и по полной программе задействованы в файловых утилитах POSIX-систем. А подчас файловые менеджеры просто являют собой надстройки на шелл-командами - так называемые front-end'ы. Однако красивые интерфейсы и удобные менюшки могут создать впечатления если не богатства возможностей, то хотя бы простоты их использования. Все файловые менеджеры можно условно разделить на две категории - двухпанельники и древовидники, по преобладающему представлению в них файловых систем. В силу некоторых причин начнем со вторых. Древовидные файловые менеджеры ведут свое начало от старинной, ныне почти забытой DOS-программы XTree Gold. И исходят они из метафоры дерева файловой системы (каковым в POSIX-совместимых операционках она на самом деле и является). Типичным их современным представителем является Windows Explorer (хотя как раз в этой операционке понятия древовидной организации файловой системы и нет). Преобладающий (и адекватный представлению) способ манипуляции файлами здесь - перетаскивание их мышью из одного каталога в другой, действия с помощью клавишных комбинаций занимают подчиненное положение. Может, потому и не получили они популярности во времена "черного DOS'а" и столь же черной текстовой консоли Unix, к коим мышь приходилось прикручивать пассатижами... Двухпанельные файловые менеджеры апеллируют к другой метафоре - списку файлов в каталоге. А поскольку плоский список (в сущности, ничем не отличающийся от вывода команды В отличие от древовидников, давших достаточно мало (по числу представителей, но не пользователей - вспомним Windows Explorer) отростков, двухпанельная идея породила множество продолжателей. Тут можно перечислить и отечественный Volkov Commander (без него по сию пору не обходится ни один диск-Reanimator), и столь же родной FAR, и - двухпанельник в квадрате - "четырехглазый пай-мальчик" (Pie Commander), и множество других. Апофеозом же двухпанельников стал Windows Commander, не так давно трасформировавшийся в "тоталитарного командира" (Total Commander). В мире POSIX-систем древовидная идея вообще произрастала довольно хило (хотя несколько файловых менеджеров, сделанных по образу и подобию XTree Gold, и существуют, но я почти не знаю тех, кто ими реально бы пользовался). А вот двухпанельная идея обрела здесь благодатную почву. И
хотя количественно их оказалось немного, один из них - Midnight Commander ( Интересно, что доминирование двухпанельников над древовидниками особенно явно выражено среди отечественных пользователей: популярность на Руси и старого NC, и современных FAR и Total Commander вкупе с Объяснение феномена двухпанельной любви можно найти в изысканиях историков из Екатеринбурга, опубликованных на сайте Neosoft (http://www.neosoft.ru). Ими было показано, что знаменитый герой Первой Русской революции, лейтенант Петр Петрович Шмидт, не погиб в застенках от лап царских опричников. А таинственным образом спасся и эмигрировал в США, где его с удовольствием приняли на службу в Военном-Морские силы. Там под именем Питера (sic!) Нортона он дослужился до капитана (по уточненным мною сведениям - до коммандера, этот чин и дал имя предтече обсуждаемого класса программ), после чего вышел в отставку и занялся софтверным бизнесом. Оставшись, не смотря на годы жизни на чужбине, сугубо русским человеком, он как никто другой смог угадать чаяния пользователей-соотечественников. На что они и ответили всенародной любовью к его продуктам, в том числе и к Norton Commander. От себя замечу, что версия екатеринбуржцев подтверждается рядом косвенных признаков. В частности - умолчальной цветовой гаммой первозданного NC, унаследованной и VC, и FAR, и Однако я отвлекся - вернемся к нашим файловым менеджерам. Исторически сложилось так, что я никогда не мог причислить себя ни к двухпанельникам, ни к древовидникам в чистом виде. XTree Gold прошел как-то мимо меня, развесистые баобабы Windows Explorer наводили ужас. Во времена "черного DOS'а" я, конечно, прибегал к NC. Однако и тогда набрать к командной строке что-нибудь типа Так и остался бы я лишним на празднике жизни файловых менеджеров, если бы в один прекрасный день не сделал замечательное открытие, имя которому - Konqueror в его величииКонечно, о существовании При первом запуске
Конечно, внимательный взгляд задержится на богатых инструментальных панелях - основной (вверху, сразу под меню), дополнительной (чуть ниже - вровень с окошком адреса), и навигационной (вертикально по левому краю). Однако вот на них-то мы останавливаться и не будем, благо получить представление о функциях каждой кнопки можно из всплывающей подсказки. Потому что более нас интересует вопрос о том, а чего же такого революционного привнес в этот мир Повторяю, на первый взгляд - ничего. И если случайно (или - прочитав эту статью) не залезть в его настройки, но так до конца жизни можно остаться в неведении относительно бездонных их возможностей. Правда, надо отметить, что настройки эти не вполне логично разбросаны по трем пунктам главного меню - Вид, собственно Настройка и Окно. Может быть, потому они и не получили пока всенародной известности. Начать с того, что Explorer-подобная ипостась Правда, для этого потребуется отправиться в меню Вид с его пунктом Режим просмотра, где среди многочисленных подпунктов выбрать В виде подробного списка (или - в Виде текста, что уберет пиктограммки слева от имен файлов). Получаем список имен файлов - а уж отрегулировать подробность представления атрибутов можно в пункте Показывать подробно того же меню Вид. Здесь можно последовательно включить/отключить демонстрацию размера и типа файла, времени его изменения (атрибут
К слову, если порядок колонок в нашей таблице не устраивает - любую из них можно просто перетащить мышью, ухватившись за заголовок. Правда, отключить лишние все равно придется через те же пункты меню. А отсортировать файлы по любому параметру (и в любом порядке) можно щелчком мыши по заголовку. Теперь для пущей двухпанельности остается только вывести параллельно два независимых таких списка. Этого достигаем, вернувшись в меню Окно и приказав - Разделить панель по вертикали. После чего, скорректировав вывод атрибутов, получаем вполне Norton-подобный вид (рис. 35).
По аналогии с NC легко догадаться, что между панелями возможен обмен файлами - копирование, перемещение, и т.д. Делать, однако, это пока придется либо методом Drag&Drop или через пункты главного меню. Что для истинного сына командира Нортона покажется неприемлемым. Не беда - в его распоряжении возможность настроить комбинации горячих клавиш (почти) так, как ему хочется. Для чего в меню Настройка предусмотрен специальный пункт - Комбинации клавиш. Он вызывает список доступных действий (рис. 36). В нем достаточно выбрать то, коему мы хотим приписать привычную клавишную комбинацию (например, Выделить все), отметить переключатель По выбору - и нажать то, что нужно (в данном случае - привычные Серый плюс и Серый Enter на малой цифровой клавиатуре).
Аналогично можно поступить и с прочими привычными клавишами - привязать к F3 функцию просмотра файла, к F4 - вызов редактора для его модификации (причем - не обязательно встроенный, которым по умолчанию KDE выступает KWrite, а любой имеющийся в системе, в том числе и консольный), к F5 и F6 - копирование и перемещение файлов, соответственно. Правда, тут нужно оговориться - некоторые из клавишных комбинаций могут быть уже задействованы как умолчания самой KDE. Однако и их изменить - не проблема, благо, в нынешних версиях ее сделать это предлагается сразу же (лезть в настройки клавиатуры среды стало не нужно). Однако сила командира Нортона была отнюдь не только в двух его панелях. А еще и в собственной командной строке, еще в приснопамятные времена далеко превосходившей по своей функциональности убогий DOS'овский Отвечу легко: командная строка командира нам тут не потребуется. Ибо, поворотившись обратно же в меню Окно, мы увидим там пункт Показать эмулятор терминала. И включение его даст нам не просто командную строку - а полноценное терминальное окно с запущенным экземпляром вашей пользовательской оболочки, настроенной в полном соответствии с тем, как это описано в ее профильных файлах (типа И при этом одну из панелей можно синхронизировать с терминалом - для этого нужно отметить переключатели в нижнем правом углу панели и терминального окна. И тогда мы получаем а) всю гибкость работы в командной строке плюс б) полную визуализацию результатов своих действий - именно ее часто не хватает начинающему пользователю при использовании команд типа Вид терминала может быть настроен в очень широких пределах. Достаточно щелкнуть в его поле правой клавишей мыши - и из появившегося контекстного меню можно изменить: а) размер и гарнитуру шрифта (на шрифте панелей это никак не скажется - тот изменяется независимо), б) так называемый тип терминала, что в русской версии озаглавлено почему-то как Клавиатура, в) цветовую схему (черным по белому или наоборот, а можно - даже и с прозрачным фоном, сквозь который будут просвечивать любимые обои рабочего стола), и многое другое (рис. 37). Нужно только не забыть сохранить настройки, добившись оптимального результата.
Пару слов специально об установке типа терминала. Для нормального поведения клавиш управления курсором здесь настоятельно рекомендую Linux console - даже во FreeBSD, это даст привычное поведение клавиш типа Home и End в большинстве командных оболочек. А вот для tcsh добиться того же мне удавалось только при типе терминала XTerm (XFree 4.x.x). Вообще говоря, терминальное окно И еще - к слову о настройках вообще. Большинство из выполненных нами ранее действий будут иметь силу только для запущенной в данный момент копии Лики konqueror'аВ списке предлагаемых профилей их можно обнаружить несколько - в том числе цель наших предыдущих манипуляций (имитацию внешности Midnight Commander - а мы затратили на это ст олько трудов!), а также интересный профиль предварительного просмотра файлов. в котором мы имеем (слева направо, рис. 38) навигационную панель, панель содержимого каталогов и панель просмотра файлов.
Ничто не в силах помешать нам создать и собственный профиль Ну конечно же, можно. Для чего 1) отправляемся в панель запуска KDE, 2) отыскиваем там нужный нам значок (в большинстве тем это в той или иной степени стилизованное изображение домика), 3) щелкаем на нем правой клавишей мыши, 4) в появившемся контекстном меню выбираем пункт Свойства, 5) в возникшей панели переходим на вкладку Приложение, и 6) отыскиваем на ней поле Команда (рис. 39). А в поле этом остается просто заменить имя вызываемого профиля, выступающего как аргумент команды
Konqueror в ипостаси браузераК слову сказать, среди имен предопределенных профилей можно обнаружить и такое - webbrowsing. Да-да, Если для полноценного web-серфинга возможностей Разумеется, запустить А поводов для этого При желании можно придать браузеру двухпанельный вид, или отобразить в нем окно терминала (рис. 40). За каким зеленым это потребуется? - спросите вы меня. Не скажите, батенька, - отвечу я вам. Такое представление оказывается очень не лишним при работе с ftp-архивами - файлы из них можно копировать точно также, как это делается на локальной машине (перетаскиванием мышью, горячими клавишами или просто из командной строки). Правда, при условии, что в
Однако описанием возможностей Одна из привлекательных черт Кого из нас не раздражали сайты, авторы которых склонны злоупотреблять атрибутом Можно, конечно, запретить и загрузку по умолчанию графических элементов страницы - особенность, весьма ценная с развитием городских сетей, услуги которых оплачиваются не по времени, а по трафику. К сожалению, в Пустячок, но приятный: программа krenameА в заключение этой интермедии я хотел бы рассказать о замечательной программе, имеющей прямое отношение к проблеме управления файлами. Хотя и не входящей в Дано: массив старых файлов, имена которых записаны в формате DOS в виде Для записного юниксоида решение лежит на поверхности: нужно написать простенький скрипт, выполняющий такую операцию за один раз. И это действительно несложно - я для этой цели пользовался оператором for, вероятно, можно придумать и другие способы. Однако такое сиюминутное решение (согласитесь, ведь предложен далеко не самый сложный случай из реально возможных) будет применимо только к файлам с определенными масками имен. Можно, конечно, поднатужиться, и придумать чуть более сложный сценарий, универсальный, допускающий задание произвольных масок - как для заменяемых, так и для заменяющих имен. А это и будет база программы вроде Если последнее покажется более простым остается только установить программу любым способом. Она есть в портах и пакетах FreeBSD, вероятно, в "больших" дистрибутивах Linux, на худой конец - просто собрать из исходников (каковые берутся с упоминаемого предшествующей главе сайта http://kde-apps.org). На худой конец - потому, что текущая в данный момент версия А теперь запускаем Теперь остается выбрать файлы для переименования. Они могут находиться в произвольных местах файловой системы - чтобы включить в список файлы из другого каталога, достаточно прибегнуть к кнопке Добавить. А закончив с отбором - обратиться к кнопке Далее, чтобы перейти к следующему шагу - выбору условий переименования. Ибо
На следующей же стадии задается собственно схема переименования (рис. 42). При этом можно частично использовать их старые имена и "расширения", дополнив их суффиксами и (или) префиксами; при этом символы старых имен могут быть преобразованы в верхний или нижний регистр. В качестве суффиксов и префиксов могут использоваться номер, дата или просто произвольный набор символов.
С помощью кнопки Найти и заменить можно предварительно в именах всех выбранных файлов заменить одни их части на другие, в том числе и с использованием регулярных выражений (рис. 43). А можно вообще отказаться от сохранения исходных имен файлов, задав для всего массива собственную маску.
Таким образом легко превратить рассеянные по разным каталогам и бессистемно именованные файлы изображений в единый массив иллюстраций к некоему материалу вида Переход в режим эксперта выполняется через меню Настройка -> Настроить krename, где во вкладке Интерфейс следует отметить переключатель Использовать вкладки (для опытных) (рис. 44).
В режиме мастера интерфейс krename преобразуется в вид с закладками (рис. 45). В первой из них (Файлы) осуществляется отбор файлов для переименования, во второй (Назначение) - определяются каталоги для помещения переименованных файлов - все точно также, как было описано выше.
Схема переименования задается во вкладке Имя файла (рис. 46). Где можно видеть, что, кроме обычной замены по маске, как в режиме мастера, прибавились такие возможности, как переопределение "расширения" (за начало его можно принять не последнюю точку в имени, а первую), при использовании номеров в именах - сделать нумерацию не сквозной, а спропуском произвольных (вписанных руками) номеров, а также задействовать некие функции.
Среди функций программы Наконец, вкладка Модули позволяет произвести над переименованными файлами дополнительные действия (рис. 47): выполнить в их отношении команду оболочки (из списка или произвольную), изменить атрибуты принадлежности и доступа (в рамках полномочий данного пользователя, конечно), а также времени (atime и mtime), отсортировать переименованные файлы в каталоге и даже изменить набор используемых в именах символов (например, KOI8-R на UTF8).
Таким образом, возможности программы krename далеко выходят за рамки простых сценариев оболочки. И их реализация путем шелл-скриптинга потребовала бы весьма изощренного программирования (мне, например, такое было бы не по силам). Так что использование ее вполне оправданно даже для опытных пользователей: время, сэкономленное на сочинении собственных скриптов переименования файлов, лучше употребить на совершенствование контента оных... |
|
CITForum © 1997–2025