When you start using Linux and follow Linux-based websites and forums, you’ll often come across terms like GUI, CLI and sometimes TUI.
This chapter of Linux Jargon Buster briefly explains these terms so that you as a (new) Linux user can understand the context better when these acronyms are used.
To be honest, the terms like GUI, CLI or TUI are not exclusive to Linux. These are generic computing terms and you’ll find them used in non-Linux discussions as well.
GUI – Graphical User Interface
Probably the most common term you’ll across on It’s FOSS. It’s because we focus on desktop Linux users and try to cover the easy to use graphical methods and applications.
A GUI application or graphical application is basically anything that you can interact with your mouse, touchpad or touch screen. You have icons and other visual notions and you can use your mouse pointer to access the functionalities.
On Linux, a desktop environment provides the graphical interface for you to interact with your system. Then you can use GUI applications like GIMP, VLC Firefox, LibreOffice, file manager etc for various tasks.
GUI has made computing easier for the common users otherwise it would have remained a geek-only zone.
CLI – Command Line Interface
CLI is basically a command line program that accepts inputs to perform a certain function. Basically, any application that you can use via commands in the terminal falls into this category.
Early computers didn’t have mouse to interact with the operating system. You had to do interact with the machine using commands.
If you think that’s difficult you should know that the earlier computers didn’t even have a screen to see what is being typed on, they had actual paper printer to see their typed commands. I have never used such a computer or seen in my real life. The closest thing I used was the microcontroller kits during my studies.
Is CLI relevant these days? Absolutely. Commands always have their benefit specially when you are dealing with the core functioning and configuration of the operating system like setting up firewall, managing network or even package management.
You may have a GUI-based application to do the same task but commands give you more granular access to those features. In any case, you’ll find that GUI application also interact with the operating system with commands (used in their code).
Many popular GUI applications are often based on CLI tools. Take Handbrake for example. It’s a popular open source media converter and it uses the FFMPEG command line tool underneath.
Quite evidently, using command line tools is not as easy as the graphical ones. Don’t worry. Unless you have specific needs, you should be able to use your Linux system graphically. However, knowing the basic Linux commands helps a great deal.
TUI – Terminal User Interface (also known as Text-based User Interface)
This is the most uncommon term of the three. TUI is basically part GUI and part CLI. Confused? Let me explain that for you.
You already know that early computers used CLI. Before the advent of the actual GUI, the text-based user interface provided a very basic kind of graphical interaction in the terminal. You have more visuals and could use mouse and keyboard to interact with the application.
TUI stands for text-based user interface or terminal user interface. Text-based because primarily, you have a bunch of text on the screen and terminal user interface because they are used only in the terminal.
TUI applications are not that common but you still have a bunch of them. Terminal based web browsers are good example of TUI programs. Terminal-based games also fell in this category.
You may come across TUI when you are installing multimedia codecs in Ubuntu where you have to accept EULA or make a choice.
TUI apps are not as user-friendly as GUI applications, and they often have a learning curve involved but they are a bit easier to use than the command line tools.
In the end…
TUI apps are often also considered as CLI applications because they are restricted to the terminal. In my opinion, it’s up to you if you consider them different from CLI.
I hope you liked this part of Linux Jargon Buster. If you have any suggestions for topics in this series, please let me know in the comments and I’ll try to cover them in the future.