Пользователи системы



страница11/42
Дата01.12.2017
Размер5.38 Mb.
ТипПрограмма
1   ...   7   8   9   10   11   12   13   14   ...   42

Текущий каталог


Файловая система не только систематизирует данные, но и является основой метафоры "рабочего места" в Linux. Каждая выполняемая программа "работает" в строго определенном каталоге файловой системы. Такойкаталог называется текущим каталогом. Можно представлять, что программа во время работы "находится" именно в этом каталоге, это ее "рабочее место". В зависимости от текущего каталога поведение программы может меняться: зачастую программа будет по умолчанию работать с файлами, расположенными именно в текущем каталоге - до них она "дотянется" в первую очередьТекущий каталог есть у любой программы, в том числе и у командной оболочки (shell) пользователя. Поскольку взаимодействие пользователя с системой обязательно опосредовано командной оболочкой, можно говорить о том, что пользователь "находится" в том каталоге, который в данный момент является текущим каталогом его командной оболочки.

Все команды, отдаваемые пользователем при помощи shell, наследуюттекущий каталог shell, т. е. "работают" в том же каталоге. По этой причине пользователю важно знать текущий каталог shell. Для этого служит утилитаpwd:

[methody@localhost methody]$ pwd

/home/methody

[methody@localhost methody]$

Пример 4.1. Текущий каталог: pwd (html, txt)

Команда pwd (print working directory) возвращает полный путь текущего каталога командной оболочки - естественно, именно той командной оболочки, при помощи которой была выполнена команда pwd. В данном случае Мефодий узнал, что в этот момент (на данной виртуальной консоли) текущим является каталог "/home/methody".

Почти все утилиты, с которыми работал Мефодий в предыдущих лекциях, по умолчанию читают и создают файлы втекущем каталоге. Так, Мефодий обращался к файлам, не используя никаких путей, просто по имени. Например, задействовал утилиту cat, чтобы вывести на экран содержимое файла "text":

[methody@localhost methody]$ cat text

File: info.info, Node: Help-Cross, Up: Cross-refs
The node reached by the cross reference in Info

. . .


[methody@localhost methody]$ cat /home/methody/text

File: info.info, Node: Help-Cross, Up: Cross-refs


The node reached by the cross reference in Info

. . .


Пример 4.2. Полный и относительный путь к файлу (html, txt)

В действительности, командная оболочка, прежде чем передавать параметр "text" (имя файла) утилите cat, подставляет значение текущего каталога - получается полный путь к этому файлу в файловой системе: "/home/methody/text". Содержимое данного файла утилита cat выведет на экран.1) Набирая только имя файла без пути к текущему каталогу, Мефодий воспользовался относительным путем к этому файлу.



Относительный путь(relative path) - путь к объекту файловой системы, не начинающийся в корневом каталоге. Для каждого процесса Linux определен текущий каталог, с которого система начинает относительный путь при выполнении файловых операций.

Относительный путь строится точно так же, как и полный - перечислением через "/" всех названий каталогов, встретившихся при движении к искомому каталогу или файлу. Между полным и относительным путем есть только одно существенное различие: относительный путь начинается от текущего каталога, в то время как полный путьвсегда начинается от корневого каталогаОтносительный путь любого файла или каталога в файловой системеможет иметь любую конфигурацию: чтобы добраться до искомого файла, можно двигаться как по направлению ккорневому каталогу, так и от него (см. раздел "Перемещение по дереву каталогов"). Linux различает полный иoтносительный пути очень просто: если имя объекта начинается на "/" - это полный путь, в любом другом случае - относительный.

Отделить путь к файлу от его имени можно с помощью команд dirname и basename соответственно:

[methody@localhost methody]$ basename /home/methody/text

text


[methody@localhost methody]$ basename text

text


[methody@localhost methody]$ dirname /home/methody/text

/home/methody

[methody@localhost methody]$ dirname ./text

.

[methody@localhost methody]$ dirname text



.

Пример 4.3. Использование dirname и basename (html, txt)

Мефодий заметил, что для "text" и "./text" dirname выдает одинаковый результат: ".", что понятно: как было сказано выше, эти формы пути эквивалентны, а при автоматической обработке результатов dirname гораздо лучше получить ".", чем пустую строку.


Домашний каталог


Мефодий заметил, что в примерах этой и прошлых лекций, заходя с разных виртуальных консолей по очереди и одновременно, он всегда оказывался в одном и том же текущем каталоге: он все время обращался к своим файлам при помощи относительного пути и всегда находил нужные. Это не случайно - в Linux у каждого пользователя обязательно есть собственный каталог, который и становится текущим сразу после регистрации в системе - домашний каталог2). Для Мефодия домашним каталогом является "/home/methody".

Домашний каталог(home directory) - это каталог, предназначенный для хранения собственных данных пользователя Linux. Как правило, является текущим непосредственно после регистрации пользователя в системе.Полный путь к домашнему каталогу хранится в переменной окружения HOME.

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





Поделитесь с Вашими друзьями:
1   ...   7   8   9   10   11   12   13   14   ...   42


База данных защищена авторским правом ©vossta.ru 2019
обратиться к администрации

    Главная страница