Введение в UNIX. Лекции

Автор работы: Пользователь скрыл имя, 29 Декабря 2011 в 20:20, курс лекций

Краткое описание

Способы организации файловой системы, списки команд и т.д. ОС Unix

Вложенные файлы: 1 файл

практика.doc

— 387.00 Кб (Скачать файл)

Редактируйте  файл, используя все  приведенные выше команды.  
 

САМОПРОВЕРКА

К настоящему моменту  вы должны знать и  следующие команды  и ключи к ним. Внимательно просмотрите весь список. Если вы что-то забыли, обращайтесь к справочнику man.

>, cat filename,

Введение  в Unix 
Лабораторный практикум

1. Изучение файловой  системы

(продолжение)

Войдите в систему в  среде X-Windows. Запустите  окно терминала

1.7. Исследование смонтированных  файловых систем

Команда 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/* 

1.8. Изменение прав  доступа к файлу

Для изменения  прав доступа используется команда 

%chmod [-R] права файл_или_каталог [файл2 ...]

Необязательный  ключ -R распространяет действие команды рекурсивно на содержимое каталогов, если таковые обнаружатся в списке файлов, переданном в командной строке.

Права указываются в одной из двух нотаций: числовой и символьной.

Числовая  нотация команды  chmod

Набор прав разбивается  на 4 тройки:

sst rwx rwx rwx

и рассматривается  в виде битового поля: бит установлен, если соответствующее право имеется. Каждая тройка бит записывается десятичным числом.

Примеры

--- rwx rwx rwx 0777
--- rwx r-x r-x 0755
--- rw- r-- --- 0640
ss- rwx r-x r-x 6755
--t rwx r-x r-- 1754

Лидирующий ноль можно опускать.

Символьная  нотация команды  chmod

В отличие от числовой нотации символьная нотация указывает не права, а изменения прав. Нотация состоит из 3 элементов, указанных в следующей последовательности: чьи права изменять, каким образом, и какие именно права.

Чьи права  изменять Каким образом Какие именно права
u (владельца) 
g (группы) 
o (всех остальных) 
a (всех трех категорий)
+ (добавить) 
- (убрать)


x
= (сделать  такими же) u (как у владельца) 
g (как у группы) 
o (как у всех остальных)

g

-
s (SUID или SGID)
u
-
t (Sticky bit)

Примеры:

Добавить группе право на запись:

%chmod g+w file

Убрать у прочих права на запись и исполнение:

%chmod o-wx file

Добавить владельцу  и группе права на чтение и запись:

%chmod ug+rw file

Установить права  прочих такими же, как у группы

%chmod o=g file

Установить права прочих и группы такими же, как у владельца

%chmod og=u file

Несколько изменений  можно перечислять через запятую:

Добавить вдалеьцу право на исполнение, а у группы и прочих убрать право на запись:

%chmod u+x,go-w file

Поэкспериментируйте с командой chmod на файлах своего каталога. Используйте сначала числовую, а  потом символьную нотацию. Попробуйте все приведенные выше варианты. Результаты контролируйте командой ls -l.

Попробуйте назначать "экзотические" сочетания (наличие бита SUID, SGID или sticky bit без права исполнения). Устанавливается ли sticky bit для файлов?

Попробуйте различные  варианты прав для каталога и изучите, что вы можете сделать при этом с файлами каталога: проверяйте работу команд ls и ls -l, возможность перейти в каталог, создать или удалить файл, просмотреть содержимое файла.

Попробуйте рекурсивную  форму команды chmod.

Не забудьте восстановить разумные права для  своих файлов.

1.9. Поиск в файловой  системе

Поиск по содержимому файлов (grep)

Команда

%grep [-inv] подстрока файл [файл2 ...]

производит поиск  указанной подстроки в указанных  файлах.

Вообще-то grep ищет не строку символов, а регулярное выражение. Если вы используете только алфавитно-цифровые символы, то никаких отличий нет. Однако, не используйте знаки препинания и другие особые символы, если вы не уверены, что они не будут интерпретированы особым образом - как метасимволы регулярного выражения. Регулярные выражения изучаются позже в этом курсе.

Команда выводит  строки из указанного файла (файлов), в  каковых строках найдена указанная  подстрока. Если файлов несколько, строка предваряется именем файла с двоеточием.

Основные ключи:

    -i - игнорировать отличия верхнего и нижнего регистра (на нерусифицированных системах работает только для латиницы),

    -n - вместе со строками выводить и их номера,

    -v - выводить строки, в которых не найдена указанная подстрока.

Полное описание ключей команды grep см. в справочнике man.

Произведите поиск  в файле b.txt без ключей и используя различные ключи. Произведите поиск в нескольких файлах.

Поиск файлов (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

Информация о работе Введение в UNIX. Лекции