Wanted to have clear understanding of these terms

An interpreter is a computer program that takes instructions written in a programming language and executes them. It doesn’t take those instructions & compile them down into something else before the computer runs them, it actually interprets them them as they were written.

So a command line interpreter is a program that lets you type instructions into an interface (a terminal it’s normally called), and it interprets the commands on each line. For example, type a line cd ../, hit enter. The interpreter interprets that as you want to run a program called cd and pass the value ../ to it.
Note that a command line interpreter is a [simple] programming language that just works by executing each statement. Bash is most common on Linux systems, but there are others (Powershell for example is dominant on Windows).

A shell is the user interface for a computer. So eg Windows shell consists of the main desktop interface + start menu + task bar file system gui, Mac shell is the windowing system + finder + dock + mission control. Because you can run everything from the command line, that’s also a shell, it’s an interface to let you run the system.

A text editor is a program you use to write and edit plain text files. Eg Notepad on Windows is a text editor, there will be something almost identical on your version of Linux. Atom, Sublime Text, Notepad++, VSCode, Vim, Emacs, etc are all text editors.

1 Like