Transitioning from Windows to Linux

Table of Contents

1. Introduction

1.1. What is this all about?

The growth of Linux towards becoming a useful desktop platform over
the past years has brought many new users into understanding the
alternatives that exist in both operating systems and applications.
The much-advocated system of Open Source development to improve software
quality and collaboration has also made quite a splash, bringing in
developers who would otherwise have never dreamed of becoming involved
in such large, influential projects such as the Linux kernel, KDE,
Gnome, and Mozilla.

That’s all fine and good for software developers, but amid the talk
of releasing source code, arguing over architectural decisions and
which editor is the greatest in the universe, there are the cries of
the non-developers:

"What’s in it for me? How does this help me get
my job done?"

2. Why Linux / *BSD / Unix?

2.1. Customizability

Everybody uses a computer differently, so being able to adapt your
system to fit your needs is a valuable tool for getting work done
efficiently. When there is such a large selection of environments to
choose from (more on this later), the focus shifts from learning how
other people work to learning how you as a user works.

2.2. Experience

Mastery of a single particular system is admirable, but a worker
is always better off knowing what tools are available. Linux and the
applications that run on it are tools for getting your work done, and
it’s a good thing to know if it is a better tool for the job by experience
rather than a marketing brochure.

3. The User Interface

3.1. Choices

As mentioned earlier, Linux provides a dazzling array of ways to
interact with your system, from the simple text-only console, to
complete desktop environments such as
Gnome and
KDE. Graphical user interfaces are
referred to as "window managers", and are interchangeable. In particular,
Gnome and KDE are designed to be combinable with other window managers
to further fit your style.
While we will be focusing on
Gnome and KDE (Gnome in particular), there are many others available,
descriptions and screenshots of which can be found
here: http://www.plig.org/xwinman/.

3.2. Configuring the User Interface

In Gnome, most of the configuration options for changing the user
user interface of the default window manager (Sawfish), can be found
in the Gnome Control Center.

Tip:
Middle-clicking on the desktop and selecting
"Customize" is another method of changing Sawfish settings.

3.3. ‘Help!’ or, How To RTFM.

In Windows, standardized help is invoked via the F1 key. The standard
help system on Unix systems are "manual" (or simply, "man") pages,
commonly viewed via the man command. Both Gnome and KDE are
able to view manual pages graphically from the file manager (Nautilus
and Konqueror, respectively). To use this feature, just type
"man:(application)" in the location bar.

The web, as always, is a valuable resource for finding support
in addition to any help provided with the application. In particular,
if you are getting started with an application, search for the word
"HOWTO" in addition to you search terms.

4. Doing ‘Normal’ Things

4.1. File Management

Managing files in Gnome and KDE should feel familiar to users of
the Explorer in Windows, using the standard folder and icon interface.
The Gnome file manager is called Nautilus, and will be the focus of
this section. If you are using KDE, information on managing files
can be found
here.

4.2. Understanding Unix Paths

"If the path be beautiful, let us not ask where it leads."
– Anatole France

There are three major points to remember when it comes to Unix-style
filenames:

  1. The names of files and directories are case-sensitive.
  2. All paths start at the root directory ("/").
  3. Your personal files go in your "home" directory, which is usually
    "/home/yourname" and is often abbreviated as simply
    "~" (tilde).

Your hard drives, CD-ROM drives, and floppy drives are "mounted" to
become accessible. Mounting a drive simply means that it is associated
with a path, such as "/mnt/cdrom", from which you can access
the files on the drive.

4.3. Dot-Files (Hidden Files)

Unlike Windows, files cannot be marked "hidden". Rather, files which
begin with a period (often referred to as "dot-files") are treated as
hidden files, and are usually found in your home directory to store
personal settings for programs.

4.4. Understanding Unix File Permissions

All files on a Unix system have settings for permissions. There
are nine major permission settings which can be toggled on or off:
three categories (user, group, and other), each with three settings
(read, write, execute). Each file is also owned by a user and is
assigned to a group.

The permissions for a file are usually abbreviated as 9 characters
in a row, like this:

rwxrwxrwx

The first three characters are the permissions of the file as they
relate to the file’s owner (read, write, and execute). Read and write
are self-explanatory; execute means that the file can be run as a
program. The next three characters refer to the permissions relating
to the file’s group, and the last three refer to the permissions
in regard to all other users. If instead of a character there is a
hyphen ("-"), when that means the permission in that space is not
set.

Examples:

  • rwxrwxrwx: This means that the file is open to
    all users (all users can read and write this file). Also, all users
    can execute this file as a program.
  • rwxr-xr--: This means that the user who owns this
    file can read, write, and execute the file. Users who belong to
    the same group which the file is assigned to can read and execute
    the file. All other users can read, but not execute, the file.
  • rw-r-----: This means that the user who owns this
    file can read from and write to the file. Users who belong to the
    same group which the file is assigned to can read the file. All
    other users cannot read or write the file.

4.5. Finding Files

To search for files from Nautilus, select "Find" from the "File"
menu, or click on the "Find" button on the toolbar. The location bar
will be replaced with the Find bar, which will allow you to search for
files matching your criteria. For a more detailed search, click on
the "More Options" button multiple times.

4.6. Associating Programs to Files

In Nautilus, to associate a program with a particular file type, so that
double-clicking on icons of that type will launch the correct application,
first right-click on a file of that type, and select "Open With ->
Other Application…".

