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.
- https://en.wikipedia.org/wiki/Computer_terminal
- https://en.wikipedia.org/wiki/Shell_(computing)
- https://en.wikipedia.org/wiki/Teleprinter
- https://en.wikipedia.org/wiki/Comparison_of_command_shells
- https://en.wikipedia.org/wiki/List_of_terminal_emulators
- https://en.wikipedia.org/wiki/Bash_(Unix_shell)
- https://en.wikipedia.org/wiki/Unix_shell
- https://en.wikipedia.org/wiki/Unix
- https://en.wikipedia.org/wiki/POSIX
- https://en.wikipedia.org/wiki/POSIX_terminal_interface