Welcome to Linux Support and Sun Help
Search LinuxSupport

New to Linux?



If you're new to Linux and bamboozled by all the jargon and commands, here are some beginner-friendly guides to get you started. Note that Linux distributions can vary in terms of file locations and commands, so some things may be slightly different on your specific machine.


      What is Linux?

      How do I install it?

      Common Linux terminology

      The Linux filesystem layout

      Choosing a distro

      Linux equivalents of Windows apps

      Using the command-line

      Root and normal users

      Installing software

      Removing Linux

      Getting help online



What is Linux?

Linux is an operating system, like Microsoft Windows or Mac OS X, that controls the programs and hardware on your computer. It is completely free of charge and open source - anyone can download the programming code behind it and make modifications. With thousands of people around the world improving it, Linux is very powerful, flexible and reliable. Huge companies such as Google and Amazon make heavy use of Linux; IBM, Novell, Red Hat and others pay programmers to enhance the system. But many people contribute code to Linux in their spare time, just for the love of it!

Because Linux is a unique operating system, it looks and works differently to Windows and OS X. It won't natively run Windows applications (although there are compatibility layers such as Wine which lets it run certain Windows apps), but there's a vast amount of high quality software available for free. You may already have heard of Firefox and OpenOffice.org, for instance. Exploring and understanding Linux is a fascinating experience - it may work differently to your expectations, but you'll love its stability, freedom from viruses and spyware, and zero cost. The GPL licence used by Linux means it will always be free.


What is a distribution?

Linux is available in many different forms. Because it's free, anyone can make their own version built from the same core components but with differing software selections, themes and so forth. Some 'distros' are made by large companies (eg Novell's SUSE Linux and Red Hat Enterprise Linux) whereas others are one-man efforts (Slackware) or built by the internet community. See below for a guide to choosing a distro.



How do I install it?

Every month, our DVD includes one or more Linux distributions, most of which let you install Linux on your PC. Some of these distributions run in Live mode, which means they load and run straight from the DVD, so you can try Linux without installing. Other distros boot straight into the installer, which lets you copy Linux to your hard disk.

If you're currently running Windows, the installer may give you the option to set up a 'dual boot' system, whereby you can choose to start Windows or Linux when you boot up your PC. You'll find a step-by-step guide to using this DVD's main distro in the magazine's disc pages - but here are some general tips.


Booting this DVD

You should be able to boot this disc by restarting your PC with it in the drive. If you have problems, first check that your computer is configured to boot from the DVD (rather than the hard disk). Usually, you will need to access your PC's BIOS settings screen and make sure that the DVD drive comes first. On most PCs you can get this screen by pressing F1, F2 or Del after turning on the power. If you still have problems, you can try burning and booting the Smart Boot Manager CD-R ISO image in the System section.


Hard drive partitioning

A computer's hard disk is divided into partitions, each of which is accessed as a separate data storage area. Windows usually exists in a single partition occupying the whole drive, so adding a second operating system will require that each OS has its own portion of the disk.

Linux installations generally use two or more partitions: a root (/) partition for storing the OS files, and a 'swap' partition for virtual memory (ideally 512MB or 1GB). During the installation of a distro, you could opt to put the /home directory in a separate partition, so that you don't have to back up personal files when switching to a different distro.

Most Linux installers let you manage partitions and even resize Windows partitions to make room for Linux, so that you can set up the aforementioned dual-boot system. But as with any disk drive operation, we strongly recommend backing up your important data before doing anything!



Common Linux terminology

