# Программирование на C в Linux на примере создания шелла: часть 2
Я решил недавно улучшить свой навык владения C, путем написания проектов. Самая первая мысль, которая пришла мне на ум - это командный интерпретатор, командная оболочка, shell проще говоря. А также я расскажу о системе сборки make, и о том, как правильно писать и документировать C-код.

В [первой части](https://habr.com/ru/companies/timeweb/articles/839890/) мы задали базовую структуру кода, разобрались с чтением вывода и созданием процессов. А в этой части нашей задачи будет дойти с альфа-стадии на бета-стадию - то есть реализовать прочий важный функционал, такой как: минимальная поддержка плагинов; автодополнение; подсветка синтаксиса; переменные окружения, новые встроенные утилиты.

Да-да, мы превратим наш велосипед в мопед! Я вынес из прошлой статьи итоги, и попытался решить все проблемы и замечания. Продолжаем погружение в пучины разработки под Linux!

---

Я прочитал ваши комментарии под прошлой статьей, за замечания и советы я выражаю благодарность следующим пользователям: BulldozerBSG (за советы и книгу "Linux Application Development 2ed, K.Johnson", а также за разьяснение стандарта), bigbamblbee (за разьянение на тему GCC vs CLANG), grdvo (за совет), checkpoint (за улучшение кода и советы).
