Linux/Unix

A complete guide to LINUX for n00bs

I. What is Linux?
II. Trying it out
III. Installing
IV. What to do now
V. The Console

Intro:
This tutorial is written with the total Linux n00b in mind.
I’ve seen too many n00bs get totally left in the dark by asking what
the best distro is. They seem to only get flooded with too many
answers in so short a time. I’m a little bit of a n00b too, so I know
how it feels. I will cover a grand total of two basic distros. You may
learn to strongly prefer other ones (I do!) but this is just to get
you started. I touch on a number of topics that would be impossible to
go into in depth in one tutorial, so I encourage you to actively seek
out more about the concepts I make reference to.

I. What is Linux?

Linux is basically an operating system (OS for short). The Windows
machine you’re (probably) using now uses the Mcft Windows
operating system.

Ok, so what’s so different about Linux?

Linux is part of a revolutionary movement called the open-source
movement. The history and intricacies of that movement are well beyond
the scope of this tutorial, but I’ll try and explain it simply. Open
source means that the developers release the source code for all their
customers to view and alter to fit what they need the software to do,
what they want the software to do, and what they feel software should
do. Linux is a programmer?s dream come true, it has the best compilers,
libraries, and tools in addition to its being open-source. A
programmer’s only limit then, is his knowledge, skill, time, and
resolve.

What is a distro?

A distro is short for a distribution. It’s someone’s personal
modification or recreation of Linux.

What do you mean by distros? I just want Linux!

Since Linux is open source, every developer can write his own version.
Most of those developers release their modifications, or entire
creations as free and open source. A few don’t and try to profit from
their product, which is a topic of moral debate in the Linux world.
The actual Linux is just a kernel that serves as a node of
communication between various points of the system (such as the CPU,
the mouse, the hard drive etc.). In order to use this kernel, we must
find a way to communicate with it. The way we communicate is with a
shell. Shells will let us enter commands in ways that make sense to
us, and send those commands to the kernel in ways that makes sense to
it. The shell most Linux’s use it the BASH shell (Bourne Again SHell).
The kernel by itself will not do, and just a shell on top of the kernel
won?t either for most users; we are then forced to use a distribution.

What distro is best?

This is not the question you want to ask a large number of people at
one time. This is very much like asking what kind of shoe is best,
you’ll get answers anywhere from running shoes, hiking boots, cleats,
to wingtips. You need to be specific about what you plan on using
Linux for, what system you want to use it on, and many other things. I
will cover two that are quick and easy to get running. They may not be
the best, or the quickest, or the easiest, or the most powerful, but
this is a guide for getting started, and everyone has to start
somewhere.

How much does it cost?

computer + electricity + internet + CD burner and CDs = Linux
I’ll let you do your own math.
Note however that a few do charge for their distros, but they aren’t
all that common, and can be worked around. Also, if you lack internet
access or a CD burner or CDs or you just want to, you can normally
order CDs of the distro for a few dollars apiece.

II. Trying it out.

Wouldn’t it stink if you decide to wipe out your hard drive and install
Linux as the sole operating system only to learn that you don’t know
how to do anything and hate it? Wouldn?t it be better to take a test
drive? 95 out of a 100 of you know where I’m heading with this section
and can therefore skip it. For those of you who don’t know, read on.

There are many distros, and most distros try to have something that
makes them stand out. Knoppix was the first live-CD distro. Although
most of the other main distros have formed their own live-CDs, Knoppix
is still the most famous and I will be covering how to acquire it.

A live-CD distro is a distribution of Linux in which the entire OS can
be run off of the CD-ROM and your RAM. This means that no installation
is required and the distro will not touch your hard disk or current OS
(unless you tell it to). On bootup, the CD will automatically detect
your hardware and launch you into Linux. To get back to Windows, just
reboot and take the CD out.

Go to the Knoppix website (www.knoppix.com). Look around some to get
more of an idea on what Knoppix is. When you’re ready, click Download.
You’ll be presented with a large amount of mirrors, some of which have
ftp and some of which have http also.

note: the speed of the mirrors vary greatly, and you may want to
change mirrors should your download be significantly slow.

Choose a mirror. Read the agreement and choose accept. You’ll probably
want to download the newest version and in your native language (I’ll
assume English in this tutorial). So choose the newest file ending in
-EN.iso

note: you might want to also verify the md5 checksums after the
download, if you don’t understand this, don’t worry too much. You just
might have to download it again should the file get corrupted (you’ll
have to anyway with the md5). Also, a lot of times a burn can be
botched for who-knows what reason. If the disk doesn?t work at all,
try a reburn.

Once the .iso file is done downloading, fire up your favorite
CD-burning software. Find the option to burn a CD image (for Nero, this
is under copy and backup) and burn it to a disk. Make sure you don’t
just copy the .iso, you have to burn the image, which will unpack all
the files onto the CD.

Once the disk is done, put it in the CD-ROM drive and reboot the
computer. While your computer is booting, enter CMOS (how to get to
CMOS varies for each computer, some get to it by F1 or F2 or F3, etc.)
Go to the bootup configuration and place CD-ROM above hard disk. Save
changes and exit. Now, Knoppix will automatically start. You will be
presented with a boot prompt. Here you can input specific boot
parameters (called cheatcodes), or just wait and let it boot up using
the default.

note: Sometimes USB keyboards do not work until the OS has somewhat
booted up. Once you?re actually in Knoppix, your USB keyboard should
work, but you may not be able to use cheatcodes. If you need to,
attach a PS/2 keyboard temporarily. Also, if a particular aspect of
hardware detection does not work, look for a cheatcode to disable it.
Cheatcodes can be found on the Knoppix website in text format (or in
HTML at www.knoppix.net/docs/index.php/CheatCodes).

Upon entering the KDE desktop environment, spend some time exploring
around. Surf the web, get on IM, play some games, explore the
filesystem, and whatever else seems interesting. When your done, open
up the console (also called terminal, xterm, konsole, or even shell)
and get ready for the real Linux. See section V for what to do from
here.

note: to function as root (or the superuser) type su.

It’s not entirely necessary that you are a console wizard at this point
(although you will need to be sooner or later), but a little messing
around wont hurt.

Just as there are many Linux distros, so there are also many types of
Knoppix. I won?t go into using any of them, but they should all be
somewhat similar. Some of them include: Gnoppix, Knoppix STD, Morphix,
and PHLAK. Other distros also have live-CDs.

III. Installing

I will guide you through the installation of Fedora Core 2. The reason
I chose Fedora is because it contains the Anaconda installer, which is
a very easy installer.

Download the discs from here:
http://download.fedora.redhat.com/pub/fedo…ore/2/i386/iso/
If the link doesn?t work, then go to www.redhat.com and navigate your
way to downloading Fedora (odds are your architecture is i386).
You will want to download the FC2-i386-disc1.iso and burn it using the
method for Knoppix. Do the same for all the discs.

Note: do NOT download the FC2-i386-SRPMS-disc1.iso files.

Now, once you?re ready, insert disc 1 into the drive and reboot.

The installer should come up automatically (if not, then see the
Knoppix section on CMOS).

Note: installer may vary depending on version. Follow directions best
you can using your best judgement.

1. Language: choose English and hit enter
2. Keyboard: choose us (probably) and hit enter
3. Installation media: choose local CDROM (probably) and hit enter
4. CD test: you can choose to test or skip
5. Intro: click next
6. Monitor: choose your monitor to the best of your ability, if you?re unsure, choose on of the generic ones
7. Installation type: choose which ever you want (default should be fine)
8. Partition: choose to automatically partition (unless you know what you?re doing)
9. Partition: the default partitions should suffice
10. Boot loader: choose your boot loader (grub for default)
11. Network settings: choose the correct settings for your network (generally, don?t mess with anything unless you know what you?re doing)
12. Firewall: you can choose a firewall if you want to
13. Language support: choose any additional language support you want
14. Time zone: pick your time zone
15. Root password: set your root password (root is the admin, or superuser; you want it to be very secure)
16. Packages: choose which packages you want to install. For hard drives over 10 gigs, you can go ahead and choose all
packages (depending on how much disk space you plan on taking up later, note that most everything you?ll need is a package: the exception
being large media files). You will generally want to install all the packages you think you?ll ever need. Two desktop environments aren?t necessary.
Make sure you have at least one and the X window system! (if you want a GUI that is). I suggest you get all the servers too.

Note: Knoppix uses the KDE Desktop environment

17. Make sure everything is all right, and install
18. You can create a boot disk if you want

Note: Desktop environments might have a set-up once you enter them

IV What to do now

Now that you have a Linux set-up and running, there are many paths you
can head down. First, you should explore your GUI and menus. Browse
the web with Mozilla, get on IM with GAIM, play games, add/delete
users, check out OpenOffice, and anything else that might be part of
your daily use. Also, set up a few servers on your computer to play
around with, specifically SMTP (*wink*wink*), FTP (vsftp is a good
one), and either telnet or SSH (OpenSSH is a good one). The setup and
use of these are beyond the scope of this tutorial, but researching
them could prove to be very educational.

The filesystem
The Linux (and Unix) filesystem is different from the normal Windows
that you?re used to. In Windows, your hard drive is denoted ?C:\? (or
whatever). In Linux, it is called the root directory and is denoted
?/?. In the / directory, there are several default folders, including
dev (device drivers) mnt (mount) bin (binaries) usr (Unix System
Resources) home, etc, and others. I encourage you to explore around
the whole file system (see section V) and research more.

Once you are well situated, it?s time to get into the heart and power
of Linux: the console. The next session will guide you through it and
set you on the path to finding out how to do stuff for yourself. You
will (probably) want to start learning to rely less and less on the
GUI and figure out how to do everything through the console (try
launching all your programs from the console, for example).

V. The Console

The Console might look familiar to DOS if you?ve ever used it. The
prompt should look something like the following:

AvatharTri@localhost avathartri$

With the blinking _ following it. This can vary greatly as it is fully
customizable. Let?s get started with the commands.

First, let?s explore the file system. The command ls will “list” the
files in the current directory. Here?s an example:

AvatharTri@localhost avathartri$ ls

It should then display the contents of the current directory if there
are any. Almost all commands have options attached to them. For
example, using the -l option, which is short for “long” will display
more information about the files listed.

AvatharTri@localhost avathartri$ ls -l

We will get into how to find out the options for commands and what
they do later.

The second command to learn will be the cd command, or “change
directory”. To use it, you type cd followed by a space and the
directory name you wish to go into. In Linux, the top directory is /
(as opposed to C:\ in Windows). Let?s get there by using this command:

AvatharTri@localhost avathartri$ cd /
AvatharTri@localhost /$

Now, we are in the top directory. Use the ls command you learned
earlier to see everything that?s here. You should see several items,
which are directories. Now, let?s go into the home directory:

AvatharTri@localhost /$ cd home
AvatharTri@localhost home$

And you can now ls and see what?s around. In Linux there are some
special symbol shortcuts for specific folders. You can use these
symbols with cd, ls, or several other commands. The symbol ~ stands
for your home folder. One period . represents the directory your
currently in. Two periods .. represent the directory immediately above
your own. Here?s an example of the commands:

AvatharTri@localhost home$ cd ~
AvatharTri@localhost avathartri$

This moved us to our user?s personal directory.

AvatharTri@localhost avathartri$ cd .
AvatharTri@localhost avathartri$ cd ..
AvatharTri@localhost home$

The cd .. moved us up to the home directory.
As you?ve probably noticed by now, the section behind the prompt
changes as you change folders, although it might not always be the
case as it?s up to the personal configuration.

You can use these symbols with the ls command also to view what is in
different folders:

AvatharTri@localhost home$ ls ~
AvatharTri@localhost home$ ls ..

And you can view what is in a folder by specifying its path:

AvatharTri@localhost home$ ls /
AvatharTri@localhost home$ ls /home

The last command we will cover as far as finding your way around the
filesystem is the cat command. The cat command will show the contents
of a file. Find a file by using the cd and ls commands and then view
its contents with the cat command.

AvatharTri@localhost home$ cd [directory]
AvatharTri@localhost [directory]$ ls
AvatharTri@localhost [directory]$ cat [filename]

Where [directory] is the directory you want to view and [filename] is
the name of the file you want to view. Omit the brackets. Now, if the
file you viewed was a text file, you should see text, but if it wasn?t,
you might just see jumbled garbage, but this is ok. If the file goes
by too fast and goes off the screen, don?t worry, we will get to how
to scroll through it later.

One of the most useful commands is the man command, which displays the
“manual” for the command you want to know more about. To learn more
about the ls command:

AvatharTri@localhost home$ man ls

And you will see the manual page for ls. It displays the syntax, a
description, options, and other useful tidbits of information. Use the
up and down arrows to scroll and press q to exit. You can view the
manual pages for any command that has one (most commands do). Try this
out with all the commands that you know so far:

AvatharTri@localhost home$ man cd
AvatharTri@localhost home$ man cat
AvatharTri@localhost home$ man man

One very crucial option to the man command is the -k option. This will
search the descriptions of manual pages for the word you specify. You
can use this to find out what command to do what you need to do. For
example, let?s say we want to use a text editor:

AvatharTri@localhost home$ man -k editor

And you should see a list of apps with a short description and the
word “editor” in the description.

With a blank prompt, you can hit tab twice for Linux to display all
the possible commands. For Linux to display all the commands beginning
with a certain letter or series of letters, type those letters and hit
tab twice.

Note: This is actually a function of BASH and not Linux, but BASH is
the default Linux shell.

Now that you know a little about moving around the filesystem and
viewing manual pages, there is one more trick that we will cover to
help you out. Remember how the man pages were scrollable as in you
could use the arrow keys to scroll up and down? That is because the
man pages use something called the less pager. We?re not going to go
into what this does exactly and how it works, but that?s definitely
something that you will want to look up. Here?s how to use the less
pager with a file:

AvatharTri@localhost home$ cat [filename] | less

That uses something called a pipe. The line is the vertical line above
enter on your keyboard. Briefly, what this does is take the output
from the cat command, and stick it in the less pager. By doing this,
you can view files that would normally run off the screen and scroll
up and down.

Some final commands to check out:

mkdir - make directories
cp - copy file
mv - move file
rm - remove file
rmdir - remove directory
grep - search a file for a keyword
pwd - display current working directory
top - display system resources usage (kill the program with control + c)

HOW TO install FreeBSD...a simple guide

A step-by-step guide to installing FreeBSD 5. It assumes moderate experience with linux and leaves you with a fully updated FreeBSD system.

FreeBSD Installation

A. 5.x vs 4.x
The first thing to understand about FreeBSD is that there are two lines of development. The -STABLE branch is marked with a 4.x version number and the most recent version is 4.10. It is well tested and very solid, but does not include the most recent technology. The -CURRENT branch, marked with a 5.x version, is the “unstable” branch. However, it is nicely stable at the moment and is coming along quite well. Most users should go with 5.x and these instructions are only valid for that tree.

NOTE: DragonFlyBSD ( www.dragonflybsd.org ) is a continuation of the 4.x line. It uses lock-less (no mutexes) SMP support and a Light Weight Kernel Threading system. It has a lot of promise and is developing at a breakneck pace, but it should still be thought of as “R/D.”

B. Getting Media
I am not going to say much about this. There are links to various ftp mirrors at www.freebsd.org and the directory structure is fairly self-explanatory. There are however several choices for ISO. You should choose the miniinst ISO. It is small and will include everything you need for the base system.

C. Starting Installation
After, the CD boots up you will enter the…ahh…..majestic sysinstall. You can safely ignore most of the options and just choose a standard installation. Most of the install process is pretty easy and anyone who has some experience with linux or unix will be able to handle it without much stress. However, creating partitions and dealing with drives will seem very odd to your standard linux user.

D. Hard Disc Management in FreeBSD
Ok, the first thing to get used to here is that IDE drives are not hda, hdb…etc. They are ad0, ad1 and so forth. SCSI discs are da0, da1…and so on. There is one other thing that is going to freak some people out. You create slices, not partitions, on the disc and then create partitions within those slices. For example, the first partition in the first slice on the first IDE disc would be ad0s1a. Just accept it.

E. Partitioning
Sysinstall will lead you through the partitioning and its fairly easy to understand. The first part will ask you to choose a disc or discs to partition and then will show you a “slice editor.” This is where you will create your slice. I advise you to only make one. While multiple slices are easy to deal with, it just adds complication. If this is not your first installation of a BSD type OS, then you can ignore me and why are you reading this again?

After creating your slice, you will be prompted to choose the drive(s) to install an MBR on. The FreeBSD boot loader is nothing to write home about, but it tends towards working. After this step, you can create partitions. There is not much to say here. At the top of the screen it will show your slice(s) and when one of them is selected you can use the controls to create a partition on it. You will need at least a root and swap partition. On the non-swap partitions it is usually a good idea to enable soft-updates.

F. Distribution Sets
This is a simple section, select minimal.

G. Continue Installation
The rest of this is pretty simple. Make sure you install from the CD and not the Internet. The bulk of the install is now done. After it copies files to your disc, it will start the configuration process. This is all pretty self-evident, but there are a couple things you should know.

Network Configuration

Don’t be scared by the names, in *BSD devices are named after their drivers. There is also a short description after the name, so you should be able to choose the right one. The rest of the network config is easy, just follow the prompts.

System Console Configuration

You can pretty much ignore this, you may want to look around for your own knowledge and of course you could pick a nice screen saver here, but other then that I would leave it alone for now.

Time Zone

All I have to say here is that if you live in the US, after you choose “America – North and South” hit the end key. The US is at the bottom of the list and hitting end is the quickest way there.

Linux

Say no, we will do this later and with an updated linux_base.

Mouse

OK, welcome to the wonderful and amazing world of moused. Answer the first question truthfully, and then you can tweak the settings in the “Please configure your mouse” dialog. Whatever you do, be sure to enable the daemon. Also, for most users that is all you will have to do. You can safely ignore the other options.

Package Installation

At this point, the installer will ask you to install binary packages. Say no. These binaries are out of date and not included on our CD.

Of users and roots

This isn’t the most thrilling section, add a user when it asks you to and set a root password after that. The only thing I have to say about this process is when the new user dialog comes up leave the “Group:” box unchanged and add “wheel” to the Member groups. You also might want to set your shell to /bin/tcsh. As for setting the root password, if you can’t handle that we have bigger problems.

Rebooting

Ok, next it will ask if you would like to visit the general config area. Select no and you will be brought back to the main menu. Exit the install, reboot without the CD in and enjoy the boot messages.

H. The Real Post-Install
At this point, I am going to assume that you are now looking at a login prompt and thinking “my my…FreeBSD boots quite quickly doesn’t it.” Well, our task is not done yet…there is a reason we did a minimal install. We are going to do most of it ourselves. First, lets upgrade to -CURRENT. This isn’t a practice I would usually recommend, but 5.x is close to being tagged stable and -CURRENT is rather solid at the moment. First, I need to explain how things are done in the BSD world.

Sup?

CVS up; you up; we all CVSUP. Cvsup is a very interesting program that I am not going to explain in detail here. All you really need to know is that it updates source trees. You see, that is the thing. You may be used to /usr/src not doing much. In BSD it has a job, it holds the source for the entire base system. However, we did a minimal install and no source is there. It wouldn’t be up2date anyway. So, lets fix that. Login as root and type the following: pkg_add -r cvsup-without-gui

pkg_add is the binary installer for FreeBSD and the -r argument tells it to fetch binaries from the net. It will also fetch any deps that you might need. Switch to another console while this is happening and login as root. Do the following:

cd /etc

cp /usr/share/examples/etc/make.conf /etc/make.conf

cp /usr/share/examples/cvsup/standard-supfile /usr

cp /usr/share/examples/cvsup/ports-supfile /usr

chmod u+w /etc/make.conf /usr/standard-supfile /usr/ports-supfile

What was that? Well here is the rundown. Make.conf is the file that controls the building of programs from source on FreeBSD and the supfiles tell cvsup where to get the source for the base system and the ports system, also where to put said source. They come out of /usr/share/examples without the write bit set and that gets annoying. So we set that. Now switch back to the first console and type rehash. This tells tcsh to check its path for new programs. Now, edit the standard supfile that is in /usr. You can either use ee or vi. I like vi. Scroll down to the line that looks a bit odd. It will be something like:

*default host=CHANGE_THIS.FreeBSD.org

The “CHANGE_THIS” is where you put what cvsup server to use. Choose a number between 1 and 9, like 4, and put cvsup4 where CHANGE_THIS is. So it would end up being:

*default host=cvsup4.FreeBSD.org

Now exit your editor and run cvsup /usr/standard-supfile

If everything goes correctly, you will see a lot of text scrolling on the screen. If it says something about a bad connection, try another number.

Make.conf

Now ’tis the time for all good men (and women) to edit their make.conf . This is not difficult, in fact have a look around the file. It may be long, but it is pretty simple. Now, uncomment the CPU setting and the CFLAGS setting. Set the CPU to your CPU (there will be a list in the comments above the setting) and set the CFLAGS to -O2. (NOTE: If the base system fails to build, downgrade your CFLAGS back to -O).

Build Your World

When CVSUP finishes (it will be awhile…go get some coffee), cd to /usr/src and run make buildworld. That command will do exactly what it sounds like. It builds your world, or base system. While its doing that, lets get you a kernel. First, cd to /usr/src/sys/i386/conf then cp GENERIC to some file of your choosing. Any name you want. However, be aware that this is going to show up in a uname -a. Now, crack open your new file and take a look at what a FreeBSD kernel config is like. There are many things you can do here that will improve performance and subtract in size. However, lets keep it simple. Near the top of the file will be the name GENERIC. Change that to your new name. You can now look through the file and you will find several sections that are just for debugging. These will indeed add size and slow down the kernel a bit, but I would leave them for now. Go to the end of the file and make a new line. Add the following:

device pcm

This will add sound support to the kernel. Be aware that you don’t need to do this, you can load binary modules at boot or after boot, but this way is easy and sound is used often. Save the file and exit. Go back to your buildworld console and when its done execute make buildkernel KERNCONF=YOUR_KERNEL_CONFIG_NAME

NOTE: NOT THE PATH OF THE KERNEL CONFIG..it knows to look in /usr/src/sys/i386/conf

Installing Your World

This isn’t that difficult. First run make installkernel KERNCONF= your config name. Now here is the interesting part. Run mergemaster -p, this program looks through your etc and updates it to match the new /etc in /usr/src. It will display changed files to you, press q and it will give you options. Something like i (install), m (merge) etc. Pick merge and it will open a nice little screen that shows you one file on the right and one on the left. It will go section by section, showing the areas that have changed. Press r or l to choose which section to keep. Its pretty easy to see which section has new stuff and which does not. After the merge, it will prompt you with options for the newly merged file. One of these will be install and this is the one you want. In the latest current, most of what you will be showed is user and group files. Make sure you do select the sections with the new users and groups. After this is done, it will ask you a couple questions that you can say yes to. Now that your /etc is updated run make installworld then reboot.

NOTE: You usually don’t need to run mergemaster. However, 5.2.1 is a pretty old release and -CURRENT has come a long way.

I. Ports

Welcome to running current. The rest is easy. cd back to /usr and edit the ports supfile the same way you did the standard one. Run cvsup on it and wait. After its done, you will have a full ports tree. There is not much left to say. You now have a working system and a fully updated one too. To install software from ports cd to /usr/ports/category/softwarename/ and run make install clean . If you want linux binary support, install the linux_base port. To find where it is cd to /usr/ports and run make search name=linux_base | less . Enable loading the kernel modules for linux binary support by editing /etc/rc.conf. Just add the line linux_enable=”YES” to the file and your set. If this is a desktop system, I would recommend installing /usr/ports/x11/xorg and your choice of /usr/ports/x11/gnome2 or kde3. Have fun .

Get it from:

http://www.madpenguin.org/cms/?m=show&id=1853