ИВТ

Федотов А.М.
UNIX для начинающих пользователей Internet


[Содержание] [Предыдущая страница]

Структура каталогов OS UNIX

Как и в MS DOS, MS Windows и Macintosh, в операционной системе UNIX применяется иерархическая (или "древовидная") файловая система. Это означает, что каждый файл находится в каталоге (директории), а каталоги могут включать другие каталоги. В системах Macintosh и MS Windows 95/NT каталоги называются "папками" (folder). В системе DOS используется тот же файлово-каталоговый язык, что и в UNIX (каталоги-директории, файлы).

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

   mount -F ufs   /dev/dsk/m197_c0d0s5 /u
   mount -F ufs   /dev/dsk/m197_c0d0s4 /usr1
Получить доступ к файлам "несмонтированной" файловой системы невозможно. В UNIX всегда есть ровно одно общее дерево каталогов.

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

При каждой начальной загрузке UNIX проверяет - корректно ли была выключена машина в прошлый раз, и если нет - автоматически запускает утилиту fsck (File System Check), которая производит проверку и ремонт файловых систем (если это возможно).

Первое, что следует отметить: для разделения имен каталогов в UNIX используется прямая косая черта (/).


В MS DOS и MS Windows для разделения каталогов используется обратная косая черта (\), в MS Windows NT 4.0 может использоваться как та так и другая. Говорят, что разработчики MS DOS хотели сделать так же, как в UNIX'е, но ошиблись.
Например, /home/user/letters/mom.txt означает: "файл mom.txt находится в каталоге letters, который в свою очередь находится в каталоге user, который находится в каталоге home". Можно также сказать, что user - это подкаталог каталога home и т.д.

В этом примере следует отметить еще несколько моментов:

Взятое нами в качестве примера имя файла (/home/user/letters/mom.txt) называется полным именем, потому что оно показывает весь "путь" к файлу, начиная с корневого каталога. Такие имена не обязательно использовать постоянно. Однако можно применит целый ряд сокращений: Вам следует знать, как UNIX организует файлы. В отличие от персональных компьютеров, где используются относительно небольшие диски, UNIX-системы обычно работают с большими дисками, причем в значительных количествах. Многогигабайтные диски здесь не редкость, а многие системы используют несколько дисководов. В большой системе их может быть десяток и более. Чем больше объем дисковой памяти, тем большее значение приобретают каталоги, с помощью которых можно правильно ее организовать.

Допустимые имена файлов

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

Не стоит ставить в начале имени файла точку; команда ls не найдет такой файл в списке, если Вы не укажете ее с ключом -a. Использование точки в качестве первого символа имени файла позволяет "прятать" определенные файлы, чтобы они не "загрязняли" списки каталогов.

Символы подстановки (шаблоны) в именах файлов

В операционной системе UNIX в качестве стандартных символов подстановки (шаблонов) для имен файлов приняты *, ?, []. Эти универсальные символы имеют следующее значение:
*   -   используется для обозначения любого объекта. Например, просто * обозначает любой файл каталога; *.txt - все имена файлов с суффиксом (расширением) .txt; gorilla* - все имена файлов, начинающиеся со слова gorilla.
?   -   обозначает любой (но только один) символ. Например, source.? обозначает source.h, source.c, source.y и т.д.
[...]   -   обозначает любой символ из указанных в скобках. Вы можете указывать одиночные символы (например, [chyf] обозначает c, h, у f), диапазон ([a-z] обозначает любую строчную букву, a [a-zO-9A-Z] - любую букву или цифру). Отметим, что в одном диапазоне нельзя сочетать строчные и прописные буквы или буквы и цифры. [a-Z] или [А-9] приведут к удивительным результатам - возможно Вы достигнете цели, но лишь если Вам очень повезет. Вы можете использовать все символы подстановки независимо от того, с какой версией UNIX работаете.
К сожалению, символы подстановки нельзя применять в части "образец" команды grep. Вместо этого команда grep использует более сложное средство - "регулярные выражения", которые будут рассмотрены позднее. В элементе файл команды grep символы подстановки использовать можно. Например, команда
> grep "Иван Иванов" *
осуществляет поиск имени "Иван Иванов" во всех файлах текущего каталога.
[Предыдущая страница] [Содержание]
Федотов А.М.
Введение в Internet

Created 3.09.96.
Last updated Sunday, 23-Aug-1998 01:00:00 NOVST
© 1996 - 1998, Anatolii M.Fedotov
© 1996 - 1998, Institute of Computational Techologies SB RAS

ИВТ
|Документация|
|Информационные ресурсы|