UI
Communication between humans and computers is a two-way thing, from the user to the computer, and then from the computer back to the user. The Operating system (OS) of a computer provides a user interface to enable the user to communicate with the computer through its hardware. The interface enables the user to send data and instructions to the computer and the computer to send back information to the user.
The UI (user interface), in the context of computers, is majorly divided into three types:
Graphical User Interfaces (GUI), used mainly by Windows systems.
Command Line Interfaces (CLI), used mainly by Unix systems, and
Natural Language Interfaces, used mainly by virtual assistants like Alexa and Siri.
Graphical User Interfaces
These are interfaces that are graphical in nature. They are the normal interfaces most users are used to as they usually contain visually immersive windows, icons, menus and pointers. They are very intuitive to learn and use.
Command Line Interfaces
These types of interfaces are not easy to learn and use. In CLIs, users are only allowed to type in commands from a predefined list of commands. For inexperienced users, these types of interfaces can be frustrating to use whereas for experienced users, it can be very powerful. This is because the CLI allows users to manipulate the hardware and software of computers in ways that a GUI never could. Some tasks cannot be done as a software programmer without using CLIs. Examples of CLIs are UNIX and DOS.
Why should you care about what a shell is?
The shell presents the CLI, that alone is its importance. If, on the other hand, you still do not know why the knowledge of a CLI should be important to you, or how it applies to you, then I'll give you some reasons.
It makes your work less boring, as you can automate repetitive tasks.
It makes your work less error prone.
It makes your work more reproducible, as it keeps a history of your work and commands.
How to access the shell
If you're using a Mac or Linux machine, you can access the shell via an app known as "Terminal", which is already available on your computer. The terminal is the app into which we will type our commands.
If you're using Windows, however, separate app(s) will need to be downloaded to be able to access the shell. Examples of such apps are Git Bash, WSL, etcetera.
Shell anatomy
The innermost core of the Linux OS is the Kernel. The outermost part of the Linux OS is called the Shell. The Kernel acts as a window between the software and hardware components of the computer, making two-way communication possible. The shell, on the other hand, is the outermost part with the main function of protecting the OS, hence the name Shell.
Main types of Shells
There are more shell types than the ones outlined below, hence the word "main". The main types are:
The Bourne shell (sh) - The first ever type of shell, programmed by Stephen Bourne in AT&T. It is also known as the Primary Unix Shell. Examples are ksh, sh and Bash.
The C shell(csh) - The Unix enhancement shell, written by Bill Joy.
Shell Prompt
The shell Prompt, "$", on which commands are written and programs are executed is called the command prompt. It is displayed by the shell.
The shell Prompt takes the first written word as a command and executes the command when you press Enter, provided the word is contained in Linux's predefined list of commands.
If this post was helpful to you, then you should consider following us or subscribing to our newsletter for more content of the same nature. Also, liking and sharing the topic may be of help to others.
If you have any question you need answers to, comment them below!
Next Topic:
Conclusion
I hope you found this content as enjoyable to read as I did to write. If you are interested in more content like this, please navigate to my profile and follow me for more content of the same nature.
Connect with Me
Feel free to reach out via X or LinkedIn if you’re interested in collaborating on projects or just want to chat about tech, design, or anything in-between. Let’s create something amazing together!