Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
SP_term_work.doc
Скачиваний:
1
Добавлен:
17.11.2019
Размер:
251.9 Кб
Скачать

Задания на курсовую работу по дисциплине "спо"

Группа заданий 1. Разработка собственного упрощенного интерпретатора команд

для ОС UNIX

Общая часть:

Интерпретатор должен правильно запускать на выполнение программы и

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

Должна существовать возможность запуска программ в фоновом режиме.

Обязательна также поддержка массива переменных среды и внутренних

переменных (способ их задания зависит от "вида" оболочки - shell-like

or Cshell-like, e.t.c.).

Набор ключей запуска и внутренних переменных зависит от варианта

задания.

Обязательные внутренние переменные: 'path', 'home', 'status'.

Обязательными встроенными командами являются 'cd', 'pwd', 'echo',

'set', 'unset', 'exit'.

Все остальные внутренние команды а также особенности оболочки реализуются

в соответствии с вариантами заданий.

В любом случае при обнаружении ошибки интерпретатор должен выдавать

соответствующее сообщение о ней, предваряя его своим именем для того, чтобы

отличить его (сообщение) от системного.

Должна быть предусмотрена реакция на нажатие клавиш '^C' и '^D'.

Короче говоря, нужно написать работоспособный командный процессор.

Вариант 1

Семейство - sh (имя выполняемого файла выберите самостоятельно).

Встроенные команды (помимо основных): 'alias', 'unalias'.

Дополнительные возможности: обработка файла '.mlogin' при первом запуске.

Аргументы запуска: нет.

Вариант 2

Семейство - sh.

Встроенные команды: нет.

Дополнительные возможности: полноценное перенаправление ввода-вывода.

Аргументы запуска: нет.

Вариант 3

Семейство - csh.

Встроенные команды: нет.

Дополнительные возможности: поддержка арифметико-логических операций

(и присваивания) с внутренними переменными.

Аргументы запуска: нет.

Вариант 4

Семейство - sh.

Встроенные команды: полный оператор 'if'.

Дополнительные возможности: выполнение собственных командных файлов.

Аргументы запуска: нет.

Вариант 5

Семейство - csh.

Встроенные команды: 'umask'.

Дополнительные возможности: перенаправление стандартных потоков ввода

и вывода.

Аргументы запуска: нет.

Вариант 6

Семейство - csh.

Встроенные команды: нет.

Дополнительные возможности: конвейер команд.

Аргументы запуска: нет.

Вариант 7

Семейство - sh.

Встроенные команды: 'notify', 'kill'.

Дополнительные возможности: нет.

Аргументы запуска: нет.

Вариант 8

Семейство - csh.

Встроенные команды: 'history'.

Дополнительные возможности: упрощенная поддержка истории команд.

Аргументы запуска: нет.

Вариант 9

Семейство - sh.

Встроенные команды: нет.

Дополнительные возможности: расширение имен файлов (символы *,?,[]).

Аргументы запуска: нет.

Вариант 10

Семейство - sh.

Встроенные команды: 'jobs', 'stop', 'fg', 'bg'.

Дополнительные возможности: управление процессами.

Аргументы запуска: нет.

Вариант 11

Семейство - csh.

Встроенные команды: 'kill', 'trap'.

Дополнительные возможности: определение реакции на сигналы.

Аргументы запуска: нет.

Вариант 12

Семейство - csh.

Встроенные команды: нет.

Дополнительные возможности: редактор командной строки с буфером ранее

выполненных команд.

Аргументы запуска: нет.

Вариант 13

Семейство - sh.

Встроенные команды: 'shift'.

Дополнительные возможности: запуск собственных командных файлов с

параметрами, поддержка массивов слов, переменных 'argv', 'argc' и

позиционных ($1, $2 и т. д.).

Аргументы запуска: нет.

Вариант 14

Семейство - sh.

Встроенные команды: нет.

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

при разборе командной строки.

Аргументы запуска: нет.

