Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

zagaynov-andrew/tiny-shell

Open more actions menu

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

61 Commits
61 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ℹ️ tiny-shell

Этот проект посвящен созданию простой командной оболочки.

screen-gif

Эта оболочка:

  • отображает приглашение при ожидании новой команды;
  • имеет историю команд;
  • находит и запускает нужный исполняемый файл (на основе переменной PATH или с использованием относительного или абсолютного пути);
  • осуществляет перенаправления:
    • < перенаправляет ввод
    • > перенаправляет вывод
    • << указывает разделитель, затем считывает входные данные до тех пор, пока не появится строка, содержащая разделитель
    • >> перенаправляет вывод в режиме добавления
  • реализовывает каналы (| символ). Выходные данные каждой команды подключаются к входу следующей команды через канал.
  • обрабатывает переменные среды ($, за которыми следует последовательность символов);
  • обрабатывать переменную $?, которая принимает значение статуса выхода самой последней команды;
  • обработывает ctrl-C, ctrl-D и ctrl-\, которые ведут себя как в bash;
  • в интерактивном режиме:
    • ctrl-C отображает новое приглашение ввода в новой строке
    • ctrl-D завершает работу оболочки
    • ctrl-\ ничего не делает
  • реализовывает следующие встроенные функции:
    • echo с опцией -n
    • cd
    • pwd без каких-либо опций
    • export без опций
    • unset
    • env без параметров или аргументов
    • exit

🔨 Build

screen-gif

Чтобы собрать командную оболочку, склонируйте этот репозиторий и перейдите в директорию с проектом:

git clone https://github.com/zagaynov-andrew/tiny-shell.git && cd tiny-shell

Затем соберите командный интерпретатор:

make

📌 Для успешной сборки вам понадобятся установленные GNU Make и библиотека readline.

🚀 Launch

Для запуска командной оболочки введите:

./tinyshell

About

Командный интерпретатор по примеру bash на Си

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages

Morty Proxy This is a proxified and sanitized view of the page, visit original site.