The command line is just a UI like any other - GUIs included. The way modern computers work is via API/ABI calls; via kernel syscalls and drivers separating out the responsibility of peripherals. Your command line is just an interface for managing applications that are compiled against libraries that interface with those syscalls - so in that regard using the CLI isn't any different to launching an application via a graphical icon running on a typical WIMP interface. In either case you're not making those API calls from the CLI, you're not manually managing your memory nor any of the important things that an OS does under the hood. All you're doing is using a text interface to fork() a process rather than using a mouse click to fork() a process. The difference being many CLI tools require their config supplied as command line arguments while many GUI tools don't. But even there, there are as many exceptions to that rule as there are examples of it.