A good place to start would be to learn how to create a command line parser that can symbolize and interpret inputs. There are tools that can help with this, such as ANTLR , or you can try creating your own.
After you have parsed the input, you need to decide what actions to take - starting processes, switching between processes, redirecting output - and making these system calls.
If you are only after a more powerful shell, and not interested in creating it, give PowerShell a try.
source share