Most of us that use UNIX like operating systems like linux, at least one time, we used shell for doing our commands that we can not do that in graphical environment. Most of novices like me think that the shell is just a command line ( i’m using bash shell on my linux machine ) and it is nothing more but brian kerninghan say something almost 32 years ago that solve this problem for someone like me :
Although most users think of the shell as an interactive command interpreter, it is really a programming language in which each statement runs a command. Because it must satisfy both the interactive and programming aspects of command execution, it is a strange language, shaped as much by history as by design.
Brian Kernighan and Rob Pike, The UNIX Programming Environment, Prentice-Hall, 1984