linux command shell implementation in C