Journey To: Software Engineer

From warehouse racks to full stack

Day 25: What is a terminal?

Defining the different terminal terminology.

May 1, 2025

Hello,


A point of confusion since day one in programming has been all these seemingly interchangeable words like terminal, command line interface, shell… I thought today I would figure out what each term is and define it here.


Basic Outline


So, a terminal is a program or device which serves as the environment for the command line interface (CLI).
The CLI is where you type commands or scripts.
These inputs are interpreted by a shell, the shell (like Bash) interprets the commands, executes them, or passes them to the operating system.
Bash is a widely used shell, especially in Linux and macOS systems.


What about Vim?


In my vocabulary search and through various media I consumed, Vim has come up frequently. I learned today that besides typical IDEs like VS Code, IntelliJ, Eclipse... There are a variety of code editors that exist in the terminal without a GUI. Some popular ones include Vim, Neovim, Nano, Emacs...


The Kernel


So what is a Kernel? It sounds delicious. The Kernel is what directly controls a computer's hardware, like CPU and RAM. Kernel types, memory management, and security vary depending on the OS.


Why these words?


I looked into all these words today for two main reasons. Firstly, I hear these all so often I found it about time I knew what they meant. Second, for the text-based game project. I'm still unsure this will be my next project, but I've been thinking about the game non-stop for a few days and through the articles and google searches these words came up very often. In the learning journey, it's always good to take some time to become more concise. This is especially true in an industry where using the wrong word can cause so much confusion.


That's all I got for today, thanks again for reading until the end, I'll see you in the next one.