When you start using Linux and following 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 GUI, CLI, and TUI are not exclusive to Linux. These are generic computing terms that you’ll find used in non-Linux discussions as well.
GUI – Graphical User Interface
“GUI” is probably the most common term you’ll come across on It’s FOSS 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 using your mouse, touchpad, or touch screen. You have icons and other visual prompts that you can activate with your mouse pointer to access the functionalities.
In a Linux distribution, a desktop environment provides the graphical interface for you to interact with your system. Then you can use GUI applications such as GIMP, VLC, Firefox, LibreOffice, and file manager for various tasks.
The GUI has made computing easier for the average user.
CLI – Command Line Interface
CLI is basically a command line program that accepts inputs to perform a certain function. Any application that you can use via commands in the terminal falls into this category.
Early computers didn’t have a mouse to interact with the operating system, only keyboards.
If you think that’s difficult, you should know that the earlier computers didn’t even have a screen to see what was being typed; they had actual paper printers to display the typed commands. I have never used such a computer, or even seen one. The closest thing I used were the microcontroller kits during my studies.
Is CLI relevant these days? Absolutely. Commands always have benefits, especially when you are dealing with the core functioning and configuration of the operating system, such as setting up a firewall, managing a network or 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 applications also interact with the operating system with commands (used in their code).
Many popular GUI applications are often based on CLI tools. Consider Handbrake for example. It’s a popular open source media converter that 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.
Suggested Read 📖
TUI – Terminal User Interface
TUI is 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 it for you.
You already know that early computers used CLI. Before the advent of the GUI, the text-based user interface provided a very basic kind of graphical interaction in the terminal. You have more visuals and could use a 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 well-known to many users, but there are a bunch of them. Terminal-based web browsers are a good example of TUI programs. Terminal-based games also fall into 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.