CLI vs. GUI
Status: Considered finished except for corrections, updates and the like.
Last changed: Tuesday 2013-04-23 17:19 UTC
Quite often people new to another operating system than Microsoft Windows are confronted with the terms CLI (Command Line Interface) and GUI (Graphical User Interface). Pretty soon they get a notion about what those two are but at this stage they are still far away from being able to tell what is the "better" one. Well, there is no better -- it depends on the tasks that need be done, how experienced a user is and his personal likings. However, this page shows some comparisons what it means to use a CLI (Command Line Interface) or GUI (Graphical User Interface) and the impact that may come by doing so.
Table of Contents
This might help you to get further notions about the differences in
between using either a CLI (Command Line Interface) or GUI (Graphical
User Interface) to carry out tasks.
||CLI (Command Line Interface)
||GUI (Graphical User Interface)
|Ease of Use
||Because of the memorization and familiarity needed to operate a command line interface new users find it much more difficult to successfully navigate and operate a command line interface.
||Although new users may have a difficult at time learning to use the mouse to operate and use a GUI most users pick up this interface much easier when compared to a command line interface.
||Users have much more control of their file system and operating system in a command line interface. For example, users can easily copy a specific type of file from one location to another with a one-line command.
||Although a GUI offers plenty of control of a file system and operating system often advanced users or users who need to do specific tasks may need to resort to a command line to complete a particular task.
||Although many command line environments are capable of multitasking they do not offer the same ease and ability to view multiple things at once on one screen. However, so called terminals within a desktop environment e.g. GNOME (GNU Network Object Model Environment) allow for multitasking — one can use multiple terminal windows.
||GUI users have windows that enable a user to easily view, control, and manipulate multiple things at once.
||CLIs usually do not change in their appearance which in turn means once a user got familiar with the Interface/Command there is no need get familiarized every now and then the CLI appearance changes again.
||GUIs for particular programmes tend to change often — mostly with every major release version. Thus a user has to invest time over and over again each time the GUI changes in order to become familiar again.
||Because command line users only need to use their keyboards to navigate a command line interface and often only need to execute a few lines to perform a task an advanced command line interface user is mostly able to get something done much faster then an advanced GUI user.
||A GUI may be easier to use because of the mouse, however using a mouse and/or keyboard to navigate and control your operating system for many things is going to be much slower then someone who is working in a command line environment.
||A computer that is only using the command line takes a lot less of the computers resources. Also, with CLIs there is no need to install a graphical layer at all onto a computer system which saves a lot of resources e.g. storage space.
||A GUI will require a lot more system resources because of each of the elements that need to be loaded such as icons, fonts, etc. In addition video drivers, mouse drivers, and other drivers that need to be loaded will also take additional resources.
||A command line interface enables a user to easily script a sequence of commands to perform a task or execute a program.
||Although a GUI enables a user to create shortcuts, tasks, or other similar actions to complete a task or run a program it does not even come close in comparison to what is available through a command line.
||Often when accessing another computer or networking device over a network a user will only be able to manipulate the device and/or its files using a CLI.
||Although remote graphical access is becoming popular and is possible. Not all computers and especially not all network equipment will have this ability.
My two cents
I do almost anything with the CLI (Command Line Interface) for various
reasons. Mostly because for speed and the complexity of operations
which are practically impossible to do with GUIs. I can do anything,
remote or local, and always got the same interface which in turn eases
things compared to n different GUIs for n different tasks.
Next to GNOME (GNU Network Object Model Environment) terminals (left
Image below) I use the CLI within GNU Emacs (right Image) a lot. The
image below shows three terminal windows on my desktop
environment. Two of the windows have been set up to provide two tabs
which means in sum I got five CLIs at hand immediately to do
multitasking. Switching in between the windows and command input
etc. all works with keybindings so I do not even have to touch the
nonsense-slows-me-down computer mouse.
A good example of how fast one can be with the CLI is how I created
the screenshots above. All I did to create the two images above was
tsh which produced the full-sized as well as the thumbnail
screenshot image. I simply set up an alias in my
As I said, there is no better. Humans have to decide what to use based
on their operating system (DebianGNU/Linux here) skills and
liking. Even though I mostly use the CLI to get things done, there are
some things where I would not miss a nifty GUI. Below is my
favorite music, vodcast etc. player called
sa@pc1:~$ dpl bm* | grep ^ii
ii bmpx 0.40.0~rc3-1 Beep Media Player eXperimental
I use bmpx to satisfy my desire for audio and video content the
way I want it. However, I am also with banshee (below) for reasons of
redundancy and because both players (bmpx and banshee) have some
features the other one does not have... melting bmpx and banshee into
one player would be like Heaven opens up and angels start singing...