Файловая система представляет собой иерархическую структуру («дерево») каталогов, в каждом каталоге могут находиться вложенные каталоги и файлы.
В ОС, ведущих свою историю от MS DOS каждое устройство хранения информации (логический диск) обозначается буквой латинского алфавита (именно поэтому DOS получила название «дисковая операционная система»). В отличии от этого в ОС UNIX все устройства представляются как ветви единого дерева каталогов. Каждое устройство подключается к дереву в качестве каталога. Процесс подключения устройства к дереву каталогов называется монтированием файловой системы, а каталог к которому происходит подключение – точкой монтирования. Подробнее монтирование файловой системы изучается в последующих работах.
В виде файлов в ОС UNIX представляются различные объекты:
В именах файлов и каталогов допустимы буквы латинского
алфавита, цифры и символы, за исключением символов “ ‘ * ? $. Заглавные и
строчные буквы различаются. Для удобства после символа «.» обычно указывают
расширение (набор символов, указывающий на содержимое файла), но в отличии от
DOS расширение не влияет на способ работы ОС с этим файлом. Если имя файла
начинается с символа «.», то он является скрытым (по умолчанию не отображается
при просмотре каталога соответствующей командой).
В общем случае при указании имени файла или каталога
необходимо указать полный путь к нему, начиная от корневого каталога. Каталоги
находящиеся на пути к объекту перечисляются через символ “/” например путь к
файлу passwd находящемуся в каталоге etc, находящемуся корневом каталоге
записывается так: /etc/passwd.
Если путь к объекту не указан, то берется объект из
текущего каталога.
Ссылки на файлы
Существуют два типа ссылок: жесткие и мягкие. Жесткая
ссылка на файл это его имя, которое представляет файл в файловой системе. Один
и тот же файл может иметь несколько имен, находящихся в разных каталогах, то
есть имена /var/log/myfile.log и /home/user/file1 могут указывать на один и тот
же файл. Если у файла имеется только одно имя (одна жесткая ссылка), то
удаление этого файла приводит к удалению данных. Если ссылок несколько, то
удаление файла по одной из его ссылок приводит только к удалению ссылки.
Мягкие ссылки представляют собой файл, содержащий путь
к другому файлу и интерпретируемый оболочкой как указатель на этот файл. Мягкие
ссылки подобны ярлыкам в ОС Windows.
Назначение каталогов
Традиционные для ОС UNIX названия каталогов, имеющих
конкретное назначение приведены в таблице. Переименование этих каталогов и
файлов может нарушить работоспособность системы, так как разработчики системы и
прикладных программ всегда используют именно эти названия.
|
Каталог |
Содержимое |
|
/bin |
Внешние команды системы |
|
/dev |
Специальные файлы устройств, являющиеся интерфейсом
взаимодействия команд и драйверов |
|
/etc |
Файлы конфигурации |
|
/etc/rc.d |
Сценарии инициализации системы, автоматически
выполняемые при запуске |
|
/boot |
Файлы с исполняемым кодом ядра операционной системы |
|
/lib |
Коды библиотек языков программирования |
|
/lost+found |
«Потерянные» файлы, то есть совокупности данных, на
которые в следствии ошибки файловой системы не ссылается ни одно имя |
|
/mnt |
К подкаталогам этого каталога обычно подключают
файловые системы дополнительных устройств хранения данных (CD-ROM, гибкий
диск и т. п.) |
|
/home |
Домашние каталоги пользователей |
|
/usr |
Служебные данные различных подсистем |
|
/usr/src |
Исходные коды программ, в том числе ядра Linux |
|
/var |
Для хранения различных дбанных – электронных
почтовых ящиков пользователей; каталогов, к которым осуществляется доступ по
FTP и через веб-сервер, и т. п. |
|
/var/log |
Файлы с протоколом работы системы |
|
/var/www |
Каталог веб-сервера, в котором хранятся публикуемые
веб-страницы |
|
/root |
Домашний каталог суперпользователя |
|
/tmp |
Каталог для временных файлов, доступен всем
пользователям системы |
Для запуска файла программы нужно ввести в качестве команды полный путь к этому файлу. Если запускается файл из текущего каталога, то перед именем файла нужно поставить символы «./» в (символ «.» в качестве названия каталога означает «текущий каталог»). Например для запуска файла myprog из текущего каталога набрать
./myprog
Если путь (или символ «.») не указан, оболочка ищет требуемый файл в каталогах, , имена которых содержатся в переменной среды PATH.
При указании имен файлов и каталогов в качестве параметров команды можно указывать полный путь к файлу (каталогу), либо только название для файлов из текущего каталога.
В командах копирования, перемещения и удаления фалов в именах файлов можно использовать символы шаблоны * (любое число символов) и ? (один произвольный символ).
Ниже приведен краткий справочник по командам. Реально большинство приведенных здесь команд имеет более десяти параметров, подробно о них можно узнать в [1] или в справочной системе.
pwd
Выводит имя текущего каталога
cd [directory]
Переход к указанному каталогу ( к домашнему каталогу, если каталог не указан)
mkdir directory
Создает новый каталог
ls [-a] [-l] [directory]
Выводит список файлов в каталоге (если каталог не задан, используется текущий каталог).
–a вывод сведений о всех файлах, включая скрытые (имена которых начинаются с точки);
–l вывод сведений о файлах в длинном формате ( включая информацию о владельцах файлов, дате создания и пр.)
cp source destination
Создает копию файла source с именем destination
cp source directory
Копирует файл (или несколько файлов, заданных шаблоном или перечисленных через пробел) в каталог directory (каталог должен существовать, в конце имени каталога обязательно указывается символ /)
rm [-f] file
Удаляет указанный файл (файлы), если не указана опция –f, для каждого удаления требуется подтверждение
rmdir
Удаляет пустые каталоги
cat [file]
Выводит содержимое файла (файлов). Если имя файла не указано, выводится получаемые на вход данные (то есть вводимые с клавиатуры).
ln [-s] target linkname
Создает ссылку с именем linkname на файл с именем target. Если ключ –s не указан, создается жесткая ссылка, если указан – мягкая.
touch [–t [[CC]YY]MMDDhhmm.[ss]] file
Изменяет время доступа и модификации указанного файла, на заданные опцией –t (век, год, месяц, день, час, минуты, секунды). Если опция –t не указана, используется текущее время. Если файл не существует, он создается.
В UNIX каждому объекту файловой системы (файлу или каталогу) сопоставлен пользователь-владелец и группа-владелец. Права на доступ к файлу отдельно задаются для пользователя-владельца; для пользователей, входящих в группу-владельца; для остальных пользователей. Для каждой из этих трех категорий указывается наличие/отсутствие разрешения на чтение, на запись (изменение) и на исполнение файла (то есть может ли он быть запущен как программа). Таким образом права на доступ к файлу описываются девятью двоичными цифрами, что соответствует трем восьмеричным цифрам. Куоманда ls с опцией –l позволяет узнать пользователя-владельца, группу-владельца и заданные права доступа для файлов (каталогов). При этом права на доступ к объекту указываются в виде девяти символов, например:
-rw-r-----
drwxrwxrwx
-rwxr-x---
Первый символ показывает является ли объект файловой системы файлом (-) или каталогом (d)
Второй-четвертый символы показывают состояние битов прав доступа для пользователя владельца (символ «-» означает что бит не установлен, буква (r – read, w- write, x – execute) – бит установлен (имеется соответствующее право доступа).
Пятый-седьмой и восьмой-десятый биты аналогично показывают состояние битов прав доступа для группы-владельца и остальных пользователей.
Право на чтения для каталога означает возможность просмотреть его содержимое. Право на запись в каталог означает возможность записывать в него файлы и удалять их (даже если права на запись в эти файлы у пользователя нет!). Право на исполнение для каталога интерпретируется как право доступа к вложенным каталогам. Предположим что пользователь имеет право на чтение и запись для каталога /home/user/cat1/cat2/, но не имеет такого права для /home/user/cat1/. Если он имеет право на исполнение для /home/user/cat1/, то он сможет просматривать каталог /home/user/cat1/cat2/ и записывать в него файлы.
Для смены пользователя-владельца, группы-владельца и управления правами доступа используются следующие команды:
chown username|UID file
Задает указанного пользователя в качестве пользователя-владельца файла (нескольких файлов)
chgrp groupname|GID file
Задает указанную группу в качестве группы-владельца файла (нескольких файлов)
chmod mode file
Задает указанные права доступа для файла (нескольких файлов). Права доступа могут быть указаны трехзначным восьмеричным числом, или в символьном формате:
Программа Midnight Commander представляет собой аналог программы Norton Commander для UNIX. Запуск программы осуществляется с помощью команды mc.
Для выполнения операций с файлами используются те же клавиши, что и в программе NortonCommander.
Расширенное меню, вызываемое по клавише F9 позволяет задавать права доступа к файлам и изменять данные о владельцах.