In one of my earlier posts I talked about Linux operating systems training and the Linux Professional Institute Study Guide (LIC-1).
This study guide is aimed at helping with taking the following Linux Exams :
LPIC-1 Linux Professional Institute Certification Study Guide: Exam 101-400 and Exam 102-400
Using this guide, in my last post I talked a little about the available command Unix and Linux shells and their history,shells used in different Linux distributions. I have also in some of my recent posts talked a little about the available text based file editors such as VI used in the UNIX/LINUX environment.
I feel however that it’s important to show just why Linux has retained a closer link to the text based command line or at least much more so than any currently supported version of the Microsoft windows operating systems.
While the Microsoft Windows operating systems have long since made an attempt to reduce the need for a text based command shell interface, transferring most if not all of the operating systems operations and configuration work into GUI based applications such as the systems control panel, Linux has evolved in such a way that easy and fast access to both a command shell approach and a GUI approach is possible.
Thus Linux/Unix takes a two pronged approach to local or remote systems administration !
One fact here that is very important and something that many desktop/laptop users my not fully appreciate is that Linux is the operating system that is largely running the Internet and Cloud , along with many of the internal computer networks within large companies around the planet, although many large institutions have out sourced their computer needs to the cloud.
See: Why Are So Many Websites Hosted On Linux?
Taking this into account its important to understand that Linux/Unix operating systems have long been divided into two main flavors ( Desktop and Server distributions ). Within the Linux server based world , many of these system are located in large isolated server rooms, that may contain many hundreds of servers running in a climate controlled environment, again this is even more so the case since many companies rent data space and processing power from the cloud these days.
Linux/Unix Internet and cloud servers clearly then make use of the Server distributions/Versions and as such they are mostly managed and configured remotely, i.e. they run in what is called a headless mode , with no keyboard or screen attached. These systems are managed using a remote log-in process such as SSH ( a service that provides a remote log-in to a system and then provides a command shell environment) . When this remote connection has been made usually from a remote desktop system you then have two options in-order to perform administrative tasks on the remote server system, you can on your desktop use an installed GUI interface to manage a admin task or you can do almost anything from the command line by editing application or system services configuration files. Linux and Unix applications and services are very likely to have been design with this double management approach in mind and can be configured with both GUI based Menus or Via editing a configuration file held in the form of a *.conf file on the system.
To show this , from a command prompt type the following :
sudo find / -name “*.conf”
# sudo is needed to give all the needed permissions to everyone of the systems folders!
This searches for any “*.conf” files within the entire disk structure of a Linux installation!
On one of my own systems this returned some 650 individual files, all of which can be edited using a text editor such as VI! or GEDIT
So taking all the above into account it may become a little clearer as to just why Linux/Unix has retained a closer link to a text based environment than say MS-windows has. The main difference between MS-windows and Linux/Unix is that Windows uses a single system wide configuration file call the “registry”, that is both used by system services and individual applications, some think this is better some not.
Many people feel that the advantages of retaining command line skills and provided service for them – is, firstly its just faster than using a GUI environment (OMG! Some many mouse clicks !!!), Linux shells with such features as command completion, a services provided by many shells that allows you to search for and quickly select intended commands along with the files names that you intend these commands to be performed on. Then Secondly a very good reason for using a text based approach to system operations and control is that it saves on network bandwidth , a text based file editor used for changing the content of a ( application or system service and users ) configuration file needs to send a lot less network traffic in the form of TCP/IP packets across the internet or local network than does a GUI based application and as such you will be able to perform an operation much faster! .
A good example of this is if you need to log-in, in order to shutdown an application/system that is taking too much of the systems CPU/processing time, sometimes there is just not enough processing power left to load up a GUI application but just enough to perform admin tasks from a text based command line in the form a shell ! .
In summary
For many people who have only ever known desktop systems, it may appear that it is so far out of date to even think of using a command shell and text based terminal, a little like going back to the early days of MS-DOS or CP/M, until you understand that not only can you do things faster but that most of the cloud and internet is being run by Linux/Unix systems that do not have a screen or keyboard attached and do not even have a GUI windows based system installed, like many of the Linux server distributions being used to run the cloud/internet today.
Learning and maintaining command line skills is still important in the IT industry and will allow you to do your job faster and in some situations it will be the only way to get many tasks performed at all !