Вариант 15

Семейство - csh.

Встроенные команды: 'while'.

Дополнительные возможности: собственные командные файлы с оператором

цикла while.

Аргументы запуска: нет.

Вариант 16

Семейство - sh.

Встроенные команды: 'repeat' (повторять команду N-е число раз).

Дополнительные возможности: нет.

Аргументы запуска: ключ '-c' и следом за ним командная строка для

выполнения.

Вариант 17

Семейство - csh.

Встроенные команды: 'clock off|on'

Дополнительные возможности: часы в верхнем правом углу экрана все

время пока активен shell.

Аргументы запуска: нет.

Вариант 18

Семейство - sh.

Встроенные команды: 'wait' с параметрами.

Дополнительные возможности: нет.

Аргументы запуска: ключ -p <prompt> для определения подсказки.

Вариант 19

Семейство - sh.

Встроенные команды: нет.

Дополнительные возможности: проверка почты через промежутки времени,

заданные переменной 'ckmail'.

Аргументы запуска: нет.

Вариант 20

Семейство - sh.

Встроенные команды: 'time' (сводка времени, затраченного запущенной программой

или текущим интерпретатором).

Дополнительные возможности: нет.

Аргументы запуска: нет.

Вариант 21

Семейство - csh.

Встроенные команды: нет.

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

(символы '&& || ; ()' ).

Аргументы запуска: нет.

Вариант 22

Семейство - csh.

Встроенные команды: 'exec', 'nice'.

Дополнительные возможности: нет.

Аргументы запуска: нет.

Вариант 23

Семейство - sh.

Встроенные команды: см. доп. возможности.

Дополнительные возможности: Экранный shell типа vsh (см. файл "vsh.1r").

Аргументы запуска: нет.

Вариант 24

Семейство - csh.

Встроенные команды: нет.

Дополнительные возможности: дополнение имен файлов и каталогов с запросом

при неоднозначности (filename completion).

Аргументы запуска: нет.

Вариант 25

Семейство - csh.

Встроенные команды: просмотр каталогов (должна работать быстрее, чем ls).

Дополнительные возможности: нет.

Аргументы запуска: нет.

Вариант 26

Семейство - sh.

Встроенные команды: нет.

Дополнительные возможности: линейка задач внизу экрана для переключения

между фоновыми процессами.

Аргументы запуска: нет.

Вариант 27

Семейство - sh.

Встроенные команды: 'read' (считывание значений переменных со стандартного

ввода).

Дополнительные возможности: выполнение собственных командных файлов.

Аргументы запуска: нет.

Вариант 28

Семейство - sh.

Встроенные команды: нет.

Дополнительные возможности: функции shell (определение и запуск).

Аргументы запуска: нет.

Вариант 29

Семейство - csh.

Встроенные команды: 'prompt <date|time|dir|uname|hostname>'.

Дополнительные возможности: установка подсказки одного из заданных видов.

Аргументы запуска: нет.

Вариант 30

Семейство - sh.

Встроенные команды: 'do - while'.

Дополнительные возможности: запуск собственных командных файлов.

Аргументы запуска: нет.

Вариант 31

Семейство - csh.

Встроенные команды: нет.

Дополнительные возможности: замена арифметического выражения

в фигурных скобках {} на его результат в командной строке. Как минимум

*,/,%,+,-,sin(),cos().

Аргументы запуска: нет.

Вариант 32

Семейство - sh.

Встроенные команды: 'cat'.

Дополнительные возможности: быстрый и удобный встроенный cat.

Аргументы запуска: ключ для отмены встроенной команды 'cat'.

Вариант 33

Семейство - csh.

Встроенные команды: 'whodo' (пользователи и их процессы; через /proc).

Дополнительные возможности: нет.

Аргументы запуска: нет.

Вариант 34

Семейство - sh.

Встроенные команды: 'date' (удобная в использовании и на русском языке).

Дополнительные возможности: нет.

Аргументы запуска: нет.

