Basic shell functionality, still need to add built-in commands.