Данный проект представляет собой реализацию базовой командной оболочки (shell) на Python, имитирующей ключевые файловые команды UNIX-подобных систем.
git clone https://github.com/TheVailen/python-lab2-shell
cd python-lab2-shell
python -m venv .venv
source .venv/bin/activate
pip install -e .python -m src.mainМини-оболочка — введите команду или 'exit' для выхода.
python -m src.main <команда> <аргументы>| Команда | Описание | Опции |
|---|---|---|
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 |
shell.log - Файл для записи всех выполненных команд и возникающих ошибок. [ГГГГ-ММ-ДД ЧЧ:ММ:СС] <КОМАНДА> SUCCESS/ERROR <ОПИСАНИЕ/ОШИБКА>
pytest -v- Освоил работу с файловой системой средствами Python
- Реализовал основные команды управления файлами и каталогами
- Научился вести журнал действий пользователя
- (Medium) Освоил расширение функциональности за счёт дополнительных модулей-плагинов