The kernel assigns each process a PID or process identification number. They differ in their functionality, but they all have built-in utilities to look at the contents of directories and the contents of files. These are what you type commands into. Some are very complex, much like programming languages, some are basically rudimentary scripting tools but all allow you to do multi-step tasks by creating shell script files. A shell handles all of the user interaction with the kernel, and the command line is each user's parent process for any tools that they use.
Tools vary from disk utilities to word processors to compilers.
These are text based. You give them an input and they generate an output. You can string together commands by piping them together to achieve a desired goal.