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!