Вариант 35

Семейство - sh.

Встроенные команды: нет.

Дополнительные возможности: поддержка переменных PS1, PS2, SHLVL, PID,

PPID, IFS, UID, EUID, SHVER.

Аргументы запуска: нет.

Вариант 36

Семейство - sh.

Встроенные команды: нет.

Дополнительные возможности: конвейер команд.

Аргументы запуска: нет.

Вариант 37

Семейство - сsh.

Встроенные команды: 'rm' и 'cp' (возможно, с другими именами).

Дополнительные возможности:

нет.

Аргументы запуска: нет.

Вариант 38

Семейство - сsh.

Встроенные команды: оператор цикла foreach.

Дополнительные возможности: работа с массивами.

Аргументы запуска: нет.

Вариант 39

Семейство - sh.

Встроенные команды: нет.

Дополнительные возможности: поддержка переменной notify и встроенная

подсказка (help) по возможностям и командам оболочки.

Аргументы запуска: нет.

Вариант 40

Семейство - sh.

Встроенные команды: 'host' (опред. имени по IP-адресу и адреса по имени).

Дополнительные возможности: поддержка переменных SHELL и SHLVL.

Аргументы запуска: нет.

Вариант 41

Семейство - sh.

Встроенные команды: 'cp', 'mv'.

Дополнительные возможности: нет.

Аргументы запуска: нет.

Вариант 42

Семейство - sh.

Встроенные команды: 'ps'.

Дополнительные возможности: номер, статус, командная строка и владелец

для каждого процесса.

Аргументы запуска: нет.

Вариант 43

Семейство - csh.

Встроенные команды: 'wc [-lwc]'.

Дополнительные возможности: нет.

Аргументы запуска: нет.

Вариант 44

Семейство - sh.

Встроенные команды: нет.

Дополнительные возможности: дублирование стандартного вывода и вывода ошибок

в указанный файл (вместе и по отдельности).

Аргументы запуска: нет.

Вариант 45

Семейство - sh.

Встроенные команды: рекурсивный 'grep'.

Дополнительные возможности: нет.

Аргументы запуска: нет.

Вариант 46

Семейство - sh.

Встроенные команды: 'env'.

Дополнительные возможности: ведение журнала работы через syslog.

Аргументы запуска: нет.

Вариант 47

Семейство - csh.

Встроенные команды: полный оператор if.

Дополнительные возможности: операции опроса свойств файла '-d', '-e','-x','-z'.

Аргументы запуска: нет.

Вариант 48

Семейство - csh.

Встроенные команды: 'chmod', 'chgrp' и 'chown'.

Дополнительные возможности: нет.

Аргументы запуска: нет.

Вариант 49

Семейство - sh.

Встроенные команды: нет.

Дополнительные возможности: модификаторы имен (':h',':t',':r',':e',':a:x'),

приписывание которых к переменной дает возможность выделить путь,

имя, имя без расширения, расширение, начало слова до символа x.

Аргументы запуска: нет.

Вариант 50

Семейство - csh.

Встроенные команды: нет.

Дополнительные возможности: подстановка значений переменных типа:

$(name:-word)

$(name:=word)

$(name:?word)

$(name+word)

$#name

$(name:offset:length)

(смотри 'man bash'), например,

#set a = "tratata"

#echo $(a:2:3)

результат: rat

Аргументы запуска: '-f имя' - читать и выполнять команды из указанного файла.

Вариант 51

Семейство - sh.

Встроенные команды: оператор 'case ... esac'.

Дополнительные возможности: собственные командные файлы.

Аргументы запуска: нет.

Вариант 52

Семейство - csh.

Встроенные команды: 'printf' 'read' (см. 'man bash').

Дополнительные возможности: нет.

Аргументы запуска: нет.

Вариант 53

Семейство - sh.

Встроенные команды: 'while'.

Дополнительные возможности: замена '~/' в пути на $HOME, собственные

командные файлы.

Аргументы запуска: нет.

