Linux: Полное руководство
Шрифт:
Заметьте, что точки среди специальных символов нет, и имена вроде
Если имя файла начинается с точки, то этот файл считается скрытым: некоторые команды его «не видят». Например, введя в своем домашнем каталоге команду просмотра содержимого каталога ls с ключом
Linux различает регистр символов в именах файлов: так, в одном каталоге могут находиться два разных файла
Имена каталогов строятся по точно тем же правилам, что и имена файлов.
Полным именем файла (или путем к файлу) называется список вложенных друг в друга каталогов, заканчивающийся собственно именем файла. Начинаться он может с любого каталога, потому что в древовидной структуре между любыми двумя узлами существует путь. Если этот список начинается с корневого каталога, то путь называется абсолютным. Если с любого другого — то относительным (по отношению к этому каталогу).
Корневой каталог обозначается символом «/» (слэш), и этим же символом разделяются имена каталогов в списке. Таким образом, абсолютным именем файла
В каждом каталоге существуют два особых «подкаталога» с именами «две точки» и «точка». Первый из них служит указанием на однозначно определенный родительский каталог, а второй — на сам данный каталог. Для корневого каталога, у которого нет родителя, оба эти «подкаталога» указывают на корневой каталог. С помощью этих имен образуются относительные имена файлов. Так, именем вышеупомянутого файла
2.1.2. Назначение основных системных каталогов
В системных каталогах находятся файлы, необходимые для управления и сопровождения системы, а также стандартные программы. Их имена, расположение и содержание почти одинаковы почти во всех ОС Linux, поэтому эти каталоги называют также стандартными. Впрочем, на данный момент эпитет «стандартные» отражает скорее благие пожелания, чем действительность: иерархия каталогов одинакова только для дистрибутивов, связанных единством происхождения, а исторически сложившиеся различия создают опасность несовместимости разных дистрибутивов. Стандарт файловой иерархии для UNIX-подобных систем разрабатывает группа добровольцев, и с его текущей версией можно ознакомиться по адресу
Краткое описание основных каталогов линии Red Hat и Fedora Core сведено в табл. 2.1.
Стандартные каталоги Таблица 2.1
Каталог | Назначение |
---|---|
/bin | Основные программы, необходимые для работы в системе: командные оболочки, файловые утилиты и т.п. |
/sbin | Команды для системного администрирования, а также программы, выполняемые в ходе загрузки |
/boot | Файлы, необходимые для загрузки системы (образ ядра) |
/home | Домашние каталоги пользователей, кроме root |
/dev | Файлы устройств |
/etc | Файлы настроек: стартовые сценарии, конфигурационные файлы графической системы и различных приложений |
/lib | Системные библиотеки, необходимые для основных программ, и модули ядра |
/lost+found | Восстановленные после аварийного размонтирования части файловой системы |
/media | Сюда
|
/mnt | Временные точки монтирования жестких дисков Использовать этот каталог необязательно: подмонтировать файловую систему можно к любому другому каталогу |
/opt | Дополнительные пакеты программ. Если программа, установленная сюда, больше не нужна, то достаточно удалить ее каталог без обычной процедуры деинсталляции |
/proc | Виртуальная файловая система, дающая доступ к информации ядра (например, выведите на экран файл /proc/cpuinfo). Другие файлы в этом каталоге в каждый момент времени содержат информацию о выполняющихся в этот момент программах |
/root | Домашний каталог суперпользователя. Домашние каталоги всех остальных могут находиться на отдельном разделе, но /root должен быть в корневой файловой системе, чтобы администратор всегда мог войти в систему для ремонтных работ |
/tmp | Временные файлы |
/var | Часто меняющиеся данные: системные журналы и протоколы приложений, замки. Почтовые ящики, очереди печати и т.п. |
/usr | Практически все остальное: программы, исходные коды, документация. Сюда по умолчанию устанавливаются новые программы |
Скорее всего, в ваш дистрибутив включена man-страница
2.1.3. Типы файлов
С точки зрения UNIX-подобных ОС, файл представляет собой поток или последовательность байтов. Такой подход позволяет распространить понятие файла на множество ресурсов не только локального компьютера, но и удаленного, связанного с локальным сетью любого рода. Доступ к любому такому ресурсу осуществляется через универсальный интерфейс, благодаря чему запись данных в файл, отправка их на физическое устройство или обмен ими с другой работающей программой происходит аналогично. Это очень упрощает организацию данных и обмен ими.
В ОС Linux можно выделить следующие типы файлов:
♦ обычные файлы — последовательность байтов (текстовые документы, исполняемые программы, библиотеки и т.п.);
♦ каталоги — именованные наборы ссылок на другие файлы;
♦ файлы физических устройств, подразделяющихся на:
• файлы блочных устройств, драйверы которых буферизуют ввод-вывод с помощью ядра и
• файлы байт-ориентированных, или символьных, устройств, позволяющих связанным с ними драйверам выполнять буферизацию собственными средствами;
♦ символические ссылки (symlink, symbolic link);
♦ именованные каналы (named pipes);
♦ гнезда (sockets).
Свойства (атрибуты) файлов и каталогов можно вывести на терминал с помощью команды ls с ключом
Что это за свойства?
Первый символ выведенной строки, в данном случае дефис, обозначает тип файла. Другие значения этого свойства: d — каталог, b — блочное устройство, с — символьное устройство, l — символическая ссылка, p — именованный канал и s — гнездо.
Следующие 9 символов означают права доступа к файлу. Они делятся на три тройки, обозначающие права: владельца, членов его группы и всех остальных. Внутри каждой тройки может присутствовать или отсутствовать: право чтения (r), записи (w) и исполнения (x, от execute). Отсутствие права обозначается символом дефиса. С файлом README из нашего примера владелец (в общем случае, пользователь, создавший его) имеет право делать все, что угодно; члены его группы — только читать и запускать файл на выполнение; все остальные — только читать.