First thing to keep in mind: If your computer hasn't crashed yet, it will in the future! So instead of waiting for fate to strike, take some precautions now:

1) BACK-UP! Buy some decent DVD-R discs and put everything useful in them. When you have more useful stuff, backup again. Do this often.

2) Keep your computer healthy. Use an antivirus, an anti-spy, and a firewall. Keep them updated. Check regularly for Windows critical fixes.

3) Don't install software that would do dangerous things to your hard drive. A boot manager would fall in this category.

4) Use a registry cleaner before and after you install or uninstall any software. Many of the problems that will keep Windows from booting are caused by sloppy software that mess up your registry. A good registry cleaner is Tune-up Utilities.

5) Run chkdsk now and then. Go to Start> Run. Type chkdsk /F. Press enter.

In case your PC has already crashed, read the following:

Most important: Don't panic! Panic is like a little demon that whispers in your ear to format your hard drive and reinstall everything. Don't do it! You will lose all your data and the little demon will laugh at you.

To be exact you can still recover your data if you format your drive (by using special software), but only if you don't write anything on the disc afterwards. In other words format + windows install = bad idea. If you reinstall windows without formating your drive, you will only lose the files on your desktop and "My Documents" folder.

In all occasions you should make sure to safeguard your files before attempting any kind of repair!

So let's go about how to do that:

The fast way: Go to this site:
. Knoppix is a Linux distribution than runs from a CD. Download the Knoppix ISO and burn it. Put it in your CD drive. On startup access BIOS and change the boot sequence so that your computer boots from the CD drive. Save settings and exit. Upon reboot, Knoppix will load.

Knoppix is much like windows and it comes with its own CD burner. Locate it, launch it and backup everything you want on CD. Now you don't have to worry anymore!

The less fast way: This requires that you have access to a second PC. Open the case of your computer and remove the hard disk.

Install it as a slave on the second PC.

Depending on respective configurations, you may have to change some jumper settings on the drive. Read the manual for help with installing hard drives and setting jumpers.

After this is done, boot the second PC. If everything went out ok, you should be able to access your drive without problems. (Edit: Note that Win98 cannot recognize a local NTFS (Win2K/XP) disk.)

Copy everything you need from your own hard drive to the other one. Now you don't have to worry anymore!

Replace your computer's hard disk, fix all problems and reverse the process to copy the data back to your computer, or take CD backups on the other PC.

Step 1

Open Start/Run... and type the command:
regedit and click "OK" (or press ENTER).

Go to HKey_Local_Machine\Software\Microsoft\WindowsNT\Current Version\WPAEvents,
on the right double click on "oobetimer" and change at least one digit of this value to deactivate windows.

Click "OK" and close the Registry Editor.

Step 2

Open Start/Run... and type the command:
%systemroot%\system32\oobe\msoobe.exe /a and click "OK" (or press ENTER).

This will bring up the "Activate Windows" window.

Check the option for "Yes, I want to telephone a customer service representative to activate Windows" and click "Next"

Step 3

Then click "Change Product Key" (don't enter any information on that screen)

Step 4

Type in the new key and click "Update"

The activate Windows by phone window will reappear at this point, just close it by clicking the X in the upper right hand corner

Step 5

Reboot your system and Open Start/Run... and type the command:
%systemroot%\system32\oobe\msoobe.exe /a and click "OK" (or press ENTER).

If you see "Windows is already activated" then everything is OK.

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)

If you wanna make a autorun file for that CD you are ready to burn just read this...

1) You open notepad

2) now you writ: [autorun]

Now save it but not as a .txt file but as a .inf file.

But remember! The "Setup_filename.EXE" MUST be replaced with the name of the setup file. And you also need to rember that it is not all of the setup files there are called '.exe but some are called '.msi

3) Now burn your CD with the autorun .inf file included.

4) Now set the CD in you CD drive and wait for the autorun to begin or if nothing happens just double-click on the CD drive in "This Computer"

The UNIX operating system is made up of three parts; the kernel, the shell and the programs.

The kernel

The kernel of UNIX is the hub of the operating system: it allocates time and memory to programs and handles the filestore and communications in response to system calls.

As an illustration of the way that the shell and the kernel work together, suppose a user types rm myfile (which has the effect of removing the file myfile). The shell searches the filestore for the file containing the program rm, and then requests the kernel, through system calls, to execute the program rm on myfile. When the process rm myfile has finished running, the shell then returns the UNIX prompt % to the user, indicating that it is waiting for further commands.

The shell

The shell acts as an interface between the user and the kernel. When a user logs in, the login program checks the username and password, and then starts another program called the shell. The shell is a command line interpreter (CLI). It interprets the commands the user types in and arranges for them to be carried out. The commands are themselves programs: when they terminate, the shell gives the user another prompt (% on our systems).

The adept user can customise his/her own shell, and users can use different shells on the same machine. Staff and students in the school have the tcsh shell by default.

The tcsh shell has certain features to help the user inputting commands.

Filename Completion - By typing part of the name of a command, filename or directory and pressing the [Tab] key, the tcsh shell will complete the rest of the name automatically. If the shell finds more than one name beginning with those letters you have typed, it will beep, prompting you to type a few more letters before pressing the tab key again.

History - The shell keeps a list of the commands you have typed in. If you need to repeat a command, use the cursor keys to scroll up and down the list or type history for a list of previous commands.

NOTE: Requires a boot disk.

Get the command prompt and go to
and do the following commands:

  • attrib -a -r -h
  • copy sam.* a:\
  • del Sam.*

reboot the computer. there should be no administrator password.
just put in administrator and hit enter. replace the sam files to
restore the password to hide intrusion.


Speeding up your hard drive (#1)
Get faster file transfer by using 32-bit transfers on your hard drive

Just add the line:

hdparm -c3 /dev/hdX

to a bootup script.

If you use SuSE or other distros based on SYS V,

should work for you.

This enables 32-bit transfer on your hard drive. On some systems it can improve transfer performance by 75%.

To test your performance gain, type:

hdparm -t -T /dev/hdX

Protecting yourself from being a spam base(#2)
Sendmail allows for someone to telnet to port 25 and do an expn (expand) to see what users and aliases are on your machine. Also, vrfy (verify) means someone can get legal e-mail addresses from your box and send spam through your machine.

Don't want that, so look in your /etc/ file for a line that looks like this:

# Options #

Now cut and paste these next few lines below that:

# turning off the expand option and requiring a helo from
# a remote computer

Now there is no expansion, no verify, and sendmail requires a helo with a legitimate DNS in order to use the mailer.

Then look in your /etc/mail/aliases file and ensure you have only your own boxen and/or subnet in there as OK or RELAY. That will help cut down on spammers' ability to find relay machines to do their dirty work for them.

Cleaning up Netscape crashes(#3)
You have a tip about Netscape leaving copies of itself running below, but you can make a general shell script to clean up a Netscape crash like this:

killall -9 netscape
rm ~/.netscape/lock

Then all your users can use it and clean up the dreaded hundred instances of Netscape running when it crashed. Change netscape to netscape-communicator or netscape-navigator as appropriate

More DOS-like commands(#4)
Many people are moving to Linux because they miss the stability of good old DOS. In that light, many users are typing DOS commands (which originated from UNIX in the first place) that look fine but cause errors. The command "cd.." in DOS is perfectly valid, but Linux balks. This is because "cd" is a command, and any parameter for that command must be separated from the command by a space. The same goes for "cd/" and "cd~". A quick fix is here.

Use your favorite text editor in your home directory to edit the file ".bashrc". The period is there on purpose, this hides the file from normal ls display.

Add the lines:

alias cd/="cd /"
alias cd~="cd ~"
alias cd..="cd .."

And I usually add these...

alias md="mkdir"
alias rd="rmdir -i"
alias rm="rm -i"

and my first and still favorite alias...

alias ls="ls --color"

alias is a powerful tool, and can be used in the .bashrc script as well as from the command line. You can, if you want to spend the time, create your own group of shell commands to suit how you work. As long as you put them in your .bashrc file, they'll be there everytime you log in. Note that if you frequently log in as root, you might want to copy /home/username/.bashrc to /root/.bashrc to keep yourself sane.

Resurrecting corrupted floppies(#5)
Here's how to make a floppy disk with "track-0 bad" reusable again:

If the track zero of a floppy disk is found to be bad, no DOS or Windows utility is going to do anything about it--you just have to throw it in your unrecycle bin.

This tip cannot recover the data, but can make the disk carry things again, at least for the time being (moments of desperation).

How to:

(A) Format the disk with Linux. Build a Linux file system (don't use mformat). I did this some time before by invoking the makebootdisk command (in Slakware) and stopped after the formatting was over. There should be better ways to do it in RedHat 5.2 or other recent versions.

( Reformat the disk with Windows. Use the DOS window and the /u option while formatting.

Using DOS-like commands(#6)
There's a package called mtools which is included with most of the distributions out there.

There are several commands for basic DOS stuff. For example, to directory the floppy drive, type mdir a:. This is rather handy--you don't need to mount the floppy drive to use it.

Other commands are: mattrib , mcd, mcopy, mdel, mformat, mlabel, mren (rename), mmd, mrd, and mtype.

This doesn't work for reading from hard disks. In that case, you would add entries to /etc/fstab, drive type msdos for fat16 partitions, and vfat for fat32.

Copying files from Linux to Windows 98 or 95B (FAT32)(#7)
It's as easy as installing the program explore2fs. It uses a Windows Explorer interface and supports drag-and-drop. I have found it reliable and useful for migrating files from my RedHat 6.1 partition to my Win95B partition quickly and with a minimum of fuss.

It's available free--as all software should be--from this URL:

Installing in partitions(#8)
I am using SuSE Linux, which has some interesting options (I don't know if RedHat or other distributions offer you this, too).

1. You can install Linux on a single file in your Windows Partition. Nice to try it out, but I guess it is not that fast then. You can load it then with a DOS program, loadlin.

2. Use Fips or Partition Magic. Defragment your hard drive (you should do this for Point 1, too) and split it up. I guess most users just have one partition, which you should split up into at least three: one for the Linux files, and a smaller swap partition (take about 32 to 64 MB, depending on your RAM--less RAM needs bigger swap partitions). If you decide later to deinstall Linux you can always delete both partitions and create one big one for Windows again.

Fips is a stupid command line program, but if you're too lazy to read at least a little bit, then you should stop thinking about Linux anyway...

Command Pipelines(#9)
Pipes are easy. The Unix shells provide mechanisms which you can use them to allow you to generate remarkably sophisticated `programs' out of simple components. We call that a pipeline. A pipeline is composed of a data generator, a series of filters, and a data consumer. Often that final stage is as simple as displaying the final output on stdout, and sometimes the first stage is as simple as reading from stdin. I think all shells use the "|" character to separate each stage of a pipeline. So:

data-generator | filter | ... | filter | data-consumer

Each stage of the pipeline runs in parallel, within the limits which the system permits. Hey, look closely, because that last phrase is important. Are you on a uni-processor system because if you are, then obviously only one process runs at a time, although that point is simply nitpicking. But pipes are buffers capable of holding only finite data. A process can write into a pipe until that pipe is full. When the pipe is full the process writing into it blocks until some of the data already in the pipe has been read. Similarly, a process can read from a pipe until that pipe is empty. When it's empty the reading process is blocked until some more data has been written into the pipe.

What is IP masquerading and when is it of use?(#10)
IP masquerading is a process where one computer acts as an IP gateway for a network. All computers on the network send their IP packets through the gateway, which replaces the source IP address with its own address and then forwards it to the internet. Perhaps the source IP port number is also replaced with another port number, although that is less interesting. All hosts on the internet see the packet as originating from the gateway.

Any host on the Internet which wishes to send a packet back, ie in reply, must necessarily address that packet to the gateway. Remember that the gateway is the only host seen on the internet. The gateway rewrites the destination address, replacing its own address with the IP address of the machine which is being masqueraded, and forwards that packet on to the local network for delivery.

This procedure sounds simple, and it is. It provides an effective means by which you can provide second class internet connections for a complete LAN using only one (internet) IP address.

Setting UTC or local time(#11)
When Linux boots, one of the initialisation scripts will run the /sbin/hwclock program to copy the current hardware clock time to the system clock. hwclock will assume the hardware clock is set to local time unless it is run with the --utc switch. Rather than editing the startup script, under Red Hat Linux you should edit the /etc/sysconfig/clock file and change the ``UTC'' line to either ``UTC=true'' or ``UTC=false'' as appropriate.
Setting the system clock(#12)
To set the system clock under Linux, use the date command. As an example, to set the current time and date to July 31, 11:16pm, type ``date 07312316'' (note that the time is given in 24 hour notation). If you wanted to change the year as well, you could type ``date 073123161998''. To set the seconds as well, type ``date 07312316.30'' or ``date 073123161998.30''. To see what Linux thinks the current local time is, run date with no arguments.

Setting the hardware clock(#13)
To set the hardware clock, my favourite way is to set the system clock first, and then set the hardware clock to the current system clock by typing ``/sbin/hwclock --systohc'' (or ``/sbin/hwclock --systohc --utc'' if you are keeping the hardware clock in UTC). To see what the hardware clock is currently set to, run hwclock with no arguments. If the hardware clock is in UTC and you want to see the local equivalent, type ``/sbin/hwclock --utc''

Setting your timezone(#14)
The timezone under Linux is set by a symbolic link from /etc/localtime[1] to a file in the /usr/share/zoneinfo[2] directory that corresponds with what timezone you are in. For example, since I'm in South Australia, /etc/localtime is a symlink to /usr/share/zoneinfo/Australia/South. To set this link, type:

ln -sf ../usr/share/zoneinfo/your/zone /etc/localtime

Replace your/zone with something like Australia/NSW or Australia/Perth. Have a look in the directories under /usr/share/zoneinfo to see what timezones are available.

[1] This assumes that /usr/share/zoneinfo is linked to /etc/localtime as it is under Red Hat Linux.

[2] On older systems, you'll find that /usr/lib/zoneinfo is used instead of /usr/share/zoneinfo. See also the later section ``The time in some applications is wrong''.

What are these zombie processes that show up in ps? I kill them but they don't go away!

Zombies are dead processes. You cannot kill the dead. All processes eventually die, and when they do they become zombies. They consume almost no resources, which is to be expected because they are dead! The reason for zombies is so the zombie's parent (process) can retrieve the zombie's exit status and resource usage statistics. The parent signals the operating system that it no longer needs the zombie by using one of the wait() system calls.

When a process dies, its child processes all become children of process number 1, which is the init process. Init is ``always'' waiting for children to die, so that they don't remain as zombies.

If you have zombie processes it means those zombies have not been waited for by their parent (look at PPID displayed by ps -l). You have three choices: Fix the parent process (make it wait); kill the parent; or live with it. Remember that living with it is not so hard because zombies take up little more than one extra line in the output of ps.

How do i give users an ftp only account (no telnet, etc).(#16)

give them shell which doesn't work, but is listed in /etc/shells
for example /bin/false...

How to do backup with tar?(#17)
You can mantain a list of files that you with to backup into a file and tar
it when you wish.

tar czvf tarfile.tar.gz -T list_file

where list_file is a simple list of what you want to include into the tar


/etc/ppp (all files into the /etc/ppp directory)

How to keep a computer from answering to ping?(#18)

a simple "echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all" will do the
trick... to turn it back on, simply
"echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_all"

Customizing your directory colors.(#19)
I know a lot of you know the command ls --color. Which displays your directory with colors. But, a lot of people may not know that those colors are customizable. All you need to do is add the following line to your /etc/bashrc file.

eval `dircolors /etc/DIR_COLORS`

And then all of the color configuration can be found in the file /etc/DIR_COLORS

Frozen Xwindow(#20)
If your Xwindow freezes sometimes, here are two ways that you may try to kill your server. The first is the simple simple way of killing your X server the key combination: Ctrl+Alt+Backspace

The second way is a little more complicated, but it works most of the time. Hit Ctrl+Alt+F2 to startup a virtual console, then log in with your user name and password and run:

# ps -ax | grep startx

This will give you the PID of your Xserver. Then just kill it with:

# kill -9 PID_Number

To go back to your first console, just hit Alt-F1

Converting all files in a directory to lowercase.(#21)
# lowerit
# convert all file names in the current directory to lower case
# only operates on plain files--does not change the name of directories
# will ask for verification before overwriting an existing file
for x in `ls`
if [ ! -f $x ]; then
lc=`echo $x | tr '[A-Z]' '[a-z]'`
if [ $lc != $x ]; then
mv -i $x $lc

Wow. That's a long script. I wouldn't write a script to do that; instead, I would use this command:

for i in * ; do [ -f $i ] && mv -i $i `echo $i | tr '[A-Z]' '[a-z]'`;

on the command line.

Script to view those compressed HOWTOs.(#22)
From a newbie to another, here is a short script that eases looking for and viewing howto documents. My howto's are in /usr/doc/faq/howto/ and are gzipped. The file names are XXX-HOWTO.gz, XXX being the subject. I created the following script called "howto" in the /usr/local/sbin directory:

if [ "$1" = "" ]; then
ls /usr/doc/faq/howto | less
gunzip -c /usr/doc/faq/howto/$1-HOWTO.gz | less

When called without argument, it displays a directory of the available howto's. Then when entered with the first part of the file name (before the hyphen) as an argument, it unzips (keeping the original intact) then displays the document.
For instance, to view the Serial-HOWTO.gz document, enter:

$ howto Serial

Util to clean up your logfiles.(#23)
If you're like me, you have a list with 430 subscribers, plus 100+ messages per day coming in over UUCP. Well, what's a hacker to do with these huge logs? Install chklogs, that's what. Chklogs is written by Emilio Grimaldo,, and the current version 1.8 available from It's pretty self explanatory to install(you will, of course, check out the info in the doc subdirectory). Once you've got it installed, add a crontab entry like this:

# Run chklogs at 9:00PM daily.
00 21 * * * /usr/local/sbin/chklogs -m

Handy Script to Clean Up Corefiles.(#24)
Create a file called rmcores(the author calls it handle-cores) with the following in it:

USAGE="$0 "

if [ $# != 2 ] ; then
echo $USAGE

echo Deleting...
find $1 -name core -atime 7 -print -type f -exec rm {} \;

echo e-mailing
for name in `find $1 -name core -exec ls -l {} \; | cut -c16-24`
echo $name
cat $2 | mail $name

And have a cron job run it every so often.

Moving directories between filesystems.Quick way to move an entire tree of files from one disk to another (#25)
(cd /source/directory && tar cf - . ) | (cd /dest/directory && tar xvfp -)

[ Change from cd /source/directory; tar....etc. to prevent possibility of trashing directory in case of disaster.]

Finding out which directories are the largest.Ever wondered which directories are the biggest on your computer? Here's how to find out.(#26)
du -S | sort -n

How do I stop my system from fscking on each reboot?(#27)
When you rebuild the kernel, the filesystem is marked as 'dirty' and so your disk will be checked with each boot. The fix is to run:

rdev -R /zImage 1

This fixes the kernel so that it is no longer convinced that the filesystem is dirty.

Note: If using lilo, then add read-only to your linux setup in your lilo config file (Usually /etc/lilo.conf)

How to avoid fscks caused by "device busy" at reboot time.(#28)
If you often get device busy errors on shutdown that leave the filesystem in need of an fsck upon reboot, here is a simple fix:
To /etc/rc.d/init.d/halt or /etc/rc.d/rc.0, add the line

mount -o remount,ro /mount.dir

for all your mounted filesystems except /, before the call to umount -a. This means if, for some reason, shutdown fails to kill all processes and umount the disks they will still be clean on reboot. Saves a lot of time at reboot for me.

How to find the biggest files on your hard-drive.(#29)

ls -l | sort +4n

Or, for those of you really scrunched for space this takes awhile but works great:

cd /
ls -lR | sort +4n

A script for cleaning up after programs that create autosave and backup files.(#30)
Here is a simple two-liner which recursively descends a directory hierarchy removing emacs auto-save (#) and backup (~) files, .o files, and TeX .log files. It also compresses .tex files and README files. I call it 'squeeze' on my system.

#SQUEEZE removes unnecessary files and compresses .tex and README files
#By Barry tolnas,
echo squeezing $PWD
find $PWD \( -name \*~ -or -name \*.o -or -name \*.log -or -name \*\#\) -exec
rm -f {} \;
find $PWD \( -name \*.tex -or -name \*README\* -or -name \*readme\* \) -exec gzip -9 {} \;

How to find out what process is eating the most memory.(#31)
ps -aux | sort +4n

ps -aux | sort +5n

How do I find which library in /usr/lib holds a certain function?(#32)
What if you're compiling and you've missed a library that needed linking in? All gcc reports are function names... Here's a simple command that'll find what you're looking for:

for i in *; do echo $i:;nm $i|grep tgetnum 2>/dev/null;done

Where tgetnum is the name of the function you're looking for.

I compiled a small test program in C, but when I run it, I get no output!(#32)
You probably compiled the program into a binary named test, didn't you? Linux has a program called test, which tests if a certain condition is true, it never produces any output on the screen. Instead of just typing test, try: ./test

This reg file Enables Folder and Icon Refresh.

1. Copy the following (everything in the box) into notepdad.

Windows Registry Editor Version 5.00


2. Save the file as disablerefreshundo.reg
3. Double click the file to import into your registry.

NOTE: If your anti-virus software warns you of a "malicious" script, this is normal if you have "Script Safe" or similar technology enabled.

- insert ubuntu disc
- boot
install a command line system
$ sudo passwd root
# su -
# vi /etc/network/interfaces
auto eth0
iface eth0 inet static
auto eth1
iface eth1 inet static
auto eth2
iface eth2 inet static
# vi /etc/apt/source-list
deb edgy main restricted
deb edgy universe
deb edgy universe
deb edgy universe multiverse
# apt-get update
# apt-get install openssh-server
# /etc/init.d/ssh restart
# vi /etc/timezone
———- iproute2 ————————————————
/sbin/ip link set lo up
/sbin/ip link set eth0 up
/sbin/ip link set eth1 up
/sbin/ip link set eth2 up
/sbin/ip route flush table adsl
/sbin/ip route flush table rtrwnet
/sbin/ip route flush table internet
/sbin/ip addr add brd dev lo
/sbin/ip addr add brd dev eth2
# /sbin/ip addr add brd dev eth0
/sbin/ip addr add brd dev eth1
/sbin/ip route add dev lo
/sbin/ip route add via dev eth0
/sbin/ip route add dev eth1
/sbin/ip route add via dev eth1
/sbin/ip route add via dev eth1
/sbin/ip route add via dev eth2
/sbin/ip route add via dev eth2
/sbin/ip rule add prio 10 table main
/sbin/ip rule add prio 20 table adsl
/sbin/ip rule add prio 30 table rtrwnet
/sbin/ip rule add prio 40 table internet
/sbin/ip route del default table main
/sbin/ip route del default table adsl
/sbin/ip route del default table rtrwnet
/sbin/ip route del default table internet
/sbin/ip rule add prio 20 from table adsl
/sbin/ip route add default via dev eth2 src proto static table adsl
/sbin/ip route append prohibit default table adsl metric 1 proto static
/sbin/ip rule add prio 30 from table rtrwnet
/sbin/ip route add default via dev eth0 src proto static table rtrwnet
/sbin/ip route append prohibit default table rtrwnet metric 5 proto static
# Set up load balancing gateways
/sbin/ip rule add prio 40 table internet
/sbin/ip route add default proto static table internet
nexthop via dev eth2 weight 1
nexthop via dev eth0 weight 10
# Setup routing to ISPs
/sbin/ip route add proto static table internet
nexthop via dev eth2 weight 10
nexthop via dev eth0 weight 1
———– iptables ———————————————–
/bin/echo 1 > /proc/sys/net/ipv4/ip_forward
/sbin/iptables -F
/sbin/iptables -P INPUT DROP
/sbin/iptables -A INPUT -p tcp -i eth1 –destination-port 25 -s ! -j DROP
/sbin/iptables -A INPUT -i eth1 -j ACCEPT
/sbin/iptables -A INPUT -i eth0 -p tcp -s 0/0 –dport 25 -j ACCEPT
/sbin/iptables -A INPUT -i eth2 -p tcp -s 0/0 –dport 25 -j ACCEPT
/sbin/iptables -A INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT
/sbin/iptables -A INPUT -p tcp -i eth0 -j REJECT –reject-with tcp-reset
/sbin/iptables -A INPUT -p tcp -i eth2 -j REJECT –reject-with tcp-reset
/sbin/iptables -A INPUT -p udp -i eth0 -j REJECT –reject-with icmp-port-unreachable
/sbin/iptables -A INPUT -p udp -i eth2 -j REJECT –reject-with icmp-port-unreachable
/sbin/iptables -t nat -A POSTROUTING -o eth2 -j SNAT –to
/sbin/iptables -t nat -A POSTROUTING -o eth0 -j SNAT –to
———– /etc/iproute2/rt_tables ——————————–
120 adsl
121 rtrwnet
123 internet

================================================== ============================================
Command || DOS Command || Linux Shell Command || Usage
================================================== ============================================
Copy files COPY cp cp
Move files MOVE mv mv
Rename files RENAME mv mv
Delete files DEL rm rm
Create Directories MKDIR mkdir mkdir
Delete Directories RMDIR rm rm
Change directory CD cd cd
Edit text files edit vi,vim vi
View text files TYPE less less
Print text files PRINT lpr lpr
Compare files FC diff diff
Check disk integrity SCANDISK fsck fsck
View network settings IPCONFIG ifconfig ifconfig
Check a network connection PING ping ping

Clear screen CLS clear clear
Get Help HELP man man
Quit EXIT exit exit

Slackware Linux is one of the oldest Linux distributions remaining. Over the years, it has stayed true to its roots and form.

Here's what the author, Patrick Volkerding has to say about it.

The Slackware Philosophy

Since its first release in April of 1993, the Slackware Linux Project has aimed at producing the most "UNIX-like" Linux distribution out there. Slackware complies with the published Linux standards, such as the Linux File System Standard. We have always considered simplicity and stability paramount, and as a result Slackware has become one of the most popular, stable, and friendly distributions available.

What's this about "friendly"? You heard that Slackware was too damned hard, didn't you? If you are expecting cute graphical wizards and penguins automating every configuration step for you, that may be true. However, in essense, Slackware is one of the simplest distributions there is if you are proficient with a Linux system. If you aren't, a little perseverance with Slackware and you will be.

The reason it is easy for an experienced user is, first of all the init scripts and configuration files are easy to follow. They are generally well commented and it's easy to make changes using an ordinary text editor.

Not only that, you are getting the full, complete, standard releases of software in this distribution, installed in a sane manner. The way the developers intended. Therefore, when you go to install additional software not provided by the distribution vendor, you don't run into as many snags.

The packaging system in Slackware is quick, dirty and simple too. Slackware packages (.tgz files) are basically just tar.gz archives, that have install scripts that the packaging utilities execute. No dependency checking, which can be good or bad, depending on how you look at it. To me it's good, because I don't get annoyed by packages that won't install because of some brain dead mechanism that checks for things in specific places. The catch is, you need to be a bit careful installing system software.

Slackware also provides an excellent environment for building your own software from sources.

I could go on at length about why you should give Slackware an honest try but I'll let you follow this guide and see for yourself. We are going to be installing Slackware 9.1, which is the latest release at the time of writing.

Starting the Installation

First of all, if you intend to dual boot with Windows, take care of that first. If you're starting with a fresh hard disk, create a partition for Windows, and leave the rest unallocated (unpartitioned). Install Windows first.

Boot with the first disk in the Slackware CD set. (or the first CD that you created from the ISO files you downloaded).

If your computer is unable to boot from the CDROM for whatever reason, it is also possible to create a floppy boot disk set for the installation. Read the file README.TXT in the bootdisks directory on the Slackware CD, as well as the rootdisks directory. In Slackware 9.1, this directory is on the first CD.

Once you boot with the installation media, this is the first screen you will see:

Most people with plain IDE systems, can just hit enter here, to load the bare.i kernel image. The README.TXT in the bootdisks directory, describes the precompiled kernel images available on the Slackware CD. If you have SCSI disks, you must read that file, because adaptec.s, scsi.s, scsi2.s and scsi3.s each contain drivers for different SCSI controllers.

So press Enter to load bare.i, or type the name of the kernel image you wish to load (e.g. scsi.s)

The kernel will boot, and then you will be instructed to log on as root.

Just type root and hit enter. You will not be prompted for a password at this time.

Now we must partition the disk. This is probably the trickiest part of Slackware Setup, for there are no point and click partitioning utilities provided. We are going to use the Linux Fdisk utility. It seems scary at first, a bit alien, but it's very easy to operate and you're unlikely to make mistakes if you follow the steps correctly, and do not write the tables to disk until you're sure. I have never had a mishap with this program, and it has never damaged any existing (Windows) partition table entries on the disk.

What I did here was, I hooked up a new Western Digital 40 Gb hard disk for this install. I booted with the Windows XP CD and during setup, created an 8 Gb partition, formatted it NTFS and blasted a quick Windows XP install on there so we can have a dual boot. I left the rest of the disk unallocated.

Fdisk must be invoked with the device name of the hard disk you wish to partition. In this case, we're using the primary master hard disk, so we use the /dev/hda devicename. Here is how IDE disks are named:

/dev/hda - Primary Master
/dev/hdb - Primary Slave
/dev/hdc - Secondary Master
/dev/hdd - Secondary Slave

Note that these do not refer to partitions or filesystems, but the hard disk devices themselves. (/dev/hda1, /dev/hda2 and so on, is how partitions are addressed)

SCSI disks are named /dev/sda, /dev/sdb, /dev/sdc and so on, according to which are first enumerated on the bus.

We need to type fdisk /dev/hda

Don't worry about the informational message about the number of cylinders. Unless you're installing a very old Linux distribution, the boot loader won't have a problem.

Now what? Press m to see a list of commands.

The first thing we want to do is press p to print (display) the partition table. We do this after every step, so we can see the results. Nothing is really changed, until we press w to write the partition table to disk.

There's our 8 Gb NTFS partition, /dev/hda1. The first partition on the disk, and in Windows terms, the active partition. It's going to stay that way.

The units (for Start and End) are in cylinders of 8225280 bytes. Just remember that each unit is rougly 8 megabytes (7.84 if you do the math). It's also displayed in blocks of rougly 1 kb. Don't worry about it, we will be specifying partition sizes in megabytes.

Now, how we partition depends greatly on personal preference. All you really need to install and run Linux is a root partition, and a swap partition. However, that's a fairly large chunk of disk and we can mount parts of the Linux filesystem on separate partitions.

This is basically how I would allocate this space, for use with Slackware. It's just the way I do things, you can choose other partitioning schemes and sizes. If disk space is tight, you should create only a root partition, and save some space for a swap partition. For example, if you have 4 Gb of space to allocate, create a 3.7 Gb root partition and use the rest for swap. That would be a half decent setup.

Using multiple partitions is a bit wasteful, because we have to allow room on each partition for growth. This may result in some disk space staying unused. Err on the side of caution, and allocate plenty of space.

This is what I would do for my own use:

1 Gb root partition (primary partition)
The root filesystem, contains system software and libraries, configuration data (/etc), local state data (/var) and all other filesystems are mounted under it.

Extended partition utilizing the rest of the disk
We then create logical drives on the extended partition.

1 Gb swap partition (logical drive)
Note that you probably don't need a swap partition that large but I like the extra insurance and I have plenty of space. It allows me to work on absolutely huge files, and provides extra memory addressing in the event of some sort of race condition. 256 Mb should probably be enough swap though, if disk space is tight.

8 Gb partition for /usr (logical drive)
Most all of your software and libraries get installed in /usr. It is useful to have a large partition for this.

2 Gb partition for /opt (logical drive)
"Optional" software can be installed here. For example, KDE will be installed to /opt/kde. I install some other software to /opt as well.

18 Gb (roughly) for /home (logical drive)
We use what is leftover, for /home. This is where the user directories are, and where users will store personal files. You may also install some software to /home if desired. I do, and I keep build directories there as well.

Now, we will start creating these partitions.

To create a new partition, press n

We are prompted to choose primary, or extended. We want to create a primary partition here. (though the root partition could be a logical partition on the extended)

Press p to create a primary partition.

We then have to give it a partition number. The Windows XP partition is already partition 1, so we have to choose 2

We are then prompted for the starting cylinder. We will be just hitting enter, to accept the default value. (the first available cylinder). We will be accepting the default starting cylinder for each partition we create. We will specify the ending cylinder, by specifying the size in megabytes. For the value of "last cylinder", we type +1024M to create a partition of roughly 1 gigabyte. Partitions have to end on a cylinder boundary (or waste sectors), and partitioning software automatically adjusts that.

Now, press p to display the partition tables, and you'll see what you've done so far. At this point, if you've made a mistake, simply press d and type the partition number that you want to delete (2 in this case... just don't touch partition 1 or you'll destroy Windows). Nothing has been written yet, you can just delete the partition you've created and repeat the last step. This is why we view the partition info at every step. If satisfied, proceed with the next step. At the command prompt, you can press q at any time to quit without writing anything to disk, if you've made a serious mistake and just want to start over.

Now we are going to create an extended partition, to act as a container for our logical drives.

Press n to create a new partition then press e to choose extended. Press 3 when prompted for the partition number and it will be designated as /dev/hda3. We will never be accessing this partition, just the logical drives we are going to create on it.

Note: How the partition numbers work is, partitions 1 to 4 are reserved for primary partitions. (the extended partition is considered a primary partition). It is an architectural limitation of PC BIOS partition tables, that only 4 primary partitions are allowed on a disk. You can have many logical drives though. Logical drives start being numbered at 5, in the Linux scheme.

Press enter when prompted for the first cylinder, to accept the default of the next available.

When prompted for the last cylinder, this time, simply press enter again. It will allocate the rest of the disk, ending at the last cylinder 4865.

Press p to display the partition tables.

Now we are going to create logical drives until we've used up the extended partition, starting with swap. I generally like to put swap in between the root partition and /usr.

You know the drill. Press n to create a new partition, but this time press l for logical. (In our case, we can't create any more primary partitions because we've already allocated the disk)

Note that we are not prompted to choose a partition number for a logical drive, as it will be assigned 5 as the first one.

Press enter to accept the default value of the first cylinder. For the last cylinder, I'll type +1024M to create a 1 Gb partition.

Press p to display the partition table, and note that our new partition is /dev/hda5. There will be no /dev/hda4, because there will be no more primary partitions on this disk.

Aside: Just so you understand how this works, let's say that when we created the extended partition, we didn't allocate the rest of the disk. We left some space unallocated. If we were to create a primary partition using that space now or some time in the future, it would become /dev/hda4.

OK, now, note the Id column in the display of the partition table. By default, when we create partitions they are of type 83, Linux Native.

We must change the partition type of the one we just created to 82, Linux Swap.

Press t to "change a partition's system id" and then press 5 when prompted for the partition number. (Following my partitioning scheme, that is. Use the correct number for your swap partition of course)

When prompted for the Hex Code (partition ID), if you were to press L, you would see a long list of possible partition types that the Linux fdisk utility is aware of.

Type 82 for Linux Swap, and hit enter. When you press p to display, you will see the change.

The rest of the partitions we'll create, will be the default type 83, Linux.

Press n to create a new partition. Choose l for logical. Press enter to accept the default first cylinder. For the last cylinder, type +8192M to create an 8 Gb partition for /usr.

Again, n for a new partition, and l for logical. Press enter for the first cylinder. For the last cylinder, type +2048M to create a 2 Gb partition for /opt.

Now, we'll allocate the last partition for /home.

When asked for the first and last cylinders, just press enter for both of those this time, as we're using up the extended partition.

If satisfied with your changes, press w to write the partition table to disk, and exit the Linux fdisk utility.

If you see a warning like that, restart the system (with the slackware CD). I am seeing that message, because I altered the partition tables on a live system (to get those screenshots easily), but I have seen similar warnings when writing the partition tables to disk if I've gone back and redone them after already writing. You should just see "Calling ioctl() to re-read partition table", and "Syncing Disks". You only need to reboot if there were warnings.

Note: I said I altered the partition tables on a live system. That means, the data on those partitions was effectively lost. The next reboot would have been oblivion. Not a problem because it was just a test install, and I planned to install the OS again (Slackware installs very quickly), but know that you can't adjust partitions on the fly, as the partitions must be formatted afterwards.

Take note of which partition devices you created to correspond with your mount points. You'll need to specify them, during setup.

Now we are ready to proceed with the Slackware installation.

Now that we have our Linux partitions created, at the root prompt we can type setup

This is the main setup menu. You can read the help if you like, but you can just skip down to ADDSWAP unless you need to remap your keyboard for some reason. Use the arrow keys to navigate, and enter to select.

It will detect your swap partition for you, format it (mkswap) and activate it (swapon)

Note: The hard disk devices in these screenshots are /dev/sda. Don't pay any attention to that, it's just because I took these screenshots from within a virtual machine. It emulates disks as scsi devices. Just know that's not the disk we partitioned in the examples above, so there's no confusion.

After completing a step, setup automatically takes you to the next step in sequence. Next, is to select the target partitions. Here is where we choose our root partition, and then choose mount points for the other partitions.

This is where we select our root partition (/). Following our partitioning example, that would be /dev/hda2.

Now it will prompt you to format the partition. I would choose to check for bad blocks while it's formatting.

Choose your desired filesystem. I like to use ext2 because it's a simple filesystem that's well matured, but you may want to choose ext3 to have a journaling filesystem.

Now it prompts to choose the inode density for the filesystem. Just hit enter to go with the default of 4096 unless you know what you are doing, and specifically why you want to do it.

If you just created a root partition and swap, you are done formatting now. If you created other partitions, they must now be selected, formatted and assigned mount points.

Swap doesn't show up in this list.

We are mounting this partition as /usr.

Continuing on, we are prompted to select, assign mount points and format the rest of our partitions in the same manner.

When finished, a summary is displayed

In the next step, you will be prompted to select the source media.

Hit enter to choose a Slackware CDROM, and it should detect it automatically.

In the next step, we are prompted to select package categories.

These govern which series of packages will be installed on the system. By default, all categories are selected except KDEI (KDE i18N internationalization). If you're just going to be using English/Western charsets you don't need to install KDEI.

For your first time installing Slackware, I recommend leaving all package categories enabled. You can just choose OK here.

Next, we are prompted to choose the "prompt mode", that is, the degree of interaction for installing packages.

Full, installs all packages in the categories you've selected, without prompting. This is what I recommend for your first Slackware install. Install everything, and you can easily remove packages you don't want later after you get a feel for things. I do know what I'm doing, but this is the option I normally use. It's just easier.

Newbie prompts for each package as they are being installed. I do not recommend this, as it is quite tedious. Also, you may not know what you want/need yet.

Menu is a bit better, as it lets you choose groups of related things.

Expert. If you know what you are doing, the expert prompt mode is an excellent way to choose exactly which packages you want installed on the system, prior to package installation. This really is good, it's not terribly confusing like similar package installation modes in other distributions.

The custom/tagfile options use tagfiles to automate a custom package selection. I've never used them. This would be handy if you were wanting to roll out the same installation on several machines though.

Choose full and watch the packages install non-interactively. It won't take very long, even on a relatively slow machine.

At some point during the package installation, you will be prompted to insert the second CD.

When the package installation stage completes, you are prompted to choose a kernel.

I recommend the CDROM option, and choosing the same kernel that you chose at the initial boot prompt when you booted with the Slackware CD. It got you this far.

Because I did these screenshots in a virtual machine that uses scsi emulation for the virtual disks, I had to choose scsi.s. On an IDE system, you probably either want bare.i or bareacpi.i (warning: acpi can cause boot problems if your BIOS implementation of ACPI doesn't jibe... this is why I recommend using the same kernel you chose at the initial boot prompt)

Next, you are prompted to create an emergency boot disk.

I highly recommend taking the time to create this disk, for it can be used to start the distribution if anything ever happens to your boot loader. You will be able to easily fix it, if you can start the system using this boot floppy.

You will now be prompted to create a symbolic link for your modem device.

If you have a modem, you can do that here. Saying "no modem" doesn't mean you can't use a modem, you can create the /dev/modem symbolic link later, or just use the appropriate device (e.g. /dev/ttyS1 for COM2)

Next, you will be prompted to enable the hotplug system. If you have such devices, say Yes, otherwise No is a good idea.

As you can see, it's possible for it to cause problems on some systems. Note the information on how to get out of the trap if it happens to you.

Now we are prompted to install the LILO bootloader.

You will most likely want to choose simple here. Choosing expert, will result in lilo not behaving as you expect and you'll have to manually edit the lilo.conf file (or run liloconfig from within the OS) to get the desired functionality back (e.g. it won't even prompt you to select an operating system). If you choose to skip the installation of lilo altogether, then you will only be able to boot into your Slackware system using the boot floppy that you created in the previous steps.

Next, you are prompted to choose the VGA (display) mode of your console, either standard VGA, or one of the VESA framebuffer display modes. The reason this is in the lilo configuration, is because the boot loader passes these parameters to the kernel on boot.

It is nice to have a framebuffer console for when you're not running XFree86, but if the framebuffer mode you've chosen doesn't work well with your display hardware, you could end up with an unusable display (until you fix it of course... you could boot with your boot floppy).

Consider choosing standard for now, to use standard VGA. You can change this parameter in your /etc/lilo.conf file later. If you're always going to be using the XFree86 GUI environment, it's not going to matter much anyways.

You are now prompted to enter any extra boot parameters, that lilo is to pass to the kernel.

He gives one very common example of why you might need to do this: If you have an IDE CD Writer. In the 2.4 kernel series, CD writing uses SCSI emulation and the kernel must know which drive is to use that mode, if both IDE-CD Support and IDE-SCSI support are to be loaded in the running kernel. The example of hdc, is for a secondary master. Use hdd if your writer is secondary slave.

Next, you are prompted to choose the destination for installing LILO. You will almost certainly want to choose MBR (unless you know what you are doing)

He says "possibly unsafe" because there are a few situations where writing to the master boot record is indeed unsafe. For example, if your bios doesn't support the capacity of the drive, and you have translation software installed (e.g. "MaxBlast" or "EZBios"). Another reason it could be unsafe is, if you are using another boot loader (e.g. System Commander, or Boot Magic). Also, before you ever write to the MBR (installing pretty much any OS), you must ensure that bios level MBR protection is disabled. (a.k.a boot virus protection, or "Trend ChipAway"). Installing LILO to the MBR, is the most common way that it is used and it is normally quite safe and can be used to start your Windows operating systems as well.

The "Root" option, to install LILO to the superblock of your root partition, is mainly useful if you intend to use another boot manager to invoke LILO.

Next, you are prompted to create a symbolic link for your mouse.

Even if you don't intend to use gpm, it's still useful to have a correct /dev/mouse symbolic link. This way you can just specify that device when you configure XFree86 after the OS is installed. I choose imps2 for my Logitech ps/2 wheel mouse.

I don't have much use for this (it's got nothing to do with using a mouse in the GUI), but if you wish to have mouse support at the console, you can load gpm at boot time.

At this point, you will be asked if you want to Configure your network. If you only have dial up networking, and don't even have a NIC, you can say No to that question for now, and you'll be prompted to configure your clock, timezone and set a root password. Alternatively you can proceed, and choose loopback. That is really what you should do, as then at least you'll set a hostname for the machine.

If you chose to configure your network now, the first thing you will be prompted for is a hostname. Enter something.

Now you'll be prompted to enter a domain name.

If you intend to participate as a member of a network that has a nameserver, you will want to enter your fully qualified domain name, ending in .com, .org, .edu or similar.

Otherwise just enter localdomain. In subsequent steps you can even remove that domain name. (That's what I do, for I don't really need to have one)

Next, you will be prompted to set up your computer's IP address.

If your network adapter connects to a cable modem, or a broadband router, or uses a PPPoE connection (PPP Over Ethernet... commonly used for ADSL Internet connections), then you probably want to choose DHCP to have your TCP/IP info automatically assigned.

If you choose DHCP, you will be prompted for a DHCP hostname. If you connect directly to a cable modem, you may need to specify your user ID here.

Otherwise, just leave it blank and hit enter.

Next, setup will prompt you to probe for your network adapter.

If it doesn't detect it, don't panic. It just means you'll have to figure out which kernel module your network adapter needs and configure the network later.

Ok, in this virtual machine, that's the virtual adapter it detects. It works. However, on the real Slackware installation, it doesn't automatically detect my D-Link 530TXS. Not a problem, because I know what kernel module it needs (sundance.o). That's something for later and we'll cover it then. It doesn't prevent us from configuring most of the network information though.

If you've chosen to use DHCP, a confirmation screen is what you'll see next. Your network configuration steps are completed.

Myself, I just configure my network statically, and I don't use the DHCP server on my router. So, if you choose Static IP instead of DHCP, this is how the configuration goes.

Enter your IP Address.

Enter your Subnet Mask

Enter your Default Gateway

Enter a Nameserver

Note: I'm just entering the IP address of my router here, it acts as a DNS proxy. The Primary and Secondary DNS servers of my ISP are entered in my router's WAN configuration. You will probably want to enter your ISP's Primary DNS server in this field, and then you can add more nameservers (e.g. the secondary) to your /etc/resolv.conf file later.

Now you will be prompted to confirm your network settings.

You can edit these settings from this dialog as well. For example, I want to remove the domain name "localdomain" altogether.

This concludes the network portion of setup.

After the network configuration, you will be prompted to configure your startup services.

Many of these are network server daemons, and if you are just using your computer as a workstation, you will want to leave most all of them disabled. You may want things like the CUPS print server.

Next, you will be prompted to configure your clock and timezone.

Next, you will be prompted to choose a default window manager, for when you start XFree86.

If you are new to Linux, select KDE for now, you can try some of the others later.

Now you're prompted to enter a root password.

Say Yes. You'll be prompted to type a root password twice, for confirmation.

Slackware setup is now complete. You will be prompted to exit setup and press ctrl-alt-del to reboot your machine.

After exiting, the CDROM tray will open, so you can remove the CD. You'll be back at the root prompt after that. Press ctrl-alt-del to restart the system, and boot Slackware for the first time!

When the system cycles, you'll be at the LILO boot prompt. This is still the virtual machine, but in the real installation on the IDE disk we partitioned, liloconfig didn't add my Windows boot choice to the lilo.conf file. So what I see is exactly the same. Probably because I used the NTFS filesystem. We'll be fixing that up soon, it's not difficult.

Hit enter to start Slackware Linux, and you'll be at the logon prompt. Type root as the username, and you will be prompted for the root password you set near the end of setup.

The first thing you should probably do, is create a user for yourself. You must not use the root user account for normal operation of the system. The Slackware adduser script makes this very easy, by interactively prompting you for information instead of making you supply it with switches on the command line.

Type adduser as root, and then you will be prompted to enter a username. Use lower case for the username.

For most of the prompts you will just want to hit enter to accept the defaults unless you have a specific reason. Let it default to the next available user ID, hit enter to use /bin/bash (unless you want to use another shell of course), accept the default home directory, and accept the default of no expiry date.

You may want to enter a "full name" (I like to pick something humorous). You will then be prompted to type the user's password twice for confirmation. A user can change his own password any time, using the passwd command.

The rest of the configuration steps can really be done in any order, according to what is most important to you. You may want to get the XFree86 GUI started first, so you can use GUI based text editors and such, if you're unfamiliar with working from the command line.

The first thing I'd want to do is get my network going (if it isn't already). The netconfig utility that ran during setup, could not probe for my network adapter. However, I know that it uses the sundance module. How did I know that? Well, when I first bought those NICs, I typed D-Link 530TXS Linux (the "S" is significant in the model number) into a search engine (Google) and found the tidbit I needed in mailing list archives and the like.

Now, during setup we configured our network with the exception of the driver module for the network adapter. That means, all we have to do is load the module, and start the network. Slackware's startup scripts look for a script file named rc.netdevice in the /etc/rc.d directory. This is where the system init scripts are located on Slackware system. (It uses the BSD style init script mechanism)

It is very easy to create this file from the command line. As root, type:

echo "/sbin/modprobe sundance" > /etc/rc.d/rc.netdevice

This will redirect the output of the echo command into the specified text file that will get created. The quotes are important, because there is a space in the string we are echoing. Use the correct module name for your network adapter, of course.

Now, set the file executable:

chmod 755 /etc/rc.d/rc.netdevice

That's it, on the next reboot your network should initialize.

Alternatively, to load a network adapter module, you could uncomment the appropriate module loading line (or add one) in the /etc/rc.d/rc.modules init script.

Now, I don't feel like rebooting at the moment, so I'm going to just type a few simple commands to start the network.

I'm loading the module, then using the ifconfig utility to specify the interface, IP address of the machine, and subnet mask, and then using the route command to specify my router as the gateway.

You probably will want to attempt to start the XFree86 GUI now. By default, Slackware is set up to use the VESA Framebuffer driver for your display hardware. The /etc/X11/XF86Config file is a copy of the file XF86Config-vesa in the same directory.

So if you type startx you may have a usable GUI if the settings are compatible with your display hardware. That will do in a pinch, but you will want to properly configure XFree86 and use the accelerated driver for your video card (which hopefully exists, otherwise you've got some generic options)

I put the XFree86 configuration for Slackware in a separate tutorial, which you can read here:

Configuring XFree86 in Slackware (Opens in new window)

Next, I want to get LILO straightened around, so I can boot that Windows XP installation. At this point I have no way of starting it.

As root, open the /etc/lilo.conf file with a text editor. I drew a box around the section that I added, to the bottom of the file.

Lines that start with # are comments, and are ignored.

This is called "chainloading". What we are doing, is instructing LILO to pass control over to whatever code is in the /dev/hda1 partition's boot sector. It does not have to know anything about the filesystem or the operating system on the partition. In this case, that's the code in the boot sector that finds ntldr; Windows XP's own boot loader. Any additional Windows operating systems that the Windows XP boot loader's boot.ini file is configured to start (e.g. Win9x) will be available from the ntldr menu as well.

What you will see in the LILO boot menu, is the label windows.

While you are editing lilo.conf, you probably will want to change the timeout to a more reasonable value. It defaults to 1200, which is 2 minutes. (The value is in 10ths of a second, so a value of 300 is 30 seconds)

After you are finished editing the lilo.conf file, you must run the lilo command (or /sbin/lilo if /sbin isn't in your path) to rewrite the changes, or they will have no effect.

As root, type lilo and you should see in the output that it has added both Linux and windows to the configuration.

I rebooted the machine, and I can start both Linux and windows.

If you ever want to access that NTFS filesystem from within Linux (read-only support for NTFS), you will have to load the ntfs kernel module, and mount the filesystem.

Create a mount point (an empty directory)

mkdir /mnt/windows

Load the kernel module.

modprobe ntfs

Mount the filesystem.

mount -t ntfs /dev/hda1 /mnt/windows

You access it from /mnt/windows.

Slackware 9.1 ships with the ALSA (Advanced Linux Sound Architecture) system. I had never really used it before, beyond manually loading ALSA kernel drivers without having any of the utilities installed. It's considerably more complex than the older OSS (Open Sound System) drivers, requiring more kernel modules and module aliases to be set up in a modules.conf file. I thought I was going to really hate it, but when I saw how easy it was to configure, I had to re-evaluate that.

As root, type alsaconf and a curses based configuration utility will appear.

It probes for your sound card.

Offers to set up your modules.conf file for you.

Some nice informational messages.

That should be it, your audio should now work!

If that doesn't work for you, then it will be manual configuration. Check the Alsa Soundcard Matrix to see if your card is supported, and what module to use.

As for configuration, this is what you'll want to put in your /etc/modules.conf file. The lines should pretty much be the same for all sound cards, but what you must change is the driver module, which I have shown in bold.

# Stuff for the kernel module loader
alias char-major-116 snd
alias char-major-14 soundcore
# Your Driver
alias snd-card-0 snd-ens1371
alias sound-slot-0 snd-card-0
# OSS Emulation
alias sound-service-0-0 snd-mixer-oss
alias sound-service-0-1 snd-seq-oss
alias sound-service-0-3 snd-pcm-oss
alias sound-service-0-8 snd-seq-oss
alias sound-service-0-12 snd-pcm-oss

Some cards may need additional modules or options. See the "details" section for your card, at the Alsa Soundcard Matrix.

First of all you need to know where your Linux OS is installed to. that is what drive it is currently living on. Bear in mind that Linux formats the drive as HFS rather than Fat/Fat32 or NTFS. ( These are the file systems used by various Operating Systems).

So HFS Partitions are not seen by windows, so its hidden.

To remove the partitions of Linux in WindowsXP go to your 'Control panel' > Admistrative Tools > Computer Managment

Open 'Disk Management' and you will see your Linux drives recognised as 'Unknown Partition' plus the status of the drive. Bearing in mind you know what partition and disk you installed to it will be easier to recognise as the drive/partition where you had installed it to.

Once you have identifed the drives, 'right-Click' on the drive/partiton and select 'Delete Logical Drive'

Once you have followed this through, you will now have free space.

This next part is very important. Once you have formatted the drive, re format it as your required file system type. either Fat32 or NTFS. Now the important part is coming up !

Fixing your Master Boot Record to make Windows Bootable again.

Have a Windows Boot disk with all the basic DOS Commands loaded on to the disk. A standard Windows 98/Me Boot Disk will work too.

Type in the DOS command :

e.g, from your C:\

fdisk /mbr

Or use your Windows XP run the recovery console, pick which xp install you would like to boot in to (usually you will pick #1)

then type: fixmbr. Answer Y to the dialoge.

Your master boot record will now be restored and Windows XP will be bootable once again. Your System will be restored with your original boot loader that you got with Windows XP.

I am not sure where I found this tutorial, It’s been a while…It might even have been here... ..So if it is one of yours, my hat goes off to you once again....

After reading the excellent tutorial on "Creating an FTP" that Norway posted…

(I would suggest reading and following his tutorial first, then following up with this one)

I thought that perhaps this tutorial might be pretty helpful for those interested in knowing how to configure their Bulletproof FTP Server that don't already know how... Here's how to get started…

This is for the BulletProof FTP Server 2.10. However, It should work fine on most following versions as well.

I'm assuming you have it installed and cracked.

1. Start the program.
2. Click on Setup > Main > General from the pull-down menu.
3. Enter your server name into the 'Server Name' box. Under Connection set the “Max number of users" to any number. This is the limit as to how many users can be on your sever at any time.
4. Click on the 'options' tab of that same panel (on the side)
5. Look at the bottom, under IP Options. Put a check in the box “Refuse Multiple Connections from the same IP”. This will prevent one person from blocking your FTP to others.
6. Also put a check in the 'Blocked Banned IP (instead of notifying client). VERY IMPORTANT! If somebody decides to 'Hammer' (attempt to login numerous times VERY quickly) your server/computer may CRASH if you don't enable this.
7. Click on the 'advanced' tab
8. At the bottom again look at the 'hammering area'
9. Enable 'anti-hammer' and 'do not reply to people hammering' Set it for the following: Block IP 120 min if 5 connections in 60 sec. You can set this at whatever you want to but that is pretty much a standard Click 'OK'

Adding Users
11. Setup > User accounts form pull-down.
12. Right click in the empty 'User Accounts' area on the right: choose 'Add'
13. Enter account name. (ie: logon name)
14. In the 'Access rights' box right click: choose ‘Add’.
15. Browse until you find the directory (folder) you want to share. In the right column you will see a bunch of checkboxes. Put a check in the following ones: Read, Write, Append, Make, List, and +Subdirs. Press 'select'.
16. Enter a password for your new FTP account.
17. Click on 'Miscellaneous' in the left column. Make sure 'Enable Account' is selected. Enable 'Max Number of Users' set it at a number other than zero. 1 for a personal account and more that one for a group account. Enable 'Max. no. of connects per IP' set it at 1

18. Under 'Files' enable 'show relative path' this is a security issue. A FTP client will now not be able to see the ENTIRE path of the FTP. It will only see the path from the main directory. Hide hidden flies as well.
Put a tick in both of these.

You don't need to do any of this stuff, but It will help tweak your server and help you maintain order on it. All of the following will be broken down into small little areas that will tell you how to do one thing at a time.

Changing the Port
The default port is always 21, but you can change this. Many ISPs will routinely do a scan of its own users to find a ftp server, also when people scan for pubs they may scan your IP, thus finding your ftp server. If you do decide to change it many suggest that you make the port over 10,000.
1. Setup > Main > General
2. In the 'Connection' Area is a setting labeled 'Listen on Port Number:'
3. Make it any number you want. That will be your port number.
4. Click 'OK'

Making an 'Upload Only' or 'Download Only' ftp server.
This is for the entire SERVER, not just a user.
1. Setup > Main > Advanced
2. In the advanced window you will have the following options: uploads and downloads, downloads only, and uploads only. By default upload and download will be checked. Change it to whatever you want.
3. Click 'OK’

While you are running your server, usually you will end up spending more time at your computer than you normally do. Don't be afraid to ban IP's. Remember, on your FTP you do as you want.

When you are online you must also select the open server button next to the on-line button which is the on-line Button

You also have to use the actual Numbered ip Address ie:

Or even Better yet, get a address

Do you want to jazz up your graphics? Want to add a bit of pazazz to your art? Well, this guide features some knowledge, border effects, and even directions to make your own swirlie brushes!

Now, open PSP and get ready to learn! Let's start off with the basics.

-Border Effects

There are two main types of borders, solid borders, and decorative borders. A solid border is like a colored line that raps around the outside of your image and separates graphics from the rest of the page. You can have borders inside the outside borders to make awesome layer effects. Decorative borders are almost the same, except they are not completely connected. (Example - Dashed Borders)
Dashed Borders
Open PSP and create an image about 380 x 100 pixels with a white background.

Draw a bit with your paintbrush, just add some color. Now maximize your image.

It should take up the whole page. Now go up to the toolbar on the very top and click "Selections" and go down right below that and click "Select All" There should be a dotted line going around the outside of your image.

We're almost done! YAY! Ok, now look on your keyboard. Go to the very top row next to the F1, F2, F3, F4, and look to the right of the F12 button. It should say "Print Screen". Press it, and it will take a picture of everything currently open on your computer that you can see. Now go to the top toolbar once one. Go under "Edit", move down to "Paste", then move your mouse to the right and select "Paste as New Image"

Now, your image has a dashed border, but you can see all the unwanted parts of your workspace. So go to the left toolbar and click the crop tool. It is the small square with a line through it.

Now drag the segment the crop tool makes just around the image. You might want to zoom in some (Click the magnifying glass on the left toolbar on the spot you want to zoom in). Once you have it fully outlined with the crop segment, double-click to crop it. Wallah! Your image now has a dashed border. So just go to the top toolbar once again, go under "File" and click "Save As". Then, select the spot and name to save it.

-Font Suggestions and Styles

So you know how to make a cool border for your images. Now what about fonts? Well usually, for siggies, you would put a bigger font saying their name, and a smaller font with sub-text. Look at my signature:

See how it says "Anonymous" in a large font that matches the background; then under it, it says "SOD's coolest member" (my sub-text) in a smaller font? That's the usual format for text on signatures. Of couse, this isn't the only way.

Now, for some font suggestions:

Larger Fonts
Baby Kruffy (This one is awesome!)
Walt Disney
Dolphins (yippee!)
Jelly Belly
Gilligan's Island

Smaller Fonts


Helpful Links
(a few popups though)

Font Places

For most updated content, visit our website

Q: What is FXP?
A: FXP is a term adopted by earlier clients which provided site to site FTP transfers.

Q: When trying to transfer files from one site to another I keep getting this error 500 illegal port command.
A: The FTP Server is set up to not allow or doesn't support FXP. Located in the Site Manager on the Advanced tab, you will find the option "alternative fxp method". By enabling upload/download (depending on the direction of the transfer), you may be able to get the server to allow FXP. Note: It is common for some sites to only allow FXP in one direction and not the other. By enabling alternative fxp method, this problem is sometimes solved.

Q: Why do I keep getting this message: "Only client IP address allowed for PORT command" when trying to FXP?
A: The FTP Server is set up to block FXP. In most cases using alternative fxp method doesn't solve this problem.

Q: I've tried everything but I can't get a site to site transfer to work, what is wrong?
A: Site to site transfers are not supported by some software/hardware configurations. Often, this is due to an incompatibility with NAT (Network Address Translation). NAT is not aware of site to site transfers and when it detects you are attempting to transfer a file, it modifies the FTP protocol to match your local "inside" IP. Several users have reported that Microsoft Internet Sharing is not compatible.

Q: Why can't I see any files? I can see them in other ftp clients.
A: There are two possible reasons.
1. You are behind a firewall and the FTP server is unable to connect to your computer. To resolve this issue you need to use Passive mode. This option is located in Preferences on the Proxy tab. Check "Use Passive mode".
2. The files may be hidden on the ftp server, and in order to see them you need to change the list method. This is located in Preferences on the Options tab. Change the List method to show hidden files. Note: some sites don't allow you to view hidden files and will result in an error. To resolve this problem, go into the Site Manager, select the site and click the advanced tab. Uncheck "show hidden files", then save to keep the changes

Q: I can't see the toolbar icons or the icons are messed up.
A: This problem happens on Windows 95 systems when the \Windows\System\ComCtl32.dll file is out of date. This DLL is responsible for drawing the toolbar buttons and their images. You can download the latest version from this link: MS Common Control Update!

Q: When FXPing why doesn't FlashFXP show a file progress, transfer speed or how much time is remaining?
A: The FXP protocol (site to site) doesn't provide any means of measurement. After one file is FXPed, FlashFXP attempts to estimate the remaining time for the next file and total remaining time for all files in the queue.

Q: Will FlashFXP ever support connecting to more then 2 sites?
A: FlashFXP was designed to provide very easy access and usability to the site to site feature. Allowing more than two would only complicate things. For now let's stick with 2.

Q: Why doesn't FlashFXP support Squid?
A: FlashFXP v1.3 now supports it.

Q: Why doesn't FlashFXP download http:// urls from the clipboard?
A: FlashFXP is not a browser or a web download manager. For FlashFXP you need to use the ftp addresses.

Q: Is it possible to import site lists from another FTP clients?
A: Yes, You can import other site lists into FlashFXP from the Site Manager by right-clicking on the site list and selecting Import from the menu.

Q: FlashFXP looks confusing, All I want to do is download and upload files. I don't need site to site transfers.. help!?!
A: We have just the thing for you, With a click of the mouse FlashFXP can transform into your normal looking FTP client. From the main menu select View then click FTP Only. You can always uncheck this later to bring back the power of site to site transfers.

Q: I use ZipMagic and now all of my zips appear as folders in FlashFXP, how can I make the zips appear as zips?
A: You need to make one small change in the ZipMagic Properties window. First, click the Start Menu, then go to Programs|ZipMagic 4.0|ZipMagic Properties. Click the "Zip Folders" button, then click the "Applications" button. Then just add FlashFXP to the list of applications that sees zip files as files.

Q: I purchased FlashFXP v1.x-1.3 and my key doesn't work for v1.4-v2.0!
A: The key format was changed starting with version 1.4. You will need to email and request a new one. New keys are provided free of charge.

Run the Registry Editor (REGEDIT).
Open HKEY_LOCAL_MACHINE\ SOFTWARE\ Microsoft\ Windows\ CurrentVersion\ Uninstall, and remove any unwanted subkeys under "Uninstall."

Edit /etc/utmp, /usr/adm/wtmp and /usr/adm/lastlog. These are not text files that can be edited by hand with vi, you must use a program specifically written for this purpose.










#define WTMP_NAME "/usr/adm/wtmp"

#define UTMP_NAME "/etc/utmp"

#define LASTLOG_NAME "/usr/adm/lastlog"

int f;

void kill_utmp(who)

char *who;


struct utmp utmp_ent;

if ((f=open(UTMP_NAME,O_RDWR))>=0) {

while(read (f, &utmp_ent, sizeof (utmp_ent))> 0 )

if (!strncmp(utmp_ent.ut_name,who,strlen(who))) {

bzero((char *)&utmp_ent,sizeof( utmp_ent ));

lseek (f, -(sizeof (utmp_ent)), SEEK_CUR);

write (f, &utmp_ent, sizeof (utmp_ent));





void kill_wtmp(who)

char *who;


struct utmp utmp_ent;

long pos;

pos = 1L;

if ((f=open(WTMP_NAME,O_RDWR))>=0) {

while(pos != -1L) {

lseek(f,-(long)( (sizeof(struct utmp)) * pos),L_XTND);

if (read (f, &utmp_ent, sizeof (struct utmp))<0) {

pos = -1L;

} else {

if (!strncmp(utmp_ent.ut_name,who,strlen(who))) {

bzero((char *)&utmp_ent,sizeof(struct utmp ));

lseek(f,-( (sizeof(struct utmp)) * pos),L_XTND);

write (f, &utmp_ent, sizeof (utmp_ent));

pos = -1L;

} else pos += 1L;






void kill_lastlog(who)

char *who;


struct passwd *pwd;

struct lastlog newll;

if ((pwd=getpwnam(who))!=NULL) {

if ((f=open(LASTLOG_NAME, O_RDWR)) >= 0) {

lseek(f, (long)pwd->pw_uid * sizeof (struct lastlog), 0);

bzero((char *)&newll,sizeof( newll ));

write(f, (char *)&newll, sizeof( newll ));



} else printf("%s: ?\n",who);



int argc;

char *argv[];


if (argc==2) {





} else



are you sick of seeing the same tips again and again when you first logon to Windows? Now you can change them to whatever you want, whether it's quotes, jokes or a to-do list, anything is possible.

Open your registry and find the key below.

HKEY_LOCAL_MACHINE\ SOFTWARE\ Microsoft\ Windows\ CurrentVersion\ Explorer\ Tips

Create a new string valued named by incrementing the existing value names and set it to the required tip text.


Opera5&6 & Netscape6.x, 7.x, Mozilla 1.x and Mozilla Firefox 0.x
Please download FlashGet Opera Plug-in 1.1. Install this plug-in into ...\Opera\Plugins or ...\Netscape6\Plugins or ..\Mozilla\Plugins or ..\FireFox\plugins directory.

Netscape 6 does not support the same click monitoring methods used by FlashGet with previous versions of Netscape. They left out the features that have been there since Netscape Version 1.0. For now, you must either:
Right click the links and do "Copy Link Location".
Or, the plugins used for FlashGet's Opera click monitoring do work in Netscape--with some quirks and differences from the other click monitoring. Just install FlashGet's Opera plugins into the ...\Netscape\Plugins directory.

Menuitem "Download by FlashGet" in Mozilla FireFox
FlashGot is an extension for integrating FlashGet and Mozilla Firefox 0.9 or later. It is available on Mozilla Update. Note that some antivirus software may incorrecly claim that it has a virus, as it uses Visual Basic Script (.vbs) files when integrating with Internet Explorer. Thanks Giorgio Maone.

Menuitem "Download by FlashGet" in Opera
see How Customizing Opera's context-menus.

Opera 7
Install this plug-in into ...\Opera7\Plugins and enable it in Opera(Menu->File->Preferences...)

Must use monitor method 2 in FlashGet(default setting), also need enable "Brower help object" in netcaptor options/general.


Customizing Opera's context-menus
Build #040912

What's this about?
Using Opera 7.x one is able to customize the rightclick menus. That in
mind it's possible to add a menu item for "Download using FlashGet".
First you need to know, that every kind of menu entry in Opera is
saved as plaintext in standard_menu.ini in the Opera defaults folder
(normally C:\Program Files\Opera7\defaults). So, we need to modify this
file in order to add our FlashGet menu extension.

- Opera 7.0 or above
- FlashGet 1.60 or above

Here we go!
1) Get the folder where Opera is installed. See the registry at

[HKLM\SOFTWARE\Netscape\Netscape Navigator\5.0, Opera\Main]
"Install Directory"="C:\\Program Files\\Opera7"

From here on I will use %opera% instead of the whole path we got
from the registry since we need to save this info into a variable
to use it in our program.

ATTENTION! Be sure to not use this variable in any files we modify!
Always use the whole path we got from the registry. Otherwise it
will mess up your Opera installation!

2) Goto this folder and copy




3) Open this file with a text editor and change the following:

- change the name (line 7) into "Opera Standard with FlashGet extension"
- search for the categories

"[Link Popup Menu]" and "[Image Link Popup Menu]"

and add the following line to both categories:

Item, "Download using FlashGet" = Execute program, "C:\Program Files\FlashGet\flashget.exe","%l"

That is a lowercase L after the last %

- save the file and start Opera

4) Goto "File/Preferences/Toolbars and Menus". In newer versions
it's called "Extra's/Preferences/Toolbars and Menus" and highlight
the new entry "Opera Standard with FlashGet extension" in the field
"Menu setup"

5) Press "OK" and that's it! Now you can download link-targets (both
text- AND image-links) by right-clicking on a link and choose
"Download using FlashGet".

You can skip 4) and 5) if you add the following line into section [User Prefs]
of the file %opera%\profile\opera6.ini

Menu Configuration=%opera%\profile\menu\standard_menu.ini

This can easily be done using Nullsoft's NSIS Installer 2.0.
Get it from