UNIX — универсальная среда программирования | страница 25
Рассмотрим первый способ. Основным нашим средством будет команда >pwd ("print working directory" — печать рабочего каталога), которая выведет имена файлов каталога, с которым вы работаете:
>$ pwd
>/usr/you
>$
Команда выведет сообщение о том, что вы находитесь в каталоге you, а сам каталог — в каталоге >usr, который в свою очередь находится в корневом каталоге, традиционно обозначаемом как >'/'. Символ >'/' разделяет компоненты имени: каждый компонент ограничен по длине 14 символами. Во многих системах каталог >/usr содержит имена каталогов всех пользователей. (Даже если ваш личный каталог не >/usr/you, команда >pwd выдаст нечто аналогичное, так что вы сможете следить за последующими примерами.) Введя
>$ ls /usr/you
вы получите тот же самый список файлов, который выдает только >ls. Если в команде >ls нет аргументов, то она выводит содержимое текущего каталога; если же ей присвоить имя каталога, то она выдает содержимое указанного каталога. Далее вводите
>$ ls /usr
Это приведет к появлению длинного списка имен, среди которых есть и ваш начальный каталог >you.
На следующем шаге попытайтесь распечатать сам корневой каталог. В результате получите ответ, подобный следующему:
>$ ls /
>bin
>boot
>dev
>etc
>lib
>tmp
>unix
>usr
>$
(Пусть вас не смущает то, что символ >'/' имеет два назначения одновременно: имя корневого каталога и разделитель в именах файлов.) Большую часть приведенного списка составляют имена каталогов, но >unix на самом деле является файлом, содержащим в готовом к выполнению виде ядро системы UNIX (более подробно об этом см. в гл. 2).
Теперь попробуйте ввести
>$ cat /usr/you/junk
(если файл >junk все еще хранится в вашем каталоге). Имя >/usr/you/junk называется путевым, или абсолютным, именем файла. Путевое имя имеет интуитивный смысл: оно представляет путь по дереву каталогов от корня к отдельному файлу. В системе UNIX есть универсальное правило: всюду, где можно использовать обычное имя файла, можно использовать и абсолютное имя.
Файловая система имеет структуру, подобную генеалогическому дереву:
Рис. 1.1: Карта файловой системы UNIX
Ваш файл с именем >junk никак не связан с файлами пользователей >paul или >mary.
Абсолютные имена не слишком впечатляют, если все интересующие вас файлы находятся в вашем каталоге, но если вы работаете совместно с кем-либо или над несколькими проектами одновременно, они становятся весьма удобными. Например, ваши коллеги могут распечатать файл >junk с помощью команды
>$ cat /usr/you/junk