- •«Операционные системы.Командный интерфейс» конспект лекций Тема 1. Введение. Содержание курса
- •Тема 2. Классификация режимов работы ос
- •Диалоговый пакетный
- •Тема 3. Виды нтерфейсов пользователя ос unix
- •Тема 4. Обобщенные принцпы построения современных ос
- •Тема 5. Состав ос unix
- •Тема 6. Среда для работы пользователя
- •Тема 7. Регистрация пользователя в системе
- •Тема 8. Группа коммуникационных команд
- •Тема 9. Группа вспомогательных команд
- •Тема 10. Перенаправление ввода-вывода
- •Файловая система unix
- •Тема 11. Файлы unix
- •Тема 12. Генерация имен файлов
- •Тема 13. Структура системы каталогов unix
- •Тема 14. Управление каталогами в unix
- •Тема 15. Команды поиска файлов в системе каталогов
- •Тема 16. Управление файлами
- •Тема 17. Управление правами доступа к файлам и каталогам
- •Здесь файл fil1.C, владельцем которого является пользова-
- •Тема 18. Конвееры и фильтры
- •Тема 19. Создание и редактирование текстовых файлов
- •Команды удаления текста
- •Введение в shell- программирование
- •Тема 20. Операторы – команды
- •В unix при написании операторов важное значение отводится
- •Тема 21. Управление локальными переменными
- •Тема 22. Подстановка значений переменных
- •Тема 23. Экспортирование локальных переменных в среду shell
- •Тема 24. Проверка условий
- •2. Сравнение числовых значений:
- •3. Сравнение строк:
- •If список_команд1
- •Тема 25. Построение циклов
- •Тема 26. Управление процессами в unix
- •Тема 27. Создание фоновых процессов
- •Тема 28. Управление приоритетами
- •Тема 29. Завершение процессов
- •Тема 30. Перехватывание сигналов
- •Тема 31. Сетевые средства unix
Тема 14. Управление каталогами в unix
Каталоги - средство организации файлов. Управление каталогами:
просмотр структуры и содержания системы каталогов;
создание и удаление каталогов;
поиск файлов в системе каталогов.
При работе с файлами пользователь всегда находится в одном из каталогов, который называется текущим. Для того, что бы определить какой каталог является в настоящее время текущим - можно запросить абсолютное полное маршрутное имя текущего каталога:
pwd - печать полного маршрутного имени текущего каталога
$ pwd
”””””””””””””
/home/user/lev
$ _
”””””””””””””
Для просмотра содержимого листинга каталога служит команда:
ls [-ключи] [имя_каталога]
Ключи используются для определения формата выдачи:
-l - полный (длинный) формат выдачи, перед ним суммарный
размер всех перечисленных файлов в килобайтах;
”””””””””
total 127
”””””””””
-а - вывод полного списка файлов, включая скрытые, т.е. имена
которых начинаются с точки (в том числе файлы . и ..);
-C - вывод имен файлов в несколько колонок с сортировкой по
алфавиту вдоль колонок;
и т.п., всего 27 опций.
$ ls -al
””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””
total 14
drwxrwxrwx 4 lev user 496 Mar 13 13:07 .
drwxrwxrwx 11 root root 176 Feb 23 13:47 ..
-rwxr-xr-x 1 lev user 152 Mar 13 13:07 f1
drwxrwxrwx 3 lev user 32 Apr 4 14:52 lev1
...........................................................................................
$
””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””
Здесь необходимо обратить внимание на то, что любой каталог также является файлом типа "d" с соответствующими правами
доступа.
Без ключей команда выводит отсортированные по алфавиту
имена файлов и каталогов по одному имени на каждой строке.
Элементы каталога слева направо:
тип файла ( “-“ - обычный, d - каталог , g - сетевой, p - файл программного канала),
c - файл символьного (байториентированного) внешнего устройства -принтеры, графические устройства и пр и т.д.)
символьные коды прав доступа к файлам(r,w,x);
число ссылок на файл (число связей) – минимум 1-для файла, 2-для каталога;
владелец файла;
символьный идентификатор группы пользователя;
размер файла в байтах;
время и дата последней модификации файла;
собственное имя файла.
Стандартный вывод команды можно переадресовать в файл:
$ ls>fildir
$
или присоединить к существующему файлу:
$ ls>>fildir
$
В текущем каталоге можно размещать как новые файлы, так и
новые каталоги, являющиеся подкаталогами по отношению к текущему каталогу. Для создания одного или нескольких подкаталогов применяется команда:
mkdir [-ключи] имя_нового_каталога1 [имя-кат2] - создание каталогов.
-p - создается промежуточный подкаталог до этого не существовавший (т.о. можно создавать сразу цепочку каталогов).
Вновь созданный каталог не будет абсолютно пустым. Он будет содержать два элемента с символьными именами "." и "..".
Пример:
$ mkdir dirа
$ mkdir dirb
$
lev
dira
dirb
dird
dirc
d1
d2
В текущем каталоге lev создано два подкаталога dira и
dirb со стандартными значениями атрибутов защиты.
$ ls -l
””””””””””””””””””””””””””””””””””””””””””””””””””””””””””
drwxr-xr-x 2 lev user 32 Mar 4 14:52 dira
drwxr-xr-x 2 lev user 192 Mar 9 12:53 dirb
””””””””””””””””””””””””””””””””””””””””””””””””””””””””””
Команда mkdir может быть использована и для создания ниже-
лежащих подкаталогов по их маршрутным именам непосредственно из текущего каталога (lev)
$ mkdir dirb/dirc
$ ls -l dirb
””””””””””””””””””””””””””””””””””””””””””””””””””””””””””
drwxr-xr-x 2 lev user1 196 Mar 9 12:53 dirb
””””””””””””””””””””””””””””””””””””””””””””””””””””””””””
$ ls -l dirb/dirc
”””””””
total 0
”””””””
$
Для исключения набора длинных маршрутных имен файлов
любой каталог может быть сделан текущим с помощью команды:
cd [полное_имя_каталога] - смена текущего каталога на указаный
$ cd /home/user/lev/dirb/dirc
$ pwd
””””””””””””””””””””””””
/home/user/lev/dirb/dirc
””””””””””””””””””””””””
$
Еще пример:
$ cd ../../dira
$ pwd
/home/user/lev/dirа
$
Пример создания сразу нескольких новых подкаталогов относительно объявленного текущим каталога dira:
$mkdir -p dird/d1 dird/d2 - одновременно создается несуществующий промежуточный подкаталог dird.
Команда cd без аргументов восстанавливает в качестве текущего начальный (головной) каталог пользователя:
$ cd
$ pwd
””””””””””””””
/home/user/lev
””””””””””””””
$ _
Интенсивная работа в системе требует периодической чистки
поддерева каталогов пользователя. Для этих целей используются
две команды:
rm список_файлов - удалить указанные файлы
rmdir список_каталогов - удалить пустой подкаталог
Процедура чистки требует некоторой обязательной последова-
тельности действий:
- удалить все файлы в удаляемом каталоге командой rm;
- уд лить сам подкаталог с помощью команды rmdir.
Но существуют некоторые особенности выполнения этих действий:
- без ключей удаляется только один последний каталог в пути;
- действие удаления файлов и самого каталога требует наличия у пользователя прав записи (кода - w)в этот каталог;
- текущий каталог не должен принадлежать поддереву удаляе-
мых каталогов (т.е. невозможно удалить текущий каталог);
- если удаляемый файл защищен от записи, то команда rm
запрашивает подтверждение на удаление файла.
Назначение некоторых ключей:
- ключ -i команды rm вводит необходимость подтверждения
для каждого удаляемого файла;
- ключ -f команды rm отменяет необходимость подтверждения
для любого удаляемого файла;
- ключ -r задает режим рекурсивного удаления всех файлов
и подкаталогов данного каталога, а затем и самого каталога, но
лучше использовать ключ -i, иначе можно потерять все файлы.
Все три ключ команды rm могут использоваться в любых со-
четаниях. Например:
$ rm -ir /home/user/lev/dira
<Требует подтверждения на каждый удаляемый файл>
$
