Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОС лабы / ОС - Лабораторная работа 3.doc
Скачиваний:
60
Добавлен:
01.06.2015
Размер:
469.5 Кб
Скачать
  1. Список вариантов заданий на разработку командных файлов

Написать и отладить командный файл (скрипт), выполняющий указанное задание.

  1. Выдать список имен всех файлов (обычных), принадлежащих пользователям, имена которых перечислены как параметры скрипта. Предусмотреть ключи сортировки выдачи файлов по размеру файла и по дате изменения.

  2. Для каждого из файлов, перечисленных в списке параметров, создать отдельный подкаталог своего домашнего каталога и переместить туда файл. В случае, если нельзя выполнить перемещение (нельзя удалить файл), запрашивать пользователя, выполнять ли копирование или пропустить файл. Имена подкаталогов строить путем добавления к имени домашнего каталога чисел 1, 2, 3 и т.д.

  3. Создать вручную «телефонный справочник», состоящий из нескольких записей, содержащих 3 поля: фамилия, адрес, номер телефона. Поля записи разделять знаком табуляции. Составить скрипт, который по заданной фамилии или адресу, или номеру телефона (в зависимости от указанного ключа) выдает значения двух других полей соответствующей записи. В случае, если имеется несколько подходящих записей, выдавать все. При отсутствии подходящих записей выдавать сообщение об этом.

  4. Провести копирование из одного каталога (источника) в другой каталог (приемник) всех файлов, имена которых удовлетворяют заданному шаблону. В зависимости от заданного ключа, запрашивать подтверждение копирования либо для каждого файла, либо только в случае замены существующего файла, либо никогда.

  5. Выполнить в диалоге настройку поиска файла: запросить и ввести шаблон имени, начальный каталог поиска, тип файла, число дней после изменения файла или после обращения к нему, а также строковое значение, которое должно содержаться в файле. Выполнить поиск и вывести имена найденных файлов.

  6. Запустить фоновый процесс, который один раз в минуту проверяет, не вошел ли в систему пользователь с заданным именем. Дождавшись, процесс должен выдать сообщение об этом и завершиться. Вторым параметром скрипта может быть задано максимальное время слежения, после которого процесс завершается в любом случае.

  7. Для заданного текстового файла составить список всех слов, входящих в этот текст, и подсчитать количество вхождений каждого слова. Результат выдать в порядке убывания количества вхождений.

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

  1. Контрольные вопросы

  1. В каких случаях оправдано написание шелл-скрипта, а не программы на языке высокого уровня?

  2. Что такое код завершения процесса?

  3. Что такое стандартный вывод ошибок?

  4. Если оба хэндла 1 и 2 были направлены на терминал, то какой результат дадут перенаправления «>file1 2>&1» и «2>&1 >file1»?

  5. Как завершить ввод файла, если в качестве стандартного ввода используется клавиатура?

  6. Что означает символ перенаправления “<<”?

  7. Чем конвейер отличается от списка команд?

  8. В чем отличие записи 'строка'от"строка"?

  9. Какой командой пользователь может перейти в свой домашний каталог?

  10. Чем отличается запись «A=B» от «A=$B»?

  11. Чем отличается запись '$PWD'от"$PWD"?

  12. Какое значение примет выражение `ls`?

  13. Как создать массив в shell? Как обратиться в первому элементу массива?

  14. Как проверить, что файл abcновее, чем файлqwe?

  15. Какое условие проверяется в операторе if?

  16. Что сделает команда «shift 2»?

  17. Если переменная numсодержит число, то как увеличить ее значение на 2?

  18. Что такое виртуальный терминал Linux?

  19. Каково назначение специального комментария «#!\bin\ksh»?

  20. Какими правами доступа к файлу скрипта script1 нужно обладать, чтобы запустить его командой «bashscript1» или командой «./script1»?

  21. Как завершить сеанс работы с UNIX?

  22. Как получить информацию о незнакомой команде?

  23. Как узнать имя (логин), с которым пользователь вошел в систему?

  24. Какой командой можно найти файлы с известным (или частично известным) именем?

  25. Какой командой можно найти файлы, содержащие заданную строку текста?

  26. Для чего используются регулярные выражения?

  27. Для чего используется команда getopts?