- •Лабораторная работа № 5 2011
- •1.1. Дерево каталогов
- •1.2. Размещение компонентов системы: стандарт fhs
- •1.3. Текущий каталог
- •1.4. Домашний каталог
- •1.5. Информация о содержимом каталога – утилита ls
- •1.6. Перемещение по дереву каталогов – команда cd
- •1.7. Создание каталогов – утилита mkdir
- •1.8. Копирование и перемещение файлов
- •1.9. Файл и его имена: ссылки
- •1.9.1. Жесткие ссылки – утилита ln
- •1.9.2. Индексные дескрипторы
- •1.9.3 Символьные ссылки
- •Если выполнить команду cat имя_файла-ссылки, то на экран будет выведено содержимое файла, на который указывает ссылка.
- •1.10. Удаление файлов и каталогов – утилиты rm и rmdir
- •1.11. Права доступа в файловой системе
- •1.11.1. Идентификатор пользователя
- •1.11.2. Идентификатор группы
- •1.11.3. Ярлыки объектов файловой системы
- •1.11.4. Иерархия прав доступа
- •1.12. Использование прав доступа в Linux
- •1.12.1. Использование групп
- •1.12.2. Разделяемые каталоги и sticky-бит
- •1.13. Суперпользователь
- •1.14. Поиск файлов
1.3. Текущий каталог
Каждая выполняемая программа "работает" в строго определенном каталоге файловой системы. Такой каталог называется текущим каталогом. Можно представлять, что программа во время работы "находится" именно в этом каталоге, это ее "рабочее место". В зависимости от текущего каталога поведение программы может меняться: зачастую программа будет по умолчанию работать с файлами, расположенными именно в текущем каталоге - до них она "дотянется" в первую очередь. Текущий каталог есть у любой программы, в том числе и у командной оболочки (shell) пользователя. Поскольку пользователь взаимодействует с системой через командную оболочку, можно говорить о том, что пользователь "находится" в том каталоге, который в данный момент является текущим каталогом его командной оболочки.
Все команды, выполняемые пользователем при помощи shell, наследуют текущий каталог shell, т. е. "работают" в том же каталоге. По этой причине пользователю важно знать текущий каталог shell. Для этого служит утилита pwd:
Команда pwd (print working directory) возвращает полный путь текущего каталога командной оболочки - естественно, именно той командной оболочки, при помощи которой была выполнена команда pwd.
Почти все утилиты по умолчанию читают и создают файлы в текущем каталоге. Например, утилита cat (concatenation – конкатенация) - выводит на экран содержимое файла "text":
[student@localhost student]$ cat text
В действительности, командная оболочка, прежде чем передавать параметр "text" (имя файла) утилите cat, подставляет значение текущего каталога - получается полный путь к этому файлу в файловой системе: "/home/student/text". Содержимое данного файла утилита cat выведет на экран.
Относительный путь(relative path) - путь к объекту файловой системы, не начинающийся в корневом каталоге. Для каждого процесса Linux определен текущий каталог, с которого система начинает относительный путь при выполнении файловых операций.
Относительный путь строится точно так же, как и полный - перечислением через "/" всех названий каталогов, встретившихся при движении к искомому каталогу или файлу. Между полным и относительным путем есть только одно существенное различие: относительный путь начинается от текущего каталога, в то время как полный путь всегда начинается от корневого каталога. Относительный путь любого файла или каталога в файловой системе может иметь любую конфигурацию - чтобы добраться до искомого файла, можно двигаться как по направлению к корневому каталогу, так и от него. Linux различает полный и oтносительный пути очень просто: если имя объекта начинается на "/" - это полный путь, в любом другом случае - относительный.
Отделить путь к файлу от его имени можно с помощью команд dirname и basename соответственно.
1.4. Домашний каталог
В Linux у каждого пользователя обязательно есть собственный каталог, который и становится текущим сразу после регистрации в системе - домашний каталог.
Домашний каталог (home directory) - это каталог, предназначенный для хранения собственных данных пользователя Linux. Как правило, является текущим непосредственно после регистрации пользователя в системе. Полный путь к домашнему каталогу хранится в переменной окружения HOME. Имя домашнего каталога ~
Поскольку каждый пользователь располагает собственным каталогом и по умолчанию работает в нем, решается задача разделения файлов разных пользователей. Обычно доступ других пользователей к чужому домашнему каталогу ограничен: наиболее типична ситуация, когда пользователи могут читать содержимое файлов друг друга, но не имеют права их изменять или удалять.