Here are some of the words and phrases you'll come across regularly in the Linux world...

  • Kernel - this is the core program of Linux. It starts when you boot the operating system and is responsible for managing hardware and memory.
  • GNU - GNU's Not Unix, a project to create a fully free Unix-like operating system. It was started in 1984, and the Linux kernel made it a complete system in 1991. The OS we use can correctly be referred to as GNU/Linux accordingly, but for brevity we tend to use just 'Linux'.
  • Open source / Free Software - Computer programs for which the human-readable source code (recipes) are available for everyone to share and enhance.
  • X Window System (or X, or X11) - The graphical layer that runs on Linux. It provides a basic foundation for fully-fledged desktops such as...
  • Gnome, KDE and Xfce - These provide desktop panels, utilities, menus and other desktop features. Because the Linux GUI is very flexible, you have a choice of desktop environments to use. There are also small 'window managers' which have fewer features but are very fast, such as IceWM and Fluxbox. In 99% of cases, they can all run any Linux program.
  • Shell/Terminal - The command-line interface for Linux. Depending on the distro you're running, you'll find this in your program menu as Terminal, Konsole, Shell or XTerm.
  • Home directory - The location in the Linux filesystem that stores your personal files (see the filesystem guide below).
  • Package - A program for Linux. Software is bundled into packages which contain more than the executable binary - eg documentation, graphics, libraries etc.
  • Library - A piece of executable code that other programs can use, thereby sharing the load. For instance, many programs need to process XML files, so they all use the libxml2 library. This means they don't all have to have their own implementations of XML code.
  • Repository - An online storage place for Linux programs. Different distros have their own package repositories with different versions of software, depending on how frequently they're updated.
  • Dependency - Many programs depend on other programs or libraries. For instance, Firefox is built using a graphical toolkit called GTK, so GTK is therefore a dependency of Firefox. When installing software via your distro's package manager, it will attempt to find all dependencies for the program.
  • Tux - The Linux penguin mascot!



The Linux filesystem layout

When Linux is installed, it creates a tree of directories (folders) on your hard drive to store the operating system and programs. These directories start in what's called the 'root' directory: / . The slash means the absolute start of all directories - everything else is a subdirectory from it. Here are some of the most common ones:

  • /etc - System-wide configuration files, eg for the X Window System or Apache web server.
  • /bin - Essential binaries (programs) for basic system functionality.
  • /sbin - Special binaries only to be executed by the 'root' admin superuser.
  • /lib - Libraries for programs to use. For instance, the libc C library lives here, which lets all other programs use it. Otherwise they'd have to keep their own versions of the code libraries, wasting space.
  • /usr - The main store for programs. In here you'll find subdirectories of bin, lib etc. where large software packages are installed (eg Gnome, Firefox).
  • /home - Where your personal files are stored. For instance, if your login username is 'steve', then all your files will be placed in /home/steve/. A subdirectory of this called Desktop is often used to store the files you see on your desktop.
  • /opt - An optional place for large software bundles. For instance, some versions of OpenOffice.org install here, keeping them in one place for easy removal.
  • /tmp - Temporary files created by programs; this directory is usually cleaned out when the system boots.
  • /var - Variable files - eg files which change a lot (such as log files).
  • /proc - Information on system processes (running programs) and hardware. Normally you don't need to venture into here!
  • /lost+found - A rarely-used directory, this stores recovered files after a complete system crash. If you suspect you've lost data, try looking in here.



Choosing a distro

As you've read in the magazine, Linux is available in different bundles called distributions (or distros). There are hundreds of Linux distros available, covering a vast range of tasks from network monitoring to mobile phones. However, for most of us, the choice really comes down to a small handful. Which one is right for you? Read on, and then try them yourself!

  • Ubuntu - Currently the most popular Linux distribution in the world. Geared towards desktops, although the LTS (Long Term Support) releases work well on servers. Uses Gnome as its default desktop; the variants of Kubuntu and Xubuntu use KDE and Xfce respectively. Ubuntu has a small but excellent range of default software, and a supremely helpful supporting community.

  • OpenSUSE - Sponsored by Novell, this distro includes a very powerful configuration tool called YaST. It can be quite heavy and slow to boot, but has excellent documentation.

  • Mandriva - One of the most user-friendly Linux distributions around. Features an attractive desktop and plenty of graphical configuration tools. The Mandriva One variant is a Live distro - it runs straight from the CD.

  • Fedora - Supported by Red Hat, this is one of the most bleeding-edge distros. If a new feature has been announced for Linux, chances are you'll find it first here!

  • PCLinuxOS - Originally based on Mandriva, this distro is largely the work of one man, and is popular due to its speed and simplicity.

  • Debian - An extremely reliable distro, mainly used on servers because of its slow release rate (to ensure maximum stability). Ubuntu is based on mid-development branches of Debian.

There are many other distros, and you can find a vast amount of information online at DistroWatch.com.

