An operating system that doesn’t cost a dime, runs well on both old and new hardware, has a gorgeous user interface with modern effects, and offers a staggering variety of modern software – what’s not to like? And yet, making your first steps into the world of Linux can often feel like a daunting experience.
These days, Ubuntu and other modern Linux distributions usually install without a hitch (and without requiring any knowledge), but as you move forward using them, you will inevitably come across all sorts of terminology that isn’t always clearly explained. That’s why I’ve prepared a quick list of the most important Linux terms and definitions that you should know, each explained in the simplest possible way. They’re arranged in order of priority, rather than alphabetically: I’ve tried to put the most common or important terms first.
Note that these are terms, rather than commands you can run in Linux. If you’re after a round-up of the most useful commands, check out Joel’s post, titled An A-Z of Linux – 40 Essential Commands You Should Know. Also, many of the terms are all-lowercase, because that’s how you will see them in the wild.
These Definitions Are Not Accurate
Writing this post was tricky, for the same reason a new user would have trouble getting into the field: The full, technical, accurate definition for each of these terms is complex. It’s not like providing a definition explaining what’s a “desk.” In fact, if you’re a Linux expert, I am sure you’ll have lots to say about how these definitions are fuzzy or inaccurate. Well, you’re completely right! The definitions below are not totally accurate, because to define each term fully and accurately, you would need a long Wikipedia page full of terminology that would boggle most beginners. So, these are accurate enough to give a confused newcomer a sense as to what’s what – and not more.
Essential Linux Terms and Definitions
Distro: Windows has multiple flavors (Home, Pro, and so forth). Well, a Linux distribution (or distro, for short) is a bit like taking this idea to its logical extreme. The very core of each distro is the same (meaning, there’s a powerful Linux engine underneath) – but the rest is very different. You could have one distro that’s only 100MB large and is designed to run off a thumb drive, while another distro could run 3GB large, include a ton of different software, and look completely different. Still, they’re both Linux. You can think of a “distro” as a specific version of Linux customized with its own software, options, and (often) visual look and feel. Above you can see a screenshot of our own Best Linux Distros page, giving you a sense of how much variety is out there.
X, X11 or X-windows: When you see someone using Linux, they’re not usually staring at a black DOS-like screen full of text. Rather, they’re using something that looks an awful lot like Windows, or maybe Mac OS X. There’s a wallpaper, and icons, and windows that can be dragged around, and even fancy visual effects such as transparency and animations. The system that provides the basis to all of this is called X, or the X Window System. It doesn’t do everything, but it’s handles the low-level heavy lifting for the graphical interface.
GNOME: If X-Windows is in charge of the low-level stuff, GNOME is what you see and interact with directly – and it’s beautiful. In Linux-speak, Gnome is called a “desktop environment.” It includes a large number of sub-projects, but when you’re using Gnome on the desktop, you don’t really think about it: It just works, all the different parts dovetailing together.
Unity: One of the most popular Linux distros is called Ubuntu, and if you’ve spent any time searching for Linux information online, you’ve almost certainly come across the name. Well, Unity is Ubuntu’s desktop environment. Even when you’re using Unity, you’re still using GNOME a little bit, because Unity is actually a “shell” for GNOME. If this sounds confusing, then just remember this: Unity is the name for Ubuntu’s graphical interface.
KDE: Last but certainly not least, KDE is yet another graphical environment used by the openSUSE Linux distributions and others.
root: If you’ve ever used Windows Vista, 7, or 8, you’ve no doubt noticed those annoying prompts that pop up whenever you try to do something “dangerous” like installing an application or modifying system files in any way. These prompts are shown because ordinarily, you do not have permission to do anything and everything to your own computer (such as delete the operating system or program files). To do these operations, you must be an Administrator – or, in Linux parlance, root. In other words, root in Linux and Administrator in Windows are roughly the same thing.
Bash: Windows has PowerShell and the regular command line interface, and Linux has Bash. Basically, it’s a “command processor.” So when you type in Linux commands like “ls” (for listing files) or “rm” (for deleting them), Bash is the program that accepts these commands and has to do something with them. There’s an important distinction to make here that doesn’t really exist in Windows: Bash is the processor, not the window into which you’re typing the commands. You could type Bash commands into a full-screen text terminal, like DOS; you could type them into a swanky semi-transparent window; you could even be typing them remotely into another computer. They’re still Bash commands.
terminal, console or shell: These are all different ways of referring to the visual interface you see when you work with Bash (or with another command processor). This is the window, or the screen full of text.
compile or build: Linux is the land of open source. In other words, many Linux application can be obtained in their “raw” form, just as their programmers wrote them – in other words, source code. The process of turning source code into executable files and other resources is called “compilation” or “building,” and is really something you shouldn’t be attempting if you’re just starting out with Linux. Thankfully, these days, you could be using Linux for years without having to compile or build anything yourself.
binary or binaries: In the strictest sense of the word, a binary file is a machine-readable file. In other words, the computer can understand it. But the day-to-day use of the term usually refers to files you can just run. In other words, when you see a page that offers either a “binary” or a “source code package”, the “binary” part means they’re offering compiled executable files. When you download software for Windows, you’re always downloading binaries.
apt-get and rpm: These are two different systems we’ll be bundling under one definition, because they do roughly the same thing: They let you quickly install software. In the world of Windows (at least up until the Windows 8 Store), you had to go online, find the page for the software you need, click the download button, wait, double-click the installer, and so forth. In Linux, things are much simpler, thanks to packaging systems like apt-get and rpm. These make it possible to just tell the computer what application you want, and the computer does the rest: Goes online, fetches the application (and any other software it needs to run properly), unzips it, sets it up, and so forth. Above you can see a screenshot of the Ubuntu Software Center, the part of Ubuntu that lets you install new software without opening a single Web page, and uses apt-get to do the actual installation work.
kernel: Last but not least, the “kernel” of a computer system is the very core of its operating system. This isn’t something you’re going to hear a lot about in the world of desktop Linux, but if you’re into Android (which is a type of Linux, really), you’ll hear lots of speak about kernels. So, it’s just the very core of the operating system – the deepest guts of it, really (and is certainly not user-serviceable).
We Have a Manual For You, Too
If this post gave you a taste for Linux but you feel like you need a bit more help getting started, you should get and read our free manual, Newbie’s Getting Started Guide to Linux. It starts off with a short glossary as well, but is packed with other information you’re going to need as you make your first steps into the exciting world of Linux.
Other Major Concepts?
Linux is such a broad subject, it can be easy to miss an important concept or two in a glossary like this. Is there a key term I forgot? Was there a term that stumped you? Let me know in the comments!