Next, select the application you wish to associate with the file type
in the list. If your application is not listed, you may add it in
the "File Types and Programs" section of the GNOME Control Center (click
on the "Go There" button in the dialog). In this case, the program we
want to use (NEdit) is already listed. Click the "Modify" button.

Finally, click on "Use as default".

4.7. Managing Music and Images

Nautilus automatically generates thumbnails for all image files,
and you can zoom in and out on the image by either using the zoom control
(next to the location bar), or by selecting "Stretch Icon" from the
right-click menu and stretching the icon larger or smaller.

Nautilus also allows you to preview and play MP3s from the file
manager. Hold the mouse over an audio file to preview the sound file
(moving the mouse away will stop the playback). Also, if you have a
directory of MP3 files, you can select "View as Music" to show the
built-in MP3 player. You can also use the method described in the
"Associating Programs to Files" section to
use XMMS or another MP3 player to
play the files.

5. Package Management

Installing Programs (or "Packages" as they are often called in the
*nix world) is handled in a multitude of ways depending on what
distribution or system you are using. Even between different
distributions there are several different package management systems
in use today. The most prevalent system is called RPM – Redhat
Package Mangager which is used on RedHat, Mandrake, and Suse (and
probably others). Beyond that, there is the Debian package management
system which has the famous "apt" – Advance Package Tool set of
scripts and the minimalist Slackware Package Management system.

5.1. RPM

From the man page:

rpm is a powerful package manager, which can be used to
build, install, query, verify, update, and erase individual software
packages. A package consists of an archive of files, and package
information, including name, version, and description.

RPM does package and architecture dependency checking for you and
maintains a database of what packages are installed. The manpage for
rpm is rather daunting, but thankfully there are a few simple
invokations that should get you through most situations.

Installing a new package: rpm -i foo-0.1.rpm

Upgrading an existing package: rpm -U foo-0.2.rpm
(more verbose version): rpm -Uvh foo-0.2.rpm

Removing a package: rpm -e foo

If console commands strike fear into your heart, don’t worry, most
RPM-based distributions come with their own GUI management system.
We don’t really know how well they work (they have generally not
been very high quality in the past).

Also of note, is Mandrake’s high-level "urpmi" system for
automatically fetching and installing RPM packages.

See man pages and how-to’s for more details.

5.2. Debian

Debian uses several systems in concert to handle package management.
Among them is the low-level dpkg command, the menu-driven dselect, and
the high-level apt system. Debian maintains a great deal of meta
information about packages such as dependencies, recommended packages
to install, and stability status.

For the simple tasks you will use either apt (and specifically the
"apt-get") command or dselect to manage packages on Debian. Apt-get
is a simple command line tool for package installation where you
specify installation, removal, or update of packages whose names you
know. Dselect is a menu-driven system where you can look at package
names, descriptions, dependencies, and what is currently installed.
Apt grabs packages from web-based central repositories of debian
packages, verifies their integrity, and installs them all automatically.

5.3. Slackware

Slackware packages are merely glorified tarballs with special files
that are executed after untaring the package. No meta information is
kept other than what files were installed where.

The main commands to know are installpkg, removepkg, and (possibly
deprecated) pkgtool. The syntax of installpkg and removepkg is fairly
straightforward. Installed package information is stored in
/var/log/packages as text files with all of the installed files.

5.4. Autoconf

GNU autoconf is not package management per-se, but is typically how
raw source packages are configured and then subsequently built with
make when packages are not available or one is intentionally avoiding
using the package manager.

Compiling and installing packages from the authors is not terribly
difficult when autoconf is used to configure it. It basically boils
down to three easy steps:

./configure
make
(as root)make install

Remember to cd into the directory where the program untared

Sometimes, you will have to pass options to the configure script and
you can determine what options are available by typing:
./configure --help

Usually, this system works fairly well, but in the case where it does
not, it can often be a rather complex task to assure that everything
is working correctly, and you should try and find packages if
possible.

6. Whizzy Stuff

6.1. Changing the Desktop Wallpaper

To change the background image of the desktop when using Nautilus,
right-click on the desktop and select "Change Background Image" from
the menu.

6.2. Changing the Toolkit Theme

You can change the appearance of buttons, scrollbars, and other elements
of certain applications. The part of an application which draws the
on-screen components is called the "toolkit", and there are a number of
different toolkits (such as GTK+, Qt, Motif, XForms, and Tk) used by
different applications. Unfortunately, since not all applications use
the same toolkit, changing the toolkit theme is different for each
application, and some toolkits are very limited in what can be
customized.

Gnome uses GTK+, as do applications written for Gnome. To change
the GTK+ theme, open the Gnome Control Center and choose the
"Theme Selector" (in the "Desktop" section). A number of themes are
bundled with Gnome; others can be downloaded from
http://gtk.themes.org/ and installed using the
"Install new theme…" button.

Below are examples of three different GTK+ themes:
(Click on a thumbnail to view a full screenshot).

Metal Theme Screenshot
Metal Theme
SatinBlack Theme Screenshot
SatinBlack Theme
by Nakitoma Mitsuoni
CurlyMonster Theme Screenshot
CurlyMonster Theme

by CurlyMonster.

Note: The CurlyMonster screenshot is also using the
windowsXP Sawfish theme by
Patrick McDermott.

The GTK+ CurlyMonster Theme can be downloaded from:
http://www.themes.org/resources/542/.

The SatinBlack Theme does not appear to be available anywhere
anymore :(.