So, where do you get these distros? All the ones listed above are free, so you can grab them online via the DistroWatch.com links, or find them on future editions of Linux Format DVDs. Every month we include one or more Linux distros -- so build up a library, try them out, and find the one you feel most comfortable with!



Linux equivalents of Windows applications

When you first start using Linux, some of the application names may sound odd. This chart will help you to find free Linux equivalents of your favourite Windows programs.

Windows appLinux app(s)
Internet ExplorerMozilla Firefox, Opera, Konqueror
Outlook ExpressThunderbird, Kontact, Evolution
Microsoft OfficeOpenOffice.org, KOffice, AbiWord, Gnumeric
Adobe PhotoshopThe Gimp, Krita
Windows / Yahoo! MessengerPidgin, Kopete
(Home finance software)GnuCash
(Sound recording software)Audacity
Windows Media PlayerMPlayer, VLC, Xine
WinampRhythmbox, AmaroK, BMP


Using the command-line

While most day-to-day tasks in Linux can be achieved through the graphical user interface, some jobs require the (very powerful) Linux command-line, typically found as 'Shell', 'Terminal', 'Konsole' or 'XTerm' in your program menu. It's extremely versatile, but don't worry - it's not difficult to grasp! Read on to understand how it works...


Listing files and moving around

The most common command is ls, which means 'list files' and shows the files in the current directory. Most commands can take extra options, sometimes called arguments or parameters, eg ls -lh (ls space dash l h). This means 'run the ls command, but in the mode that it lists files horizontally, and displays human-readable information on file sizes'. Give it a try and see - to get help on ls and other commands, enter man command (eg man ls). Press Q to exit the manual page viewer.

Perhaps the second most-used command is cd, which means 'change directory'. For instance, if you see a directory (aka folder) called mypics in your current directory, enter:

cd mypics/

Now you will be in the mypics directory, which may be represented by a change in your command-line prompt (or you can enter pwd, 'print working directory'). To go down a directory, ie into the previous directory, enter cd .. (cd space dot dot). And to return to your home directory, enter cd ~ (cd space tilde - hunt it down on your keyboard!).


Copying, moving and deleting files

Copying files is simple. Say you want to copy file1.txt to file2.txt:

cp file1.txt file2.txt

Et voila, a new file2.txt. If you want to copy files into a directory, use:

cp blah.txt foo.txt mydir/

Next we have mv, the 'move' command. This can also be used to rename a file, as such:

mv oldfilename.txt newfilename.txt

To move multiple files into a directory, follow the example for cd above. Finally, we have rm, which removes files:

rm file1.txt file2.txt

To remove a directory, rm needs to be given a 'recursive' option, -r, eg rm -r mydir. Also note the use of wildcards in Linux commands. If you use an asterisk (*) character, it means 'replace with any file name'. For instance, say you want to delete all files in a directory: you'd enter rm * (rm space asterisk). To delete files that end in .deb, use:

rm *.deb

So, those are the most common commands and parameters you will use on the command-line. Experiment and have fun!


Keyboard shortcuts

After you've entered a command, you can press the Up cursor key to retrieve it and execute it again. Indeed, you can press Up and Down as many times as you want to cycle through previous commands! When you're entering a command or filename, you can type the first few letters and then press Tab to auto-complete the file/command. To exit the command-line quickly, you can press Ctrl+D.

If you've entered a command that's going to take ages to complete (eg listing every file on the system), and you want it to quit, press Ctrl+C - it sends a 'stop' signal to the program. Alternatively, you can put it in the 'background' by pressing Ctrl+Z - you'll get your normal prompt back, and you can enter fg to resume the program you backgrounded.


Extracting archives

Most Linux software is supplied in compressed archive format, a single file that expands to a bunch of other files. You'll no doubt be familiar with .zip files on Windows, and the principle is the same here. You can extract these files in your file manager, but sometimes you may prefer to use the command-line. For instance, say you have a file called stuff.zip in your home directory. Open a command-line and enter:

unzip stuff.zip

You'll see a list of the new files being created. In most cases, they'll be created in a separate directory. Say the previous command created stuff/file1.txt and stuff/file2.jpg. You can switch into the new directory by entering:

cd stuff/

