Notes and tips for beginning in Linux[Your mileage may vary!]
This is not a HOWTO. I do not know the inner workings of any part of Linux or any GNU tools well enough to presume to write such a document. It is, instead, just some caveats, advice, and tips taken from my experience with Linux.
* Read. You have a huge collection of tools with any Linux distribution or installation. I don't care how good the GUI gets, it is unreasonable and illogical to believe you can understand the functions, configurations, and proper usage of those tools without reading.
* Chat rooms are not a substitute for reading.
* If you do seek help in a chatroom, read. Don't bombard the chat with screams of help. Just ask. The amount of help you receive will most likely be inversely proportional to your patience and courtesy. You'll still be on your own in separating the garbage from the good.
* If you intend to set up a dual-boot or multi-boot system, learn about partitions first. You don't want to find out the hard way. Read a little and you won't run out and buy some "magical" program to do your partitioning. You'll find all the tools you need with your distribution of Linux.
- Read. You need to be armed with information about partitions.
- A PC can have up to 4 primary partitions. Take one out for win/dos, one for your swap partition, one for your / partition, and that leaves only one. Fortunately, one primary partition can be an extended partition. An extended partition's sole purpose is to hold logical partitions. The program cfdisk will create an extended partition the first time you tell it to create a logical partition. That is, if you haven't already used up those 4 primary partitions.
- One of the biggest stumbling blocks for new Linux users is partitioning. Some distributions try to make this painless, but you may still find it necessary to manually create your partitions. You have two basic problems:
- Make room on your computer for Linux. You can do this by either crowding an existing win/dos installation to give up free space, or by adding a second hard drive. In the former case, be sure to use scandisk and defrag first. Then use fips.exe to split the free space off from the space used by win/dos. Adjust the proportions of the two resulting partitions to suit you. After that you need to boot Linux (CD or boot disk) and run cfdisk to delete that newly created, empty partition (the second one, not the one that holds your win/dos installation!). In the latter case (2nd, empty hard drive), go on to the next step.
- Create some sensible partitioning scheme for Linux to live in. Use cfdisk to create these partitions. You can play with it to get them the way you want. Nothing is written to disk until you tell it to do so. Make sure you change the partition type on one partition to 82 (Linux swap). Once you are satisfied with the number and sizes of partitions, write down their names and where you intend to mount them on your directory tree. Have cfdisk write the partition table, exit it, and reboot. You should be ready to begin the installation.
* Unless you are installing onto a hard drive of less than about 4 G, don't dump your entire Linux installation into a root partition (not to be confused with the root directory) and a swap partition. You will create frustration for yourself later. Make a separate partition for /home at least. If you are putting Linux on a drive that already holds some other operating system, you may need to create a small partition for your /boot directory just to make sure it is contained within that magical 1024 cylinder limit of BIOS. Proceed cautiously concerning partitions! Visit The Linux Documentation Project and read the online HOWTOs.
Many of the auto-install programs of Linux distributions create only a "native" and a swap partition. There is nothing inherently wrong with this except for the inconvenience noted above. An advantage to having one partition that holds all of your system is that you won't run out of room in, for example, /var when /home or /usr have lots of space remaining.
Here are some usable, roomy sizes that allow for growth and beginning experimentation (unless you're doing some serious serving, in which case you need a lot more information than you will get here!):
The size shown in [ ] is a *reasonable* maximum, not a system limitation.
If you find you've short-changed some directory, you can add another hard
drive and do some symlinks. Gigabytes are cheap.
Size
Mountpoint [Up to] Description
/boot 5 MB May not be able to set it this small,
[ 15 MB] depending on geometry.
May not be needed, with newer versions of LILO.
/ 128 MB The / directory holds everything, but the partition
[ 1 G ] that holds the / directory does *not* have to contain
everything.
/var 256 MB This could be larger, depending on services and logs.
[ 1 G ] Debian stores downloaded packages in a subdirectory of
this, so make this larger if possible.
/usr 512 MB Depends on how much software you install!
[ 4 G ] This directory is the container of most of the binaries
(programs) and their documentation. It will also hold
the sources for compiling. 2G will allow for a well-
stocked system.
/home 512 MB Make this one large if you download a lot or have
[ how multiple users on the machine. This one should hold
much all of 'your' stuff. By putting it on a separate
can partition, you can later change distributions without
you disturbing your personal files. Just don't format it
give during the next install or upgrade.
it? ] Many distributions default to placing the root for the
ftp and http servers in this directory. This is another
good reason to expand the partition holding /home.
swap 128 MB Use the guidelines given with your distribution.
[ Generally, swap should be double the amount of RAM installed.
But systems now seem to have more RAM than is needed for all
running programs. Most people with 64 MB of RAM or more have
little need for more than 128 MB of swap.
Your mileage may vary. ]
There are lots of ways to set up your drive; read some HOWTOs and apply the information to your situation.
* Throw your windows-only modem away. Even though there are kludges to make it work in Linux, it was a dumb idea to begin with. A real hardware modem is much more efficient.
* Don't think you have to install everything that comes with your distribution. Most come with some sort of package management tools, so it's pretty easy to add extras later. Take the time during installation to pick and choose. Installation is not something you do every day, so don't rush it. Read before you act. Who cares if it takes two hours to install because you read everything, if the system is going to run solidly for years?
* If you have the disk space (and it doesn't take much) install as much documentation as is included with your distribution.
* Examine the files under /usr/share, /usr/doc Remember that with Linux, you have documentation that runs the gamut from cookbook-like HOWTOs all the way to the very source code of the programs you're running.
* Expect frustration. Remember how lost you felt the first time you sat down at a computer keyboard.
* If you're coming from Windows, resist the ingrained habit of rebooting or reinstalling to solve problems. Does your GUI (graphical user interface) appear locked? Wait, it may come to its senses. If not, alt-ctrl-backspace should kill the X server. Some systems trap that key sequence so learn how to switch to a command line virtual console (alt-ctrl-Fn, where Fn is a function key F1 - F6, depending on your system). From the command line you can find out what processes are running using the command ps ax and then kill the process that's become unresponsive. Read about it. The Installation and Getting Started Guide is essential beginning reading.
* Don't restrict yourself to the GUI; learn to make efficient use of your system by learning both the GUI and the CLI (command line interface). Here are some commands to start you on your way:
man <name> display the manual page for <name>; as in man man man ls man cat man less cd <name> change to directory <name> your home directory has the special name ~ cd ~ will always take you home ls <name> list files in directory <name> as in: ls /usr/bin ls /usr/local/bin cat <name> similar to 'type <filename>' in DOS, see the man page for more uses less <name> less is more than more - displays a file one screenful at a time and allows scrolling with arrow keys or pageup pagedown keys* The more you learn about the system, the more impressed you will be. It's like a whole colony of specialized assistants within your machine. You can direct them. Get used to the idea that it is your machine again. When you give it a command it may not ask you if you're sure, most of the time it will simply do its best to carry out your command as swiftly and efficiently as possible. There is a sort of artificial survival instinct built in, but it does not supercede your commands.