Сага о файлах: Средства работы с файлами, архивами, пакетами

В этой статье речь пойдет о средствах управления файлами, архивирования и резервного копирования. Кроме того, здесь же уместно затронуть и еще одну близкую тему - о средствах управления пакетами и инсталляции нового программного обеспечения. И в завершение - о правилах техники безопастности при работе в Linux.

Содержание

Освоившись со средой обитания, по выбору, можно, казалось бы, и приступить к созданию контента. Но...

Что такое контент, о котором столько говорилось (и будет говориться) в этих сагах? Это, в первую очередь, файлы, файлы и еще раз файлы. Создаваемые соответствующими программами - генераторами оригинального авторского материала.

А уже созданными файлами нужно управлять - то есть копировать их и перемещать, переименовывать и удалять, просматривать и сортировать. Время от времени возникает необходимость их архивировать и компрессировать. Не говоря уже о том, чтобы сохранять их как нетленные ценности - то есть подвергать резервному копированию.

Вот обо всем этом - средствах управления файлами, архивирования и резервного копирования, - и пойдет речь в этой саге. Кроме того, здесь же уместно затронуть и еще одну близкую тему - о средствах управления пакетами и инсталляции нового программного обеспечения. И в завершение - о правилах техники безопастности при работе в Linux.

Но сначала несколько слов о том,

Что нужно знать о файловой системе Linux

