Linux has tools to execute user commands which are called Shells. The name “shells” is used because they hide the details on the underlying operating system under the shell's surface.
Commands are input in a text terminal, either a window in a graphical environment or a text-only console. Results of Commands which are executed are also displayed on the terminal. No graphics are needed at all.
Shells can be scripted: provide all the resources to write complex programs (variable, conditionals, iterations...)