Федотов А.М.
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 и т.д.
В этом примере следует отметить еще несколько моментов:
- Перед именем стоит косая черта (/). Косая черта в начале имени обозначает
"корневой каталог", который является, по сути, точкой, в которой "склеены"
между собой все диски системы. В ОС UNIX никогда не обращаются к самому
диску, а всегда - к подкаталогам корневого каталога.
В MS DOS и MS Windows каждому логическому устройству приписана определенная буква
английского алфавита. В UNIX'е каждое устройство начиняется с некоторого
каталога (подкаталога) корневого каталога (корневой директории).
-
UNIX-системы являются многопользовательскими. Каждому пользователю
назначается "домашний каталог", в котором он должен хранить свои файлы, даже
если он является единственным пользователем системы.
/home/user - это,
вероятно, "домашний" (рабочий) каталог пользователя
user.
-
Пользователи могут создавать собственные каталоги так, как
user создал каталог
letters.
Взятое нами в качестве примера имя файла
(/home/user/letters/mom.txt) называется
полным именем, потому что оно показывает весь "путь" к файлу, начиная с
корневого каталога. Такие имена не обязательно использовать постоянно.
Однако можно применит целый ряд сокращений:
-
Рабочий (домашний) каталог всегда в Вашем распоряжении. Можно указывать пути
относительно текущего каталога, а не корневого. Например, если текущим является
каталог
/home/user/letters, можно указать только имя файла
- mom.txt. (Именно так
и делается в большинстве случаев: указываете файл в текущем каталоге.)
Команда
pwd
выдает имя текущего каталога; команда
cd
каталог делает текущим другой каталог. Так, если текущим является каталог
/home/user, то команда
cd letters
перенесет Вас в каталог
letters. Команда
mkdir
каталог создает новый каталог, а команда
rmdir
каталог удаляет каталог при условии, что он не содержит файлов.
-
В некоторых UNIX системах можно обозначать домашний каталог знаком
~, а комбинацией
~имя -
"начальный каталог пользователя
имя". Например,
~user/letters/mom.txt - еще
один способ указать файл
user'а. Команда
cd
без параметров предназначена для
возврата в начальный (домашний) каталог, при этом не учитывается, откуда Вы начали работу.
-
Символы ..
обозначают "родительский каталог". Чаще всего они используются с командой
cd. Например, если текущим является каталог
~user/letters, то команда
cd..
перенесет Вас в каталог ~user.
Вам следует знать, как 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 "Иван Иванов" *
осуществляет поиск имени "Иван Иванов" во всех файлах текущего каталога.
[Предыдущая страница]
[Содержание]