cd means 'change directory' and does exactly what it says! To go 'down' a directory - ie into the parent directory, enter cd .. (cd space dot dot). The '..' means 'directory beneath this one'. If you enter that, you'll be back in your home directory.

Some files are provided in different formats, the most common of which are .tar.gz (aka .tgz) and .tar.bz2 (aka .tbz2). For the former, enter:

tar xfvz filename.tar.gz

And for the latter, use:

tar xfvj filename.tar.bz2

You can then cd into the newly created directory and then enter ls to see what files are there. Quick tip: to get more information on files, such as their modification time and size, enter ls -lh.

To get back to your home directory from wherever you are, simply enter cd on its own. To work with files saved to your desktop, enter cd Desktop when you're in your home directory.


Redirecting output

Sometimes you'll want to send the output of a command to a text file. For instance, if you're listing all the files in a directory and too much information is whizzing by, you can direct the ls output like this:

ls -lh > filelist.txt

Now you can open filelist.txt in a text editor to view the results, or enter less filelist.txt to view them at the command-line (less is a simple file viewer - press Q to quit).

Another useful tactic is to 'pipe' the output of one program into another. A few moments ago, we redirected the results of an ls command to a text file, and then viewed that file. But we can do this quicker! We can feed the output of ls straight to the less viewer like this:

ls -lh | less

That pipe character is usually found on the bottom-left of keyboards (Shift+\). Now we can view the output of the command in less without needing a separate text file - use the Up and Down cursor keys to navigate through the file, Space to skip a page and Q to quit.



Root and normal users

Linux is a multi-user operating system: that is, many people can use it at the same time (if logged in remotely). For home machines, you typically set up two user accounts during installation - one for your day-to-day work, and one for 'root', the administrator user. To protect your system, only root can change critical files such as startup scripts and libraries.

Consequently, during installation of a distro you'll provide passwords for your normal user account and root. After installation, when you run certain programs that modify the system (such as a package installer), you'll be prompted for the root password. Note: Ubuntu Linux has a slightly different system, in that the root account is disabled and you're prompted for your normal user password to do administration jobs.

At the command line, you can switch to the root user with su in most distros. You'll then be prompted for the root password. In Ubuntu, enter sudo bash which will prompt for your normal user password.



Installing software

If you're using a distribution such as Ubuntu, Mandriva, Fedora or OpenSUSE, you'll have access to a vast wealth of software in your distro's package manager. Where possible, we recommend installing software from that source - everything is pre-packaged and carefully tailored for your choice of distro.

However, sometimes you'll want to install software from another source: when a program isn't available via your distro's package manager, when a newer version is released on the program's website, or when you've got it from this DVD. There are literally thousands of combinations of file formats, dependencies and installation methods in use, which can make things tricky, but with some experimentation there's always a way!

Let's take .deb packages, as used by Ubuntu, Debian and other Debian-based distros. If you've copied a .deb package from our DVD (or several .debs) into your home directory, you can install it via the command-line. First, switch to the root admin user with sudo bash in Ubuntu or just su in Debian; you'll be prompted for your password. You can then enter:

dpkg -i filename.deb

The dpkg utility will try to install your program, or alert you to any missing dependencies. If you want to install multiple packages at once, enter dpkg -i *.deb - the asterisk (*) is a wildcard, meaning 'all files that end with .deb'.

The other main binary package format is .rpm, used on Fedora, Mandriva, PCLinuxOS, OpenSUSE and many other distros. With the .rpm (or multiple .rpms) in your home directory, open up a command-line and switch to the root admin user by entering su. Then try:

rpm -ivh filename.rpm

For multiple packages, use rpm -ivh *.rpm, where the asterisk (*) is a wildcard meaning 'all packages that end with .rpm'. If you are alerted to missing dependencies, try finding them in your distro's package manager. Note that to upgrade packages, you should use rpm -Uvh filename.rpm.


Installing from source code

When a developer releases a new version of his/her program, he/she will typically just release the source code, not having time to package it for the hundreds of Linux distributions out there! That's why many of the new programs on this DVD are supplied only in source code format. So if the new version isn't in your distro's package manager, you can try building it from the source code - that is, the human-readable recipe that makes up the program.

Before do you this, you'll need the right software to compile programs. Again, this varies greatly from distro to distro, but you'll typically need the 'gcc' C compiler as a starting point, available in almost every distro. In Ubuntu, you can install the 'build-essential' package which provides many tools for compiling source code.

