Skip to content

TheVailen/python-lab2-shell

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Мини-оболочка (Лабораторная работа №2)

Реализовано: Части Easy + Medium (плагины)

Данный проект представляет собой реализацию базовой командной оболочки (shell) на Python, имитирующей ключевые файловые команды UNIX-подобных систем.

1. Установка проекта

git clone https://github.com/TheVailen/python-lab2-shell
cd python-lab2-shell
python -m venv .venv
source .venv/bin/activate
pip install -e .

2. Запуск в интерактивном режиме

python -m src.main

Пример

Мини-оболочка — введите команду или 'exit' для выхода.

3. Единоразовый запуск команды

python -m src.main <команда> <аргументы>

4. Поддерживаемые комманды

Команда Описание Опции
ls Отображение списка файлов и каталогов в текущем рабочем каталоге -l (подробный вывод: имя, размер, дата изменения, права доступа)
cd Переход в указанный каталог .. (переход на уровень выше), ~ (переход в домашний каталог)
cat Вывод содержимого указанного файла в консоль Поддерживает перенаправление ввода (cat > file)
cp Копирование файла или каталога из источника в назначение -r (рекурсивное копирование каталогов)
mv Перемещение или переименование файла/каталога
rm Удаление указанного файла/каталога путём перемещения в .trash -r (удаление каталога со всем содержимым), y (подтверждение удаления)
grep Поиск строк в файлах, соответствующих заданному шаблону -r (рекурсивный поиск в подкаталогах), -i (поиск без учёта регистра)
zip, unzip Создание (zip <folder> <archive.zip>) и распаковка (unzip <archive.zip>) архивов формата ZIP
tar, untar Создание (tar <folder> <archive.tar.gz>) и распаковка (untar <archive.tar.gz>) архивов формата TAR.GZ
history Вывод последних N введенных команд с их номерами Хранит историю команд в .shell_history.json
undo Отмена последней выполненной команды, если она поддерживает обратную операцию Поддерживает: cp, mv, rm
undo (cp) Отменяет копирование Удаляет скопированный целевой объект
undo (mv) Отменяет перемещение/переименование Возвращает объект в исходное место
undo (rm) Отменяет удаление Восстанавливает объект из временного каталога .trash

5. Логирование

shell.log - Файл для записи всех выполненных команд и возникающих ошибок. [ГГГГ-ММ-ДД ЧЧ:ММ:СС] <КОМАНДА> SUCCESS/ERROR <ОПИСАНИЕ/ОШИБКА>

6. Тестирование

pytest -v

7. Чему я научился

  • Освоил работу с файловой системой средствами Python
  • Реализовал основные команды управления файлами и каталогами
  • Научился вести журнал действий пользователя
  • (Medium) Освоил расширение функциональности за счёт дополнительных модулей-плагинов

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages