Any Linux machine (Laptop, PC or High Performance Computing server) will have some sort of terminal program, which gives us access to the Command Line Interface (CLI), which interfaces with the operating system by means of a language and interpreter called a Shell.
We can also communicate with the shell by means of shell scripts, which are files consisting of a sequence of shell commands that are invoked my means of the name of the file in the CLI or in another script.
Technically, the terminal will allow you to run any program on the machine you are connected to.
There are different kids of shells (bash, csh, zsh, etc.) which differ somewhat in their syntax and capabilities, but they all take in commands and run them on the operating system.
All this is is very different from the graphical user interface common on Windows or Mac machines. Opening graphical applications is also possible with added configuration, but we will focus mainly on the CLI and shell scripts.
If you like, you can also create a detachable terminal session, see here for more details.
For historical reasons, macbooks and their kin also come with a built in terminal, which uses the zsh shell.
Windows also offers a basic terminal (the windows command line, or “cmd”) as well as a more feature rich “power-shell”, but these do not support direct access to linux machines as easily as Mac or Linux machines, and Windows users will often need to download extra software to be able to open a terminal on a remote Linux machine (we recommend using MobaXTerm). Microsoft has started working on a built-in “Windows Subsystem for Linux”, or WSL, which offers a native Linux experience from within a Windows machine and makes it easier to open a Linux terminal and connect to the cluster nodes.