Let's say you have a source code archive called coolprog-1.0.tar.gz in your home directory. You already know how to extract it from the instructions above, but here's a full run-through:

tar xfvz coolprog-1.0.tar.gz

You'll see a list of files whizz by as the archive is extracted. This will usually create a new directory, so take note of that and enter:

cd coolprog-1.0/

Now you're in the directory of the source code. The first thing to do is enter ls and see if there are any files called README or INSTALL lying around. If so, check them out (eg less INSTALL) for instructions on how to procede from here, as installation methods and dependencies vary greatly.

Most source code bundles use a common method involving three commands. If you see a file called 'configure' amongst the other files, enter:

./configure

The dot-slash at the start is essential: it tells the command-line to run the file called 'configure' right here, and not search for it in /bin, /usr/bin etc. This script analyses your system to make sure you have the right dependencies - if it fails, make a note of the dependency you're missing, and install it via your distro's package manager. For instance, if it complains about 'missing gtk libraries' or similar, find a package called 'gtk-dev' or 'libgtk-dev' in your package manager and install it. Again, there's so much variation in distros and we'd love to be more specific, but you'll get used to finding dependencies!

Re run the ./configure script, and continue to install any dependencies needed. When the script finishes without an error, enter:

make

This will compile the source code into an executable binary program. Depending on the size of the program (and speed of your machine), this can take anywhere between 20 seconds and a couple of hours! When the compilation process has finished, you're ready to install the new program into your Linux system. Switch to the root user (sudo bash in Ubuntu or just su in other distros), then enter:

make install

If all's well, you can enter exit (so that you're back as your normal user account), then enter the name of the program to start it up (eg coolprog). In most cases, software will be installed in the /usr/local directory - eg /usr/local/bin/coolprog as the main program executable. You can uninstall the program by switching back to root and entering make uninstall in the program's source code directory.

Phew! It's a lot of work at first, but after some playing it becomes second-nature. As mentioned, it's always easiest to see if a program is available via your package manager at first - this is the second option. Good luck!



Removing Linux

If you want to remove all traces of Linux from your computer, there are two main steps: removing the Linux partitions and removing the bootloader. The bootloader should be done first, and the easiest way is to boot from your Windows disc into rescue mode and then run fixmbr. This will reset the bootloader back to the Windows one.

If you don't have a Windows disc, there are other tools for resetting the hard drive bootloader. The Ultimate Boot CD (internet link) contains a couple of these. Download the CD image, burn it to a disc and and boot from it. Select Filesystem Tools, then Partition Tools, then MBRtool. Press 4 then 9 to reset the boot code. Alternatively, use MBRwork from the same menu - in this case the option you need is "Install Standard MBR Code" and you should also set the first partition to active while you're there.

Once the bootloader is reset, you can use any partition manager to remove the Linux partitions and resize the Windows one to fill the disc. If you have something like Partition Magic on Windows, use that; or you can use GParted from the Ubuntu install CD/DVD. Boot to the Live mode desktop (the first option on the Ubuntu boot menu) and select Administration, Partition Editor from the System menu. Here you can delete all but your Windows partition and then resize that to fill the hard drive. Hit the Apply button, wait for it to finish, and reoot.



Getting help online

If you have access to the internet, you have a huge amount of help at your disposal if something goes wrong. There are millions of Linux users online -- if you're stuck with a problem, chances are someone else has come across the same thing, and knows a solution! To start with, your best bet is the Linux Format Forums, maintained by the LXF team. It's free to sign up (don't worry, no spam!) and the forums are very friendly.

However, if you can't get any help there, or your problem is very distro-specific, you can also try:

There are many other Linux-related forums out there -- as always, Google is your friend!

Forum tips: When posting a message, make sure you provide plenty of detail. Just saying "Firefox doesn't work!" won't get you anywhere -- state which distro you're using, which version of Firefox you're running, what error messages you see etc. If your question is hardware-related, provide lots of info on your machine (CPU, RAM, graphics card etc). Most of the regulars on these forums are volunteers, so if you don't get the right sort of help, stay calm and try a different website. Good luck!



Valid HTML 4.01! Valid CSS!