Подразумевается - что нужно знать простому, хотя и полагающему себя профессиональным, пользователю. И потому особых подробностей здесь не ищите: их можно обнаружить в толстых книгах про Linux или в замечательной статье Виктора Хименко "Файлы, файлы, файлы" (Мир ПК, 2000, ##2, 3).

А пользователю нужно в первую очередь осознать отличия файловой систему Linux от привычных систем DOS и Windows.

Linux позволяет работать с великим множеством файловых систем, как локальных, так и сетевых. Однако у него есть и своя, родная, файловая система, носящая название ext2fs. Построена она предельно просто и логично: все в ней является файлами - данные, программы, каталоги, устройства (для примера - последовательные или параллельные порты). И потому файлы разделяются на типы:

  • обычные файлы;
  • каталоги;
  • файлы устройств;
  • ссылки.

Обычные файлы - это, во-первых, исполнимые двоичные файлы (типа файлов *.exe или *.com, но не привязанные к какому-либо расширению);во-вторых, ASCII-файлы, содержащие простой текст (не обязательно романического содержания - сюда относится и подавляющее большинство системных конфигурационных файлов); в третьих, файлы данных, созданные како-либо программой (текстовым процессором, графическим редактором или электронной таблицей, например) в собственном формате. Впрочем, все это пользователю DOS/Windows понятно.

Каталоги - это тоже файлы, содержащие информацию о каталогах: рекурсия - широко распространенный и любимый прием в мире Unix-систем (достаточно вспомнить расшифровку аббревиатуры проекта GNU - GNU's Not Unix). Каталоги объединяются в иерархическое дерево, начинающееся, как и положено, с корня (/ - root, корневой каталог) и растущее ввысь и вширь; любые накопители, как монтируемые при загрузке (жесткие диски, скажем, и их логические разделы), так и подключаемые в процессе работы (CD ROM, Zip, дискеты) - не более чем ветви дерева каталогов.

Файлы устройств - понятие для Windows-мигранта непривычное. Это нужно просто запомнить: все физические устройства, присутствующие в системы (порты ввода/вывода, накопители разного рода, звуковые устройства и прочие), с точки зрения ext2fs являются файлами. Устройства эти могут быть блочными (например, накопители) или символьными (порты ввода/вывода), но это - уже подробности.

Наконец, ссылки (links) - это некий аналог "ярлыков" в Windows или "теней" в OS/2. Ссылка может быть прямой, или жесткой (hardlink, или, часто, link просто) и символической (symlink). Первые могут указывать на любой файл в файловой системы, тогда как вторые обязаны находиться в одном дисковом разделе.

Чтобы лучше понять, что такое ссылки, давайте попробуем разобраться, что же такое с точки зрения ext2fs файл (не могу не отметить, что для себя я окончательно понял это после прочтения упомянутой статьи Виктора Хименко).

Так вот, файл состоит как бы из двух частей. Первая - это нумерованная в шестнадцатеричном исчислении запись - inode (адекватного перевода мне обнаружить не удалось, иногда переводится как "узел"). В ней содержится информация о размере файла, его формате, правах доступа и т.д. Вторая часть - это имя файла, связанное с inode посредством прямой ссылки.

Каковы следствия этого для конечного пользователя? Первое - имя файла, включая и расширение, не играет в Linux такой сакральной роли, как в DOS/Windows. Если в последней сменить расширение в файле, скажем, *.psd на любое иное - считать его Photoshop уже не удастся. В Linux же в общем случае файлу данных любого типа может быть приписано любое расширение (или его может не быть вовсе): на понимание его породившей программой это никак не отразится. Более того, файл может иметь несколько расширений (то есть групп знаков, разделенных точками): типичный пример - архивный компрессированный файл *.tar.gz.

Правда, некоторые программы (скажем, графические редакторы или офисные пакеты) все же требуют, чтобы файл формата TIFF имел расширение *.tif, и т.д. Но это - извращение генеральной линии. И вызывается тем, что имя файла неявно передается программе, то есть запускающей ее команде, в качестве одного из аргументов.

Следствие второе - теоретически (да и практически) с одним и тем же inode может быть несколько сколько угодно ссылок, причем - не обязательно идентичных. То есть один и тот же физический файл как бы выступает под разными именами. Это играет важную роль при использовании библиотек, шрифтов и в ряде других случае.

Следствие третье - удаление файлов в Linux происходит совершенно иначе, чем в DOS/Windows. Где, как известно, удаленный обычными средствами файл продолжает физически существовать до тех пор, пока на его место не записана новая информация. На чем и основаны программы восстановления ошибочно удаленных данных, вроде прославившей Нортона unerase.

В Linux файл (то есть inode) удаляется автоматически, когда становится недоступным для системы. Это происходит тогда, когда удалена последняя ссылка на него (а имя файла, удаляемое средствами командной строки или файлового менеджера - и есть такая ссылка) и закрыта последняя обращающаяся к нему программа.

То есть: если мы удалим все файлы во всех каталогах всех уровней вложенности (а средства командной строки дают возможность сделать это играючи, и даже подтверждения не запросят) - мы будем по прежнему существовать в работающей системе. И все открытые файлы данных будут существовать, могут быть изменены, записаны, переименованы и т.д. Все это исчезнет только после перезагрузки системы. Но зато - безвозвратно: никаких unerase, undelete и прочих либеральностей в Linux не возможно в принципе.

Правда, такая графическая среда, как KDE, имеет аналог мусорной корзины Windows. Но это - просто отдельный каталог, куда помещаются файлы, полагаемые ненужными, чтобы глаза не мозолили. И откуда их можно даже не восстановить в смысле DOS, а просто скопировать обратно.

Возвращаясь к имени файла. Поскольку оно в Linux не столь свято, как в DOS/Windows, и ограничений на него много меньше. Так, абсолютно запрещенные к использованию символы - только / и . Правда, некоторые другие специальные символы, такие, как !, @ и прочие из верхнего ряда клавиатуры, за исключением _, всякого рода скобки и кавычки, также не рекомендуются к использованию в именах файлов, особенно - в начальной позиции, но это, обычно, требование оболочки командной строки, а не системы. максимальная

Максимальная длина имени файла (включая и любое количество "расширений") - 255 знаков. А максимально возможная длина пути - 4096, что практически можно считать бесконечным. В отличие от Windows, где при стремлении программ инсталлироваться глубоко в недра директории Programs Files, ограничение на длину пути в 256 знаков становится реальностью.

А вот структура каталогов в Linux, напротив, жестко фиксирована, хотя в деталях и может разниться от дистрибутива к дистрибутиву. Конечно, обладая правами суперпользователя, ее можно изменить. Но - делать это ни в коем случае не следует - в результате система может просто утратить работоспособность.

Как правило, после инсталляции системы в корневом (/, root) каталоге присутствуют:

  • /bin - каталог для исполнимых (иначе называемых бинарными, binary) файлов общего назначения; здесь помещаются оболочки командной строки, общие команды управления файлами и их архивации, традиционные текстовые редакторы типа vi, и т.д.; именно каталог /bin в первую очередь просматривается на предмет поиска введенной с клавиатуры команды;
  • /boot, как явствует из названия, содержит файл образа ядра, с которого загружается система;
  • /dev - каталог для файлов устройств;
  • /etc - каталог для конфигурационных файлов общего пользования;
  • /home включает в себя домашние каталоги пользователей, со всеми их программами, личными конфигурационными файлами (имеющими в сеансе этого пользователя предпочтение перед общими файлами конфигурации) и данными;
  • /lib - каталог для общесистемных библиотек (аналогов DLL в Windows);
  • /mnt -каталог для монтирования сменных накопителей (вроде дискет) или временно подключаемых файловых систем (например, FAT-раздела диска);
  • /proc - виртуальная файловая система для чтения информации о процессах;
  • /root - аналог $home для суперпользователя;
  • /sbin содержит системные двоичные файлы, используемые для системного администрирования;
  • /tmp, понятно, включает в себя всякого рода временные файлы; как правило, этот автоматически очищается при перезагрузке или через некоторое время;
  • /usr - каталог для прикладных пользовательских программ со всеми их компонентами - исполнимыми, конфигурационными и разделяемыми файлами (/usr/bin, /usr/etc и /usr/share, соответственно), библиотеками (/usr/lib), документацией в различных форматах (/usr/doc, /usr/man) и т.д.; важный подкаталог /usr/local предназначен для программ, не входящих в дистрибутив стандартно - сюда по умолчанию инсталлируются компилируемые из исходных текстов приложения;
  • /var - каталог для варьирующих файлов, всякого рода системных журналов, почтовых и принтерных спуллингов и т.д.

Кроме того, в дереве могут присутствовать и некоторые другие каталоги, например, /opt - для опциональных компонентов, или /misc - для всего, что не подпадает под приведенные определения.

В общем, назначение каталогов и логика их организации понятна, если затратить некоторое время на изучение их содержимого. Трудности, скорее всего, могут возникнуть с каталогом /mount, поскольку ни DOS, ни Windows не имеют даже отдаленных аналогов этого понятия.

Когда шел разговор об инсталляции системы и создании дисковых разделов, вскользь упоминалась необходимость задать для них точку монтирования. Скажем, для созданного нами раздела под пользовательские данные такая точка определялась как /home. Тем самым мы включили этот (или любой другой) дисковый раздел в структуру дерева каталогов Linux. Или, иными словами, смонтировали его в файловую систему Linux.

Разделы жесткого диска с файловой системой ext2fs обычно монтируются автоматически, при загрузке системы. Часто так же поступают и с FAT-разделами. А в Linux Mandrake (и некоторых других дистрибутивах) предусмотрено автоматическое монтирование и для сменных накопителей - дискет и CD ROM. Вот под них-то и отведен каталог /mnt.

А вообще, что и как монтируется - описано в конфигурационном файле /etc/fstab, в котором в каждой строке указывается (слева направо) имя устройства, точка его монтирования, тип файловой системы, условия монтирования (по умолчанию, автоматическое, пользователем и т.д.) и параметры резервного копирования. Файл этот может выглядеть примерно так:

/dev/hda1 /mnt/DOS_hda1 vfat user,exec,conv=auto 0 0
/dev/hda2 / ext2 defaults 1 1
/dev/hda3 swap swap defaults 0 0
/dev/hda4 /home ext2 defaults 1 2
/mnt/floppy /mnt/floppy supermount fs=vfat,dev=/dev/fd0 0 0
none /proc proc defaults 0 0
none /dev/pts devpts mode=0620 0 0
/mnt/cdrom /mnt/cdrom supermount fs=iso9660,dev=/dev/cdrom1 0 0

Из чего можно видеть, что в приведенном примере все разделы ex2fs, раздел подкачки и FAT-раздел монтируются по умолчанию, а для сменных носителей предусмотрена опция supermount, то есть монтирования при обращении и размонтирования - при прекращении его.

Если такая опция не поддерживается, сменные носители требуется монтировать вручную. Для этого дается команда mount с именем устройства и точкой монтирования в качестве аргументов. На пример, с помощью

mount /dev/hdc /mnt/cdrom

монтируется CD ROM, подключенный в качестве мастера ко второму каналу IDE; содержимое его после этого можно будет увидеть в каталоге /mnt/cdrom. А перед извлечением сменного носителя (во избежание тяжких последствий, о которых - в разделе техники безопасности), его следует размонтировать командой umount (обращаю внимание - без буквы n, вопреки логике) с точкой монтирования в качестве аргумента. Разумеется, при этом обращений к файлам на носителе быть не должно.

Однако для пользователя наиболее важен каталог /usr (кроме его домашнего, разумеется). Если просмотреть его внимательно, можно обнаружить в нем многочисленные повторения. Например, каталоги /usr/X11R6/bin и /usr/bin/X11 кажутся идентичными по содержанию, так же как /usr/X11R6/lib/X11 и /usr/lib/X11. Возникает естественное желание стереть излишки для освобождения дискового пространства.

Делать этого не нужно: система не дура, и ничего в ней не происходит зря. Поскольку содержимое /usr/X11R6/bin и /usr/X11R6/lib/X11 - не более, чем символические ссылки на файлы из соответствующих раздов каталогов /usr/bin и /usr/lib. Почему?

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

Впрочем, даже если желание стереть эти ссылки будет непреодолимым, выполнить его в режиме обычного пользователя не удастся без дополнительных манипуляций. А некоторые каталоги (например, /root) не удается даже просмотреть. Потому что все файлы в Linux (а все, что есть в Linux, как говорилось, - это файлы) имеют еще одно непременное свойство (также зафиксированное в inode) - права доступа.

Именно понятие прав доступа вызывает наибольшие психологические сложности у Windows-мигранта. Обычный случай - только что созданный самолично или скопированный файл не удается открыть, удалить или переместить, - способен довести до тихого бешенства. Если не догадаться посмотреть в свойства файла или каталога и с удивлением узнать, что вы не имеете в отношении него соответствующих прав.

А права эти умеют быть двух родов - права принадлежности и права действия. Первые определяются для владельца файла (owner), группы пользователей (group) и всех прочих (other). В отношении же действия существуют права на чтение (read), изменение (или запись, write) и исполнение (execute).

Владелец файла - это пользователь, создавший его или скопировавший. По умолчанию он обычно (хотя и не всегда) получает на него все права. Которые подразумевают возможность просмотреть его, модернизировать и записать изменения, а также - исполнить; исполнение для одиночного файла - это возможность запуска бинарной программы или скрипта, для каталога - возможность перейти в этот каталог и просмотреть содержимое. Единственное, чего не может владелец - изменить права принадлежности, то есть сделать владельцем своих файлов дядю Петю: это - привилегия исключительно администратора.

Группа обычно определяется как пользователи, работающие над общим проектом; однако в условиях автономной домашней машины это, скорее всего, ваша же скромная персона, но под другим аккаунтом (если вы послушались моего совета и создали одну учетную запись для серьезной работы, и другую - для нездоровых экспериментов). Группа обычно по умолчанию получает право чтения и исполнения, но не изменения файла или каталога.

Наконец, кто такие прочие - это ясно. Они обычно имеют право (и могут) прочитать файл, но не изменить или выполнить его.

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

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

Впрочем, вы всегда в состоянии поменять ситуацию на обратную. Для этого не нужно даже завершать свой пользовательский сеанс и начинать новый, от лица суперпользователя. Достаточно в консоли или окне терминала набрать в командной строке команду su (аббревиатура понятна? - это тот же superuser) и ввести пароль администратора: на некое время вы выступите в его качестве. Ну а после завершения всех потребных действий не забудьте вернуться в обычный пользовательский режим командой exit...

Так что если вам вдруг захотелось послушать музыку, запустив собственноручно сделанный файл mpeg, а в ответ вы получаете сообщение, что права такого не имеете (permission denied) - не нужно поминать родных создателей Linux. А следует внимательно просмотреть каталог /dev на предмет прав доступа к аудиоустройства, владельцем которых является суперпользователь: возможно, прочие просто не имеют прав исполнения для соответствующих файлов. Выполните целительное действо, описанное в предыдущем абзаце - и наслаждайтесь музыкой в свое удовольствие...

Надеюсь, что с правами доступа к вновь созданным файлам все более или менее ясно. Несколько сложнее - с правами на файлы скопированные. Обычно вы являетесь владельцем всех файлов , расположенных в вашем домашнем каталоге по адресу /home/имя_рек, сокращенно обозначаемому в оболочке bash как $home. И, соответственно, располагаете в отношении их всеми правами. Но бывают и исключения.

Например, вы могли скопировать некие файлы в каталог $home в то время, когда по каким-либо причинам исполняли роль суперпользователя. В этом случае последний автоматически будет назначен их владельцем, со всеми вытекающими последствиями.

Во-вторых, ваши права ущемляются при копировании файлов с CD ROM. В DOS/Windows, как вы помните, такие файлы автоматически получают атрибут READ ONLY. В Linux же на них по умолчанию устанавливается запрет на запись для всех, включая и владельца.

Еще забавнее, если с помощью файлового менеджера с CD ROM копируются целые каталоги и подкаталоги. В этом случае родительский каталог копируется на винчестер, но - без всякого содержимого. Поскольку для него автоматически устанавливается запрет на запись. Правда, это свойственно не всем файловым менеджерам, но - многим.

Наконец, при копировании с носителя файловой системы FAT (дискового раздела, сменного винчестера, дискеты или Zip) наследуются атрибуты исходных файлов: если последние были помечены как READ ONLY, целевые файлы будут автоматически закрыты для записи, в том числе - и для их нового владельца.

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

Теперь, получив начальные представления о файловой системе Linux, можно обратиться к изучению средств манипулирования ею, то есть файловым менеджерам. Но сначала - каковы они,

Требования к файловому менеджеру

На мой, разумеется, субъективный, взгляд, файловый менеджер должен обеспечивать удобные средства управления файлами, не более. Но и не менее.

То есть от него нелепо было бы ожидать функций персонального органайзера или развитого текстового редактора. Однако мы вправе расчитывать, что файловый менеджер, вне зависимости от целевой платформы, позволяет просматривать, сортировать по разным параметрам, копировать, перемещать, переименовывать и удалять файлы, а также подкаталоги любой степени вложенности. И делать это простым, наглядным и интуитивно понятным способом.

Для файловых менеджеров на платформе Linux (как и Unix вообще) необходимое условие - эффективное управление правами доступа - смены владельца и группы, разрешение/запрещение на чтение/запись/исполнение и т.д. И желательно, чтобы эту операцию можно было бы осуществлять рекурсивно, включая подкаталоги любого уровня вложенности и содержащиеся в них файлы.

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

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

Из роскошного хотелось бы иметь встроенного ftp-клиента или возможность подключения внешнего. Также желательно наличие программ для просмотра файлов наиболее распространенных текстовых и графических форматов. Ну и элементарное редактирование текстовых файлов встроенными или подключаемыми средствами - их наличие стало традицией со времен командира Нортона.

С точки зрения интерфейса все файловые менеджеры можно разделить на две группы - командирского стиля (a la Norton Commander) и Explorer-образные. Какая лучше - однозначно ответить нельзя, определяется сугубо личными привычками и предпочтениями. Мне больше нравится первый, хотя знаю немало людей, у которых вид двух панелей вызывает приступ идиосинкразии. Чрезвычайно ловко, однако, управляющихся с баобабоподобными древами Explorer. Так что, вероятно, мамы всякие нужны, мамы всякие важны. Лишь бы реализовано было хорошо.

Вот с этих позиций я постараюсь рассмотреть несколько файловых менеджеров, с которыми мне довелось пообщаться. Начну со второй группы, поскольку с появлением Windows стиль Explorer стал традиционным для графических сред. А так как нашей первой графической средой в Linux будет, скорее всего, KDE, первыми в этом ряду по справедливости должны стоять штатные

Средства среды KDE для работы с файлами

Как уже говорилось, файловый менеджер, именуемый KFM - неотъемлемый компонент этой интегрированной графической среды. Это - достаточно точное подобие своего прототипа, Windows Explorer. Он может выступать в однооконном или двухоконном виде.

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

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

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

Переименование выполняется через контекстное меню (пункт Свойства, где в панели на закладке Основные просто вписывается новое имя). Здесь же - управление правами доступа, возможное, однако, только для единичного файла или каталога, без рекурсии.

Также через контекстное меню можно просмотреть (и при необходимости отредактировать) файл. Для этого в нем выбирается пункт Открыть с... и дальше - одно из установленных в системе приложений. Для просмотра и редактирования текстовых файлов можно определить внешний редактор (встроенного редактора нет).

Кроме того, для нескольких распространенных типов файлов в контекстном меню появляется пункт вызова программы для их просмотра и редактирования. Например, для текстовых файлов это будет штатный текстовый редактор Kedit. В это меню попадают и вновь установленные (не входящие в дистрибутив) приложения KDE.

И вообще, настроек (в пункте меню Настройки - Настроить менеджер файлов) довольно много. Можно определить гарнитуру шрифта (любую доступную в системе) и его размер (варианты - маленький, средний большой). Можно переопределить цвет фона, нормального текста и гиперссылки (в качестве каковых выступают каталоги и файлы). Можно также отключить следование дерева каталогов (если включен его показ) за движением курсора в окне содержимого каталогов: это удобно для копирования из каталога в каталог методом перетаскивания: файл или их группа (выделяемая стандартным для Windows способом - мышью при нажатом Control) перетаскивается из окна файлов в один из подкаталогов окна дереве.

Из дополнительных функций следует отметить встроенный браузер, простенький, но почти полнофункциональный и работающий замечательно быстро. Следует сказать, что браузер вызывается по умолчанию при открытии каталога, содержащего *.htm(l) файлы. Чтобы этого не было, следует в главном меню (пункт Вид) отключить опцию Вид HTML. Браузер этот не очень уверенно обращается с фреймами и JavaScript, категорически не понимает каскадных стилевых таблиц, не распознает некотрые графические форматы (например, *.png, не говоря уже о *.djvu). Однако имеет важное достоинство - позволяет переключать кодировки русского языка.

Из прочих дополнительных средств отмечу также архиватор. Правда, работает он иногда несколько странно: например, благополучно распаковывает файлы *.tar.gz, но просто на файлы *.tar реагирует так, как будто и не подозревает о существовании этого формата. Нужно сказать, что и ряд других архивных форматов (*.bz) также ставят его в недоумение.

Кроме того, kfm частично позволяет работать с архивами распознаваемых типов, как с каталогами. Запускать исполнимые файлы - не получается, но можно читать текстовые файлы. Правда, это возможно только при низких уровнях защиты, выбираемых при инсталляции.

Ну а при обращении к rpm-пакетам автоматически вызывается kpackage - весьма удобная в обращении программа для работы с этим форматом, о котором пойдет речь в одном из следующих разделов.

В целом kfm - почти полный функциональный аналог Windows Explorer. И любители последнего не обнаружат в нем ничего непривычного. В качестве основного недостатка (если не считать таковым интерфейс в принципе) можно отметить исключительную медлительность: во время открытия большого каталога можно немалое время наблюдать в статусной строке задумчивую надпись Работаю... (по мне - так скорее Дремлю...).

Медлительность эта отнюдь не обусловлена средой KDE, самой по себе не блещущей быстродействием. Поскольку штатный файловый менеджер из грядущей второй версии KDE (все сказанное выше относилось к первой версии) - konqueror, - можно поставить рядом с эталонами скорости.

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

Начать с того, что работает он если не на порядки, то в разы быстрее. Удручающе скучной надписи Работаю или вовсе нет, или ее не успеваешь разглядеть при считывании сколь угодно длинного каталога.

Далее, в нем наконец появилась возможность сортировки - по алфавиту (с чувствительностью к регистру или без оной), по размеру, в обратном порядке. Расширилось число форм представления - в виде текста и иконок различного размера, в виде дерева. Появилась возможность редактирования панели инструментов. Непосредственно из окна konqueror можно запустить как окно эмуляции терминала, так и миникомандную строку. И самое главное - можно разделить окно на любое количество панелей (по горизонтали или по вертикали) с независимым просмотром.

Что касается встроенного браузера, то он стал очень похожим на настоящий. Научившись понимать не только JavaScript, но и Java (впрочем, и то, и другое можно отключить). И не утратив при этом быстродействия. Кроме того, он позволяет экспортировать закладки из Netscape. Ну и, что радостно, по прежнему не забыл о различных кодировках кириллицы.

Кроме штатного kfm, в состав KDE, по крайней мере в некоторых поставках (Linux Mandrake RE тому примером) входит еще один файловый менеджер, Kruiser. Он также принадлежит к клану Explorer. Однако существенно (и, на мой взгляд, выгодно) отличается от него интерфейсом.

По умолчанию Kruiser имеет два окна - дерева каталогов (слева) и файлов (справа), главное меню и две инструментальные панели, одну вверху и другую справа.

Из верхней (общей) панели доступны обычные операции, как то: переход в родительский каталог, удаление, вырезание, копирование и вставка, представление окна файлов (в виде иконок, короткого или длинного списка). Здесь же - монтирование нового устройства или удаление существующего.

Боковая панель управляет видом окон. Можно разрешить/запретить показ скрытых файлов, включить/выключить предварительный просмотр и просмотр архивов. А главное - разделить окно файлов на два, располагаемых горизонтально, вертикально или каскадом. Навигация в каждом из окон независима, а перемещение по дереву каталогов коррелирует только с одним из них.

В главном меню - четыре, не считая help, пункта: File, Edit, View, Tools. Правда, есть еще и пункт Windows, но он пока не активизирован.

В пункте первом - всего три опции, New (директория или устройство), открытие терминала и выход. В пункте Edit - стандартные манипуляции вырезания, копирования и вставки, удаления просто и перемещения в корзину (как и KFM, Kruiser поддерживает системную корзину KDE), а также выделение.

Через пункт View включаются/выключаются инструментальные панели и статусная строка, осуществляется обновление списком и настройка (Options). Здесь же - переключение вида списка файловую, порядка сортировки (по имени, размеру, типу и дате), включение/выключение показа скрытых файлов и предварительного просмотра. Кроме того, тут же - управление видом окон файлов. В пункте Tools - поиск файлов, монтирование/размонтирование устройств, переход к каталогу.

Немного остановлюсь на настройках. Это - панель с закладками General, Extensions, Details, View, Misc. В первой можно определить локализацию MIME-типов и икон, оболочку по умолчанию для вызываемого окна терминала, открываемую по умолчанию директорию (последнюю или текущую).

Extensions - приписывание типам файлов стандартного расширения; ведь в Unix, в отличие от DOS/Windows, расширение в общем случае с типом файла никак не связано и может быть любым.

В закладке Details определяется ширина (в пикселях) для полей отображаемых атрибутов файлов, таких, как размер, тип файла, права доступа и прочего.

В закладке View - приписываются маски различным типам архивных файлов (*.tgz, *.tar.gz, *.tar - для tar-архивов, *.zip - для архивов Zip, и т.д., список можно расширять произвольно).

И, наконец, в закладке Misc определяется, в частности, вызываемый редактор для текстовых файлов.

В отличие от KFM, в настройках Kruiser отсутствует возможность изменения гарнитуры, кегля и начертания шрифта, цвета его и фона: во всех этих случаях используются системные установки для KDE в целом.

Кроме главного меню, существует также меню контекстное, вызываемое традиционной правой клавишей мыши. В поле дерева каталогов меню это имеет опции Explore (выведение содержимого в поле файлов), Expand и Collapse (развертывание и сворачивание подкаталогов, соответственно), Delete (это - понятно), Refresh (считывание листа каталогов заново), Properties (через которые происходит управление правами доступа, и для файлов тоже).

В поле файлов в контекстном меню присутствуют пункты Cut, Copy, Delete, Move to Trash. При фокусировании на каталоге к ним добавляется Explore (разворачивание каталога), при фокусировании на файле - Open (если этому типу файла приписано какое-либо приложение), Open with (выбор открывающего приложения из списка) и Edit (открытие в текстовом процессоре, установленном в настройках по умолчанию).

Следует заметить, что все действия по открытию каталогов и файлов выполняются, в отличие от KFM, двойным щелчком (разумеется, левой клавишей).

А вообще-то основным способом манипуляций с файлами в Kruiser является манипулирование манипулятором (то есть, по простому, перетаскивание мышью). Таковое возможно как между полями дерева каталогов и файлов (в обоих направлениях), так и между панелями файлов (если их две). При перетаскивании возникает контекстное меню с тремя пунктами - Copy, Move и Link.

Чего удается обнаружить не сразу - так это того, как выполняется переименование файлов. Эта функция доступна одним единственным образом: нужно щелкнуть (в списке файлов) именно на имени, а не на пиктограмме файла. После этого вместо существующего имени можно впечатать любое другое, подобно тому, как это сделано в Windows Commander. Нужно только не забыть нажать после этого Enter: если просто увести курсор в другую позицию, исходное имя файла (или каталога, без разницы) восстановится.

Как уже говорилось, управление правами доступа осуществляется через контекстное меню (и только так). Однако изменяются они при этом только для единичного каталога или файла, рекурсия не поддерживается.

Kruiser не имеет встроенного архиватора. Но через контекстное меню (опция Open with) можно для открытия архива вызвать любой из имеющихся в системе, в том числе и тот же Archiver, который встраивается в KFM.

Для ftp-доступа можно использовать опцию Connect new device (в меню Tools) и из выпадающего меню выбрать пункт Ftp. После чего прописать имя соединения, адрес сервера и порт; поля для записи логина и пароля хотя и присутствуют, но недоступны.

Хотя Kruiser, как следует из названия, является приложением KDE, по быстродействию он разительно отличается от KFM: считывание каталога с многими десятками файлов происходит на порядок быстрее, копирование - быстрее как минимум вдвое.

Да и в целом он показался мне гораздо более удобным в использовании, нежели kfm. Хотя бы благодаря наличию возможности включить две панели - свойство, привычное по командирским менеджерам, имевшееся в приснопамятном File Manager из Windows 3.xx, но пропавшее их Windows Explorer (видимо, по причине пресловутой ненужности народу; а Explorer народу нужен?). Потому что настало время обратиться к тем файловым менеджерам, которые пользуются любовью народа (как всегда, не понимающего, что ему нужно). И являют собой

Клоны Norton Commander

Хотя термин этот, возможно, здесь не вполне оправдан - многие файловые менеджеры командирского стиля далеко отошли от своего прототипа, аккумулировав положительные черты Explorer-подобных систем. И унаследовав от предка только двухпанельное представление и комбинации горячих клавиш для основных операций.

Маленькое отступление: в чем причина любви нашего народа к производным Norton Commander? Ведь ни в одной другой стране мира (и паче всего - в Америке) они не пользуются хотя бы сравнимой популярностью. Это оставалось для меня загадкой, пока я не прочитал посвященное Norton Commander исследование на сайте NeoSoft. В котором доказывается, что Питер Нортон - не кто иной, как лейтенант Шмидт, счастливо спасшийся из лап царизма и иммигрировавший в Америку, где поступил в американские ВМС под прославившим его в дальнейшем псевдонимом. Вероятно, призванным подчеркнуть, что он пришел "с холода". Имя свое, что характерно, он сохранил, а отчества у американцев не приняты.

Дослужившись до чина коммандера (что-то среднее между каперангом и контр-адмиралом), он вышел в отставку и подался в софтверную индустрию, где и нашел свое истинное призвание. Так что корни Norton Commander лежат не где-нибудь, а все на той же Руси исконной...

Версия, конечно, спорная, но имеющая право на существование. И, главное, многое объясняющая, вплоть до цветов интерфейса Norton Commander по умолчанию (инвертированные цвета Андреевского флага). Принимать или не принимать ее - оставляю на ваше усмотрение.

Однако я отвлекся. Первое, что приходит на ум при обращении к платформе Linux в рамках рассматриваемой темы - Midnight Commander, известный аналог Norton Commander. Именно он сохранил наибольшее количество черт своего предшественника, хотя функционально далеко его перерос. Много говорить о нем я не буду. Во-первых, он настолько близок к исходному Norton, что любой работавший с последним без труда разберется с ним. Во-вторых, он подробно описан на сайте Виктора Костромина. А в третьих, главное, где возникает потребность в файловых менеджерах - это графические оболочки (в консоли удобнее все же пользоваться средствами командной строки). Однако кое-что о нем сказать необходимо, так как именно MC - одна из программ, вызывающих чувство близости при первом заходе в Linux того, кто помнит времена чистого DOS.

И так, MC - это консольный файловый менеджер. Он входит в состав большинства дистрибутивов Linux (за исключением сугубо американских - они ведь патриоты и почвенники еще почище нас). И в ряде из них, как в Linux Mandrake, устанавливается по умолчанию. Вызывается просто - набором mc в командной строке. После чего возникают две всем памятные панели сине-белого цвета со строкой меню сверху и подсказкой по горячим клавишам - снизу.

Что делать дальше - знают все, заставшие времена DOS (а кто не знает - значит, и потребности в этом не испытывает). Скажу только одно: въевшаяся в плоть и кровь привычка перейти на другой диск с помощью клавиш Alt+F1 или Alt+F2 вызовет неожиданный эффект. Во-первых, как уже говорилось, в Linux нет понятия диска - и дисковый раздел, и второй винчестер, и дискета - не более, чем подкаталоги дерева каталогов. Добраться до которых можно обычным для Norton способом перехода из каталога в каталог. А во-вторых, комбинация Alt+функциональная клавиша зарезервирована в Linux для перехода в другую виртуальную консоль. Не зная этого, по первому разу нажав Alt+F2, можно весьма удивиться, обнаружив черный экран с предложением авторизации...

Впрочем, это, пожалуй, единственная сложность при работе с MC. А посему мы расстанемся с ним, перейдя к Norton-подобным файловым менеджерам графического режима.

Таковых довольно много. Это и KCommander, предназначенный для KDE, и Gentoo, основанный на Gtk и ориентированный на применение с GNOME. Однако первый из них (претендующий быть функциональным аналогом Windows Commander Христиана Гислера) еще не совсем доработан, второй же показался мне недостаточно устойчивым и не очень удобным.

А потому я остановлюсь на двух файловых менеджерах, не привязанных к какой-либо среде или специфической библиотеке - XNC и XWin Commander.

XNC (X Northern Commander) - произведение нашего соотечественника, Леонида Храмова. Он доступен на сайте http://www.xnc.dubna.su/ в исходных текстах или в виде rpm-пакета.

При первом запуске вид XNC достаточно необычен для клона Norton Commander. Кроме непривычной расцветки (светло-серый фон с разноцветными, в зависимости от типа файла, буквами, вместо привычных двух панелей можно видеть только одну, разбитую на три вертикальные колонки: переход на вторую панель (вернее, в терминологии программы, страницу, page) осуществляется с помощью закладки.

В верхней части экрана - строка анимированного заголовка. Ниже - строка меню, переключаемого с помощью небольшой стрелки. В положении по умолчанию в меню пункты: Left, Commands, Options, Right.

В пункте Left определяется представление левой панели (она же - верхняя страница, по умолчанию): короткий или длинный формат файлов; число колонок (от одной до четырех); порядок сортировки (по имени, расширению, размеру, дате или без сортировки); выход из программы, перед которым, как и во всех клонах Norton, от нас спрашивают подтверждения серьезностей этого намерения. Содержание пункта Right - идентично, за исключением возможности выхода из программы.

В пункте Commands - основные манипуляции с файлами:

  • перемонтирование текущего каталога;
  • вызов пользовательского меню;
  • просмотр и редактирование отмеченного курсором файла;
  • копирование, перемещение/переименование и удаление файла, создание директории;
  • изменение прав доступа к файлу или каталогу, смена его владельца;
  • поиск файла, в том числе с использованием шаблонов, от текущего или от корневого каталога;
  • подсчет количества файлов в каталоге (включая подкаталоги любой степени вложенности) и их суммарного объема;
  • информация о запущенных процессах и загрузке оперативной памяти, а также о статусе файла или каталога (его inode, количество ссылок и т.д.);
  • сравнение каталогов.

В пункте Options - редактирование пользовательского меню и привязки типов файлов к приложениям (оба осуществляются вручную, во встроенном текстовом редакторе), а также конфигурирование.

Ниже меню - собственно страница-панель, переключаемая, как я уже говорил, с помощью закладок. Под панелью - статусная строка, командная строка (в которую, как и в Norton, можно поместить маркированный курсором файл путем комбинации клавиш Control+Enter), строка горячих клавиш. Последние в целом аналогичны таковым Norton Commander. Только клавиша F1 вызывает не помощь по программе, а man-страницы (которые нужно указать вручную), а клавиша F9 устанавливает права доступа к файлу.

Последняя опция (доступная и через меню) реализована достаточно удобно. Правда, с ее помощью нельзя изменить права доступа рекурсивно для содержимого каталога. Но зато эту операцию можно проделать над выделенной группой файлов или каталогов. К стати, выделение осуществляется так же, как и в Norton Commander - "серым" плюсом, снятие выделения - "серым" минусом.

Начальное конфигурирование можно выполнить из меню - Options - Configuration посредством панели с тремя закладками - Main, Prompts, Look/Feel. Оно достаточно элементарно, позволяя включить/отключить показ скрытых файлов, запросы на выполнения основных действий над файлами (копирования, перемещения, удаления и т.д.), время пересканирования каталогов, указать параметры, которые должны отображаться в статусной строке.

Однако основное конфигурирование требует запуска программы xncsetup. Она вызывает конфигурационную панель с пятью закладками. Первая (Common) позволяет определить:

  • пути для конфигурационных файлов (которые можно отредактировать и вручную, но только при закрытом XNC, иначе параметры текущего сеанса его будут восстановлены при выходе);
  • геометрию окна, открываемого при запуске XNC;
  • средства просмотра и редактирования текстовых файлов (по умолчанию для этого используется редактор IVES, но можно выбрать любой другой из имеющихся в системе);
  • внешний вид XNC - в виде страницы с закладками (по умолчанию), двух горизонтальных или вертикальных панелей (в последнем случае узнается праотец-Norton).

В закладке Color определяются цвета фона и текста для файлов различных типов; это можно сделать бегунками или указать параметры RGB вручную.

В закладке Fonts определяются основной шрифт и шрифты для различных элементов интерфейса, в том числе - встроенного редактора IVES. А в закладке Keys можно переопределить горячие клавиши и их комбинации для основных файловых манипуляций и навигации по панелям.

Поработав в программе xncsetup, можно вернуть этому файловому менеджеру первозданный вид, идентичный Norton Commander. На чем и успокоиться.

Файловый менеджер XWC (X WinCommander) также написан нашим соотечественником, Максимом Барановым (правда, насколько я понял - бывшим). Найти его можно на http://www.geocities.com/SiliconValley/Mouse/7912/xwc.htmlс. С точки зрения интерфейса он на первый взгляд весьма отличен от Norton Commander, унаследовав от него, пожалуй, только две вертикально расположенные панели. Однако функционально XWC достаточно близок к нему, что позволяет включить его в число детей командира Нортона.

Запустив XWC, можно, помимо упомянутых панелей, наблюдать: строку меню (с пунктами Left, Commands, Bookmarks, Options, Right и Help), выпадающее меню для навигации, инструментальную панель (которая может быть заполнена плоскими или объемными кнопками). Пути к текущему файлу и статусные строки - самостоятельные для каждой панели. В общем, можно наблюдать некоторое сходство с Windows Commander; однако, вопреки старой и общепринятой командирской традиции, кнопки-горячие клавиши отсутствуют.

Однако если понажимать на функциональные клавиши, родство с Norton Commander проступает отчетливо: клавиша F5 осуществляет копирование файлов и каталогов, F6 - перемещение/переименование, F8 - удаление, F7 создает каталог, F9 позволяет изменить права доступа, а F10 - это выход из программы (как обычно, с запросом на подтверждение).

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

Сначала рассмотрим действия через меню. Традиционные пункты Left и Right - идентичны по содержания, определяя представление соответствующих панелей, а именно:

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

А вот пункт Commands не вполне традиционен по содержанию, которое составляют подпункты:

  • выделение файлов (всех, снятия и инвертирования);
  • запуска, вызывающего минитерминал, поддерживающий историю команд в виде выпадающего меню, введенных, к стати, не только в текущем сеансе;
  • создания каталога;
  • перехода в домашний каталог;
  • вызова настоящего терминала (xterm);
  • обновления;
  • выхода.

Содержание пункта Bookmarks - понятно, это создание закладок для быстрого перехода в какой-либо каталог.

В опциях можно включить или отключить показ таких элементов, как инструментальная панель, статусная строка, скрытые каталоги, дерево каталогов (добавляется к имеющимся панелям в качестве третьего окна), двухпанельное представление. Здесь же (в подпункте Font) можно выбрать гарнитуру, кегль и начертание шрифта (единые для всех элементов интерфейса), определить его кодировку. А в подпункте Customize - возможность прочих настроек, как то:

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

Основной же способ выполнения файловых операций - из контекстного меню по щелчку правой клавишей мыши на панели, файле или каталоге, или их выделенной группе (выделение группы осуществляется стандартным для Windows способом, левой клавишей мыши при нажатом Shift или Control).

Содержание контекстного меню для панели дублирует пункт Left (или, соответственно, Right) из главного меню. Для файла содержание этого меню составляют пункты:

  • Open with..., с историей программ, использованных для открытия файлов не только в текущем сеансе, в виде выпадающего меню;
  • View и Edit, открывающие текстовые файлы для просмотра или редактирования средствами, определенными через Options - Customize
  • Add to archive, создающий стандартно архив формата *.tar.gz за счет встроенного (и не настраиваемого) архиватора; созданный (да и любой другой) архив этого формата можно распаковать через то же контекстное меню: пункт Extract to добавляется в него автоматически при щелчке на архивном файле; однако средств просмотра содержимого архива без его распаковки, подобных таковым в kfm, не предусмотрено;
  • Cut и Copy, Link и Symbolic Link, Delete (понятно без комментариев); скажу только, что копирование можно осуществить и перетаскиванием мышью с панели на панель или на дерево каталогов;
  • Attributes, где опять-таки устанавливаются права доступа и принадлежности: как для одиночного файла или каталога, так и для их группы; кроме того, для каталога можно включить опцию рекурсивного изменения (то есть для вложенных файлов и подкаталогов); последняя особенность делает XWC уникальным в ряду прочих файловых менеджеров.

Контекстные меню для группы файлов или для каталога идентичны, включая те же пункты, что и для одиночного файла, за исключением, естественно, возможности просмотра и редактирования.

В заключение рассказа о файловых менеджерах скажу о программе, которая не может быть отнесена ни к производным Windows Explorer, ни к клона Norton Commander -

XFtree

Это - штатное средство для управления файлами из интегрированной среды XFce, описанной в предыдущей саге. Он имеет древовидную структуру, начинающуюся по умолчанию от /$HOME, которая может разворачиваться и сворачиваться.

Для выделения файла или каталога требуется фиксация и щелчок левой клавишей. После этого щелчок правой клавишей вызывает обширное контекстное меню, позволяющее:

  • открыть каталог в новом окне;
  • создать каталог или файл, удалить и переименовать их;
  • выделить элемент или все, а также развыделить (так в оригинале) их;
  • найти файл, правда, только в каталоге, на котором зафиксирован курсор;
  • просмотреть свойства файла или каталога, в том числе и права доступа, и при наличии необходимости и полномочий - изменить их;

А также несколько действий по переходу - к закладке, на уровень выше и т.д.

Копирования и перемещения файлов в меню не предусмотрено. Первое осуществляется просто перетаскиванием выделенных элементов (множественное выделение - как в Windows, мышью при нажатых Shift или Control), в том числе и между разными окнами XFTree (их можно открыть сколько угодно); а вот перемещения я вообще не нашел.

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

В целом XFTree показался мне соответствующим стилю среды XFce (хотя, при наличии установленной библиотеке Gtk, может функционировать и в любой другой оконной среде). Он производит впечатление очень быстродействующего, особенно в сравнении с крайне задумчивым kfm: разворачивание многоуровневых каталогов или поиск от корневого каталога осуществляется практически мгновенно. Однако для повседневной работы не очень удобен: перетаскивать файлы вдоль ветвистого дерева каталогов не очень удобно - приходится открывать второй экземпляр программы, нет никаких интерактивных настроек цвета, шрифтов и прочего (все это устанавливается через конфигурирование XFce в целом), кроме невозможности перемещения файлов, нет также встроенного или подключаемого архиватора.

Впрочем, никаких рекомендаций ни по XFTree, ни по всем прочим файловым менеджерам давать не буду (оставляя выбор подходящего инструмента целиком на совести читателя). В частности, и потому, что сам однозначного выбора не сделал: ни один из виденных мной файловых менеджеров не дотягивает до идеала, каковым, с точки зрения функциональности и удобства, полагаю Windows Commander для одноименной платформы.

А посему, возможно, вам покажется, что лучший выбор все же - это

Командная строка как универсальный инструмент управления файлами

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

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

Сразу после загрузки и авторизации мы оказываемся в собственном домашнем каталоге, сокращенно называемом $HOME. Чего нам хотелось бы перво-наперво? Правильно, просмотреть его содержимое. Что мы и делаем командой ls. Результат ее выполнения - нечто вроде:

Desktop/       cat            list1        song/       wallpapers/
GNUstep/       different.jbd  list2        test/
abelskaya.jbd  galich.jbd     mysite/      test01.txt
allwork/       image1.raw     mysongs.jbd  tmp/
autosave/      kjukebox.log   nsmail/      visbor.jbd

то есть сплошного списка, где файлы и каталоги следуют без разбора в порядке кодов ASCII (различить их можно только по знаку / в конце имени каталога). Причем, как мы точно знаем, не все файлы и каталоги: ведь, помнится, мы в свое время редактировали конфигурационный файл командной оболочки bash, которого в нашем списке не наблюдается. Попробуем его выловить, дав команду

ls -A

где A (от all) - опция, предписывающая вывести список всех файлов. Результат - на лицо, то есть на экране:

.RealNetworks_RealMediaSDK_60           .mime.types
.RealNetworks_RealPlayer_60             .netscape/
.RealNetworks_RealShared_00             .qcad/
.Xauthority                             .sane/
.Xdefaults                              .vimrc
.Xdefaults.old                          .xap/

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

Ну а получить полную информацию о файлах и каталогах можно, дав команду

ls -l

результатом чего будет список вроде этого:

drwxr-xr-x   5 alv      alv          4096 Jan 26 04:01 Desktop/
drwxr-xr-x   5 alv      alv          4096 Jan 15 05:20 GNUstep/
-rw-r--r--   1 alv      alv          2687 Jan 17 20:26 abelskaya.jbd
drwx------  10 alv      alv          4096 Jan 24 12:22 allwork/
drwxr-xr-x   2 alv      alv          4096 Jan 18 17:22 autosave/

где знак в первой слева позиции обозначает тип файла:- - обычный файл, d - каталог (который по большому счету тоже файл), а отсутствующий в примере знак | - символическая ссылка (не путать с оператором канала).

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

Запомним эту табличку - она пригодится нам при обсуждении прав доступа. А теперь подумаем, что мы хотели бы делать с файлами. Думаю, не ошибусь, если скажу: в первую очередь копировать, перемещать, переименовывать, группировать и удалять.

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

cp $HOME/* mnt/floppy

все файлы из домашнего каталога будут скопированы на дискету. А с помощью могучего параметра -R можно скопировать также и содержимое подкаталогов всех уровней вложенности. Так, команда

cp -R /mnt/cdrom $HOME

скопирует в домашний каталог все содержимое CD ROM с сохранением структуры его каталогов. Конечно, если оно туда поместится, во-первых, и если CD ROM предварительно вставлен в привод и, при отстутствии опции supermount, смонтирована командой mount, во-вторых.

Несколько ранее я жаловался, что при использовании файловых менеджеров при этом обычно возникают сложности, связанные с наследованием новообразуемыми каталогами атрибутов каталогов исходных. Так вот, с командой cp ничего подобного не произойдет: атрибут READ ONLY каталогов с CD ROM будет благополучно проигнорирован. Лишний аргумент в пользу командной строки при файловых операциях...

Перемещение и переименование выполняются одной и той же командой - mv (от move) с именами источника и приемника в качестве аргументов. При перемещении в качестве источника может быть указано любое количество файлов или шаблоны их имен, а с параметром -R перемещение будет выполнено рекурсивно. Ну а переименовывать файлы, естественно, придется по одному, с указанием старого имени в качестве первого аргумента и нового - в качестве второго.

Столь же часто возникает необходимость сгруппировать некие файлы в одном каталоге. Для чего последний нужно создать. Что делается командой mkdir (от make directory) с желаемым именем каталога в качестве аргумента. Напомню, что результатом команды

mkdir newdir

будет появление подкаталога в текущем каталоге, при

mkdir ../newdir

он появится уровнем выше, а при

mkdir /newdir

так просто в корневом. Если нужно создать каталог по некоему конкретному адресу, его следует прописать полностью, например

mkdir /home/myname/work/newdir

с указанием абсолютного пути, или

mkdir work/newdir

относительно текущего каталога myname. Все это относится и к любым другим файловым операциям.

И наконец, хотя все созданные нами файлы являют собой нетленные ценности, иногда их все же приходится удалять. Делается это командой rm (от remove), в том числе при использовании ее с параметром -R - рекурсивно. Нужно только запомнить, что конструкция вроде

rm -R /

способна благополучно удалить с вашего диска все (ВСЕ) файлы и каталоги, включая и раздел FATxx, если он смонтирован. Правда, для этого потребуются права суперпользователя. От лица пользователя обычного вы можете удалить только все свои собственные файлы.

Тем не менее, для удаления ненужных каталогов лучше прибегнуть к команде rmdir (от remove directory) - она способна удалить только пустой каталог.

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

В мире DOS/Windows архивация и компрессия столь же неразделимы, как Ленин и Партия. Мне, например, не известны примеры архиваторов для этой платформы, которые не были бы одновременно и компрессорами. Но в системах Unix-Linux это понятия разные.

Архиваторы (это мое понимание, не претендующее на строгость) - это программы, обеспечивающие сборку группы файлов в вид, удобный для записи на резервный носитель и дальнейшего восстановления с него в первозданном виде. То есть одной из важнейших особенностей для него является сохранение путей, по которым располагались исходные файлы. Тогда как компрессор (называемый также упаковщиком, что семантически не совсем верно - ботинки, упакованные в коробку, отнюдь не сжаты), как и следует из названия, обеспечивает уменьшение объема файла (или их группы) за счет использования всякого рода алгоритмов компрессии (о которых здесь говорить неуместно).

Так вот, Linux располагает двумя инструментами командной строки - командами tar и gzip, типич

Автор: Alex Fedorchuk

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




:smile1: :smile2: :smile3: :smile4: :smile5: :smile6: :smile7: :smile8: :smile9: :smile10: :smile11: :smile12: :smile13: :smile14: :smile15: :smile16: :smile17: :smile18:


Яндекс цитирования Rambler's Top100 Рейтинг@Mail.ru
Реклама: UC540W-FXO-K9 IP-АТС . | копия Vertu Quest