Confusion over terminology SSH, Shell, Terminal, Command Prompt and Telnet

  • Telnet provides the ability to communicate with a service, nothing more nothing less. If that service happens to be a shell on a server, great, but it's not always. I often use telnet to send a malformed HTTP request manually, or to manually run commands against an SMTP server.

  • SSH is way more than just a way of logging on to a server remotely. It can be used as a proxy to access remote services from your local computer, and it can be used as a protocol to run other protocols over (like scp)

  • A Shell is the name given to a command-line interpreter that runs on a computer to figure out what you're wanting to do and tries to do it. This could be sh, bash, csh, tcsch or even command.com

  • Command Line is the DOS shell, usually associated with Microsoft operating systems.

  • A terminal is ambiguous. It could be the OS X name for the shortcut to their shell. It could also be a physical thing that was used to interface with the shell of a multi-user Unix server (a popular one is the VT-100)

What is the Linux version commonly called, is it just called SSH ?

SSH is just a protocol that can access the shell of the server. It is extremely common, but there's also the older and insecure rsh or you can even log in to your Linux server with telnet if you're so inclined.

What is bash ?

It's a shell


You've got a small learning curve ahead of you:

  • A command line / command prompt is simply one way that programs present themselves to the user; via a CLI (command line interface). The other way is through a GUI (graphical user interface). Many programs have both kinds: you can choose which to use, graphical or command-line. It's a matter of taste. An example which offers both options is "zip". On Windows, there's the Winzip GUI as well as the zip CLI.

  • A shell is a particular kind of command line program: It's the "desktop" of the command line. It runs the command line and makes it all happen. It responds to what you, the user do (ie. type). On Unix, bash is the most popular shell. On Windows it's... cmd.exe? I'm not sure. Not my area of expertise.

  • A terminal is a bridge between the GUI and CLI worlds: it's a GUI program that starts a shell and lets you use CLI apps within its graphical window. Now, on OS X, the terminal program provided by Apple happens to be called Terminal, but that's a fluke. On Windows it's... Console, I think? There are many other terminal apps out there; xterm, etc. So, when you take your mouse and click the terminal icon, the computer launches two programs for you: the terminal (Terminal on a Mac), and the shell (bash, usually).

(Finally, you ask about ssh and telnet. You should always, always use ssh. Really, always. If anyone tells you not to and says not to worry, etc., you should demote your opinion of them.)

Both ssh and telnet are two command-line programs that make a network connection to another computer, and give you the command-line on that computer. So they can seem identical.

Telnet, though, is really just a network debugging tool. Anyone can eavesdrop on your telnet connection and see everything you're doing. Ssh, on the other hand, works like you'd expect. You connect to some other computer, and your communication over the network stays private.