5 – рабочие каталоги и файлы пользователей
Некоторые системные каталоги:
vmunix - ядро ОС;
bin - утилиты оболочки;
dev - файлы устройств;
tmp - адреса рабочих пространств памяти пользователей, выделяемых супервизором памяти ОС по запросам системных вызовов из программ пользователей;
etc - файлы администратора;
mnt - каталог монтирования новых файловых систем;
home - данные головных каталогов всех пользователей системы.
В UNIX как и в DOS используется простой способ описания пути к файлу в иерархической системе каталогов -
полное маршрутное имя файла (абсолютное маршрутное):
$ cat /home/user/lev/f1
относительные маршрутные имена файлов:
- от головного каталога группы пользователей - user/lev/f1
- от головного (личного) каталога пользователя - f1 или lev/f1
- от текущего (рабочего в данный момент) каталога,
- " . " - системное имя текущего каталога (скрытый файл)
- " .. " - системное имя вышележащего каталога (скрытый файл).
man название_команды - вызов электронного справочника об указанной команде.
Например: manexit – выведет справку по команде exit.
Выход из справочника - нажатие клавиши Q.
Команда man man сообщает информацию о том, как пользоваться справочником.
Помимо справочника можно воспользоваться командой help. Для этого нужно набрать:
команда --help
Например: exit --help – выведет справку по команде exit.
ls [-alrstu] [namedir] - вывод содержимого каталога; если в качестве namedir указано имя файла, то выдается вся информация об этом файле. Если аргумент не указан, выдается содержимое текущего каталога.
Значения некоторых аргументов:
- l - список включает всю информацию о файлах;
- F - добавление к имени каталога символа / и символа * к имени файла, для которых разрешено выполнение;
- a - в список включаются все файлы, в том числе и те, которые начинаются с точки;
- i - указать идентификационный номер каждого файла;
- R - рекурсивный вывод содержимого подкаталогов заданного каталога.
find список_каталогов условия_поиска -определение полных имен файлов в поддереве каталогов, удовлетворяющих заданным условиям поиска.
В команде может быть задано до 18 условий_поиска. Необходимые комбинации условий объединяются в булевское выражение с помощью элементарных логических операций ('элементарных логических функций). Таким образом формируется логическая функция, принимающая истинное значение если значения всех её составляющих истины.
На экран выводятся полные маршрутные имена файлов, свойства которых обеспечивают истинность этой функции.
Элементарные логические функции:
! <условие> отрицание условия;
<пробел> соответствует операции "И";
-o операция "ИЛИ";
\( выражение \) булевское выражение в скобках.
При описании команды используются обозначения:
n положительное десятичное число;
-n любое положительное десятичное число, строго меньшее n;
+n любое положительное десятичное число, строго большее n.
Условия задаются следующими опциями:
-name'имя_файла' истинно для файлов с указанным именем.
-perm <8-ричный_код> истинно для файлов с указанным кодом прав доступа.
-type {f|d|b|c|p} истинно для файлов указанного типа.
-links n истинно для файлов с числом ссылок n.
-user <имя_пользователя> истинно для файлов, принадлежащих данному пользователю.
-size n[c] истинно для файлов с длиной n (число блоков) или с – в символах (байтах).
-exec <команда> {} \; истинно, если команда возвращает нулевой код завершения (true), т.е. опция выполняет <команда> для каждого найденного файла.
Все аргументы команды find разделяются пробелами.
Примеры использования команды find:
1) команда выводит на экран список файлов с именами fil или файлов у которых имя владельца petr:
find / --name “fil.*” –o –user petr –exec cat {} \;
2) поиск файлов, не являющихся директориями в текущем каталоге и его подкаталогах:
find * !-typed
3) команда осуществит поиск в корневом каталоге всех директорий, на которые существуют более трех жестких ссылок:
find / -typed -links +3
grep [-ключи] 'шаблон' <список_файлов> - поиск в файлах из списка_файлов строк, содержащих указанный шаблон (подстрока символов).
Ключи определяют режимы поиска и вывода:
-c выводятся имена всех просмотренных файлов и количество найденных строк, содержащих шаблон;
-n перед каждой строкой выводится ее относительный номер в файле и сама строка;
-i игнорируются регистры;
-l выводятся только имена файлов, содержащие найденные строки и др.
Например:
grep -c 'aaa' *
””””””””
f.1: 10
f.2: 3
f.3: 1
””””””””
В рассмотренном примере выводятся все имена файлов текущего каталога, содержащих подстроку aaa и количество таких строк в каждом из них.
В нижеследующем примере выводятся только имена файлов, содержащих строки с шаблоном aaa.
$ grep -n bbb * <NewLine>
””””””””””””””””””””””””””””
f.1: 5: aaaaaabbbbaaacc
f.2: 2: bbbbbbbbbbbbbbbbbbbb
f.6: 1: bbb
””””””””””””””””””””””””””””
1. Изучить архитектуру и принципы функционирования многопользовательской многозадачной операционной системы Linux
2. Изучить основные команды работы с каталогами ОС Linux
Изучаются команды:
mkdir - создание каталога;
rmdir - удаление каталога;
cd - перемещение по дереву каталогов;
pwd - определение текущего каталога;
ls - просмотр содержимого каталога;
more - постраничный вывод информации;
man - вызов руководства по команде.
1) Зарегистрируйтесь в ОС Linux. Запустите на выполнение программу Терминал.
2) Изучить команды работы с каталогами, для этого выведите на экран Терминала справку по следующим командам: pwd, mkdir, rmdir, cd, ls. Назначение и формат команд приведите в отчете.
3) Определите Ваш текущей каталог. Просмотрите его содержимое и приведите его в отчете.
4) Перейдите в каталог Вашей группы и создайте в нем личный каталог.
5) Определите уникальное имя (номер индексного указателя) Вашего личного каталога. Объясните структуру полного маршрутного имени каталога.
6) Создайте два поддерева из одного и из двух каталогов в каталоге Вашей группы. Используя команду ls, проверьте факт построения дерева подкаталогов.
7) Просмотрите содержимое пустых подкаталогов, т.е. новых подкаталогов, не содержащих файлов. Объясните их содержание.
8) Сделайте текущим последний каталог меньшего поддерева. Определите его полное маршрутное имя.
9) Уничтожьте все подкаталоги большего поддерева каталогов. Получите подтверждение выполнения команд.
10) Выведите на экран содержимое корневого каталога. Приведите его в отчете. Какие каталоги расположены в корневой директории, каково их назначение?
11) Завершите сеанс работы с системой.
1. Изучить архитектуру и принципы функционирования многопользовательской многозадачной операционной системы Linux
2. Научиться осуществлять поиск файлов в системе каталогов
Изучаются команды:
find - поиск файлов в системе каталогов
more - постраничный вывод информации;
man - вызов руководства по команде;
grep - поиск в файлах указанный шаблон;
еxit - выход из терминала;
1) Зарегистрируйтесь в ОС Linux. Запустите на выполнение программу Терминал.
2) Изучить команды работы с каталогами, для этого выведите на экран Терминала справку по следующим командам: find, grep. Назначение и формат команд приведите в отчете.
3) Установите в качестве текущего HOME-каталог.
4) Найдите обычные файлы с определением их полных маршрутных имен.
5) Осуществите поиск файлов типа директория в Вашем личном каталоге.
6) Найдите в текущем каталоге все файлы, на которые имеются жесткие ссылки.
7) Найдите файлы блок-ориентированного типа из каталога /dev и его подкаталогов.
8) Осуществите поиск обычных файлов на диске, размер которых не превышает 2 Кб.
9) Задайте различные комбинации известных Вам условий поиска файлов и каталогов.
10) Выведите на экран принадлежащую Вам регистрационную запись с использованием команды grep.
11) Завершите сеанс работы с системой.
Ниже приведены форматы команд, использующихся для управления файлами:
>маршрутное-имя-файла - создание пустого файла.
cat имя-файла - вывод содержимого файла на экран.
cat>имя-файла - перенаправление информации, вводимой с клавиатуры с заменой содержимого файла.
cat [входной файл 1] [входной_файл2] […входной файл N] > [выходной_файл] - слияние файлов
grep [-ключи] 'шаблон' <список_файлов> -поиск в файлах из списка_файлов строк, содержащих указанный шаблон (подстрока символов).
Ключи определяюobt режимы поиска и вывода:
-c выводятся имена всех просмотренных файлов и количество
найденных строк, содержащих шаблон;
-n перед каждой строкой выводится ее относительный номер в
файле и сама строка;
-i игнорируются регистры;
-l выводятся только имена файлов, содержащие найденные строки и др.