Разработать эмулятор для языка оболочки ОС. Необходимо сделать работу эмулятора как можно более похожей на сеанс shell в UNIX-подобной ОС. Эмулятор должен запускаться из реальной командной строки, а файл с виртуальной файловой системой не нужно распаковывать у пользователя. Эмулятор принимает образ виртуальной файловой системы в виде файла формата tar. Эмулятор должен работать в режиме GUI. Конфигурационный файл имеет формат xml и содержит:
- Имя пользователя для показа в приглашении к вводу.
- Путь к архиву виртуальной файловой системы.
- Путь к лог-файлу
- Путь к стартовому скрипту.
Лог-файл имеет формат csv и содержит все действия во время последнего сеанса работы с эмулятором. Для каждого действия указан пользователь.
Стартовый скрипт служит для начального выполнения заданного списка команд из файла.
Необходимо поддержать в эмуляторе команды ls, cd и exit, а также
следующие команды:
cp.uptime.find
Все функции эмулятора должны быть покрыты тестами, а для каждой из поддерживаемых команд необходимо написать 2 теста.
ls: Показывает содержимое директории.Поддерживается показ содержимого сразу нескольких директорий.cd: Изменяет текущую директорию.exit: Выход из эмулятора.clear: Очистка экрана введенных команд.rm/rmdir: Удаление файла/директории.cp: Копирование файла (1 аргумент) в директорию (2 аргумент)uptime: Вывод времени работы терминалаfind: Поиск заданных файлов/директорий При вводе путей можно использовать и относительные, и абсолютные пути. В путях поддерживаются следующие сокращения:.: Текущая директория..: Головная директория текущей/: Корневая директория
Настройки эмулятора задаются при помощи файла config.xml:
- Имя пользователя для показа в приглашении к вводу (тег user).
- Путь к архиву виртуальной файловой системы (тег vfs_path).
- Путь к лог-файлу (тег log_path)
- Путь к стартовому скрипту (тег startup_script).
Для сборки и запуска проекта в вашей системе должен быть установлен Python. Выполните следующие действия:
-
Клонирование репозитория:
git clone <repository-url>
-
Перемещение в директорию проекта:
cd <project-directory>
-
Конфигураця xml-файла
-
Запуск эмулятора:
python terminal.py```
Примеры использования команды ls
Примеры использования команды cd
Примеры использования команды cp
Примеры использования команды uptime
Примеры использования команды find
Все функции эмулятора были протестированы. Результаты тестов представлены на скриншоте выше