Avatar This is where I type words about big calculators and digital harm-reduction.

Heroes in a half-shell! Part_01

Terminal? Shell? CLI?

CLI? More like CL-WHY:

There are any number of reasons someone would choose to operate a device via Command Line Interface (CLI) instead of a Graphical User Interface (GUI).

  • Commands are precise, providing exact instructions.
  • CLIs often require less resource utilization.
  • Accessibility / Ergonomic reasons.
  • ¯\_(ツ)_/¯

Shell:

A shell in the context of computing is a program that exposes an Operating Systems internal components to a user. It’s name comes from being the outer most layer of the Operating System. Shells can be graphical or text-based - however we’ll be focusing on the CLI.

  • sh
  • bash
  • zsh

Terminal:

A terminal has a long history in Telecommunication, even predating the Telephone. We’re going to skip from the humble beginnings of the Teletypewriter (TTY) straight to the 1970’s where the idea of a modern terminal began to take shape.

But I’m leaving some links in the footnote for some light bathroom reading. 1

Modern Terminals evolved right along with the rest of computer science - In College Labs along with the ARPANET and the Mainframe.

Computers were the size of rooms - so it was in everyone’s best interest to keep the college kids separate from sensitive equipment by setting up a remote Terminal as a way for users to interact with hardware.

Most of us think of a Terminal as launching your favorite Terminal application on your computer - which is mostly true. However - modern computers are able to run multiple terminals, applications, connections, tasks all at the same time.

Many terminals could only launch a single application: A CLI shell to provide instructions. Obviously with modern computational horse power - we can open many applications, and then use a terminal to hide the windows so our boss thinks we’re busy.

Some popular Terminal Emulators for various operating systems are:

  • xterm
  • konsole
  • kitty
  • iTerm2
  • PuTTY

I personally find myself coming back to kitty because of it’s flexibility and plethora of features. It’s a great way to create a unified experience on almost any platform. But I’ll use whatever is laying around.


More in Part_02.

Rather than make this 👌️ for 6 months – I’m just going to drop the first part and start on the 2nd/3rd parts as I go.