This is a rewrite and amalgamation, into one post, of a series of earlier posts written for non-geeks just starting out with Linux. The idea is to provide the gist, a few important facts, and some fun suggestions, slowly and easily.
At some level all operating systems are the same, but in some ways that will matter to you, Linux is very different from the others. The most important difference, which causes both the really good things and the annoying things to be true, is that Linux and most of the software that you will run on Linux is OpenSource, as opposed to proprietary AND it is produced by a diverse group of entities that share a single, continuous, common, and sometimes harmonious community. If there are two “competing” applications that do more or less the same thing, it is not at all unlikely that the people who make the software could meet up and decide to merge them into one project, rather than try to kill each other in the usual corporate way. If there is a single project within which differences occur as to what the project should be like, the project can be split (“forked”) and there are no law suits over the ownership of the computer code … they simply evolve in different directions thereafter. Or, more importantly, one or more of the divergent ideas will not be crushed by the Marketing Department because it is less sale-able even if it is better in some important way.
The most important outcomes of the community-based and non-Proprietary models, for you, that you will notice and that will make a difference in how you use the computer, are:
*There is one way to install software that works the same for all software, and all the software you might ever want to install is all accessible, searchable, findable, and installable from one single fairly easy to use application. Individual Linux users can certainly make this not true by doing it the hard way, but you won’t do that.
*There is no trialware or advertising or wanton popups telling you to buy something.
*There are no end user agreements to click on, although the software is all licensed (you need to know nothing about this to be a casual user).
*You will not have a situation arise where yo have to agree to a new end user license for software you’ve already installed. Again and again.
*It is trivially easy to install software.
*It is trivially easy to remove software.
*When you remove software, it is really really gone.
*You can install or remove software without having to close down other software.
*You will never have to reboot for new software to work, unless it is part of the operating system itself (and then you may or may not have to log out and back in or reboot).
*A bug is a bug, and people generally admit that it is a bug. And they tend to get fixed fast in the mainstream applications. (Compared to proprietary software, anyway.)
Linux itself is fundamentally different from Windows in several ways that will also matter to you.
*Linux is case sensitive. So, a file called mystuff is different from a file called MyStuff.
*Linux uses “extensions” (like the ‘.doc’ in mydoc.doc) but does not require them. Actually, it doesn’t use them at all, but a lot of software that runs on Linux assumes you are accustomed to extensions so they have become one of the “clues” software will sue to decide what applications to associate with your files.
*You will see very few confirmations in Linux. When you select a file and delete it, it is gone. You do not have to have a conversation with the computer via arcane dialog boxes (note: in Gnome, a “deleted” file is put into the “trash” so you can undelete it later).
*Different “applications” (called “Processes” in Linux) run very independently from each other. Your browser can’t crash your spreadsheet, and your spreadsheet can’t crash your word processor, or at least, it is very unlikely for that to happen.
*The operating system itself is lean and mean. It uses few computer resources (memory and stuff) and is crispy, not sluggish.
*Over time, the operating system does not grow more sluggish. Adding software does not break the system or slow it down.
*You don’t have to (and in fact can’t) “defrag” the hard drive, because the file systems that Linux use are designed to not break themselves over time.
*”Wipe the drive and reinstall the system” is possible, sometimes it is done, but it is never necessary. It is only done by people who screw up their computer and are former Windows users and don’t know any better. (Having said that, it may be better to wipe and install rather than upgrade major version upgrades of Linux.)
There are a lot of Linux Haters(TM) out there. I think many of them are paid by Microsoft. I know for a FACT that some of them are. There are a lot of people who tried Linux in the past and had bad experiences and do not realize that the system has changed and improved. There are people who hold Linux to the Ginger Rogers standard but give Windows (Fred Astair) all the breaks. So, for instance, Windows can crash on them again and again and again and they will keep going back, like zombies to the brain bucket, but if Linux does anything they don’t like they will leave Linux and never look back and complain incessantly about it forever.
All you need to know now is that Linux does have its problems, it is not for everybody, it is a hundred times less annoying than Windows, and if you are trying it out at the moment, it is the operating system on your computer so you need to kinda live with it for a while anyway. So a positive attitude is in order.
Now, we look at the concept of a “distro” and why it is important to you as an average user of Linux.
It would be nice if you knew the meaning of these terms …
OS (operating system),
…. but mainly it would be nice to know about “distribution” because it really puts all the other terms and concepts together.
An Operating System is a part of your computer that does not do any of the things you need your computer to do, but without which your computer won’t work. It “runs” the “software” or “applications” and makes the hardware work, etc. Windows is an Operating System, OS X (on a Mac) is an Operating System, and Linux is an operating system. The Linux operating system runs on the same kinds of computers that Windows and OS X run on, as well as a wide range of other computers. It is the operating system, more or less, that runs The Internet, the Large Hadron Collider, and the worlds’ largest supercomputers which are used for simulating nuclear explosions or climate systems, and other tasks which are both huge and so important that they require a great deal of reliability. Also, a version of the *nix system (Linux is a variety of what we call *nix) underlies OSX.
The deep under the hood part of Linux is called the “Kernel.” Other than that it exists, you need to know nothing more about that. But you’ll see the word, so I thought it prudent to define it very briefly.
In order to communicate with “the Kernel” and to run software and stuff, you need to use a “shell.” The most basic “shell” is also known as the command line and it looks like a primitive computer screen with nothing but letters on it, and you don’t need to use it ever (but you will want to for fun and profit, we’ll get to that later). The most common “shell” people actually use is the “window manager” which is a “Graphical User Interface” thingie that lets you use menus and windows and stuff on Linux. The Window Manger is usually integrated into a thing called a “desktop” which adds a lot of other visually useful stuff (and some useless stuff) like a default file manager, icons and “wallpaper” and so on. The “Desktop” on many Linux computers is Gnome (pronounced Ga-Nome or Ge-Nome), which is a very intuitive and easy to use desktop. However, there have been recent changes in desktops, so if you have a new version of Ubuntu, the desktop is Unity.
Linux is an OS distinct from Windows. There are different flavors of Windows, as you know (like “professional” or “home edition” or “me edition” and so on). Similarly, there are different flavors and “versions” of Linux. It work like this, as hierarchy:
OS (Family (Distribution (Version)))
There is only one Linux Kernel, but there are three or four families of Linux that use this kernel in different ways. If you are an Ubuntu user, you are using Debian Linux. The other two major families are “Slackware” and “Red Hat.” Each of these families is represented in anywhere from a few to many dozen different “distributions.” Each distribution has a series of versions starting with the first version, then new versions up to the present, current version. Often there are two “current” versions … the one that works really well and is most trusted, and a newer “bleeding edge” version.
Versions are numbered, and higher numbers mean more recent. Many Distro manufacturers also name their versions. Ubuntu uses animals with attitudes. Hardy Heron, or Daper Drake for example. Another distro called “Mint” uses female names that end in A. So some day Mint will produce a Julia and an Amanda. But it will never produce a Betsy or a Lizzie.
A distro is more than just a name, however. A distro is a functional unit that matters to you as a user. The distro is what you install, and the distro is managed by a group of people who have a philosophy, an orientation, and so on, that affects you as a user.
If there was such a thing as a “Windows distro” (and there is not) it might look something like this:
Windows XP is the OS
Microsoft Office for day to day tasks
Adobe Illustrator is included automatically
Internet Explorer is the default browser
Some other software bla bla bla
All packaged together, and branded with a certain default desktop wallpaper, a default screen saver, and some other bells and whistles. The many things you can configure on windows (show hidden files vs not, etc.) would all be configured by the distro managers to follow the distro’s philosophy or purpose.
A typical Linux “distro” will have the Linux Kernel, a certain system for installing and removing software, and a bunch of applications (like Office applications and graphics applications etc) automatically installed with it, and will default to a certain desktop (like the aforementioned Gnome, the ever popular KDE, or the new Unity).
Once you install that distro, your software management system gives you access on-line to more software than is automatically installed, which live in the distro’s “Repository.” (Well talk more about this later.) The people who manage the distro keep track of what software is working well with other software. Two different distros might have two different versions of a particular software package (like the spreadsheet, or whatever) because the maintainers of each distro have different opinions about the readiness of each version to be deployed in their distro.
So the distro is like a committee of experts that manages what limits you should put on yourself for what software you actually install on your system. You will not follow these rules perfectly, but if you mostly follow the rules of the distro (and following these rules is the default automatic behavior of your computer) fewer things can go wrong. If you look at comments on this Internet, you will see many negative anti-Linux tirades by unhappy people who had bad experiences. There are two kinds of Linux miscreants (other than the paid Microsoft fanboys). Those who used Linux five years ago or so when it was not as idiot-resistant as it is now, and those who did not limit themselves to the repositories of a good distro. Not limiting yourself to a good distro is like buying your groceries from some guy in an alleyway. You might be intrigued at the possibilities at first, but later there is going to be vomiting and diarrhea.
Ubuntu is considered one of the most user-friendly distros. Mint is increasingly becoming the even friendlier distro, though it is based directly on Ubuntu but with important changes. Ubuntu is one of three or four distros that was originally designed explicitly to be nice to regular computer users, but when it came out, it was the only one that was distributed for free and had a cool logo. Ubuntu is said to be an “African” word (there is no such thing as an “African” word) and as best as I can figure it is a Zulu term but found in a few other languages as well. If you look it up on the internet you will find a lot of people trying to define what it means, including Nelson Mandela himself. They struggle with the definition because they miss the point or make it too complicated. Ubuntu means “OpenSource.”
Next, we’ll look at where your files are stored and how you might back up your stuff.
All computer systems keep your data and stuff in files, and you probably know that “programs” (applications) can be files (or sets of files) and that there are configuration files, etc. There are a few things about the Linux system, regarding files, that you should probably know, or at least, have a place to look up in case you need to. This is more of a list than a coherent story, so here’s the list:
1) File names in Linux do not use “extensions” but many applications in Linux understand and will make use of them.
2) Although there are no limits that you need to know about regarding how long file names can be, there are limits (in all computer systems) as to what characters they can include. However, what you may not realize is that the limits that apply to Linux actually apply to all systems, because the Linux limits are the default Unix/Linux/BSD limits, and these are the systems that run the internet. So you would be foolish to ignore certain guidelines. Which are:
Don’t use spaces in file names. There are no systems that can tolerate spaces. There are only systems that pretend to tolerate spaces. But they are faking it. They usually do a good job at faking it, but spaces in file names can cause unexpected problems. Use underscores (“_”) for spaces.
Only use letters, numbers, the underscore, the dash, and the period. There are other characters you can use, technically. But don’t.
Do not use a dash (-) as the beginning of a file name.
Don’t listen to any of those people down in the comments about how it’s OK to use spaces.
In Linux, file names are case sensitive.
3) A Linux file is connected to a set of “permissions” and “ownerships.” This can get complicated. A file can be tagged as “executable” or not, and it can be tagged as viewable or usable by a certain owner or not. This is complicated and hard (and also true for Windows and the Mac, by the way, but it is mostly hidden from you). Just know that “permissions” and “ownership” are issues and you may at some point need to work out a problem with these issues. But learning in advance what to do just in case is not a good idea.
4) You, as a specific user on your Linux sytem, own and have access to a subdirectory (folder) called home. It is abbreviated as “~”. Allmost all of the files you generate that are what you would think of as your stuff are in the home directory. In fact, all of it except some configuration stuff. Any software that puts your private data and stuff anywhere else is bad.
Organize your files within the home directory. Desktop is likely one of the subdirectories already there, and that represents the files and folders visible on your desktop.
5) Within the home directory are files that are “hidden.” For the most part, files that begin with a dot (called “dot-files”) are hidden. You can see them by telling the system you want to see them. They are not really “hidden” as in secret. They are just the sorts of things you don’t normally want to see.
6) If you copy every single thing, including hidden files, from your home directory onto an external hard drive, you are probably doing a good enough job of backing up your stuff.
7) You can see your files by looking in folders that are on your desktop or using the Nautilus file manager or some other file manager.
Installing and Removing Software
There are a lot of ways to install software, and total geeks can make this really hard on themselves. You may not know this, but a software application usually needs to know how to exist on a wide range of systems and hardware configurations. Even within a given Operating System (OS), there are things the software has to do to compensate for a lot of potential variation. So, inside the software it may be like this:
Command: Do something.
OK, if I’m on hardware configuration A, do it this way.
OK, if I’m on hardware configuration B, do it this way.
OK, if I’m on hardware configuration C, do it this way.
OK, if I’m on hardware configuration Z, do it this way.
However, if you want, you can (in theory) “make” software from its original computer code (software is computer code transformed into “executable” or “binary” files) in such a way that it does not have to do this as much. You cac “compile” the software to work specifically on your hardware and with exact other software you use. So instead of the above, you may get this:
Command: Do something.
Not that you will ever do that, but it is kind of cool to consider the idea of compiling every piece of software on your computer to use, and assume the existence of, your specific hardware configuration. Well, there are people who think that is cool. While you are at it you can eliminate all those menu options you need to keep resetting (like what font you use, or how zoomed in something is) to just the way you like it.
But that is a lot of work. What you really want to do is to click a box and have the software installed automatically. And that, of course, is how it will work in Linux for you.
For example, you might follow these menus:
System | Administration | Synaptic Package Manger thingie, or “Software center” or “Add/install software” or whatever else looks like it will install software.
You will need to enter your password because the system assumes you are about to mess with it, and you better be you. Enter your password.
There will be a way to search for stuff. For example, try “spreadsheet.” And hit OK or Enter.
Now there will be a search in the Distro’s repository for software that is listed there with the word “spreadsheet” in the name or description.
The package manager or install software on your distro will install all the necessary other pieces of software that are necessary for your chosen application to work. For instance, a lot of software uses a programming language called “Python” which must be installed on your system. It probably already is, but the software manager will check to see if the appropriate version is there, and if other needed elements are there, and install that
On Debian based distros (Ubuntu, Mint, etc) the software is installed (or removed) using a graphical user interface like “Synaptic” or some version of that, and this in turn is based on a system called “apt”. You can use apt directly with wonderful, magic results.
For instance, say you are interested in converting a pdf file to text but you don’t know how. Open up a terminal and navigate to the directory with the file you want to convert in it. Now type something that makes sense like “pdf2text” and see what happens.
You’ll get an error message that says “command not found”. Try again. “pdf2txt” or “pdftotxt” and so on. Eventualy you will either get a long list of gobble-de-guk that seems to be instructions on how to use the software that you just semi-randomly discovered is already installed on your system, or a different, stranger message that says something like “I’m sorry, Dave, but that software is not installed on your system. Would you like to install it?”
That is a clue that the software actually exists out there somewhere. Or, perhaps you already know that a certain piece of software exist because The Internet told you. Say the software you’ve hit on but that is not installed is “pdftotext” (for “convert PDF file TO a TEXT file”). You know it exists but you don’t have it on your computer.
So then, you do the magic. Type:
sudo apt-get install pdftotext
sudo tells the computer you want to be a superuser for just a moment, and the computer will ask you for your password. Then it will install the software painlessly. It might ask you once if you really want to do this to which you answer “y” for yes. Magic.
(Note: If you have your package manager open as described above and try to apt-get install you’ll be told that you already have a package manager open and can’t have two open at once. This is a sensible precaution. Close the package manager and try again).
How to remove software: Make like you are installing it, to find the checked box indicating that the software is already installed. Then un check the box and then pick “apply.”
Now you know what a distro is, a bit about file systems, and something about installing and removing software. If you have a question, just google it using the word “linux.” Like, if you want to know if there is any software that makes cofee, google “make coffe” and “linux” in the same search and you will find what you are looking for. Or, put a question below and someone will address it!