Вариант 54

Семейство - csh.

Встроенные команды: 'echoct', 'setct' - команды получения

и изменения текущих настроек терминала (не менее 5 параметров,

см. 'man stty', 'man ioctl').

Дополнительные возможности: нет.

Аргументы запуска: нет.

Вариант 55

Семейство - sh.

Встроенные команды: 'killall' - послать сигнал всем процессам, попадающим

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

Например,

killall -9 -c ba*

- послать 9-й сигнал всем процессам с командной строкой на 'ba'

См. файловую систему /proc

Дополнительные возможности: нет.

Аргументы запуска: нет.

Вариант 56

Семейство - csh.

Встроенные команды: нет.

Дополнительные возможности: встроенный экранный редактор с блоковыми

операциями.

Аргументы запуска: нет.

Вариант 57

Семейство - sh.

Встроенные команды: 'showfs [dev]' - определение типа и параметров файловой

системы на указанном устройстве (не менее 6 типов ФС).

Дополнительные возможности: нет.

Аргументы запуска: нет.

Вариант 58

Семейство - csh.

Встроенные команды: 'file имя' - определение типа файла и типа его содержимого

(не менее 20 типов, например: block special, MS-DOS EXE,

tar archive, Windows DLL, e.t.c.).

Дополнительные возможности: нет.

Аргументы запуска: нет.

Вариант 59

Семейство - сsh.

Встроенные команды: 'dialog' - рисование диалоговых окон, меню,

см. 'man dialog', 'man ncurses'.

Дополнительные возможности: нет.

Аргументы запуска: нет.

Вариант 60

Семейство - sh.

Встроенные команды: 'chkholes' - поиск дыр в защите Linux. Команда должна

быть настраиваемая на новые типы дыр - т.е. иметь конфигурационный

файл.

Дополнительные возможности: нет.

Аргументы запуска: нет.

Вариант 61

Семейство - sh.

Встроенные команды: нет.

Дополнительные возможности: поддержка арифметико-логических операций

(и присваивания) с внутренними переменными.

Аргументы запуска: нет.

Вариант 62

Семейство - csh.

Встроенные команды: см. доп. возможности.

Дополнительные возможности: простой строковый текстовый редактор (‘см. ed(1)’).

Аргументы запуска: нет.

Вариант 63

Семейство - csh.

Встроенные команды: полный оператор switch.

Дополнительные возможности: выполнение собственных командных файлов.

Аргументы запуска: нет.

Вариант 64

Семейство - sh.

Встроенные команды: ‘login’.

Дополнительные возможности: переменные SHLVL и SID (Session ID).

Аргументы запуска: нет.

Вариант 65

Семейство - csh.

Встроенные команды: ‘at’.

Дополнительные возможности: ‘at’ при первом запуске порождает процесс-демон.

Аргументы запуска: нет.

Вариант 66

Семейство - sh.

Встроенные команды: ‘bind’ – показывает и назначает определенные действия на комбинации клавиш или отдельные клавиши (запуск команд, управление курсором и т. п.)

Дополнительные возможности: нет.

Аргументы запуска: нет.

Вариант 67

Семейство - csh.

Встроенные команды: ‘scanf’ и ‘printf’.

Дополнительные возможности: нет.

Аргументы запуска: нет.

Вариант 68

Семейство - sh.

Встроенные команды: ‘last [name] [tty]’, ‘tty’

Дополнительные возможности: нет.

Аргументы запуска: нет.

Вариант 69

Семейство - csh.

Встроенные команды: ‘lsof [user] [file]’ – выдать список открытых пользователем файлов, или список пользователей, открывших файл.

Дополнительные возможности: нет

Аргументы запуска: нет.

Вариант 70

Семейство - sh.

Встроенные команды: ‘namei’ – показать компоненты пути(см. namei(1))

Дополнительные возможности: при установке переменной ‘more’ весь стандартный вывод происходит постранично.

Аргументы запуска: нет.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]