Skip to content

dnexe007/lab-python-console

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Лабораторная работа 2 - терминал

Программа-аналог терминала с базовыми файловыми командами. Реализована вся часть easy и работа с архивами. Запуск программы производится через файл main в папке src.

Команды

Команда cd - cмена текущей директории. Аргументы:

  • путь - целевая директория для перехода
  • .. - переход на уровень вверх (родительская директория)
  • ~ - переход в домашнюю директорию

Команда ls - вывод списка файлов и папок. Аргументы:

  • -l - флаг для подробного вывода (права доступа, размер, дата изменения)
  • path - опциональный путь к целевой директории (по умолчанию - текущая)

Команда cat - вывод содержимого файла в терминал. Аргументы:

  • path - обязательный путь к файлу для чтения

Команда cp - копирование файлов и директорий. Аргументы:

  • -r - флаг для рекурсивного копирования директорий
  • source - путь к копируемому файлу или директории
  • target - путь назначения для копирования

Команда mv - перемещение или переименование файлов и директорий. Аргументы:

  • source - исходный путь к файлу или директории
  • target - целевой путь для перемещения или новое имя

Команда rm - удаление файлов и директорий. Спрашивает подтверждение от пользователя. Аргументы:

  • -r - флаг для рекурсивного удаления директорий с содержимым
  • path - путь к удаляемому файлу или директории

Команда zip - создание zip-архива Аргументы:

  • source - директория для запаковки
  • target - имя создаваемого zip-архива (без расширения .zip)

Команда unzip - распаковка zip-архива Аргументы:

  • source - ZIP-архив для распаковки
  • target - директория для распаковки

Команда tar - создание tar.gz-архива Аргументы:

  • source - директория для запаковки
  • target - имя создаваемого tar.gz-архива (без расширения .tar.gz)

Команда untar - распаковка tar.gz-архива Аргументы:

  • source - tar.gz-архив для распаковки
  • target - директория для распаковки

Команда exit - закрывает программу. Аргументы отсутствуют. Аргументы не принимаются, однако их ввод не приведёт к ошибке, так как команда не обрабатывается через argparse. Также отсутствует флаг --help.

Обработка команд

Для деления на аргументы используется метод shlex.split(), который работает с экранированием пробелов. Далее каждая функция команды обрабатывает полученные в разделенном виде аргументы с помощью библиотеки argparse. Для каждой команды, кроме exit, доступен флаг -h или --help для вывода помощи.

Обработка ошибок

Все ошибки вызываются системой и обрабатываются единой функцией, которая запускает команды. Ситуации, такие как удаление родительской директории, становятся невозможными из-за запрета системы на это действие.

Логирование

В логах записывается информация о том, какие команды ввел пользователь, и статус выполнения команды (выполнена/отменена/ошибка). Пример записи:

2025-11-03 20:23:21,686 - [INFO] - cd ..
2025-11-03 20:23:21,687 - [INFO] - cd: command performed
2025-11-03 20:23:36,950 - [INFO] - rm -r src
2025-11-03 20:23:38,735 - [INFO] - rm: command cancelled
2025-11-03 20:23:44,531 - [INFO] - azaza
2025-11-03 20:23:44,531 - [ERROR] - unknown command

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages