Should You Use the Commandline?
A large part of Linux might seem daunting to a novice user because it involves the command line. Unlike Windows or MacOS where the graphical interface is intertwined with the operating system itself, Linux’s GUI is simply another package that is installed. The system can function just the same without it because at its core it relies on something called “tty” to communicate with the user. Essentially ttys are virtual emulations of an old device called teletype which was used as one of the first input/output mechanism for computers. Although originally users communicated with computers primarily through text, we have come to replace this with a more appealing visual interface as it was easier to learn and navigate.
This course of events merits little explanation because using the tty required a reasonable grasp of commands and how the system itself functioned. The general public would not have been particularly enticed by the necessity of having to learn commands and syntax just so that they could use these machines. Most operating systems, as a result, have come to entirely replace this mechanism with a visual interface, making tty, even if it existed in certain systems, only a vestige of the past. Linux, on the other hand, still retained this part of history. One of the first things you would see when you install a minimal Linux distribution is just a black screen with a blinking white cursor, patiently waiting for you to programmatically express your will. Graphical interfaces are installed on top of this but you could still communicate with your system even in the absence of such mediation just like how you would 60 years ago.
Coming from a world where immersive visual experience is heralded as the biggest achievement of technology, this kind of decision appears a little strange. One would generally expect the whole practice of using ttys to be relegated into the past once computers became capable of rendering visual graphics. However, with Linux the command line continued to survive. Although users still preferred to use a “terminal emulator” within a graphical environment, the necessity to communicate with computers textually did not wane in the least. On the contrary, most Linux users prefer to use the terminal over GUI despite the latter’s aesthetic appeal. Why exactly might this be?
From a purely technical perspective, using the terminal to interact with the operating system provides more control. A certain subset of users like programmers and developers might prefer this fine tuned approach because for their use, textual interactions are far more salutary. However, as I had implied, Linux users regardless of their technical expertise come to develop a particular affinity towards the terminal, eventhough it appears painfully tedious. My initial experience with Linux provoked similar feelings and as I had grown to nurture that very affinity, the reasons behind it had only become more inexplicable. I constantly found myself asking, and perhaps still do, that why exactly did I use the command line?
Answering this question, at the outset, brought into consideration all the different ways terminals are better than GUIs. Although learning commands and their syntax might prove to be difficult initially, with a little persistence any task you perform with a computer becomes blazingly fast. From copying files to downloading programs, whatever effort you expend typing commands stays more or less the same regardless of the magnitude of the task itself. And this scalability of commands is, in my opinion, one of its biggest advantages. And with shell features like aliasing and scripting almost any series of tasks can be automated. Given the fact that you are willing to learn and forsake expedience for some time, the possibilities of this world are endless.
Although mastering the command line requires years of practice, obtaining a fair understanding of it can be done rather quickly. And unlike the general impression, learning commands does not require any kind of formal expertise as a programmer. However it does demand sustained curiosity and here is where the ways of men part. Some users might regard computers as simply a means to an end so they might not be inclined for such adventures. For such people the GUIs in Linux are good enough for most of their use.
However it is important to remember that the visual interface as much as it simplifies also veils what is underneath a system. It limits the possibilities of what a user can or cannot do, sometimes making errors themselves virtually undiagnosable. As much as Linux mitigates this, it is a problem that arises with the creation of GUI itself as simplification entails relinquishing control over to someone who does the simplifying. A subset of users, I believe, are fundamentally disenchanted by this process, making ttys the means through which they peer into the visual facade.
Although both GUIs and terminals coexist in most Linux systems, the latter still remains the primary channel for any user interaction. And more than providing control, such unmediated channels enlarge the possibility of creative expression. Any part of the system can be changed, erased or used in combination in any way that is deemed necessary. More than being machines that passively receive input, for these users computers become the tools through which they explore the world. Thefore every Linux system, far from being generic, unmistakbly bears the imprints of its user. Through customizations or the mere writing of scripts and programs, each system eventually becomes tailored to the needs and preferences of its user. And this kind of invovled personal computing is primarily why I use the command line but to the question of wether you should use it, I leave that entirely up to you.