Монтирование файловых систем, команды навигации и просмотра, управления и поиска
Цель работы: Изучение команд монтирования файловых систем, навигации и просмотра.
Задание :
Исследование смонтированных файловых систем
Команда mount выводит информацию о смонтированных файловых системах и параметрах монтирования.
Команда df выводит данные о размерах файловых систем, занятом и свободном пространстве; ключ -k определяет формат вывода и означает, что данные выводятся в килобайтах.
Mount
Df - k
Нарисуйте дерево основных каталогов с указанием того, какие файловые системы (разделы дисков) куда смонтированы, каков их размер и процент занятости.
Вставьте диск в привод CDROM и через несколько секунд повторите команды mount и df -k. Что изменилось? Обратите внимание на параметры монтирования CD. Выньте диск после подачи команды:
Eject cdrom
Монтирование файловых систем при загрузке ОС
Файл /etc/vfstab содержит информацию о файловых системах, точках и параметрах монтирования, указания для программы проверки fsck.
More /etc/vfstab
Администратор должен редактировать /etc/vfstab крайне аккуратно. Некорректные данные в этом файле или изменение его формата (например автоматической сворачивание длинных строк текстовым редактором) приведут к тому, что система не будет загружаться.
Определение суммарного размера каталогов
Команда
du - k каталог
выводит информацию о суммарном размере файлов в указанном каталоге и - рекурсивно - его подкаталогах (плюс размер собственно каталога); ключ -k означает, что данные выводятся в килобайтах, иначе - в 512-байтных блоках. Если каталог не указан, подразумевается текущий.
Ключ -s подавляет рекурсивный вывод информации о подкаталогах - команда сообщает только суммарный объем.
Du -k
Du -ks
Как получить сводку размеров домашних каталогов пользователей (без детализации по подкаталогам)?
Du -ks /home
Du -k /home
du -ks /home/*
Поиск в файловой системе
Поиск по содержимому файлов (grep)
Команда
grep [-inv] подстрокафайл [файл2 ...]
производит поиск указанной подстроки в указанных файлах.
Вообще-то grep ищет не строку символов, а регулярное выражение. Если вы используете только алфавитно-цифровые символы, то никаких отличий нет. Однако, не используйте знаки препинания и другие особые символы, если вы не уверены, что они не будут интерпретированы особым образом - как метасимволы регулярного выражения. Регулярные выражения изучаются позже в этом курсе.
Команда выводит строки из указанного файла (файлов), в каковых строках найдена указанная подстрока. Если файлов несколько, строка предваряется именем файла с двоеточием.
Основные ключи:
-i - игнорировать отличия верхнего и нижнего регистра (на нерусифицированных системах работает только для латиницы),
-n - вместе со строками выводить и их номера,
-v - выводить строки, в которых не найдена указанная подстрока.
Полное описание ключей команды grep см. в справочнике man.
Произведите поиск в файле *.txt без ключей и используя различные ключи. Произведите поиск в нескольких файлах.
5.Поиск файлов (find)
find каталог [выражение ... ]
Команда проивзодит рекурсивный поиск в указанном каталоге и его подкаталогах. Для каждого файла вычисляются значения указанных в командной строке логических выражений, которые объединяются по "И". Если в итоге получается "ИСТИННО", то имя файла (точнее путь к нему, начиная от указанного в командной строке каталога, выводится в стандартный вывод).
Отсутствие выражений - всегда "ИСТИННО" (то есть в это случае find рекурсивно выводит имена всех файлов каталога и его подкаталогов).
Основные выражения find
(Примечание: ниже везде, где есть числовой параметр N, перед ним можно ставить плюс или минус, при этом справедливо следующее правило: "+N" означает "больше, чем N", "-N" означает "меньше, чем N", просто число N означает "равно N".)
-name шаблон_имени_файла
истинно, если имя файла соответствует шаблону; в шаблоне можно использовать символ '*' и т.п. - при этом шаблон надо взять в одинарные кавычки.
-perm ABCD
истинно, если права доступа к файлу точно равны указанным (ABCD); права записываются в числовой нотации команды chmod.
-perm -ABCD
истинно, если указанные права доступа (ABCD) имеются у файла; права записываются в числовой нотации команды chmod.
-type T
истинно, если тип файла равен указанному типу T, где Т - один из символов: f (обычный файл), d (каталог), l (символическая связь), b или c (блочное или символьное устройство), p (конвейер).
-user имя_пользователя
истинно, если файл принадлежит указанному пользователю.
-group имя_группы
истинно, если файл принадлежит указанной группе.
-size Nc
истинно, если размер файла равен N байт (без символа 'c' размер интерпретируется в 512-байтных блоках).
-mtime N
истинно, если содержимое файла было модифицировано N суток назад (т.е. N*24 часов назад).
-atime N
истинно, если последний доступ к файлу имел место N суток назад (т.е. N*24 часов назад).
-ctime N
истинно, если атрибуты файла были модифицировано N суток назад (т.е. N*24 часов назад).
-newer имя_файла
истинно, если файл был модифицирован позже, чем указанный.
-nouser
истинно, если владелец файла не найден в списке пользователей (например, пользователь был удален, а его файлы остались).
-nogroup
истинно, если группа-владелец файла не найдена в списке групп (например, группа была удалена, а файлы остались).
-a
операция "И" в явном виде.
-o
операция "ИЛИ".
\( \)
скобки для группировки выражений, если это необходимо (обратите внимание на наличие обратных слэшей).
Найдите в домашнем каталоге все файлы, начинающиеся на "a":
find . -name 'a*'
Найдите в домашнем каталоге все исполнимые владельцем файлы, начинающиеся на "a":
find . -name 'a*' -perm -0100
Найдите в домашнем каталоге все файлы, модифицированные более 2 дней назад:
find . -mtime +2
Получите рекурсивный список всех подкаталогов вашего каталога:
Find . -type d
Рекурсивно распечатайте содержимое вашего домашнего каталога:
Find .
Контрольные вопросы:
1. Расшифруйте следующее сообщение системы:
/dev/hda1 / ext2 defaults 1 1
/dev/hda5 /home ext2 defaults 1 2
/dev/hda6 swap swap defaults 0 0
/dev/hdc /mnt/cdrom auto umask=0,user,noauto,ro,exec,users 0 0
none /mnt/floppy supermount dev=/dev/fd0,fs=ext2:vfat,--,sync,umask=0 0 0
none /proc proc defaults 0 0
none /dev/pts devpts mode=0622 0 0
2. Что делают следующие команды?
$ mount -t ext3 /dev/hdb1 /mnt |
$ umount /mnt |
3. Можно ли подмонтировать каталог пользователя, если да, то как будет выглядеть эта команда?
Содержание отчета:
1. Цель работы.
2.Ответы на контрольные вопросы.
3.Распечатка хода работы в электронном виде.
Практическая работа № 13