Getting Started With Linux
Getting Started With Linux
Preparation
What is Linux?
Linux is an operating system that evolved from a kernel created by Linus
Torvalds when he was a student at the University of Helsinki. Generally, it is
obvious to most people what Linux is, however, both for political and practical
reasons, it needs to be explained further. To say that Linux is an operating
system means that it's meant to be used as an alternative to other operating
systems like MS-DOS, the various versions of MS Windows, Mac OS, Solaris
and others. Linux is not a program like a word processor and is not a set of
programs like an office suite.
When Linus Torvalds was studying at the University of Helsinki, he was using a
version of the UNIX operating system called 'Minix'. Linus and other users sent
requests for modifications and improvements to Minix's creator, Andrew
Tanenbaum, but he felt that they weren't necessary. That's when Linus decided
to create his own operating system that would take into account users' comments
and suggestions for improvements.
This philosophy of asking for users comments and suggestions and using them
to improve computer programs was not new. Richard Stallman, who worked at
the Massachusetts Institute of Technology, had been advocating just such an
approach to computer programming and use since the early 1970's. He was a
pioneer in the concept of 'free software', always pointing out that 'free' means
'freedom', not zero cost. Finding it difficult to continue working under conditions
that he felt went against his concept of 'free software' he left MIT in 1984 and
founded GNU. The goal of GNU was to produce software that was free to use,
distribute and modify. Linus Torvalds' goal 6 years later was basically the same:
to produce an operating system that took into account user feedback.
The kernel
We should point out here that the focal point of any operating system is its
'kernel'. Without going into great detail, the kernel is what tells the big chip that
controls your computer to do what you want the program that you're using to do.
To use a metaphor, if you go to your favorite Italian restaurant and order
'Spaghetti alla Bolognese', this dish is like your operating system. There are a lot
of things that go into making that dish like pasta, tomato sauce, meatballs and
cheese. Well, the kernel is like the pasta. Without pasta, that dish doesn't exist.
You might as well find some bread and make a sandwich. A plate of just pasta is
fairly unappetizing. Without a kernel, an operating system doesn't exist. Without
programs, a kernel is useless.
In 1991, ideal conditions existed that would create Linux. In essence, Linus
Torvalds had a kernel but no programs of his own, Richard Stallman and GNU
had programs but no working kernel. Read the two men's own words about this:
RMS: The GNU Hurd is not ready for production use. Fortunately,
another kernel is available. [It is called] Linux.
Linux is introduced
Late in 1991, Linus Torvalds had his kernel and a few GNU programs wrapped
around it so it would work well enough to show other people what he had done.
And that's what he did. The first people to see Linux knew that Linus was on to
something. At this point, though, he needed more people to help him. Here's
what Linus had to say back in 1991.
"Are you without a nice project and dying to cut your teeth on an
OS you can try to modify for your needs?... This post might just be
for you."
People all over the world decided to take him up on it. At first, only people with
extensive computer programming knowledge would be able to do anything with
that early public version of Linux. These people started to offer their help. The
version numbers of Linux were getting higher and higher. People began writing
programs specifically to be run under Linux. Developers began writing drivers so
different video cards, sound cards and other gadgets inside and outside your
computer could use Linux. Nevertheless, throughout most of first part of the
1990's Linux did not get out of the 'GURU' stage. GURU is a term that has
evolved to mean anyone who has special expertise in a particular subject. That
is, you had to have special expertise in how computers worked to be able to
install Linux in those days.
Other popular software companies sold you a CD or a set of floppies and a brief
instruction booklet and in probably less than a half an hour, you could install a
fully working operating system on your PC. The only ability you needed was
knowing how to read. Those companies had that intention when they actually sat
down and developed their operating systems. Linus Torvalds didn't have that in
mind when he developed Linux. It was just a hobby for him. Later on, companies
like Red Hat made it their goal to bring Linux to the point where it could be
installed just like any other operating system; by anyone who can follow a set of
simple instructions, and they have succeeded. For some reason, though, Linux
hasn't shaken off completely that 'Gurus only' image that it took on at the
beginning. That is mostly the result of articles in the popular, quasi-technical
press whose experience with Linux has been quite limited.
Linux Today
Today, Linux is enjoying a favorable press for the most part. This comes from the
fact that Linux has proven to be a tremendously stable and versatile operating
system, particularly as a network server. When Linux is deployed as a web
server or in corporate networks, its down-time is almost negligible. There have
been cases when Linux servers have been running for more than a year without
re-booting and then only taken down for a brief period for routine maintainance.
Its cost effectiveness has sold it more than anything else. Linux can be installed
on a home PC as well as a network server for a fraction of the cost of other
companies' software packages. More reliability and less cost - it's ideal.
If you're reading this, you're obviously here to learn how to use Linux. Any
learning experience means opening up to new ideas and new ways of doing
things. As mentioned before, Linux is in the UNIX family of operating systems.
UNIX is primarily designed to be used by professionals. You will have to learn
some UNIX concepts in this lesson, but that doesn't mean that Linux is a
professionals-only operating system. Quite the contrary. Most major versions of
Linux are designed to be as user-friendly and as easy to install as any other
operating system on the market today.
Now that you know what Linux is and how good it is, there's one more thing we
have to do - install Linux!
[Previous] [Next]
Getting Started with Linux - Lesson 1
Installing Linux
Some preliminary considerations.
There are many different versions of Linux. Unlike other commercial operating
systems that are controlled by one company, Linux is free to distribute and use.
So, in the Linux world, there is a situation unlike what occurs in the proprietary
operating system world: a number of companies, organizations and individuals
have developed their own "versions" of the Linux operating system, known as
distributions. There are versions of Linux that were developed to be installed on
computers that receive heavy traffic, so to speak, like webpage servers. Some
were developed to be used in networks were security is a priority; where
sensitive information should only be accessed by a privileged few. There are
versions of Linux that are meant to be installed on top of an existing operating
system like Windows so people can try out Linux under familiar conditions. There
are versions of Linux that are designed to be installed on platforms like
MacIntosh. There are versions of Linux with funny names like "Chainsaw Linux"
(no kidding) and "Tutti-Frutti Linux" (yes, it's a joke)
Most PC users probably just need the everyday version. This kind of Linux has
been widely available for some time now. Unfortunately Microsoft Corp., who
makes its living selling people "ordinary" operating systems, have a lot to lose if
Linux ever got popular with the masses. For this reason they have done
everything in their power to "warn" the public that Linux is something that you
probably don't want and don't need. But in reality, Linux is just as easily installed
and supports just as wide a range of hardware as Microsoft Windows does. The
PR department at Microsoft is coming up with fewer and fewer reasons not to
use Linux. Add to this the fact that in the last year or so three major
"distributions" have emerged that cater specifically to the non-technical user and
you can see that Linux has truly achieved the goal of being all things for all
people.
It would be impossible to cover all of the different types of Linux so this lesson
will only deal with standard versions of Linux that are meant to be installed on
PCs with Intel-based CPUs. You may have heard of some of the companies and
organizations that have created distributions for this platform, like Debian,
Mandrake, Red Hat and SuSE . There are others as well. There are even
versions of Linux that offer documentation and install programs in languages
other than English. We should say here that it is not our intention to endorse the
products of the companies we have mentioned here nor do we want to slight
those companies that we haven't mentioned.
Linux Online maintains a list of all kinds of distributions. We invite you to consult
that list before deciding on installing any version of Linux.
The best thing to do before attempting to install Linux is to get the manuals that
came with your PC out of the closet and dust them off. Major distributions of
Linux have taken into account most standard hardware such as video cards,
modems and sound cards, but as we said before, nobody can guarantee a
problem-free installation for any operating system. Though you probably won't
need them, they may help to track down a problem or prevent a future one. Now,
go get those manuals, and we'll meet you in the next lesson!
[Previous] [Next]
1. A solid, quality Linux distribution with a long history (in Linux terms)
2. Non-profit and non-commercial (which lets us off the hook on a lot of
issues!)
3. Applicable to a wide range of uses and users, from newcomer to
seasoned IT professional.
4. Easily obtained and updated.
About Debian
The Debian project was founded by Ian Murdock in 1993. It's name comes from
Debra, his wife and his name (Deb-Ian: ergo, Debian). One of the Linux world's
most illustrious people has been a primary developer of Debian, namely Bruce
Perens. He was one of the founders of Pixar, the company that created animated
films such as Toy Story, Monsters, Inc. and other popular films produced by Walt
Disney Pictures.
Debian has no company behind it. The Debian project is sponsored by Software
in the Public Interest, a non-profit organization dedicated to helping produce
open-source software and hardware. Despite its not-for-profit status, Debian can
and is being used from anything from a Pentium 3 you can surf the web with to
the mission critical server that has to be up 24/7 that you get the content from.
We can also add a lot in between.
If you have a broadband connection (cable, xDSL or better), you can easily
obtain this distribution and install it. There are two major ways to do this. The
most popular is to burn the Debian ISO images to CDs and install. If you have a
CD burner, this is an ideal option. The second is to obtain a minimal ISO image
especially designed for a install over the Internet (ie, downloading the files as the
installer needs them). This can also be done by downloading floppy disk image
files instead of CD images. More information on these methods can be found at
http://www.debian.org/distrib/
Preliminary considerations
You may be wondering if you can keep another operation system (ie. MS
Windows - which other one is there?) on your computer. You can.
Are we going to explain how to do it? Not in great detail. Why? There are a
couple of reasons:
If you happen to have MS Windows 9.x you must repartition your hard drive to
make room for Linux. You can either erase the drive and repartition a blank drive
or you can attempt to repartition a working hard drive. Ideally, what was done in
the "old" days was to install Windows in C: and D: partitions. This is relatively
easy to deal with. As a matter of fact, my first install of Slackware Linux was on
the D: partition of my Windows workstation.
If you've got one partition with Windows on it, there are some supposedly non-
destructive re-sizing tools. They always tell you to back up your data before
proceeding, so I always figure - what's the use in re-sizing when you can start
clean from scratch. You may decide you want to throw away Windows all
together!
Summing up, I recommend Linux only installations. Linux has become quite
"mature" as an end-user operating system, so I find these stories about being
"weaned" off Windows to be ridiculous. (the exception, supposedly, being those
who run the financial software 'Quicken'). If you've bought a new car, you don't
have to be "weaned" off that. You just trade in the old one and start driving the
new one. The graphic user interfaces available plus the ever growing numbers of
productivity applications (office suites, browsers, email applications, etc.) make it
such that a MS Windows user could have his/her workstation switched with a
Linux machine overnight and they would barely break a sweat getting used to it.
Everything works very much in the same way.
[Previous] [Next]
Your hard disk is like a pie. You can divide it into sections. Unlike a pie, after
you've divided it, you can't give a piece to the dog. My dog did try to eat my hard
disk once and he really relishes the floppies I leave lying around, but alas, I
digress. For example, if you had two partitions, popular operating systems would
generally call them C and D. You can call them Ginger and Fred, or Ginger and
Marianne or even the Professor and Marianne if you like. I just use these bad
jokes as a way of saying that C and D are naming conventions that belong to
other operating systems. Linux doesn't use them. Linux may call them /hda3
and /hda5 for example. We'll get to that in a minute. Then you will need another
partition known as a 'swap' partition. This 'swap' partition is just a way that Linux
uses to get more memory so that you don't run out of it.
The classic way of partitioning your hard disk is with a program called 'fdisk' The
program comes with a lot of whistles and buzzers and flashing messages that
say "Danger, Will Robinson". There's a version for Linux and but it doesn't
mention Will Robinson. We want to say here that this is the SWAT team method
of doing it - the scorched-earth policy of partitioning. If you have that important
term paper on your hard disk, or pictures of that dream vacation to Hawaii that
you haven't shown to your Aunt Betty yet or your best DOOM scores, you'll need
to make back-up copies of them. The re-partioning using this method will get rid
of them - forever! [cue ominous organ music].
But installing Linux isn't dangerous and if you choose to install you may not need
such a drastic solution to your partition problem. As we mentioned before, If
you're fortunate enough to have a hard drive with more than one partition (the old
C: and D: routine), then it may be just a question of moving some files around.
Unfortunately this lesson can't take into account everybody's individual
circumstances.
There's a tool called FIPS that comes with major Linux versions. This will re-
arrange your hard drive so you can install Linux. There are also other commercial
products that will do the same. That may be an option for you, unless you've got
a hard drive that's bursting at the seams. You should know that any decent
working Linux system - and by decent, I mean, having the programs that will let
you do anything you did with your Windows system- will take at least 2 gigabytes.
Please keep that in mind. And if you want those photos of Hawaii on there, I'd
plan for a bit more
To talk about where Linux and other operating systems should go. In any
situation where you've got two things sharing the same space, like two people
sharing the same apartment, one person will always exert his rights over the
other. Other operating systems usually want to be the only ones in the computer,
so even though it's really not going to be this way, you have to install them in the
first 'primary' partition, and that way it thinks it's the only one there. That means
installing it in /hda1 in Linux speak. So remember, if you've chosen to go the fdisk
route, the other operating system should be re-installed first. When you've got
that re-installed, you are free to install Linux in what's left. Once you've installed
Linux, you can actually see the other system's partition, sort of like those phony
mirrors at the supermarket. We'll talk more about that in another lesson.
[Previous] [Next]
Okay. Now is the moment of truth. We've got the CD in the drive, and we're
ready to go. Restart the computer. This should now boot the Linux kernel located
on your CD ROM.
What you'll have to do first is partition the hard drive. There is an easy way to do
this. You can dedicate the whole hard disk or non-Windows partition (depending
on the type of install you're doing). There is a better alternative. That is to
partition your hard disk even further and put "parts" of Linux on separate
partitions. For example, this is the scheme that works for me:
Let's take a 10 gigabyte hard drive as an example. First, you should see how
much RAM you have. From this figure, you create what's known as a SWAP
partition. This is simply a way that Linux uses to get an extra memory boost.
Custom dictates that your swap partition be double your ram memory. So if
you've got 256 megabytes of RAM, the feel free to make a 500 megabyte swap
partition. Then my partition scheme ends up looking like this:
Partition Location Size
swap /dev/hda2 500 mb
/ (boot) /dev/hda1 1.2 gb
/usr /dev/hda3 3.5 gb
/home /dev/hda4 5 gb
Assign partitions to look like this. Don't worry about the /usr and /home parts.
That will come after. You must indicate here that you want / to be the bootable
partition. /usr will contain most of the programs that will run on your machine.
/home will contain your personal files. This kind of a partition scheme may come
in handy if you have problems with your hard disk. You may be able to save
information if it's located in different partitions easier than if it were only one big
partition.
Before we actually assign the other partitions their places and functions, we need
to initialize and activate a the swap partition. Do this now.
Now you should initialize the / partition - the one that will boot the Linux kernel.
Now, there is what I consider a little glitch in the Debian install. It doesn't really
take into account that you want to initialize /usr and /home partitions. Don't go to
the next step yet. You should go back and initialize these partitions now before
proceeding.
[Previous] [Next]
You'll now be asked if you want to use Md5 passwords. Without getting into a lot
of technical jargon, Md5 passwords are protected with an extra layer of security.
You should choose this if you think you'll be needing extra security. You'll have to
evaluate this on your own. If you don't choose this, you'll be asked if you want a
'shadow' password system. Once again, without going into any technical jargon,
this is another Unix scheme for extra security. You should always answer 'yes' to
this one because without it, your password, especially if it's some dictionary
word, would become very easy to crack. By the way, you should never use a
dictionary word as a password.
As we're on the subject of passwords, now it's time to enter the password for the
famous 'root' account. 'root' is the administrator of the system. It's also known as
the superuser account. We'll get into more detail on the duties and privileges of
root later on. Suffice it to say, you should now type in a password for the 'root'
account. Please choose one that's easy for you to remember but would be
difficult to guess or "crack". For example, if I were a Star Trek fan, I might be
tempted to use Spock as a password. Spock probably isn't in the dictionary, but it
might be so well known now that it would be found in any program that crackers
use to get into systems. Therefore, I would choose something a little less well-
known in Trek lore and modify it somewhat. Trek fans will remember that mutant
brat who once tried to take over the Enterprise, Charlie X. Well, 'ch4rl13X' might
be a good password. Taking the some letters and replacing them with similar
looking numbers. This is an acceptable password procedure. The best is, of
course, creating a random string of lower case and capital letters and numbers
and just remembering it. 'C2jl7y2B' is an excellent password. It is, however,
difficult to remember. In the end, everybody comes up with his/own own scheme
that works.
Now you should create an account to work with normally. What I mean by
"normally" is that Linux is a true multi-user system, so one machine can be used
by hundreds of users. When each logs in, he/she is restricted to modifying only
the files owned by him/her. This insures a lot of security and removes a lot of
headaches. You should never do routine work as root. This account should be
only used to perform important administrative tasks. Feel free to use your first
name or the first letter of your name and your last name as the login for this
account. Follow the password convention you're comfortable with.
Now, you'll be asked to remove PCMCIA from the system if yours doesn't use it.
Feel free to do so.
You will now be asked if you want to configure your system to use your ISP. If
you have a dial-up connection, this is a good time to use it. If you connect by way
of broadband or better, you can skip this part.
At this point, we're ready to choose the rest of the packages that will make up our
Debian system.
[Previous] [Next]
When you have completed the scanning process, you will be asked to choose
another 'apt' source. With Debian, you can download and update packages
automatically right off this Internet with the 'apt' system. We will configure this
later, right now it's best not to choose another apt source besides the CDs.
At this point, if you are connected to the Internet by way of broadband for
example and the install program can make a connection to Debian's security site,
it will now start searching that site for security updates. From the time the ISO
images are released to the point where you are installing, security flaws may
have been found in certain programs included with Debian. For this reason a
check is made and any programs with flaws are marked and updated copies
downloaded and installed.
After the security updates are finished, you will be presented with the possibility
of doing a simple install with The Debian Task Installer. This will install programs
after you have indicated your general preferences from a menu.
If you are more adventurous, you may choose the more advanced install process
by way of dselect. Here you will choose packages "by hand" from a list of
hundreds. Though the dselect interface is not visually appealing and may appear
daunting to newcomers, it is fairly straight forward and is actually quite user
friendly in the sense that it is almost impossible to run into trouble with the
packages you want to install. If you were to choose a package that conflicted with
something else, you are notified. That way, you can either choose to keep the
package that Debian recommends or "un-select" the package so your own
choice can be installed.
Here we reach the end of the install section. You will have to do some more work
in this department, but due to the fact that the packages each person might
choose and the hardware in his/her machine, we can't really document
accurately what's going to go on from here. Our install road has reached a
plethora of forks in it. Some simple advice: just answer the questions as
accurately as you can and you should be fine.
Post Install
We'll assume that you've got a working Debian system now. If you've got a
broadband or better connection to the Internet, you should now configure the apt-
get system which will allow you to update your system quickly and painlessly. It
will also allow you to get new programs by downloading and installing them
automatically.
If you have a basic knowledge of Unix commands already, You should go to the
directory /etc/apt/ and do the following (as root). (Even if you don't, you may want
to try it!)
mv sources.list sources.list.old
This renames the file sources.list to sources.list.old. sources.list is what told the
'dselect' and 'apt' programs where to get the packages to be installed. Now we're
going to change things a bit. We'll tell them to get packages off the Internet
directly. We need to create a new sources.list file and add our new package
sources to it. Do this first:
vi sources.list
This brings up the text editor 'vi'. There are people who love this program so
much, they will challenge you to a pistol duel at 20 paces if you tell them you
think it's lousy. If you have zero experience with Linux or Unix, 'vi' is probably
*not* the text editor for you at this point, but with a few simple strokes of the
keyboard, we can do what we want for now.
Hit the escape (ESC) key and the letter 'i' and your ready to insert the following.
You may want to do to Debian's homepage and look up suitable mirror sites
nearer to you. I'm sure the people who maintain the Debian website would
appreciate it too!
Now you're ready to keep your Debian system in shape. We'll give you a
refresher later on in the course, but you will probably be making use of these
commands while you use Debian.
apt-get --purge remove [program/package name] removes any trace of a program from
your system.
[Previous] [Next]
You have now installed Linux and the first thing you did was login as 'root'. Then
you provided a password so that you and ONLY you could login to the system as
'root'. When you decide to work as root, you had better go into a phone booth
first and change into a blue suit with a big 'S' on the front because 'root' is known
as the 'superuser'. (you can skip the red tights if you want)
That's really not meant to be just a witty reference to the Man of Steel. Actually, it
is much more glamourous to be 'Superman' but root is actually more like the
'janitor' of the Linux system. Root has the keys to everything, he can shut off the
lights, shut off the heat, lock you out of the building; he has to clean up the
system and in the end make sure everything runs. And the most important thing
about being a janitor - he sees everything.
As I mentioned, Linux makes your computer a true multi-user system, that means
that besides root, you can and should work as another person. I say 'should'
because doing routine work as 'root' could be hazardous to your health. When I
first started using Linux myself, information was not all that readily available and I
still had that 'one computer- one user' concept in my brain. It was after I had
trashed all of the files and programs that make Linux run that I realized that care
that working regularly as root wasn't a good idea.
[Previous] [Next]
Well, Bob, now it's time to create your account. If your name is Hrothgar,
substitute 'bob' for 'Hrothgar' or 'Hrothie' for the remainder of the lesson.
Now 'root' has to do this stuff. Yes, I know I just warned you about working as
root, but this is where you have to exert your authority. Most major distributions
have tools to do this. SuSE, for example, has a nice tool called YAST which lets
you add users painlessly. You just fill in the correct information. Consult your
Linux version for information on their tools. There is also the get-your-hands-dirty
way of doing this. Actually you won't get your hands dirty unless you're eating
barbecued ribs at the same time.
To add a new user, you can also use the command 'useradd'. Kind of a logical
name, isn't it?
Try this: useradd bob. You probably won't see any fireworks go off. You might not
see anything. That doesn't matter. Linux has been told that there's a new user
and his name's 'bob'.
Linux will ask you for your password. Follow the same advice I gave previously
about passwords. Also, don't use your 'root' password. Like 'one man, one vote'
it's 'one user - one password' You will be asked to repeat it.
[Previous] [Next]
Getting Started with Linux - Lesson 4
Creating your 'routine' in Linux
What's in your user directory
When you create a new user, there is a directory created for that user in /home.
To see what's in this new directory, you have to do the following.
you can make sure you're in the /home directory by typing 'pwd' You'll see this:
/home.
You can type: ls -a to see what's in the directory. We'll go into more detail with the
ls command later. With the -a option, you'll see some files that begin with a '.'
(period/dot). Those would normally be hidden from you if you didn't use the -a.
Now you can go to work as 'bob', or 'hrothgar' or whoever you happen to be.
[Previous] [Next]
When you're running Linux and start to type things on that black screen, you are
using a shell. Any operating system uses a shell to get commands from the
keyboard to the computer. It's a lot easier than punching holes in cards like they
used to do in the old days. There are actually programs for Linux where you talk
through a microphone and Linux will carry out commands that you've
programmed in advance. It's really cool. For now, though we'll concentrate on the
keyboard. The most popular shell used for Linux is the bash shell. bash means
"Bourne Again Shell". It is a free version of the Bourne shell and uses a little play
on words, as you can see.
We saw a few commands in the last lesson, but we didn't go into them much. We
will handle a lot of commands in more detail later lessons. This lesson will cover
those commands which you will need to see what's under Linux's hood.
The first one we should look at is 'cd'. Again MS-DOS users will be familiar with
this. cd will get you in and out of directories.
This will get you into the 'root' or main directory. It's the directory of directories,
the king of kings, your show of shows. The root directory shouldn't be confused
with root's directory. That is /root.
[Previous] [Next]
Type ls again.
This is the famous bin/ directory. You know, I have always felt this one was
misnamed. Like when people say, 'That's no good, throw it in the bin' Actually,
bin/ is one of the most important directories in Linux. You'll find all of the most
used commands there. Right now you should be seeing a lot of red (or green,
depending on your version of Linux). Those are programs.
Now lets look at another directory. There's a long way and a short cut. First the
long way.
or you can just type 'cd /etc' in the bin/ directory and it will bring you to the etc/
directory .
Anyway, you are now in the etc/ directory. This houses most of the configuration
files for Linux. lilo.conf, the file that tells you which OS to boot is in there.
And you don't even have to type the whole thing. You could just type 'ls li' and
push the tab key. Linux will type the rest for you. Isn't that cool!
[Previous] [Next]
Try this one: type ls m push the tab key. Linux is going to beep a couple of
times, but you keep pushing. You will now see every file in the directory that
begins with the letter 'm'
Now add an 'o' on to ls m so you get ls mo - now push the tab key. You
should see 'motd'. This is a file that contains your startup message. SuSE has a
famous one that says 'Have a lot of fun!'. I like that one so I haven't changed it,
but you can change it so that Linux says anything you want when you log in.
Do you want to make sure that lilo.conf is still in there? You don't have to type
'lilo.conf' or even part of it and press the tab key anymore. You just have to press
the up arrow. Your last commands will appear when you do that.
Your commands are saved in a history file located in your home directory. The
more times you press the up button, the farther back in time you go. Pressing the
down button gets you back to your most recent commands. Just stop on the
command you want and press 'enter'. You can even type the command history
and all of the last 400 or so commands you've typed will be presented. As you
get more proficient in Linux, you'll will find that this really comes in handy. You
can often find out the answer to the question: How did I do that? by consulting
your shell history.
For example, typing: ls -l will give you more detailed information about the
contents of a directory.
Try this: First let's go to the usr/ directory by doing cd /usr then type: ls -l . You
will see more information, like dates, some numbers, letter combinations, it'll say
'root' a lot. We'll get into more detail about what all of that means later in the
course. You'll see mainly sub-directories here. The usr/ directory contains files
and programs meant to be used by all of the users on the system.
[Previous] [Next]
If you do cd /dev and then ls, you'll see a lot of yellow outlined in black. These are
the devices that your system uses or can use. Everything is considered a file in
Linux, so your hard disk is kept track of as a file that sits there. If you're using an
IDE hard drive (as opposed to SCSI), your hard drive will be known as /dev/hda.
Don't delete that, because your hard disk will spin around, come jumping out of
your computer, land on the floor and spill out ooze all over the place. No, not
really. You will probably not have to look in /dev very much, so don't worry about
that.
Doing: cd /boot will get you into the /boot directory. You will not find any boots or
shoes or footwear of any kind there. That's where the Linux kernel usually is.
Power users may change the location of the kernel for reasons of their own (they
may prefer /shoe), but it is normally placed there on most systems. You will
eventually have to use this directory, because you may need to use two or more
different types of kernels in the future. That will be taken up in a more advanced
lesson.
If you are not working as 'root' and you type cd /root, you will be taken to the
directory /root. However, you won't be able to do anything while you're there.
Root's home directory is a restricted area for everybody else. Linux response is
sort of like, 'You don't have to know that'. Users' home directories are under
certain restrictions for other users as well.
/sbin is another one of those off-limits directories. You may look, but you can't
touch. This directory is like /bin in that it has frequently used programs in it, but
they're only meant to be used by root. 'Shutdown' is in there. Only root can
shutdown the system. If a user other than root tried to shutdown the system, he
or she would get a message saying that only root can do that. Then that person
would be followed by the secret police for three months.
/tmp is a directory that is used to store temporary files, as the name may
suggest. You will find later on that when you use a Windows-style system with
Linux like KDE, this window manager will create files there for temporary use.
When you double click on an icon of a photo, the photo comes up for you to see
but a temporary file is created while you're looking at the photo. The temporary
file is deleted when you close the KDE image program. It's mainly the programs
that work under a windows manager that take advantage of this directory.
/var is a directory for certain files that may change their size (ie. variable size) For
example, there are a few excellent databases for Linux. One is called MySQL.
Normally, MySQL keeps its data in a subdirectory of /var called /var/mysql/. If I
had an e-commerce website, I would have a database to register purchases.
That database would obviously grow in size. And if it didn't then I'd be in trouble.
It is also the normal place where email servers store their incoming mail. Again,
email varies in size as well.
/lib is for library files, that's where the name /lib comes from. Programs may use
libraries to carry out their functions. Different programs use the same libraries, so
Linux will store them here so that every program knows where to find them. You
will probably not have to worry about this directory much unless you start getting
messages like 'can't find shared library...'. That will sometimes happens when
you've downloaded some program and had to compile it yourself from source -
and even then, getting what are known as "dependency" problems are quite rare.
Most programs, even when compiled from source, usually have a pre-
configuration program that make sure they can find what libraries they "depend"
on to run. If they don't, they'll tell you you can't install the program.
[Previous] [Next]
We talked about /home before. This a directory for storing users' personal files.
All of us have certain preferences for using programs. These preferences are
usually included in configuration files which are also stored in users' home
directories. Most of these files start with a '.' (period/dot).
ls -a
What's left
The /floppy /cdrom and /mnt directories
These shouldn't contain anything. Later on, we'll explain in more detail what
these are for. Let's just say that in Linux, if you want to see what's on a floppy
disk or a CD, you're not going to be able to just click on an 'a:' icon or a 'd:' icon.
You're going to do
cd /floppy or cd /cdrom
If you try that now you probably won't see anything. As I said, more these
directories later in the course.
Well, we've looked under Linux's hood, so to speak. In the next lesson, we'll take
her for a little spin.
[Previous] [Next]
At this point you should have installed Linux, and you've looked around at what
you have. And then when you're finished you'll have to shut off your computer.
Actually, there are computers that are never shut off. Imagine if your ISP shut off
the computer every night! The Internet is a 24/7 business so that wouldn't be
practical. There are also people who probably just shut off their monitor. As you
probably get some sleep occasionally, so we should maybe let our machine have
a rest too once and a while. For this, we'll use the shutdown command
As anyone who's used a computer knows, if you shut off you're computer before
you've finished saving work, or if there's a power outage that shuts it off for you,
data will be lost. At first, if you shut off Linux incorrectly or there was an
inopportune thunder storm and you lost electrical power, you could do severe
damage to your Linux file system. That will very rarely happen these days, but
you should always use the shutdown command when you want to shut off your
computer. Linux will tell you about it if you don't - it will run a check on your hard
disk automatically when you use it again. If you have a big hard disk, you might
as well go and make yourself a sandwich because it's going to take a while.
Linux will also run a routine check every once and a while automatically. You
also have our permission to fix yourself a sandwich in these cases too.
The most common way of shutting down a single user Linux system is for you as
root to issue the command:
shutdown -h now
You use this when you plan on shutting your computer off at that moment, as
opposed to some later time.
It will start to shut off programs that you're computer is using and you'll see it all
happening. That's because Linux is a transparent system. It lets you see
everything it's doing. It won't give you a simple message telling you to wait and
then another one telling you you can shut it off now. If something is causing a
problem, it will tell you about it when it starts up and when it shuts down. That
way, if you are having a problem, you may be able to track it down. If you don't
know how to solve it, you can tell another person what you saw and he or she
may be able to help you.
With the shutdown -h now command, you must wait until you see the message:
System halted
or
Power down
shutdown -r now
If you have installed a dual-boot system and you want to use the other operating
system, (why would you want to do that?) you would use this command. You will
get a similar message as with the -h (halt) option that will say something like:
The basic reason behind all of these messages is that Linux was conceived to be
a networked operating system. You have people at workstations on the network
busily doing their work. The last part of the shutdown command now is fine for a
single-user home PC, but on a network system this would be changed to indicate
a time. That way people would have a chance to finish what they were doing
before the system went down for maintenence. Using 'now', in a network, would
probably be hazardous to the health of the person who sent that command.
The next time you shutdown your system, you may want to try using some time
options instead of just now. For example, you may want to try shutting down the
computer at a given time.
shutdown -h 20:01
Which will shutdown the computer at 8:01 PM. You could also try:
shutdown -h +5
Now you know the correct way to shutdown your Linux system. In the next lesson
we'll talk using the system again.
[Previous] [Next]
One of the coolest things that Linux has to offer is the concept of virtual
terminals. Back in the days of MS-DOS, one program could only be run by one
user at a time. Linux in non-graphics mode may resemble MS-DOS somewhat,
but that's where the similarities end. Linux is a true multi-tasking, multi-user
system. Unlike MS-DOS, you can can work as more than one user with more
than one program at a time
The combination of ALT, plus the F keys will allow you to login as a different
user, or as the same user, but to run a different program. All you then need to do
is type: 'exit' when your finished, and then press ALT-F1 again to get back to
your original terminal .
It's true that the 1990's brought us the era of the graphic user interface,
popularized by Macintosh OSes and Microsoft Windows. This gave us the
opportunity to have various programs running at the same time. The X-window
system of Linux will let you do this as well, but then we can add the concept of
multi-user to it.
If you've been experimenting with your windows manager already, you might
want to try one more thing. The combination CRL-ALT-F6 will get you out of your
windows manager momentarily so you can login as a different user. Pressing
ALT-F7 will get you back to your windows manager again. We'll mention this
again in the lesson on X-window.
[Previous] [Next]
If I were to choose one of the main reason why people use PCs, I would
definitely say for writing. With a computer and a word processing program, cross
outs, white out and crumpled up paper has disappeared forever. All those old
Smith-Coronas got put away.
Linux is just as well suited for word processing as any other operating
system.There are several excellent word processing programs for Linux like
AbiWord, KWord, part of the KOffice suite and the OpenOffice.org suite's word
processor. We'll talk about these kinds of programs in a later lesson. First, we
should talk about the terminal mode text editors that are available for Linux.
A text editor is just like a word processor without a lot of features. All operating
systems come with a basic text editor. Linux comes with several. The main use
of a text editor is for writing something in plain text with no formatting so that
another program can read it. Based on the information it gets from that file, the
program will run one way or another.
The most popular text editor for Linux is called 'vi'. This is a program that comes
from UNIX. There is a more recent version called 'vim' which means 'vi
improved'. The problem with 'vi' or 'vim' is that a lot of people don't like it. You
have to remember a lot of key combinations to do stuff that other text editors will
do for you more easily.
We should go through some basic 'vi' commands, because I have found that 'vi'
is good if I want to get into a text file quickly and change something or I want to
write a short note to myself. I generally do not use "vi" for anything that requires
more than about 30 seconds of work, but there are people who swear by 'vi' and
do all kinds of things with it like designing entire websites.
vi tryvi
You'll see a line of tildes down the left side and the name 'tryvi' at the bottom
and [new file].
To write something, you have to press ESC and the 'i' key (i for insert). Even if
you don't press 'ESC-i' it usually gets the idea that you want to type something
and lets you do it after a few keystrokes. You should get used to the 'ESC-i' keys
so you don't end up writing 'ar John' instead of 'Dear John'.
If you wrote jello vi or jello bi or something I don't want to know about, you
can always erase your mistakes with the backspace key.
To save this file, you would press ESC then the colon key ':' then 'w' (write)
To save the file and quit vi, you would press ESC, ESC the colon key ':' then
wq (write, quit)
To quit without saving, press ESC, ':' then 'q'. Vi may protest if you've written
something and you don't want to save it. If you press ESC ':' 'q!' with an
exclamation point, vi will accept it and not save your changes.
That's <BVI< B>in a nutshell, or more like a sesame seed. There are a lot of
commands in vi - and you may explore those on your own at a later date, on your
own terms and in the privacy of your own home.
[Previous] [Next]
pico' and 'joe'- sounds like a comic strip. Actually, they are two other text editors
that I like and I think are a little easier to manage. They're like 'vi' in that you use
them to create and edit non-formatted text, but they're a little more user-friendly.
Using 'joe' 'joe' was created by Joseph Allen, so that's why it's called Joe. I
suppose if his name had been Hrothgar Allen, it would have been called 'hroth'.
You won't see the tildes like vi. It looks a little friendlier. The majority of joe's
commands are based on the CTRL-K keys and a third key. The most important
of these is CTRL-K-H which gets you 'help'. Help shows you the key
combinations to use with 'joe'.
The most important thing about 'joe' is the logical concept that you can just start
writing if you want. Try writing anything you want.
If you want to see the other features of 'joe', press CTRL-K-H, as I mentioned
before.
My favorite little added feature of 'joe' is that if you edit a file again, it will save the
previous file with a tilde on the end, like 'tryjoe~' That little tilde file has saved my
life a couple of times. (well, maybe not my life) But it has saved me a lot of work.
I've made some changes to a file and then found out that wasn't a good idea. I
could always fall back on the tilde file, which is a copy of your previous edit.
'joe' is a very good option for writing those short text files that you'll need.
Using 'pico'
'pico trypico'
You'll see the commands you need in 'pico' specified at the bottom. You can just
start writing anything you want.
To save the file, press CTRL-o. To save and quit or to just quit, press CTRL-x
Pico will always ask you if you want to do what you're doing. That's good.
Questions like that will keep you from sending a file into non-existence without
wanting to. All the other commands you'll need are at the bottom of the page.
Well, this is our little overview of the main text editors available for Linux. In our
next lesson, we're going to need to use one in order to make our work in Linux a
little bit safer and easier.
[Previous] [Next]
The most common commands a computer receives are ones to copy files, move
files around, list files and delete files. Popular operating systems have perfected
this to such a degree that they have graphic interface programs to do all this for
you just by moving the mouse around and clicking on a few buttons. Linux has
these programs too, but anybody who's seriously thinking of using Linux on a
day-to-day basic should be familiar with the commands that you type in by hand.
Some people see this as a throw back to the old days. I see it as a way to have
more power over your computer because even those operating systems that are
billed as more 'user friendly' have provided you with a shell, just in case you need
it. And sometimes you do!
Before you start using the 'bash' shell you should be aware of a file that sits in
your home directory called '.bashrc'. You'll find a lot of files on the system that
end in 'rc'. Those files allow you to configure a certain program to run just the
way you like it. The best way to find it is to type.
'ls .bashrc'
You can open that file with vi, joe or pico, as we talked about in the last lesson.
For example, in your home directory you would type 'pico .bashrc'
An introduction to aliases
In that file, you can add something called an 'alias'. Everybody knows what 'alias'
means- 'an assumed name'. An 'alias' in this file are some lines that you write so
that your bash shell assumes that one command is really a variation of it. As you
already know, you can modify a command with a slash '-' and a letter To see
where the .bashrc file was, you could have typed 'ls -a' and that would have
shown you every file in the directory, including those that start with '.' If you find
yourself using these '-letter' combinations a lot, you can modify your .bashrc file
so that even though you type the simple command, like 'ls', you actually get 'ls
-a'.
Some of these aliases may be very important to keep you from sending that
novel you just wrote into non-existence by accident. I have a couple of entries in
my .bashrc file to keep me from getting into trouble. They are:
'cp' is the command to copy a file to another place or to make a copy of a file
under a different name. In order not to copy a file to a place where there's
already a file by the same name, you could type cp -v -i, (-v for verbose, -i for
interactive) and it would ask you if you really want to do it in case there's another
file by the same name. Then the -v would show you where it went. This is
probably a good idea all the time, so you could create an alias for it in your
'.bashrc' file.
'rm' is the remove/delete command. In Linux, this means gone forever [cue
ominous organ music] You obviously have to be very careful with this one,
because in the bash shell there is really no 'trash' bucket to pick it out of if you
delete it. That's why I've added the -i (interactive) command to my alias, so that it
asks me if I really want to delete that novel I just wrote.
'mv' is for moving files to a different place or renaming a file. I have an alias for it
for the same reasons as the 'cp' command.
To show the student how to add aliases to the .bashrc file Well, you now have
'.bashrc' open in 'pico' or your new, favorite text editor. It would be a good idea to
add this line first, so you know what you've done.
# my personal aliases
The pound sign (#) tells the shell not to read that line. It's known as a 'comment'.
Then you would add:
cp='cp -v -i'
rm='rm -i'
so we don't send anything into byte heaven without a warning. And finally
mv='mv -i'
# my personal aliases
alias cp='cp -v -i'
alias rm='rm -i'
alias mv='mv -i'
Save that file and logout and login again. Now you have a safer, easier shell
environment. As you get more proficient at Linux, you can add more aliases as
you see fit.
Now your shell's ready to go. If you type logout and then login again, you're
aliases will work. There is also a short-cut. If you type:
source .bashrc
[Previous] [Next]
'cd' command
To show the student the basic uses of the 'cd' command The first command you'll
use is 'cd'. We talked about this in a previous lesson, so let's review the basics.
Typing: cd /[directory name] will get you into one of the main directories in
Linux.
Typing cd without the / and a sub-directory name will get into that subdirectory.
Typing: 'cd' and the first letter or letters of a directory and the TAB key will
complete it for you. Then all you have to do is press enter.
Typing 'ls' will list the contents of a directory with just information about file
names.
You can use 'ls a*' to list the names of all the files that begin with the letter 'a'
and so on down through the alphabet. Please do not use the cuneiform alphabet
unless you're from ancient Mesopotamia.
To show the student how to get some more detail with 'ls -l' 'ls -l' will get you a
detailed listing of the directory like this.
The first part, those letter, are file permissions. We'll go into that in a later lesson.
That basically shows what you and others are allowed to do with the file, like
read it, modify it or make nasty comments about it.
The next one shows that you've got 1 file. The next one that it belongs to you,
'bob'. The next one represents that Linux, not only recognizes users, but also
groups of users. We'll go into that in the next course. The numbers are the size of
the file in bytes. You have the date and when it was created or modified or
copied there. Lastly, you have the name of the file, waikiki.jpg, which is obviously
your important tax records.
'ls -l' will give you a detailed listing in alphabetical order, starting with any file that
begins with a number, then any file that begins with a capital letter and then any
normal file that begins with a lowercase letter. So if you have a file
'007_secrets.txt' that'll be the first one you see.
'ls -l -t' will give you a listing according to the time with the newest ones
appearing first in the list. You don't need to separate the parameters either. 'ls -l
-t' and 'ls -lt' are the same thing. If you want the oldest to appear first, try:
'ls -ltr'
The 'r' is for reverse order.
There are a couple of parameters in capitals that you may want to use. 'ls -lS'
will list your files from biggest to smallest. 'ls -lSr' will reverse this order.
'ls -lX' will list files according to type in alphabetical order. If you have any that
end in *.zip, then those will be last. If you want those to be first, now you know:
'ls -lXr'
There is also a parameter that will help you if you want to find out more about
these commands or any others. 'ls --help' will give you details of all the possible
variations for this command.
File is an interesting little command. MS-DOS got us all used to the idea that a
file had to have an extension (file.extension- like 'novel.txt') that told us what kind
of a file it was. In Linux, it's 50/50. You don't have to do that if you don't want. In
MS-DOS, programs end in '.exe', in Linux, they don't have to and probably won't.
Linux is also color coded, as you know, so once you get used to the colors, you'll
know what the file is about. Let's say your friend Tony, the one with the magic
markers, sends you a file he says is really neat. It's attached to an e-mail
message and it says 'stuff'. You can see what type of file it is by typing:
'file stuff'
This means that the file contains plain text. It's probably some jokes or his
favorite chili recipe.
If you don't know what some particular file contains and you're curious about it,
you can use this command to get some information about the file.
To introduce the student to these commands 'more' is a command that you can
use to read, for example, what's written in that 'stuff' file that Tony sent you.
'less' is better for viewing files. You can scroll back up to see the whole text if you
want. You can't do that with 'more'. 'less' is more than 'more', if you get my
meaning.
type
'less stuff'
[Previous] [Next]
To show you how to copy files with Linux We talked about 'cp' in the lesson on
aliases. 'cp' is for copying files from one place to another, or for making a
duplicate of one file under a different name.
Let's to back to Tony's 'stuff' file For example, if you saved Tony's e-mail
attachment to your main /home directory, /home/[your name], you may want to
create a directory to keep Tony's files You could make the directory for Tony
tonyd (Tony's last name is Dweebweiler)
mkdir tonyd
then you can do: cp stuff tonyd Remember use your TAB key to save time.
Now you're going to have TWO files named 'stuff' because you copied that file to
the directory 'tonyd/' - you didn't move it there. You'll have the original 'stuff' in
your home directory and then the copy in /home/[your name]/tonyd/.
You'll be able to tell the difference between the two files because the copy of
'stuff' in the directory 'tonyd' will show a different time. If you use the command ls
-l stuff on both files, you'll see this.
If you had used the command cp -p instead of just cp you would end up with two
identical files in two different places. If you don't want that, there's a better way of
doing it so that 'stuff' is only in the directory 'tonyd'. That's the mv command.
We'll talk about that shortly.
To show you how to copy directories and create duplicates of files. Now let's talk
about two more basic uses of the cp command and some short cuts.
cp -r /home/bob/tonyd/ /home/fred/
cp -r /home/bob/tonyd/ ./
cp -r /home/bob/tonyd/ ~
with the tilde wherever you happen to be and that will automatically copy the
directory 'tonyd' to your other home directory.
The other use of 'cp' we talked about was to get a copy of a file with a different
name. For example, Tony's file 'stuff' is loaded with jokes. You may want to add
some more jokes and then pass it along to another person You could do this:
cp stuff stuff2
Now you have another file that you can add jokes to while you preserve the
original file. You can open it in 'pico' and start writing: "Why did the chicken cross
the road..."
Always remember to use that TAB key and the up and down arrows to save
yourself some time.
Now we'll look at the command 'mv'.
[Previous] [Next]
'mv' is a command that we're going to use to move files around or to rename
them. 'mv' sort of has a split-personality because it serves these two functions at
the same time.
Let's go back yet again to Tony's file, 'stuff' again. 'stuff' is not a good name for a
file just as 'book' isn't a good name for a book. Just imagine: "The number one
bestselling book this week is 'Book' by John Author.
You should probably re-name this file to something meaningful. I would suggest
doing something like this:
mv stuff tonys_jokes
You may have noticed the underscore '_' in the title. It's there because Linux
doesn't really like spaces in the file names. You can do it and Linux will accept it
but it will put a \\ between the different words. Spaces are sort of 'faux pas' in
Linux but not 'verboten'. It would be to your advantage to use '_' between words
though.
Now you can use the 'mv' command to move Tony's jokes into the directory you
made to keep his files.
mv tonys_jokes tonyd/
If you do cd tonyd and then ls to* you will see his file there along with
'toms_jokes' and 'tomato_soup_recipe'. (if you have another friend named Tom
and you like to cook)
You can also move entire directories with this command. You do not have to use
the '-r' option as you did with 'cp'. You would just substitute the file name for a
directory name
mv tonyd/ my_friends/
What? You don't have the directory 'my_friends'? Well, let's create it with another
command.
[Previous] [Next]
'mkdir' is the command for making directories. 'mkdir' may be familiar to MS-DOS
users out there. As you have noticed, the people who wrote these programs tried
to give them names that described what they do more or less, not as long as
'makemeadirectoryplease' and not too cryptic like 'xr77b'.
To create the directory 'my_friends' that we talked about in the last lesson, you
would type:
mkdir my_friends
There are no whistles or buzzers. If you'd like some sort of acknowledgment, you
could type
If you type ls -l You'll see it there along with information about it.
Now you know how to use 'mkdir'. You can even use it to create a directory
called 'my_enemies' if you're into that sort of thing.
rmdir my_friends/
So, you have to use your 'rm' command on the files first to remove them or use
'mv' to get them into another directory. Then you're free to use 'rmdir'
[Previous] [Next]
'rm' is for removing or deleting files. That means, sending them into non-
existence, oblivion, bye-bye.
So you have to be careful with 'rm'. That's why we put an entry into our '.bashrc'
file: alias rm='rm -i' so that it asks you if that's what you really want to do.
If you created a file called 'bad_jokes' and you wanted to get rid of the file, you
would type rm bad_jokes, and because you made an alias, it will ask you.
You would press the the 'y' key unless of course you remembered that you have
a real good one in there and then you would answer: with the 'n' key. Actually,
any key other than 'y' is the same as responding with the 'n' key, so if you
accidentally type 'w', don't worry. 140 'rm' - some words of caution To show you
where you may get in trouble with 'rm' and how to avoid it
You can also do stuff like rm b* with the asterisk, but I would use my best
judgment with that. You may get 'y-itis' and just keep pressing the 'y' key. I have
done that before.
Occasionally, when I've used the text editor 'joe' a lot I end up with a lot of files
that end in a tilde (~). You get files like 'note_to_myself1' and if you've modified it,
another one 'note_to_myself1~' Then I decide that I don't want all of those ~ files
littering up my directory and I innocently type: 'rm note_to_myself*' and then 'y' 'y'
'y' and then I realize too late and my brain types: 'Y did you do that!!" The
problem is that 'note_to_myself2' contained my important plans for taking over
the world and 'note_to_myself3' contained a note about how much money I owe
at the dry cleaners. Maybe taking over the world can wait, but my dry cleaner's
not going to give me my suits the next time unless I pay him.
There's another case of 'rm' that's potentially more dangerous than the 'rm *'
case. That's adding the '-f' option on the end. If you do this, it will override the '-i'
option and won't ask you anything. It just goes ahead and deletes the files in
question. For example, if you were in a directory and typed 'rm * -f' you would
delete everything, no questions asked. I generally use the '-f' option very
sparingly, like when Valentine's day falls on Friday during leap year and
coincides with a full moon.
Also, please be very careful when you're using the 'rm' command as 'root'. You
could do some very serious system damage if you delete the wrong files. Wait
until you have some experience before you start removing files 'by hand' as 'root'.
Use the configuration tools provided in your version of Linux to un-install
programs that you don't want.
[Previous] [Next]
This is the first time that we're going to see a command that's meant to be used
with other commands. That means that the pipe will separate two commands so
that they will be done one after the other. Let's try some plumbing.
For example, if you looked at the contents of your /proc directory with:
ls -l /proc
ls -l /proc | more
you could scroll down with the ENTER key and see it all.
Actually, ls -l /proc | less is a better solution because you can scroll up and
down with the arrow keys. Remember that in a previous lesson we said: "Less is
more than more".
You're probably going to end up using this a lot. You're personal directory in
/home will fill up and pretty soon 'ls -l' will overflow in your terminal or x-terminal
window.
There's a little short cut if you've forgotten to use the pipe. You can also scroll up
and down in a terminal with the SHIFT-PAGE UP / SHIFT-PAGE DOWN keys.
[Previous] [Next]
To show you how to get more information from the manual pages and other
documentation sources The first command is 'man' This command will show the
manual for a command or program. The manual is a file that shows you how to
use the command and list the different options for the command in question. You
would type:
The manual file for 'mkdir' will come up and give you a detailed explanation of
this command.
The manual file for 'mkdir' is actually one of the more straight-forward ones.
There are a lot that I think we're written by Harry Bigbrains and they were meant
to be seen only by Richard Biggerbrain who's sitting in the cubicle next to him.
By default, sparse SOURCE files are detected by a crude heuristic and the
corresponding DEST file is made sparse as well. That is the behavior selected by
--sparse=auto. Specify --sparse=always to create a sparse DEST file whenever
the SOURCE file contains a long enough sequence of zero bytes. Use
--sparse=never to inhibit creation of sparse files.
I don't know about you, but I'm going to call my lawyer. I've been assaulted by "a
crude heuristic".
If you use the command cp --help, you'll get a nutshell version of the 'cp'
command.
If you use your pipe cp --help | less, it'll be a little easier to manage.
Typing info [command name] will get you more information on a command and
is more current than most man files and perhaps a little more readable. In fact,
some 'man' files will actually tell you to consult the 'info' file. The 'info' files are not
always installed automatically. so you may want to consult your own version of
Linux about these files.
Apropos
The word 'apropos' means pertinent to something else. There is a command that
will show you all of the man page that may shed some light on a certain
command. For example, if I typed:
apropos xterm
resize (1x) - set TERMCAP and terminal settings to current xterm window size
xterm (1x) - terminal emulator for X
terms (5) - database of blessed terminals for xtermset.
xtermset (1) - change settings of an xterm
These are all man pages related to xterm. You would then just choose one of
these and type man terms for example.
Some versions of Linux that are made for languages other than English will give
you this documentation in its particular language. There are also websites that
specialize in documentation in other languages. You can use your favorite
Internet search engine to find Linux documentation in your own language.
[Previous] [Next]
Now we're going to talk about a touchy subject. The command 'touch' which is
used to change the time and/or date of a file.
You can use 'touch' if your boss yells at you about not having a report ready at
lunchtime. You should quickly finish the report, then type:
and it makes it look like you did it at 9:15. The first four digits stand for May 7
(0507) and the last four (0915) the time, 9:15 in the morning. Make sure your
digits match your story. You don't want to have it look like you did it in February.
Of course, if you punched in at 9:40, then you're in trouble.
'touch' can be used also to create an empty file. You would just enter touch [a
file name]. There may be times in the future when you need an empty file that
will be filled up later automatically by the workings of some program. We'll deal
with the uses of 'touch' in our later courses.
There's so much on a computer's hard drive, nobody could ever know from
memory where everything is. Perhaps the smart lad who won the spelling bee by
spelling 'prestidigitator' might be able to, but most of us are going to have to find
things now and then.
If you use a windows manager like KDE, you can use the find tool. It's very useful
because it has a lot of options and you can use them to modify your searches.
But if you're getting used to using command line stuff, just type in:
and find out where you put you pictures of you Hawaiian vacation. If you're in
your /home directory, it will go through every directory and find every file that has
the name 'hawaii' in it. The two asterisks make sure it does that. If they started
with 'hawaii' you wouldn't need the first asterisk but you can leave it there if you
want.
You may have created some file recently. For example, you may want to find
some file that you were working on, let's say from now up to 10 minutes ago, you
could type.
This will list the files that you created or modified within the last ten minutes. If
you choose to use a higher number for -mmin -? you should probably use a pipe,
for example:
will find things that you created or modified up to 2 hours ago and the '| less' part
will make it easier to read.
[Previous] [Next]
In the last section we talked about the 'find' command which finds files. Now we'll
talk about the 'grep' command which finds words in files. Your windows manager
may have this incorporated into its find tool but then again, the beauty of Linux is
having alternatives.
'grep' is a Vulcan word that means "find". Actually it isn't, but it sort of looks like it,
doesn't it?
Let's have a little practice session with 'grep'. The best way is learning by doing,
so let's do it.
A 'grep' mini-tutorial
With 'pico' or any Linux text editor, create a file called 'mary1.txt'
pico mary1.txt
Then type:
Press CTRL-X in 'pico' (if you're using that) and it will prompt you to save.
Then create: mary2.txt and enter the text Mary had a little cow.
Save that and create the file: mary3.txt and type: Mary had a little too much to
drink. Now we know what Mary was doing when she wasn't watching her lambs!
Now save that file.
OK, now we're ready to try out 'grep', so phasers on stun and let's go.
Let's explain this a little. 'grep' looks for the word "Mary" in any text file that is
called "mary(something).txt". You've created three files that start with 'mary', so
the asterisk makes sure that 'grep' will look for the word 'Mary' in all three.
The word 'Mary' is in all of those files, so you'll get this output.
If you type grep little mary*.txt you'll get the same output because the word
"little" is also in each of those files. But if you type the word "cow", you'll get this
output:
Typing grep drink mary*.txt will get us more or less the same, only that
mary3.txt will show up instead of mary2.txt.
Well, there's 'grep' in a nutshell. It's been a pleasure 'grepping' with you!
[Previous] [Next]
'who'
'who' is a command to find out who's working on your system. As you now know,
Linux is a multi-user system. Even if you're using one computer at your home,
you may be working as more than one person. For example, if you logged in as
'root' but are working as 'bob'. You may see something like this:
This is just Linux's way of saying that 'root' started working on terminal 1 on May
20 at 9:48 in the morning and bob started working on terminal 2 at 10:05. This is
mainly used in networked situations so the system administrator knows who's
working. It can be used by your boss to find out that you've come in late too. You
may use it to find out if you've opened more that one terminal so that you
remember to log out.
[Previous] [Next]
'tee' is used to write out what appears on your screen into a file. You will be using
this with the after a pipe '|' .
ls -l | tee directory_listing
to get a file with the listing of a directory. If you've placed files in a directory to be
backed up, you could use this command to create a listing of that directory. You
could print out the file on a label and stick it to the disk, tape, zip cartridge or
whatever you used to make the backups.
If you're using the 'tee' command for the backups I described before, you may
want to put a date on the file. You can use this command:
The command 'date' will enter the date and time in the file at the end. Remember
to use the -a option if you're going to write to that file a second time. If you don't
you will erase everything on the file in favor of whatever the second command
was.
The "greater than" symbol '>' will do the same as 'tee'. You don't need the pipe
command (|) with this one.
ls -l > directory_listing
will give you the same result. If you want to add the date at the end, use the
command:
The two symbols will add to the file without erasing its contents
This command, the number two (2) with the "greater than" symbol >, is used for
creating a file for an error message that you may get.
You will probably not be using it a lot because we all know how perfect Linux is
and how few errors there are when you're using it. But every once and a while
you may want to download some software from the Internet You install it and -
whoops! - there's some error. You may not have something installed that the the
program needs to run. You could just do something like this:
You create a file with the error message. You could show it to someone who
might know what's missing or you could send it to the author of the program. He
or she would also like to know about it and will probably help you fix it.
[Previous] [Next]
whoami is a nice little program that tells you who you are, just in case you didn't
know already. You amnesia victims are in luck! Actually it tells you who you are
in terms of how Linux understands who you are, that is to say, your user name.
So if your user name is bob and you type whoami you'll get: bob This comes in
handy if you switch terminals a lot and work as a different user. You may, in
terms of computer use anyway, forget who you are!
'whatis'
To show you how to use the 'whatis' command 'whatis' is a command so you can
find out what a program does. If you explore your Linux system, you will find a lot
of programs and you may not know what they do. You would simply type: whatis
grep for example, and you would get this:
Linux is good, but it's not all-knowing, so if you type: whatis orange juice You
will get this message:
basically telling you that Linux has no idea what orange juice is
'whereis'
If you wanted to find out if you have the 'pico' editor and where it is, you would
type:
whereis pico
It shows you where the command is as well as the location of its manual file.
whereis Harry
'which'
To show you another tool for locating programs 'which' is similar to 'whereis'. It
will give you the location of a program. At times, a program may not find another
program it needs to make it run. It will need to know its location or "path". For
example, a program may need Java to run it but thinks its in another place. You
would simply type:
which java
/usr/lib/java/bin/java
This is a handy command because some locations of programs vary from one
version of Linux to the next. A software developer may have designed his/her
program to access Java, for example, from a different location. As Open Source
software will always let you modify configuration files to get your program
working according to your needs, you can get the program to work for your
system.
[Previous] [Next]
To show you some uses of the 'echo' command 'echo' is a little command that
repeats anything you type. For example if you type echo hello Linux will display
the word 'hello' .
There is really no need to do that under normal conditions. You may find 'echo'
useful in the future if you start writing "shell scripts" which are like little programs
that you could use to do a few commands at one time. You could use 'echo' in
those scripts to tell you what the script is doing at any given time, or to prompt
you to do something, like enter text. Shell scripts will be taken up in a later
course.
There is a practical use for 'echo' in everyday life. I sometimes use it to write
short notes. If we use 'echo' along with 'pipe' (|) and 'tee', you've got a poor-
man's post-it-note. For example:
Will make you a nice reminder note about dear 'ole Bill. Just remember to read
your note. You could type:
'wc'
To show you the use of the 'wc' command to show you the number of words, etc.
in files People following this course from Europe may recognize this as the
symbol for 'bathroom'. Unfortunately, if you type this in your terminal it will not
show you the way to the 'facilities'. Actually, this command will give you the
number of lines, words and letters (characters) in a file and in that order.
Let's go back to the file about the people I owe money. If I type:
wc people_I_owe_money.note
As you can see, there are 439 lines, so that means if each line represents one
person, then I owe 439 people money. There are 6510 words and a total of
197120 characters.
I might add that this is a good tool for people who write letters professionally and
get paid by the word.
[Previous] [Next]
'dir'
The people who traveled down the MS-DOS road will know this one. Actually,
dir=ls -l. It will give you the same result. If you do any downloading or uploading
of files via FTP by way of a non-GUI FTP program in your terminal, you may find
this command useful. I once ran into a case where the remote computer didn't
recognize the ls -l command. I just typed in dir and that did the trick. Then I fired
off a nasty e-mail asking why in the world they weren't using Linux!
'pwd'
The command pwd will show complete information on the directory you're
working in. For example, if you type pwd you may get something like this:
/home/bob/homework
which shows you that you're in the directory 'homework' in your user directory as
'bob', so you know exactly where you are.
'date'
Did you forget your wedding aniversary? Your boyfriend or girlfriend's birthday?
Tax day? (everyone wants to forget that one!) No need for that to happen
anymore with Linux. Just type:
date
You'll get this: (or something like it, actually. If you get the same thing as I do,
then I'd consider buying lottery tickets)
You probably get everything here. If you're living in central Europe, you will
recogize the 'CEST' part. That stands for 'Central European Standard Time'.
Linux recognizes world time zones and you set this up when you installed Linux.
If you live on Mars, you're out of luck, unfortunately.
There are other uses of the 'date' command. To see just the date, type:
date +%D
date +%T
To see on what day Christmas falls this year (really, I'm not kidding!), type:
and you'll get the day that Christmas falls on this year. Substitute that for any
date that you'd like to see.
There are many other options. Consult your manual file ('man date') or ('info
date')
'cal'
Typing cal will give you the calendar of the present month on your screen, in the
nice standard calendar format. There are a lot of useful options.
If you type:
cal 2000
You'll get the entire calendar for the year 2000. Substitute any year you like.
If you type:
cal 12 2000
You'll see the calender for December of 2000. Substitute any year or month you
like.
If you add the option cal -m, the week will start on Monday, as it is preferred in
many countries.
Just for fun, I typed cal 10 1492 and I found out that Columbus discovered
America on a Friday. That was good luck for him because that way he got to
relax for the weekend.
'exit'
As you can guess, you can get out of a terminal with the exit command. If you're
working in text mode, typing exit will prompt you to login again. If you want to
work as another user, use logout instead.
If you're in x-windows, exit will close the X-Terminal you're working with
exit with the option "stage right" will get you an error message.
[Previous] [Next]
'last'
The command last will show you the people who have logged into the computer
today and the terminals they are/were using.
If you type:
last
As you can see, you worked as 'fred' for 3 hours and 10 mins. You are still
working as 'bob'. You worked as 'root' for 20 minutes (probably some
administration tasks) and you booted your computer at 4:22 PM.
This is a good way to see who's been using the computer if it's networked. For
example, if you saw a an entry for 'satan' and you hadn't given the Prince of
Darkness permission to login, you could fire off a nasty e-mail to him about mis-
use of your server. His address, by the way, is "[email protected]"
'df'
'df' is a command that you're going to use a lot if you're pressed for hard disk
space. Once again, there are many programs that run graphically that will inform
you of the space available on your Linux partition. But this is a very good, quick,
non-graphic way to keep track of your hard disk space.
If you type df
You may get something like this. (This is actually taken from a system I use for testing
versions of Linux. You'll see it's somewhat pressed for space.)
if you start seeing a 'df' output like this, it's time to get down to your local
computer shop and buy a new hard disk. Anyway, 'df' is a good way to keep track
of this.
'free'
'free' is a command that you can use if you want to know how much RAM
memory you have free on your system. By typing:
free
Sometimes, if a program is running particulary slowly, you may find out that your
memory usage is high using this command. Linux's memory management is
quite good but a certain program may be "hogging" memory. You could exit that
program and then type free again to see if it was the culprit.
'du'
'du' is the way to see how big files are. You can use it on a directory or on a
particular file. This is another command I use a lot. It's probably best to use the
option du -b (-b for bytes) and it will give you the exact figure in bytes. By default,
'du' shows the closest kilobyte figure. Let's look at a couple of examples:
If I type:
du people_I_owe_money.note
194 people_I_owe_money.note
du -b people_I_owe_money.note
I'll get:
197120 people_I_owe_money.note
As you can see, it's a big file. I owe a lot of people money. On the other hand
look at the output for 'people_who_owe_me_money.note':
1 people_who_owe_me_money.note
No, that's not the kilobyte figure. That's the byte figure!
You can also use this on a directory, and it will list the files and subdirectories
and give you the byte or kilobyte count, whichever you prefer
top
To show you the use of the 'top' command. Here you will see what processes are
running 'top' is a good command to use when you want to see what your
system's doing. 'top' is designed to show you how your CPU is being used. It will
give you a pretty complete list of everything that's going on in your computer.
Here's a sample output of the 'top' command:
[Previous] [Next]
'ps' will give you a list of the processes running on your system.
Just typing ps will give you the processes you're running as a user. It may look
like this:
If you happen to forget what your name is, you can type ps -u. This is the user
mode and your user name will appear in the first column. Actually, there's more
than that. There will be other columns about memory usage, the time you started
running the processes and others.
You can see other users processes if you type ps -au. If you're not using a
networked computer, you will see yours and root's processes. If you're into
detective work, you can type just ps -a and try to guess who's using the process.
The information that you'll probably be most interested in is the column that
shows the "process ID" or "PID". We'll get into why these are so important in the
next part of the lesson.
[Previous] [Next]
To do this, first, you would type ps and you would get this output that we talked
about before.
Let's say you're trying a new game that was just ported to Linux. The game is
called "Evil and Nasty Alien Visitors". The name of the "binary" or program itself
is called evilaliens. (the last one on my 'ps' example) It's a beta (i.e - check it out
and tell the author what bugs are still in it) version and the game starts giving you
problems. Now you can't exit the program either. The aliens just took over
Oklahoma and you swore you got them all. You're playing in your x-windows
enviroment and you have an x-terminal open (probably the one you typed 'ps'
into). You would just type:
kill and the PID number, in my example, 441. That is: kill 441
and the program disappears, along with all those nasty aliens.
Here's a little trick. If you don't want to do two steps, 'ps' and 'kill' and you know
the name of the "binary" or program itself, as I mentioned before, you can just
type:
killall evilaliens
Remember that when you work as root, you are the all-powerful master of the
universe. (or at least the computer). When you use 'kill' as root, you are the 007
on Her Majesty's Linux Service. You have license to 'kill' the process you desire.
If you're working as 'root' and you need to use the 'kill' command, it's a good idea
to run ps -au and look closely at your PIDs. You don't want to end up killing
some process that you need.
[Previous] [Next]
MS-Windows and Mac users are used to clicking on an icons and dragging the
files they want copied to a floppy or another part of the hard drive. Linux users
that use KDE or GNOME can also copy files in that way to different parts of the
hard drive. However, if you would like to use floppies, we should talk here a bit
about the type of file system Linux uses.
MS-Windows, from Windows 95 on up uses a file system called 'vfat' Linux uses
a different system called 'ext2'. There are also other types of file systems out
there. You may have chosen to have both Windows and Linux installed in your
computer. At one point, you might have to access files in the Windows partition of
your hard drive. You would use a command called 'mount' to do that. You would
also have to indicate as an option in that command that the file system you want
to access or "mount" is a Windows 'vfat' file system.
On the same idea, though floppies are becoming somewhat obsolete, you may
want to store some files on a floppy or access data on a floppy that someone has
given to you. You would also have to use the command 'mount' before you
copied data to or got data from a floppy disk. If that person is a Windows user,
then you would have to indicate once again that the file system is 'vfat'. If you
want to copy data from your Linux partition to a floppy, you would have to format
and then "mount" the floppy as a Linux 'ext2' file system.
Most floppies sold on the market are pre-formatted for MS-Windows. You can
copy data from Linux to a Windows formatted floppy with no problem. If you want
to copy Linux files to a floppy to be used in another Linux machine or to be used
by you later in Linux, then it might be better to format the floppy for Linux's ext2
file system.
We should also say now that this is considered an administration task. You have
to be working as 'root' to be doing this. As you get more familiar with Linux, you
can use commands such as 'su' to do the work of root on certain occasions when
you're not actually working as root. We'll explain this command in later lessons.
To create a linux floppy "by hand", you would place a floppy in the drive and type:
mke2fs /dev/fd0
The command is an abbreviated way of saying "make an ext2 file system". The
other part is the device, your floppy drive, which is known to Linux as "fd0"
(floppy drive 0). As we mentioned in the first part of the course, everything is a
file in Linux, including your floppy drive.
You will hear the customary noise of the floppy drive (some are louder than
others - some older ones that I've heard sound like a chain saw) and you will get
some output like this:
and some other information about the size of the floppy etc.
You now have a Linux formatted floppy. You may want to run this command to
check if the floppy has defects
e2fsck /dev/fd0
Some windows managers have a nice programs to do both the formatting and
the checking of the disk at the same time.
[Previous] [Next]
To access a floppy disk from the command line of our shell, we would use the
command mount and type the following: (remember: you need to be working as
'root' to do this)
• you have a floppy disk in the drive (you'd be surprised how many times I
forget to actually put the floppy in the drive)
• in this example, the floppy type (indicated by the option -t) is a Linux
formatted floppy. If you want to mount a Windows floppy, change the
option to -t vfat
• in your root directory (you can get to it by typing: cd /), you have a
directory called floppy. If you don't, you should create it (mkdir floppy).
Some Linux distributions create this automatically during the installation
process. Some don't.
Let's explain what we've just done here. When we typed: mount -t ext2
/dev/fd0 /floppy we told Linux that our floppy disk is now part of our Linux file
system (/dev/fd0) and that any files we would like to store on that disk will be
copied to /floppy, as if it were just another directory on our Linux system. If you
did it right, typing the command 'df' (the command to see how much free disk
space) should include something like this:
Now, to copy to and from the floppy disk, you would type:
cp my_file /floppy
If you wanted to create individual subdirectories on the floppy, you would first
change to the /floppy directory:
cd /floppy
Then you would use the mkdir command to create the directories you want. You
can also use the command cp -r my_directory/ /floppy to copy the directory
automatically to the floppy. (make sure you have space! - I have on occasion
tried to copy a 3MB file to a 1MB floppy!)
You can also use the mount command to copy to and from other devices.
If you would like to get some files from a CD-ROM, the standard command to do
this is:
The type, iso9660 is the standard file system for a CD. The device (/dev/hdb) is
the non-SCSI type of CD-ROM and the mount point (/cdrom) should exist. If it
doesn't, you should create it in the root directory with 'mkdir', just as you may
have done with the /floppy directory.
Remember that the concept of CD-ROM is read only. You won't be able to write
to this type of CD-ROM drive. A message will tell you that when you mount this
type of device.
Many people may have preferred to install Linux along with another operating
system. You may have Linux and Windows installed in the same computer. If you
would like to access files on the Windows partition you would type the following
command:
Windows is always in the primary partition, so that's why we've used the device
/hda1 (hard disk partition 1). The choice for /mnt is the standard mount point in
this case. You may use the /mnt directory to mount the other devices (floppies,
CDs) as well. I use the different empty directories (/floppy /cdrom /mnt) to avoid
confusion.
If you change to the mount directory (cd /mnt) and then type: ls and you'll see
something interesting. The directories are blue but the files are green (or red -
depending on your distribution of Linux). You won't have the various color
combinations as you do in Linux. That's because Windows' file system doesn't
distinguish file types. Everything looks like it's a program (binary) instead of a
regular file.
When you copy files from the Windows partition to the Linux partition you should
bear this in mind. For example, if you wanted to copy an mp3 file from the
Windows partition to the Linux partition to test out your sound configuration, it
would show up as a executable program and not just a standard file under Linux.
This doesn't effect your playing it, but for a more accurate accounting of what you
have on your system, you may want to change the permissions of the file so that
it shows up as a regular file in your color scheme. We'll talk about file
permissions and and making changes to them shortly.
[Previous] [Next]
In the early days of Linux, you could do serious damage to your system if you
didn't unmount manually after you were finished. Nowadays if you have mounted
a system and you shut down the computer without unmounting, the chances are
pretty slim that you're going to trash a file system. Slim, however, isn't good
enough for me. I'd rather not take a chance. I always take the time to unmount
these external file systems when I'm finished with them.
Remember also to NOT be accessing the floppy etc. when you use umount or it
will give you a drive busy message. If you get this, you may have left a terminal
open where you were using to copy or write to the particular drive. Check your
terminals if you get this error.
I just wanted to point out another thing too. You are 'unmounting' but the
command is umount (that is, without the N of un) Being u(n)familiar with the
mount concept when I started with Linux, I typed unmount instead of umount
and much to my surprise, I got the message: command not found.
U(n)deniably, I had done something wrong. It took me a while to figure out that
the command didn't include an N. I haven't really done a survey on how many
people have actually done this. For all I know, I may be the only person who has,
but I just thought it best to warn you.
Well, now you can use the standard devices that most PC users need. Later in
our advanced class we'll talk about installing and using other devices like
scanners, CD writers, Zip drives and matter/anti-matter flow inducers. (well,
maybe we'll save that last one for the super-advanced classes!)
[Previous] [Next]
As we mentioned at the beginning of this course, the big advantage that Linux
has is its multi-user concept- the fact that many different people can use the
same computer or that one person can use the same computer to do different
jobs. That's where the system of file permissions comes in to help out in what
could be a very confusing situation. We're going to explain some basic concepts
about who owns the file and who can do what with a file. We won't get into an
enormous amount of detail here. We'll save that for the Linux system
administration course. We will show you how to understand file permission
symbols and how to modify certain files so that they're more secure.
This basically says, interpreting this from RIGHT to LEFT that the file,
linux_course_notes.txt was created at 6:30 PM on July 10 and is 1892 bytes
large. It belongs to the group users (i.e, the people who use this computer). It
belongs to bob in particular and it is one (1) file. Then come the file permission
symbols.
Let's take a look at some other examples. An interesting place to look at different
kinds of file permissions is the /bin directory. Here we have the commands that
anybody can use on the Linux system. Let's look at the command for gzip, a file
compression utility for Linux.
• The program name, date, bytes are all standard. Even though this is
obviously different information, the idea is the same as before.
• The changes are in the owner and group. Root owns the file and it is in the
group "root". Root is actually the only member of that group.
• The file is an executable (program) so that's why the letter x is among the
symbols.
• This file can be executed by everybody: the owner (root), the group (root)
and all others that have access to the computer
• As we mentioned, the file is a program, so there is no need for anybody
other than root to "write" to the file, so there is no w permissions for it for
anybody but root.
If we look at a file in /sbin which are files that only root can use or execute, the
permissions would look like this:
We hope you enjoyed this little walk-through of file permissions in Linux. Now
that we know what we're looking for, we can talk about changing certain
permissions.
[Previous] [Next]
The syntax (parts separated by brackets) for using this command is the following:
• The symbols in the first brackets refer to the four concepts of users that
Linux has.
o a=all, all users
o o=others, (other people)
o g=group, the members of your group
o u=user, (this means you)
• The symbol + adds permissions and the symbol - takes them away. As we
say in the Linux world chmod giveth, chmod taketh away
• Your actual rights to files - r=read rights, w=write rights (pardon the
homophonic redundancy!) and x=executable rights
As we mentioned before, you may want to restrict rights to read a file. You would
simply type:
Now nobody can read your plans to take over the world except you. Best to keep
those secret anyway.
We also talked earlier about those files that you may have copied from a
Windows partition or a floppy formatted for Windows. Even if they're not
executable files, they'll show up as such (-rwxr-xr-x). You can change them to
their correct permissions, getting rid of the executable status with:
Remember that if you copied them as 'root', you will have to use chmod as root
to do this. You could even go one step further and change the ownership of the
file to the user you desire. You may want to change root ownership to yourself
(your user name). We'll go into this in the next part of the lesson.
The permissions in Linux also can also be changed with number values. An
accomplished Linux/Unix user will probably use this system more. When you're
beginning with Linux, the method we described before will probably be clearer to
you. Without going into tedious technical detail, we'll describe the chmod number
system to you and look at two of the most common examples.
If you had used 'pico' to write up a grocery list for your trip to the supermarket
today, Linux would have given you 644 permission by default. That means, read
and write permissions for the owner but no write permissions for the group and
for others. So the number 6 means read and write permissions for you, the
number 4 means read permissions for the group and the last number, 4 means
read permissions for others. Now the question is: Why these numbers? Why not
other numbers, like the number 8 or 12 or even 1345? Let's explain this.
It's really just a question of simple arithmetic. In our example of chmod 644
grocery_list.txt, we've added the 4 for read permission and to the 2 for write
permission for the owner to get 6. We've just given the group and others read
permission, so there's nothing to add in these two groups. Just give it a 4 in each
case. Presto! 644.
Let's take another look at my file that has my plans for dominating the world
(my_world_domination_plan.txt). I had taken away the read permissions for
everybody except myself using +/- letter method. (chmod og-r
my_world_domination_plan.txt)
As you can see I have read and write permissions for me (4 read + 2 write equals
6) and 0 permissions for everybody else. The Zero value means 7 (maximum
permission value) minus 4 minus 2 minus 1 equals 0.
I'd like to talk about a real world practical example for doing this. There is a
command mode program called 'fetchmail' for getting your e-mail. It's a very good
program if you're using your computer as different users for various jobs. It will
send mail to the different users based on e-mail addresses. The different
addresses are stored in a file that you create called '.fetchmailrc' This file also
includes the user name and password for retrieving mail from each address.
We've got a possible security hole here, particularly if you're networked. This file
shouldn't be read by everybody. When you create your .fetchmailrc file, you
must then use chmod 600/chmod og-r on the file to solve the security issue. In
fact, 'fetchmail' won't run if you don't. It will complain about the file's permissions.
Let's look at another "real world" example. As the internet becomes more
popular, websites need to be more user friendly and interactive. It's becoming
more and more common to use scripts to improve the quality of a website's
offerings. If you used a language like perl to write the scripts and you hosted
your website with a company that runs Linux on their servers (we would hope
that you would do this!), you would probably be given permission to use these
scripts on your website. You would then have to give the scripts read and
execute permissions so that the your visitors could use them. After you uploaded
a script to your website, you would then issue this command:
and the script would become "executable" (and readable) for the outside world.
(7 - 4 read, 2 write 1 executable for you, 4 read and 1 executable for group and
others). You could also use chmod og+rx my_awesome_script The script is
then "converted" into a "program" so to speak. You have also converted yourself
into a "web developer" with the right to hang your shingle on the door.
chmod is one of those commands that are used most by system administrators.
In our Linux system administration course, we'll go into this command in more
detail. In this lesson we've shown you just a few practical examples to get your
feet wet with this very important command.
[Previous] [Next]
Let's say you want to copy something from your Windows partition (if you have
one). You mount the partition (as root) and to save time, you copy the file to your
user directory /home/bob/. If you type ls -l the_file you'll get something like this:
-rw-r--r-- 1 root root 2428 Nov 17 13:18 the_file
As we now know from the previous lesson, root is the owner of the file.
Therefore, root is the only one who has write permissions for the file (permission
to modify its content). If you plan on working with the file as "bob", there isn't a
snowball's chance in hell to modify that file until, as root, you run chmod on the
file. So let's do it!
This example presupposes that your Linux version creates groups for each user.
There are others that will create a generic group called users for everybody who
uses the computer. On a network, groups are created according to the needs of
the organization. On your single home computer, just type ls -l and see what
system corresponds to you.
As you can see, 'chown' is absolutely necessary if you're working as more than
one user with the computer.
[Previous] [Next]
First we'll start with 'tar'. This programs assembles various files into one package,
commonly called a "tarball". Let's say you have some files - notes that you've
taken during this course. You have:
• notes_1.txt
• notes_2.txt
• notes_3.txt
• notes_4.txt
• notes_5.txt
and you've placed them in a directory called /linux_course. You want to back
them up and keep them on a floppy, let's say. You would type the following
command to package them in a tarball.
First, you have tar, the name of the program. Then you have the options, c (--
create) v (--verbose-show what files they are) (f--file -make a file - should
always be the last option) Then you have the name of the file you want to
create ( linux_notes.tar) and the files you want to backup (notes*.tar).
This presupposes that you may have other files in the directory that you don't
want to include. If you want to include ALL files in a directory, just substitute
notes*.txt for *.*.
If you've got good data storage capabilities (Jaz or Zip drives, a CD writer or a
tape backup drive), you might want to back up whole directories along with their
corresponding subdirectories. Then you would enter in the directory, let's say
/home/bob/ and issue the command:
With one asterisk, you will include directories and files without extensions
(my_file as opposed to my_file.txt). Be prepared to get a fairly voluminous tarball.
This is the first step in the backup process. Now let's look at the second step; the
compression of these files.
Using 'gzip'
As we mentioned, 'tar' just assembles the files together into only one file. There
is no reduction in the size of these files (the tarball might even be bigger!) Now
we would have to do one more thing in order to reduce this file into a more
manageable size: use 'gzip'.
gzip is the preferred compression tool for Linux. To reduce the size of your tar
file, you would issue the following command:
gzip your_tar_file.tar
and the tar file would be compressed. You can also compress a regular file using
the same command, but gzip is used primarily with tarballs.
'tar' has an option built into it to use 'gzip' to zip the file at the same time you
make the tarball. If you add z to the options, and change the name of the file to
create to a .gz extension, you have the whole shebang in one step. Our previous
example would be modified to this:
[Previous] [Next]
The easiest way for doing this is to use 'tar' for the whole process. You would
locate the zipped tarball in question and then ask yourself a question:
Did I make any changes to the files inside the tarball after I made it? If you
did, then you've got an old tarball. If you untarred it in the same directory, you'd
overwrite the existing ones. If you would like a copy of the old file, untar it in a
different directory. If you don't want the old files, then you should make a new
tarball. It's pretty standard backup practice.
When you've decided what you want to do, to proceed with the "untarring", issue
this command:
You can also untar the file and then use gzip separately. Just leave the z option
out of the previous example and type:
gzip -d my_tar_file.tar.gz or
gunzip my_tar_file.tar.gz
(gunzip runs gzip -d "automagically"!)
These commands are good if you've just zipped a regular file (not a tarball).
zip
Most Linux distributions come with other tools to compress files. One of these is
zip, famous in the MS-DOS/Windows world. If you're planning on compressing
files to give to someone who (still) uses the Windows operating system, this
might be your best bet. You can also use unzip if someone gives you a file
compressed with 'zip'. Consult the man file ( man zip) for specific instructions on
using this tool.
bzip2
There is also another tool that is rapidly gaining acceptance in the Linux world:
bzip2. As a matter of fact, the Linux kernel source package, usually comes
"bzipped". When you compile a kernel (create a custom kernel for yourself from
source) there is an option to create a bzipped kernel. This is supposed to
become the official way of doing it in the near future, so it may be a good idea to
get to know 'bzip2'
For all practical purposes you would use this tool in the same way as you would
'gzip'. The compression factor is supposed to be a little better. There are some
differences in options for more advanced users. Consult man bzip2 for more
information.
[Previous] [Next]
Let's look at the first question: What distribution are you using?
RPM
If you're using Red Hat or a distribution that bases itself on Red Hat, then you're
going to use the RPM method. OK racing fans- RPM doesn't have anything to do
with revolutions per minute. It stands for Red Hat Package Manager. This system
takes the heartache out of installing programs under Linux, for the most part. You
can go to the Red Hat website or any number of mirrors and get programs for
Linux. Developers will almost always offer their programs in RPM format due to
its popularity. I also want to note that RPM has also come to mean the package
itself (as in "I downloaded an RPM yesterday").
There are some basic commands you're going to need to know to take
advantage of the RPM system.
rpm -i new_program.rpm
This installs the program (-i option for install)
rpm -q program_name
This "queries" your system to see if you've got a certain program
installed. Let's say you hear there's a new version of the popular
Internet browser Opera for Linux and you don't know if your Red
Hat based distribution installs this by default or not. Before you
download the RPM for Opera, you could type the command: rpm -q
opera. If you do have the package installed, it would give you the
version number:
opera-5.0_whatever-number
If you don't have Opera installed, then you can download their RPM
and run rpm -i opera_whatever_version.rpm as root and install
the program.
One is to "uninstall" the older package and install a new one in its
place. Not that this is the most efficient option. I just wanted to
introduce you to the -e option for RPM. That is, to get rid of a
program that you've installed, you would type rpm -e
program_name. For example, if you've got Opera's beta version 7
and you've just downloaded the beta version 8, then you would first
do:
rpm -e opera. This gets rid of Opera from your system. Then you
would type rpm -i opera_beta8.rpm (or whatever the package is
actually called). That installs the new version.
As I said, this is not the most efficient way to update packages. The
usual way is to use the -U (as in Update command. You would
type:
rpm -U opera_new_version.rpm
and that would install the new version and remove the old version
from your system.
Those are the basic commands of the RPM install/update system in a nutshell.
When you're using your windows manager, there are some very good tools for
installing, updating and uninstalling RPMs that are graphically based. You can
choose menu options to do all that we explained before instead of having to type
the commands in the terminal. You may want to look into programs like
Kpackage for KDE or Gnome RPM for the GNOME enviroment. They may make
these tasks a lot easier, especially if you're just starting out in the Linux world.
Some of the most popular Linux distributions base their install and update
prodedures on Red Hat's package management system. These include
Mandrake and SuSE for example. Both of these companies create their own
RPMs to be specifically installed on their systems. That means if you're using
SuSE or Mandrake your best bet is to go to their respective "official" websites or
mirrors and download their particular RPM and install it using the procedure
outlined above or their specific tools. You may run into a problem if you installed
an RPM for Red Hat on a SuSE system. Certain components in the package (like
documentation or libraries) may get copied into a different directory than was
intended for that system. Third party RPMs from reputable companies, like the
Opera web browser in mentioned above, should install fine on any RPM based
system. I have successfully installed this package (the same exact RPM file) on
SuSE, Mandrake and Red Hat. I even converted this RPM to Debian (.deb)
package format and successfully installed it in a computer running Debian. More
on this conversion later in the show!
Just a brief second word of caution. Getting and RPM doesn't necessarily mean
that you're automatically (or "auto-magically") going to be able to install it. Many
websites out there offer RPMs for download. The good ones usually include a list
on that particular RPM's page of other programs or libraries that you need in
order successfully install and use the program. If you see a list a mile long of
"requirements" (those other programs and libraries you need), then you might
want to ask yourself if you really want to try that program out.
And here's just an editorial comment on my part about this type of thing as well.
The big buzz word with Linux is "free". That's fine. You can theoretically get a
distribution from the Internet along with programs and install it for free. (ie. no
money down). I think, however, that time is money, to use the trite expression.
Time might be even more valuable than money. (lost money might be re-earned
but not lost time). When I first installed Linux oh so many years ago, updating
and installing stuff was at times a frustrating experience. I suggest that
newcomers to the Linux world buy (yes, I said buy) a good boxed set of a
commercial distribution and then they'll have more programs than they would
ever need, all installed and working properly along with a manual to tell you what
to do in case something doesn't work.
[Previous] [Next]
dpkg
This is the "classic" way of updating a Debian system. Typically, you could go to
Debian's website or any one of its mirrors and download a package. Then you
would type:
dpkg -i package.deb
to install it.
The main drawback to this is that you may find a package that you like but it may
have dependencies (ie. other programs that it needs to make it run) and if you
don't have those packages, then the install will fail.
This is what the Debian people themselves have to say about this method:
Despite what they say, the main advantage of dpkg, it seems to me, is that it is
easy for people who have dial-up connections. This is because the alternative,
automated programs they're talking about, which are dselect and apt-get are
better for permanent connections (cable, xDSL, T1, T3). Let's talk about this
method of installing new programs with Debian.
dselect
When you use dselect you get a graphic user interface of sorts (not under X
window, though) to guide you through the install of new programs.
First you'll get asked for your preferred access method. That means, how you're
going to get and install them. For example, if I were doing an install of Debian
with CDs, then I would choose CD-ROM. But if I were updating, I would choose
FTP
Then you would choose the packages you want with a + sign. You can even put
updates on hold (indicate that you want to update, but not actually do it) with a =
sign. There may even be conflicts or dependency problems and 'dselect' will
warn you about those.
As I said before, the main advantage to this is that any conflicts or dependency
problems will be resolved right here. The Debian people point out that this is
ideal for installs or large-scale upgrades. If that's the case, it seems that a slow
and sometimes expensive dial-up connection would be less than ideal for this.
In the next section we'll look at installing programs under Slackware
[Previous] [Next]
Slackware packages come in *.tgz format. This a variation of the *.tar.gz format
we've seen before. You can go to your favorite website and download new
programs for your Slackware system and with a simple:
installpkg some_program.tgz
If that particular package doesn't quite move you and inspire you too much, you
can just remove it:
removepkg some_program.tgz
You can also add the option -warn between the installpkg/removepkg command
and instead of installing the package, it will tell you what new files are going to
get added to your hard disk. That's a good option for the "I wonder if I want this"
moments of your life.
Upgrading packages
If you're using Slackware and you can't find a package your looking for in the
*.tgz format, you can also grab on to an *.rpm and convert it.
rpm2tgz some_package.rpm
This takes the "rpm" in question and converts it to *.tgz format. Then you can use
installpkg on the new file you've created to install it.
[Previous] [Next]
Historically, printing in the Unix platforms started off as just sending plain text to a
line printer, (resulting in rather plain looking text on paper with holes on each side
- some of you might remember this). The basic means of printing in Linux just
takes off from there. When you first set up your Linux machine to use a printer,
you'll be configuring the lpr or "line printer". The lpr works with the lpd or "line
printer daemon" running on your system. . A "daemon" is just a program that
works in the background, without your direct intervention. This daemon just waits
there for printing jobs to be sent to it, which it will then send to the lpq or "line
printer queue". The queue (queue the British word for what Americans call a
"waiting line") just puts your print job on hold until the system figures out the way
to print it. This holding pattern is usually pretty quick - maybe a couple of
seconds - because computers work pretty fast, generally.
How to print
If you want to print, you should push the "print" option in the menu. OK, you know
that already. But how do we get from the point where you've got Linux installed to
where you can print something with your word processor? Here are the steps.
1. Install a printer
Most Linux distributions come with tools that will get you printing in
no time. As I mentioned before that Linux's printing system is based
on basic line printing, you'll need a working "printcap" file (to be
found in /etc/printcap, usually) that tells your system what printer it's
supposed to work with. With SuSE you can use YAST to create this
file (which will invoke a program called 'apsfilter'. Red Hat comes
with "printtool", Mandrake has its printer setup tool in its main
configuration package. Debian and Slackware both use the
'apsfilter' tool as well.
printer1-ascii|lp1|y2prn_printer1.upp--ascii-printer1|y2prn_printer1.upp ascii:\
:lp=/dev/lp0:\
:sd=/var/spool/lpd/y2prn_printer1.upp--ascii-printer1:\
:lf=/var/spool/lpd/y2prn_printer1.upp--ascii-printer1/log:\
:af=/var/spool/lpd/y2prn_printer1.upp--ascii-printer1/acct:\
:if=/var/lib/apsfilter/bin/y2prn_printer1.upp--ascii-printer1:\
:la@:mx#0:\
:tr=:cl:sh:
#
printer1|lp2|y2prn_printer1.upp--auto-printer1|y2prn_printer1.upp auto:\
:lp=/dev/lp0:\
:sd=/var/spool/lpd/y2prn_printer1.upp--auto-printer1:\
:lf=/var/spool/lpd/y2prn_printer1.upp--auto-printer1/log:\
:af=/var/spool/lpd/y2prn_printer1.upp--auto-printer1/acct:\
:if=/var/lib/apsfilter/bin/y2prn_printer1.upp--auto-printer1:\
:la@:mx#0:\
:tr=:cl:sh:
#
printer1-raw|lp3|y2prn_printer1.upp--raw-printer1|y2prn_printer1.upp raw:\
:lp=/dev/lp0:\
:sd=/var/spool/lpd/y2prn_printer1.upp--raw-printer1:\
:lf=/var/spool/lpd/y2prn_printer1.upp--raw-printer1/log:\
:af=/var/spool/lpd/y2prn_printer1.upp--raw-printer1/acct:\
:if=/var/lib/apsfilter/bin/y2prn_printer1.upp--raw-printer1:\
:la@:mx#0:\
:tr=:cl:sh:
Most printers work from a parallel port. You must have parallel port support
enabled in your kernel. Most major Linux distributions will install a generic kernel
with this enabled. Printing therefore shouldn't be a problem. However, most
people at some stage of the game prefer to compile and install their own custom
Linux kernel. When you get up to speed on Linux and you decided to do this,
always remember to include parallel port support into your new kernel. I have
forgotten to do this (which ironically seems to happen with much more frequency
as I get familiar with compiling kernels) only to find that I can't print anything
when I've finished installing my new kernel.
I have also noticed my system choke on stuff sent to it from Corel WordPerfect. I
won't go into the "hows" and "whys" (because I honestly don't know why or how
this happens) but I have fell victim to an inability to print from WordPerfect on
occasion. What I usually do is see if in fact I have pressed the button 'print' and
something is waiting to be printed. To see if you have something waiting in the
printer queue, just issue the command:
lpq
This will show you what's in the printer queue or if there is in fact anything there.
Output generally looks something like this, if you have a problem (like my printer
being unplugged, in this case).
For example, if I wanted to just get rid of these files, shut WordPerfect down and
start it up again and try printing again (which usually works for me), I would just
issue the command:
lprm
Which removes the whole line printer queue. I could also be selective about it
and only delete on of the files by typing the command:
lprm 47
Alas, my debut in the karaoke bar will have to wait, but I can still do the shopping.
Hopefully you won't need to use these troubleshooting techniques very often, but
they're good to know just in case.
[Previous] [Next]
I think that the term "information superhighway" is a perfect analogy for the
Internet. That's probably why it has become so popular. The superhighway itself
is the telephone companies infrastructure - the lines, fiber-optic cables, switches
and satellites that bring the hundreds of millions of pages of content to you,
including this page. Your computer is like that car on the highway. Your modem
or other device that connects you is like the engine of your car. That's why we've
written this lesson. If you can't get the engine to work, you're not going anywhere.
Linux and other OSes are a bit like the fuel you put in your car. If you have been
using Windows, that's like using gasoline. If you switch to Linux, that's different,
like jet fuel. You'll have to modify your engine to be able to use it, but you'll go
faster in the end.
Types of connections
There are basically three types of connections to the Internet; leased lines,
broadband and dial-up connections.
Leased lines are high-speed connections that ISPs use to connect you to the rest
of the Internet or big companies use to communicate between parts of their
organization and to allow you to connect to them. These are known as T1 and T3
lines in North America and E class lines in Europe. This course will not deal with
setting up and Internet connection with these lines. It's a little out of the scope of
your average Linux user.
xDSL (Digital Subscriber Line) and cable modem are what is known as
"broadband" connections. These services offer 24 hour high-speed connections
to the Internet in most cases (unless you shut off your machine, of course). For
example, in my area, I have ADSL service. My connection runs at 250 kilobits per
second when I am receiving data. To put it in other terms, I can download a 5
megabyte file (like a song) in about 3-4 minutes. This depends a lot on where
you're connecting to and other factors, but broadband is the best alternative for
home users. Depending on what company is providing you with this service, you
can even use this connection to serve your own personal or small business
webpage using Linux as a web server. In the xDSL area, you can even opt for
higher speeds (up to 2 megabits per second) and have Internet service that rivals
much more expensive leased line alternatives. Lately, cable modem is becoming
more popular than xDSL, particularly in the United States because the cable
companies seem to have gotten on the ball faster to offer consumers high speed
connections. With all due respect to telephone companies, there may be, and I
suspect there are legitimate technical reasons why a cable connection is
essentially cheaper and easier to provide to to consumers. The reasons behind
this would go beyond the scope of this lesson, (and I'm not a telecom engineer)
so suffice it to say that cable seems to be the way people are going to get high
speed connections to the Internet.
Dial-up (standard modem) connections are by far the most popular way of
connecting to the Internet. Up until the late-1990's, if you weren't a Fortune 500
company, it was the only way to get on the Internet. This connection type
basically consists of using a modem to dial the phone and connect to the Internet
Service Provider (ISP). The modem "negotiates" the connection (ie - tells the ISP
who you are) using a couple of established network protocols. The best speed
you can hope to get out of a dial-up connection is 56 kilobits per second. That is
to say, about 5 times slower than the slowest broadband connection.
ISDN - a footnote: A few years ago, in my area at least, the telephone company
was trying to sell people on ISDN (Integrated Services Digital Network) to solve
the two main problems with Internet use, namely the slow modem speed and the
fact that you couldn't make or receive phone calls while using the Internet. They
promised connections of up to 128 kilobits per second (the key words here being
up to, using the tactic of car advertisements that say from 9,599 dollars, but in
reverse). This has never seemed to have caught on, at least in my area. The few
people who I know who had this service (and later dropped it) complained about
the speed. What they promised, just couldn't be delivered. At any rate, nobody
seems to be talking about it so much anymore.
Let's move on to the next section where we'll show you how to set up the
different Internet connection alternatives under Linux.
[Previous] [Next]
Getting Started with Linux - Lesson 17
ADSL with Linux
Now, when the telecom people came to hook me up, I took out my
router and connected it to the data line coming from the splitter (see
the picture). Then I hooked up the router to the hub and then one of
my PCs to the hub. In my case, the manufacturer of the router in
the factory assigned the number 192.168.1.1 to the router, so as
soon as I turned it on, you could say for all intents and purposes
that I had another computer on my local network with the address
of 192.168.1.1. The router was equipped with the possibility of
using a a program on a CD to configure the Internet connection if I
was using Microsoft Windows or Telnet for another OS, like Linux.
telnet
then:
open 192.168.1.1
which was the local numbered address the router came with by
default. They also furnished me with a default password which I
used to connect to the router.
Once in, I had a text mode menu (the best you can do with Telnet)
and going by the router's manual plus my local telecom's
instructions, I assigned the router the unique Internet numbered
address my telecom had given me and then I changed the address
of the actual router to 192.168.0.5, to me more in synch with my
local network's numbering scheme and then I changed the
password to access the router. I saved the changes and exited.
Now, at least, I had ADSL service coming in to the router.
The final step was to tell the PCs where to get their Internet
connection from. I was using my workstation to configure the router,
so I logically started with that one. I run SuSE Linux on this
machine, so I had to change 2 files: /etc/route.conf and
/etc/resolv.conf. The changes I had to make took all of 30 seconds.
nameserver 30.30.30.30
nameserver 40.40.40.40
These are not the actual numbers I was given. It's just an example I
used to correspond to the numbers that could be given to you by
your telecom company. These are the primary and secondary
DNS numbers. DNS stands for Domain Name Server. A domain
name server is just a machine that has an inventory of other
computers on the Internet. That is to say, these computers know
that www.linux.org is actually a number out there and they help you
find it. Without these numbers, you wouldn't stand a snowball's
chance in hell of finding anything on the Internet. I learned this fact
in my haste to get the rest of the network set up. When I was
configuring the last computer, I forgot to change /etc/resolv.conf
file. When I fired up my browser, it basically did nothing until I
remembered to change that file.
GATEWAY=192.168.0.5
GATEWAYDEV=eth0
After doing all this, I was on line with all machines going out
through the router. I quickly disconnected the hub to all but one
machine and following the instructions, and set up some necessary
security. This is important because you are a sitting duck for
intruders with ADSL. You may not think that your local home
network might be important compared to some corporate website
(which, it really isn't as far as a target for hard-core
hackers/crackers) but there are a lot of mischievous people with
time on their hands that go around looking for trouble. These
people use tools they get off the Internet to scan numbers at
random to see if the machine attached to the number can be
"hacked". Most of these people, popularly known as "Script Kiddies"
seldom know how the software works and really don't care. They
just know they can do harm with it. As they say, a little knowledge is
a dangerous thing. IRC chat is a good place to chat with friends
and also a good place to inadvertently invite people to take a swipe
at your machine. Most people on IRC are there to socialize, seek
technical help and even work and collaborate on projects at a
distance. But there are a few people with dubious social skills who
are just on IRC to be jerks. A lot of these people are script kiddies
who like to get in feuds with people on channels. Seeing as IRC
can tell a lot about where you are, you are somewhat vulnerable to
these socially unacceptable characters and what they may try to do
with you. Remember, they don't have to know how the program
works, only what it does. Report any threats to the channel
operators. Sometimes the person's ISP figures in the information on
IRC. Report them to their ISP or the local authorities if they threaten
to do harm to your machine.
Security with ADSL
I was lucky in that my router has the ability to filter packets built into
it. Packets are the data that comes in and out of your computer
when you're connected to a network, like the Internet. The people
who designed the big network of networks came up with the
concept of ports - or point of entry to computers from the outside.
For example, webservers run on port 80. If a user on a network
wants to access a web page on a server, their computer makes a
request to port 80 on the server to send them the page. That's a
pretty safe port. It has to be. The WWW wouldn't function if it didn't.
Actually, it isn't the port itself that should be considered safe or
unsafe, it's the software running the behind it. Apache's webserver
is pretty safe. But, as we have seen with the famous CodeRed
worm, Microsoft's webserver IIS isn't. Telnet, for example runs on
port 23. That's a port that I told the router not to accept connections
to. Telnet is a 'shell' - a way to connect to a remote computer. The
passwords you send to connect via Telnet, even though you may
see little asterisks (or nothing) can be picked up easily by people
who 'sniff' these passwords. I also disabled my computer's ability to
accept connection via Telnet. I substituted it with SSH or Secure
Shell. SuSE Linux's most recent offering, (v. 7.2 at the time of this
writing) enables SSH by default. SSH accepts remote connections
that are encrypted or coded. That makes it almost impossible for
someone who you don't want to to connect and try to do harm to
your computer from the outside. SSH runs on port 22. I also have
FTP disabled- (port 21).
Firewalls
A good way to protect your Linux machine, when you don't know
too much (yet) about security is by making the following very simple
changes in two files: /etc/hosts.deny and /etc/hosts.allow
ALL : ALL
ALL : 192.168.0.
[Previous] [Next]
Once upon a time, there were modems (which still exist) where the ability to use
it to connect to computer networks, like the Internet, was based on the
configuration of the hardware. Nevertheless, companies like Motorola, Rockwell
and others developed modems where the configuration of the device was made
possible through software more than the embedded programming on the
hardware. This software was exclusively compatible with, yes, you guessed it,
Microsoft Windows. They became known as "winmodems". Until recently it was
impossible to get one of these little jewels in the MS crown running under Linux.
If you happen to have one, you could check out Linmodems.org for more
information about installing drivers for these to run under Linux. Motorola recently
released a set of drivers for their "winmodems".
The best and easiest way, however, of maintaining a dial-up connection is using
an external modem or an internal modem where the hardware primarily is
designed to handle the connection. Before I had an ADSL connection, I used an
external Dynalink 56 kbps modem. The set-up of this modem under SuSE Linux,
Red Hat, Mandrake and Slackware was trivial. Before that I used a 38.8 kbps
internal modem and a 28.8 kbps one before that, upgrading as the higher speeds
became available and their decreasing prices warranted the change.
External Modems
External modems are called that precisely because you have a little box that sits
outside your computer. These connect either via a parallel port or a serial port. A
parallel port is one that is normally used to connect a printer. A serial port is
similar in appearance to the one that is used to connect your mouse. For
example, on my workstation, where I am writing this lesson, there are two serial
ports, known as "com1" and "com2". As you can remember from our lessons on
other subjects such as hard drives and floppy drives, Linux always knows these
devices by other names, files that reside within the /dev/ directory. In our case,
Linux knows com1 and com2 as /dev/ttyS0 and /dev/ttyS1 respectively (in the
computer world, we usually start counting at zero). If you have a serial mouse,
this is usually occupying com1 and therefore /dev/ttyS0. If you then get an
external modem and you want to use it, you would hook it up to the second serial
port, com2, which, as I mentioned, Linux knows as /dev/ttyS1. The trick (really
not a trick because there is no difficulty involved) is to alter your Linux
configuration so that it knows that you've got an external modem on /dev/ttyS1 so
it can communicate with it.
Under SuSE Linux for example, this is quite easy. As 'root' you would fire up their
configuration tool called YAST and choose the option 'System Administration'
and then the option 'Integrate Hardware into System'. At this point you're asked
to choose the hardware you want to configure and obviously you would choose
'Modem configuration' which is the second option. You'll see the various "com"
ports available and even, with the newer version of SuSE, USB modem support.
If you have a serial mouse, be sure to choose com2 or /dev/ttyS1. You should
have your modem set up after you've done this.
If you've installed Red Hat Linux, then you should have no problem setting it up
with one of their utilities known as modemtool. If you've installed Mandrake, their
tool HardDrake should do the trick. LinuxConf is also an all-purpose tool that
includes modem configuration. I have had (and heard of) mixed results with this
tool.
Now that you've got a modem connected, we'll talk about configuring your
connection with your ISP in the next part of the lesson.
[Previous] [Next]
Basically, the program asks you a series of questions about your ISP, information
which this company should have given you and about where your modem is
located, (what we covered in the previous section). There is a possibility to
handle several different ISPs (at one point, I had 3 different ISPs configured).
Once you've answered the questions and you have your connection setup,
connection is nothing more than typing one command in a terminal:
eznet up 0
The program starts counting ISPs with the number 0, so that's your first ISP. Just
substitute for 1, 2 etc. for other connections you may want to set up.
Other options
If you use YAST in SuSE Linux you can set up your connection using WvDial. I
must confess that earlier versions of this program were not entirely successful in
setting up my connection. Euphemistically speaking, they couldn't do it. This
program has been greatly improved and your probability of success along with it.
If you've picked out your windows manager already and it happens to be KDE,
you're in luck because there is a program called KPPP which will set up a
connection for you fairly painlessly. The only problem I seemed to have with this
was is known as the "negotiation" of the connection with my ISP. There are two
protocols known as PAP and CHAP. If you run into this problem, it just might be
a question of trying one or the other and sticking with the one that works. With
KPPP, you can also tune or tweak your connection speed to get better results
from your hardware.
User of Red Hat have a very powerful and simple to use graphic tool with RP3.
This is standard issue on all versions of Red Hat since 6.2
As you'll notice, the program I mentioned for KDE is called KPPP. The K stands
for KDE but what does the PPP stand for? It stands for Point-to-Point Protocol.
This protocol enables two computers to connect across a network. The protocol
basically provides the means for the two computers to first, identify themselves
and then ask whether whether the computers can read the data each other
sends. In your /sbin/ directory, you'll find the point-to-point protocol daemon, or
pppd which is a program that provides for that communication between
computers.
What you essentially do when you set up your Internet connection is to make
sure that pppd knows how to communicate the right information. If the two
computers either can't authenticate themselves to each other (ie- realize that
they have "permission" to communicate) or the type of data their sending is
incompatible or both, then the connection fails. What eznet, kppp, RP3 and other
similar programs do are to create the necessary configuration files that pppd
reads. When I first set up an Internet connection with Linux, I created these files
by hand without the help of one of these programs. It was an interesting exercise
but essentially took a long time to figure out at those days. If you're interested in
finding out what goes on behind the scenes, I suggest you check out the page
Linux Dial-Up Networking in a Nutshell which has a nice list of the processes and
files that come into play.
A common problem
The most common problem I have come up against is that somehow the very
important configuration file /etc/resolv.conf gets overwritten. This happens with
some Linux distributions and the reasons are numerous and I usually chalk it up
to what I called excessive "meddling" with important configuration files on the
part of some major Linux distributions. The symptom of the problem usually is
that even though you've connected to your ISP, you're not reaching pages out
there. The first thing you should do is make sure /etc/resolve.conf includes the
two or more IP addresses of the domain name servers; those machines that
translate for example, www.linux.org, into our actual numerical address. As I
mentioned in the section on ADSL, it should look something like this:
nameserver 30.30.30.30
nameserver 40.40.40.40
Your numbers will of course be different, but if you don't see at least two lines like
this: nameserver plus an IP address, then you'll have to add it again. Then you
should find out why and how your distribution is over-writing this file so it doesn't
happen again, unless, of course, you want it to. SuSE, for example, has a section
in their YAST tool where you can configure it not to overwrite certain files like
resolv.conf.
That pretty much sums up setting up dial-up connections. Happy surfing with
Linux!
[Previous] [Next]
If you're like me, the first thing that interests you in setting up your computer is
making it play sounds, particularly music. When I installed Slackware so many
years ago (1997 seems like an eternity for Linux) I think I was more interested in
making my sound card work than making the modem work to get connected.
Music has always been pretty important in my life long before the World Wide
Web even existed, so that was pretty logical.
Sound Cards
When I bought my first sound card in December of 1992, it came in a big box that
Creative Labs sold me and it was a Sound Blaster. In that big box there was a
bunch of stuff - software (for Windows 3.1), a CD-ROM drive (with an insert-able
cartridge that my 2 year old just managed to break after all these years!) and
some Midi gadget which never interested me and is still in the same box in my
attic. I had good luck with that sound card (I still do because it still works). Due to
this, I have always bought Sound Blaster cards. These cards have usually
configured fairly easily under Linux. I was once bought a machine that did not
have a Sound Blaster brand card in it and I was not able to get it configured
under Linux. I honestly don't remember the name of the card and I promptly paid
a little bit more money and exchanged that one for a real Sound Blaster and
quickly got it running under Linux.
Sound Blaster uses the Alsa drivers to make sound come out of your Linux
machine. These people have made my life much richer as I can listen to lovely
music as I write this lesson of the beginner's course. There are a lot of other
supported cards. My eternal gratitude to the people working on the Alsa Driver
project. You might want to have a look at their list. And see if your sound card is
on their list. The nasty hardware manufacturers who do *not* share their
information (and therefore, their cards do *not* work) are listed in red.
If you use the SoundBlaster card, you may also want to check out Creative Lab's
page
Configuration tools
Before I go into the tools to use to get the sound card working, it's important to
point out that the Linux kernel needs to be configured to use a sound card. If your
kernel doesn't have a clue about what to do with a one, there is precious little
tools like sndconfig can do to help you. Luckily, every install I have done in the
past year and a half or so of a major Linux distribution has come with a kernel
that has sound support in it by default. If you're installing "Joe's Home-brew
Linux" distribution (where you must compile your own kernel), then you might be
beyond this beginner's Linux course and you probably already know how to make
the kernel you want. But if you are a true beginner (that's who this course is for)
then you're probably going to get a "made for sound" kernel. The latest versions
of Red Hat, SuSE, Mandrake and Debian that I have installed are all sound
enabled from the beginning, depending on, of course, whether or not the
hardware is mainstream enough to be detected on install. I wrote in a review of
Mandrake 7.2 in the Spring of this year (2001) about how it didn't detect my very
mainstream Sound Blaster 16 card. The good thing is that Mandrake 7.2 is very
much a thing of the past. They're on version 8.1 at the time of this writing and on
that same machine, I did a "clean" install (I did not update - I removed 7.2 and
installed 8.0 new) and it found and configured my Sound Blaster 16 card without
the slightest problem. If the distribution you have installed (or are planning to
install) is up-to-date, you should not have a problem.
It is also important to know what type of sound card it is in terms of the slots that
it uses on your mother board in your computer. On my machines, the
motherboard (that big thing inside a PC that you plug all the cards into) or
mainboard as it is also known, will accept ISA Plug and Play cards (bigger slots)
and PCI cards (smaller slots). I'm not a USB user, so I won't feign expertise here
and give USB guidelines. If you have an ISA PnP card (I have two) you also have
to have the ISA PnP tools installed as well as a kernel that can use ISA Plug and
Play (also know as plug and pray)
As I mentioned, most major distributions will configure the sound card during the
installation process. If this is not the case, you may use to any of the following
tools, depending on your distribution.
• sndconfig I mentioned this one above. It is a tool for Red Hat and
distributions based on Red Hat (Mandrake, KRUD, for example). It is text
based (runs it a terminal) and has always done a good job for me. It will
play a sound bit of Linus Torvalds pronouncing the word "Linux"
• YAST This is SuSE's "Swiss Army Knife" of configuration tools. Their
latest version 2 is graphical. Again, there was no problem detecting my
sound cards with YAST. It plays a little melody that's also the KDE default
startup sound. You can adjust the default volume as well. It warns you not
to set it too high, just in case you're wearing headphones and you blow
your eardrums out!!
• HardDrake Mandrake uses this graphical tool to configure hardware,
including sound cards. Using the GUI, you can select the sound card and
then push the button that says "launch configuration tool". I suspect that
what it is doing is launching sndconfig - which, as I mentioned, is also
available for Mandrake.
• alsaconf If you're using Debian, this is the package you need to set up
sound. The alsa-base package is also required.
You should now have a pretty good idea of setting up a sound card with a major
Linux distribution. Strange hardware, old versions of Linux (your cousin lent you
the SuSE 5.3 disks) and obscure distributions (Zingblatter's Ultra Linux 1.4) are
beyond the scope of this course, so if you're one of those out there who pine for
the sweets sounds of Mozart flowing from your PC, you can take a look at the
HOW-TO's on the subject.You can also go to your favorite search engine (mine
is Google ) and enter Linux sound card setup and you have access to the
zillions of bytes of information on the topic.
Let's go on now to all of the available programs to play all of that sound and
music, from the Beatles to Hans and his Swiss Alpine Yodelers.
[Previous] [Next]
I'd also like to add an editorial comment, if I may. I use a window manager but
the programs I listen to CDs, MP3s etc. are command line applications. I am not
implying that there aren't some fine programs for playing and recording sound.
There certainly is some nice stuff out there. The programs I use (which we'll talk
about here) are great applications that work just as well as their graphic
counterparts but in many ways are more easily configurable, at least for me.
Besides, we're talking about sound, so I just have to set the CD or playlist and
listen. I really don't have to see anything.
Recording Sound
Due to Microsoft's monopoly on operating systems (yes, they have been
convicted of this in a court of law), the most popular format for sound recording is
is their *.wav format, also known as PCM. When you make a recording of
yourself or someone else speaking or you "rip" a track from a CD for later
conversion to mp3 or ogg (we'll talk about this new and open format later), you're
probably going to use the *.wav format. If you simply want to record yourself
saying something using Linux, all you need is a microphone and and recording
tool that gives you a file in this format. For this lesson, we'll use 'wavrec'.
'wavrec' is easy to use. It's easy because the default recording settings for this
applications are all acceptable for getting a quality recording (if you've got a fairly
good microphone). You just have to type some simple commands and you're all
set.
Here's an example:
Let's say I want to record a note to myself that says the following: "Note to self:
make sure you respond to Dave's email about SuSE'. I would just type the
following"
wavrec dave_note.wav
make sure the microphone is on (you'd be surprised how many times I forget to
turn it on!) and start talking. The default recording time for 'wavrec' is 10 seconds.
That means, if you don't specify a recording time on the command line (I didn't)
you'll get a 10 second long sound file. My sentence above, "Note to self ..... bla
bla bla" lasts about 8 seconds. Of course, the duration of the sound file depends
on whether you're talking a normal rate. If you auction cattle in Iowa, then you
probably don't need 10 seconds to say that sentence, so you should modify the
time for the file, like this:
wavrec -t 3 dave_note.wav
The -t option refers to seconds, so you should type the number of seconds after.
Here, even 3 seconds might be pushing it for a cattle auctioneer. Just remember
to give yourself enough time for what you want to say, in seconds. If you want to
recite Abraham Lincoln's Gettysburg Address, then you would first multiply 60
and 2 to get 120 seconds. Why this figure? Because Lincoln is reported to have
taken only 2 minutes to give this famous speech. If you would like to record
Cuban leader Fidel Castro's speeches, then I would advise getting a huge hard
drive. He once made a speech that lasted 7 hours.
You can add all kinds of options to wavrec. I use this tool all the time to record
short sentences for use in computer assisted language learning. Here are the
values I use:
Let's explain these options. The first one, -S, means stereo. If you look at the
man page for 'wavrec' (type: man wavrec), it says that stereo is the default.
Nevertheless, I have noticed that mono is in fact the default. That is to say, if you
use 'wavrec' with no options, you get mono not stereo sound. It would seem
there is an error in the man page. After the -S, we have the -t option for seconds
(we explained before) then we have the -s option which is the sampling rate in
Hz. I chose 44100 because this is a good high-quality sound which is necessary
for my language teaching endeavors. It's important not to confuse the -S (capital
letter) with the -s (lower case). -s takes a value in Hz while -S has no value. I
have purposely put the -t option in between them to avoid confusion. There you
have it. Issuing this short command and then changing the file name, I get a lot of
work done because my sentences seldom last more than 5 seconds and these
values are fine for my work.
Now, you must be asking the question: "I've made a *.wav file, now, how do I
hear it?" The answer is easy: With 'wavrec' 's companion program, 'wavplay'.
Here's how:
wavplay a_sentence.wav
This will play the sentence we recorded above. That's all there is to it. I should
also point out that the same options in 'wavrec' are available for 'wavplay' if you
want to add some effects to playback. For example, if you take our first wav file,
dave_notes.wav, and play it like this:
wavplay my_favorite_song.wav
then sing a line of your favorite song. Play it back to your friends using the -s
44100 option and have them rolling on the floor with your Alvin and the
Chipmunks impressions. I have actually entertained my 2 year old son for hours
with this.
Using the same logic, if you take our a_sentence.wav and play it like this:
you've cut the sample rate in half and so you get a really cool impression of the
creatures that take over people's bodies in Star Trek's original series episode
'The Lights of Zetar'.
mkdir reminders
wavrec -t 3 0intro.wav
Say something like "Your reminders" or "Reminders for you". Three seconds
should be enough for that. You may have noticed that the name begins with zero.
That is simple because for our reminder system, we invoke 'wavplay *' with the
asterisk to play every file in that directory. By naming it '0intro.wav', that assures
that it will be played first with our system.
wavrec -t 5 2001-10-24_trash.wav
and say: "Remember to take out the trash". I suppose 5 seconds should be
enough to say this. Try recording a few more reminders for different things, like
"call cousin Jack" and "remember to pay back gambling debts to bookie". When
you've got a few wav files in there you should play them to see that they've come
out all right (you don't need to do this every time - we're just practicing)
wavplay *
You'll see that the 0intro.wav file gets played first. If everything sounds good to
you, then we're ready for the next step which is to play our files automatically at a
given hour.
crontab -e
Then we add the following line to our crontab file (-e is for edit)
30 7 * * * /usr/X11R6/bin/wavplay $HOME/reminders/*.wav
The crontab edit procedure uses your default command line editor which is
probably 'vi', so if you don't remember our little tour of 'vi', just press 'ESC + i'
before you add this line.
Let's explain how a crontab file works. The file is read by the program 'cron' and it
carries out the instructions in it. In our example, our wav files get played at the
30th minute of the 7th hour, that is to say 7:30 in the morning. This is because
the crontab file must start with the minute [0-59] you want something done,
followed by the hour [0-23] the day of the month [1-31], the month of the year [1-
12] and the day of the week [0-7] (where 0 and 7 are both Sunday). I have left
the last three as asterisk. This tells 'cron' that these values don't matter. That is to
say, cron should play our *.wav files every day of the month, every month of the
year, 7 days a week.
The next step as you can see is to tell cron to run 'wavplay' and play the files in
your home directory. We use the symbol $HOME for that. Also notice how I have
put the exact path to where wavplay is. To see if your system differs, then type:
which wavplay
to show you where the program is. Then adjust accordingly. I used this exact
path because, it would seem on my system, the master crontab file (found in
/etc/crontab ) doesn't recognize that path automatically. I am assuming that this
is for security reasons, so I didn't go in and change the path. Some things are
probably best left alone, so no harm done if you just put in the exact path in the
crontab file.
If you want to test it, just give it a time within a couple of minutes or so. That is, if
it's 3:30 in the afternoon, you might want to first edit your crontab like this:
32 15 * * * /usr/X11R6/bin/wavplay $HOME/reminders/*.wav
that will play the reminders at 3:32 PM, to show you that it works. Just make sure
you're not playing anything else, like MP3s, because you won't hear them. That's
the rationale for my 7:30 AM start time. It's a good hour for me - when I am just
getting to work and I'm probably not listening to heavy metal at that hour of the
morning. Actually, I never listen to heavy metal.
Now, when you've finished hearing them, you can delete them (if you want)
That's where the rationale behind the YEAR-MONTH-DAY.wav comes in. You
just delete the daily ones by typing, for example rm 2001-09-28*
That keeps the 0intro.wav file in there. I mentioned before that I was going to
explain why it's necessary to have it there. 'Cron' will mail you when there is an
error, so if you had no reminders for a given day, you would at least have one file
in the /reminders directory. That way, 'cron' doesn't have to mail you an error
message because the program 'wavplay' didn't find any *.wav files.
By deleting the unnecessary reminders, you've got some free disk space.
Speaking of that, if free disk space is something that worries you, in the next part
of the lesson we'll talk about those famous (and controversial) files that take up
less space - MP3s - and how to make them under Linux. We'll also talk about the
new free audio format comparable in sound and space to MP3 - Ogg Vorbis.
[Previous] [Next]
We'll talk about the programs available to make sound files in MP3 format, but I
should point out that MP3 is a non-free format. That is to say, the Fraunhofer
Institute and Thomson Multimedia developed MPEG Layer 3 technology and they
hold the patent rights it. If you want to write programs that encode and/or decode
MP3 format, you have to pay licensing fees. Thomson has set up a website to
talk about these issues, if you're interested. What does this mean for Linux? Well,
if you are an advocate of the Open Source and/or Free Software model that
Linux grew out of, MP3 might be seen as a format to be avoided. Actually, if you
think this way, you now have an alternative with Vorbis' *.ogg format. We'll talk
about that shortly. But being that MP3 is so prevalent nowadays and
encoders/decoders do exist for Linux, we'll talk about making and playing MP3
files.
Let's go back to our "reminder" system. If you go into the /reminders directory we
created (cd reminders) and type:
ls -l *.wav
you'll see that the default quality of a 5 second recording gives us a file of about
1/4 megabyte. If we made the file a little better, as I do when I'm working with
sample sentence for language learning, you doubled the file size to just under
half a megabyte each. To check this, I made one of each format:
If for some reason you wanted to keep these reminders, files of this size would
quickly begin to take up space. Disk space is cheap, but there's no reason to
occupy space if we can compress it. We could take out our tools gzip or bzip2
that we learned about in a previous lesson. 'bzip2' will actually get the file down
to about half its original size:
But there is a much better way of doing this, for now, by converting it to MP3
format. Look what we get for the same file as an MP3:
First of all, you need a program that converts *.wav files to MP3 format. There
are a few of these available for Linux. One of these, and probably the most
popular, is Tord Jansson's BladeEnc. He's had some trouble with the MP3 patent
holders so, again, we've stepped into controversy here. How do we avoid
bringing patent holders' wrath down upon ourselves? Well, by going over to
Fraunhofer's website and getting a demo of their MP3 encoder, appropriately
called 'mp3enc' (the demo is actually called 'mp3encdemo' - very logical) we can
convert these files in MP3 format. That will at least give us an idea about how all
this works in Linux.
You'll get a *.tgz (Slackware package) compressed file. Just unzip and untar in
your home directory:
There is a pre-compiled binary (aka - program that works right away) and some
documentation (manual, other README files). There is a section in the manual
that says "For the impatient". Being impatient by nature, I went right to that and
found out how to convert my *.wav files to acceptable quality MP3s. Now, we're
lucky that our reminders aren't very long, because the generous Fraunhofer
people have given us a demo that only encodes 30 second long files. I know
what you were thinking. You were going to run next door and borrow the
neighbor's "Greatest Punk Love Songs" and start rippin'. We'll you're out of luck
unless you want to do a medley. At any rate, the Fraunhofer demo will do nicely
for learning purposes. To use the program, just pick one of the reminders and
type:
where [whatever] is the date of your reminder. Let's look at these options. -br
stands for bitrate This is 128 kilobits per second and you'll get an acceptable,
almost CD quality file. -if stands for "if it works" - naah - that's only a joke. (I
couldn't resist). -if means input file, that is, the file your inputing or feeding to the
encoder. Logically then, -of means output file, the MP3 file you're going to get.
There you have it. Feel free to encode any files you want. (as long as their under
thirty seconds, of course)
Actually any MP3 encoder for Linux that you can find out there works in basically
the same way. You input a *.wav file with some options and you get an MP3 file.
The program BladeEnc that we mentioned before, behaves similarly and there is
no 30 second limit. (wink, wink, nudge nudge, and the author begins to whistle
nervously)
'mpg123' is a very popular command line program for playing MP3 files. It is also
highly versatile. You can create playlists and play songs in alphabetical order or
in random order. You can even play little tricks and create weird disco versions of
songs. (no kidding) You can even "reverse engineer" the MP3 file or even parts
of it back to *.wav format. As far as I have tried, most graphic programs can
manipulate playlists and add an echo effect but can't take full advantage of
mpg123's features. You can only do it on the command line.
Anyway, 'mpg123' comes with most major distributions. If you visit mpg123's
home page you can find out all about it. You can also get source code and RPMs
if you don't have it installed already.
To simply play an MP3 file, enter the directory where the files are and type:
mpg123 your_mp3_file.mp3
Let's say you already have a lot of MP3s. You may have gotten some ... then
again, I don't want to know where you got them. You could random play them
mpg123 -z *.mp3
One of my favorite things to do is to create a playlist. Here's how I do it. This will
be good review practice for the command line as well.
cd classical
ls *.mp3
Then I pick out some songs that I particularly like and make a file that is going to
be my playlist:
The command 'ls' with the option '-1' lists the file name without any other
information. The > symbol as you remember from our lesson on pipes, etc.
creates a file called 'favorites' and includes the 'ls -1' output in it. To add more
songs, we would repeat the same command, but this time we would (obviously)
change the MP3 file name and most importantly we would change the one >
symbol to two >> symbols. This way, we just add to the playlist file and we don't
overwrite the file as would be the case if we didn't use two >> symbols.
So I'd just keep adding songs until I had a nice playlist. To see the list, you'd just
type:
less favorites
mpg123 -@ favorites
The email (@) symbol tells mpg123 to look for the playlist. That would play the
songs in the order they are on the list. If you want to play them in random order,
you would just add a -z before the -@ option
Let's say you wanted to play "Name That Tune". Don't laugh! I have done this at
parties. You know, you only play so much of a song and the people have to
guess which one it is. Well, with mpg123, you're all set. This command will only
play the first 50 "frames" of a song:
mpg123 -k 0 -n 50 Mozart_nightmusic.mp3
And you'll have the liveliest parties on your block! All courtesy of Linux and
mpg123! Seriously, the -k option tells the program which frame to start at and
then -n option indicates where it should stop. Pretty easy!
You want more party ideas? Well, how about doing Techno-Mozart? That's easy
too. Just type:
mpg123 -d 2 Mozart_nightmusic.mp3
This will make the program skip over every 2nd frame. That is, it will play a frame
and skip one. This is *not* the Chipmunk effect. You will hear the same tone of
voice because this doesn't effect the sampling rate of the file. It will just sound
"techno" as I pointed out. Even though I mentioned parties and that, I have used
this program and this effect in my language work for purposes of "serious" study.
As the rate of the voice is not altered, you can change the number and see at
what point people can't understand something. By this, you can test the aural
skills of a person learning a language. By the way, you can also do the opposite
by changing the -d X option to -h X. Instead of skipping frames, mpg123 will play
the same frame X number of times. Remember, these options do not produce the
"slow-mo" or "Chipmunk" effects. It just slows down the speed of playback.
As we mentioned before, you can also "reverse engineer" the MP3 file back to a
*.wav format. Remember, before you try this at home, the *.wav format is at least
5 times bigger, so make sure you've got plenty of hard disk space.
You can also use the different options like -d or -h combined with the -k and -n to
produce weird *.wav sound effects files. Your imagination is the limit. If you do
want to do techno-multimedia things with mpg123, you can use the -v option to
get complete information about the track your playing.
Well, after all that is said and done about MP3, I must confess that I don't like
working with MP3s as much as I like working with the new, free (as in beer and
source code) Ogg Vorbis format.
[Previous] [Next]
First, in order to listen to and make files in Ogg Vorbis format, you should to go
over to the Ogg Vorbis website and download some packages that are needed:
libao, libogg and libvorbis These are the actual libraries that do the compression
and decompression of the sound. The command line software for coding and
playing the *.ogg files can be found in there as well, in a package called Vorbis-
Tools. Included in this last package are the programs oggenc and ogg123.
These are designed to work in the same way as the packages bladeenc and
mpg123 in the MP3 world. Their command line options are essentially the same.
Before you actually visit the site and start downloading, if you have bought a
boxed set of a major Linux distribution recently, you should have these libraries
included on the CDs and be able to install this painlessly with your distribution's
installation tools. If you got your CDs from your cousin Larry with "Redhat" written
on them in magic marker, then feel free to go over and download the RPMs at
www.vorbis.com and install them, as you remember from our lesson on RPMs.
Note: Don't get the source RPMs (the one with 'src' in the title). You won't need
those if you're running Red Hat or any RPM based distribution (like Mandrake,
KRUD etc.). Also, install in the order I have given you above and do this as the
'root' user
If you've got some other distribution like Slackware that works better with tarballs
than RPMs (or if you are feeling adventurous/masochistic, then get the files
ending with *.tar.gz (the tarballs). Un-zip and un-tar them and read the readme
and/or install files which will instruct you how to get those packages installed and
working. I took this from libogg's own README file:
./configure
make
I guess you get the idea. Now let's see what we can do with these libraries and
programs to get some nice sounding *.ogg files.
[Previous] [Next]
To try out the capabilities of Ogg Vorbis and the capabilities of Linux in general
for manipulating sound I decided to convert to *.ogg format some old analog
audio recordings that I had of a "garage" band I was in during the late 70's and
early 80's. These were produced before the first CDs ever appeared on the
planet using 8 track reel to reel equipment in my best friend's basement. Various
cassettes were made of the original recordings and I wanted to preserve them
digitally. It also gave me the opportunity to outline the procedure to use as a
tutorial and to cowardly stay outside the realm of copyright infringement issues.
There are, I am sure, people using Linux who grew up in a time when the letters
CD only meant "certificate of deposit" and who listened to vinyl records and audio
cassette tapes. Some might have even listened to 8 track tapes and are afraid to
admit it. If you have stereo equipment that has a turntable and/or audio cassette
player with line-out plugs, this tutorial may also be applied to the possibility of
making copies of records and tapes for yourself, which the law allows, if you own
them.
Needed:
All sound cards have inputs for your speakers/headphones, a microphone and a
line-in cable (that is, the line-out from stereo equipment). Their function is either
color coded (speakers are usually green, microphone red and line-in blue) or
written on the metal bracket of the sound card. Plug the line-out of the cassette
player into the line-in input on the sound card. Usually, the microphone is the
default source for recording. You may have to fire up the Alsa mixer and change
this. Type:
alsamixer
then, using the arrow keys, make your way over to the line-in column and push
the space bar. That should activate your line in as the recording source.
Now, I put my cassette in the player and I was ready to go. I planned on using
the wavrec program I mentioned earlier in this lesson to convert the analog tape
audio to *.wav files, but I discovered a slight problem. I didn't know the length of
time the songs took to play. Being your basically lazy system administrator type, I
decided to try a little trick. I figured that none of them could probably last longer
than 5 minutes, so I typed the following:
That meant that wavrec would continue to record for 300 seconds (ie 5 minutes).
You can change that for however many seconds that you like. I sure you
remember the rest of the options from earlier parts of the lesson.
My plan consisted in pushing CRL + C when the song came to an end. At first, I
was afraid that would corrupt the data but when I tried it, it worked. The first trial
run sounded fine using wavplay. So I just continued doing this:
and pushing CRL + C at the end. Soon I had all my songs converted to *.wav
files. Then came the time to convert them to *.ogg format.
Then I used oggenc to get them this format. Here's an example with one song:
no_sympathy_for_the_neighbors.wav -n "%a_%t.ogg"
• -b stands for bitrate. Anything above 128 will give you good quality. I
chose 192 here because this is fairly good quality without being
excessively big.
• After the -a option you should put the artist (I use the term loosely in my
case) in quotes.
• The -l option is for the name of the album. We never made an album, so I
just put "demo tapes" as you can see.
• -t stands for track or the name of the song.
• Now, type the name of the song whatever.wav
• -n followed by "%a_%t.ogg" tells the program to name the Ogg file for the
artist(%a) and the track (%t).
That should create some files in Ogg format for you. One word of caution. Both
MP3 and Ogg encoding is very CPU intensive. Make sure you're not doing
anything that needs a lot of CPU cycles at the same time. If you're interested in
seeing just how CPU intensive this is, just run the command: top and that will give
you an idea.
Once again, if you've got some old tapes or old records and you want to make
copies for yourself, here's a way to do it. There is software available to take the
scratchy sounds from *.wav files made from LPs. There is good explanation of
the process at uklinux.net.
Well, enjoy all those old cassettes and LPs and if you were once a neighborhood
Rock and Roller, then try out the Ogg Vorbis tools and take a trip down memory
lane.
[Previous] [Next]
As much as I like Linux and think that it is the best operating system out there
today, most people who use computers equate Microsoft with computing. In
particular, the only computing environment that most PC users have ever seen
comes in the successive versions of their flagship operating system
Windows(tm). However, computer scientists and people who have an interest in
computers beyond the mere end-user stage know that graphic user interfaces or
desktop environments like Windows really represent the look and feel of the
computer experience, but not the experience itself. Windows has become
famous for essentially blurring the reality of what a computer really does. That is
to say that Microsoft Windows, especially since the release of Windows 95, has
masked any trace of the traditional "black" computer screen experience. It was
still there - you just couldn't see it unless you purposely looked for it.
Bill Gates, chairman of the Microsoft Corporation once stated that: "Linux is
1960's technology with a new development model". What does he mean by this?
I think basically that he bet his whole company on the assumption that people
didn't want to see the traditional black screen and the command prompt
anymore. The sales of Windows 95 proved that with a good marketing campaign
he was able to sell the idea that people didn't want it and people responded.
Then Linux started to gain in popularity and be noticed by a certain segment of
the public around 1998-99. The problem was that Linux offered the black screen
and the graphic user interface as a separate package. Bill Gates had already
established that this was a no-no and so Linux gets chalked up as "retrograde".
Now it's 2002 and Linux still offers the black screen and graphic user interface
separately. But then again, a lot has happened since 1998. For one, IBM has
spent 1 billion US dollars on Linux and essentially gotten its investment back.
Linux's market share continues to rise. It still pales in comparison with Microsoft's
desktop popularity - so much so that as most everyone knows, Microsoft was
convicted of being a monopoly in restraint of trade. Then again, in 2000 and 2001
successive email viruses and worms crippled Windows-based IT departments
and brought scores of corporate networks to a grinding halt. Why? Because
we're in a new world of connectivity. Bill Gates' comment about Linux may be
turned back now upon his own company. If you asked your average Linux
enthusiast what he or she thinks of Windows, you might get this reply: "Windows
is pre-Internet technology with a slick new marketing campaign". Microsoft
spends most of its days now fighting security brush fires because in blurring the
difference between the operating system and the graphic user interface it
sacrificed security for ease of use. Windows development model was conceived
before everybody's computers where connected to each other and it continues to
reflect that. Linux, however, was born on the Internet and grew up with it.
Unfortunately, more complaints about Linux's perceived lack of user friendliness
outnumber complaints about Windows being essentially a Maginot Line solution
for secure computing. Hopefully in this lesson on graphic user interfaces under
Linux, you'll get a good idea how the balance between user friendliness and
security is a good one with our favorite OS.
[Previous] [Next]
Without getting into a lot of technical jargon, in order for those nice windows (yes,
with a small 'w') to appear on your computer screen, you have to have some
graphics libraries installed on your computer. These libraries determine how a
window is to appear, what it is supposed to look like and what the buttons and
menus are supposed to do. That fact that you can use GUI based computing
under Linux goes back to the time before Linux was even thought of. In the mid-
eighties at the Massachusetts Institute of Technology they came up with the X
window system. By 2002 standards it was a primitive GUI system to run
programs with. The main idea behind this actually came from an earlier project at
Xerox called WIMP (Windows, Icons, Menus, Pointer), a project that essentially
started the idea that computers could be used in an attractive graphical
environment. 1
The 'X Window system' provided the libraries to make the frames, buttons and
menus that make up a window. Development of X Window still continues under
the auspices of the X Consortium. In 1992 the XFree86 Project was started. This
aimed to develop a free version of the X Window System. There have been
several versions of XFree86 and the current stable version at the time of this
writing is XFree86 4.0. Though there are other equivalents to the libraries that
XFree86 offers, it is by far the most widely used window system under Linux. Any
attempt at using Linux as a desktop operating system to get "productive" work
done (word processing, spread sheets) or to entertain oneself (play games, listen
to music, watch TV) will start with the installation of XFree86.
With major distributions, the install process takes care of getting XFree86 on to
your system. There are two parts to this. One is installing XFree86 itself. The
other is installing the X server that goes with your particular hardware. The X
server is just the means of getting XFree86 to work with the graphics card that
you have in your computer. For example, if you have a graphics card from ATI,
then you would install the XFree packages along with the X server package for
ATI. If you have an S3 card, then XFree86 and the X server for S3 cards should
get installed. I explain this because some distributions do a pretty fine job of
getting you up and running, but you may get asked what graphics card you have
when you do a more interactive type of install of Linux. In this case, you have to
know what card you have so the correct X server gets installed and you can have
a graphical environment to look at after the install process is finished.
Recently, major Linux distributions will also offer you the possibility of getting
right into the GUI when you turn on your computer. This is done by way of the
program XDM. This is the Microsoft Windows influence on how things are done
that I mentioned before. Traditionally in Linux, you would turn on your computer
and get the black screen and the command prompt. Then you would type:
startx
and your graphical environment of choice comes up. 'Choice' is the key word
here. By having the command prompt and then issuing a command to start the
GUI, you can switch into any number of desktop environments "on the fly". Of
course, if you're not interested in having more than one, then you can use XDM
and have your favorite desktop there waiting for you.
Regardless of the way you choose to start up your machine, before you see your
your desktop utilities of choice, we're going to have configure XFree86 to use
your monitor, mouse and keyboard. That is, whether you type startx or not, we'll
have to come up with a come up with a configuration so we can, in fact start X.
1
The X Window User HOWTO by Ray Brigleb, 1999
[Previous] [Next]
In Linux days of yore, it used to be quite a task to get X-Window running even on
a standard Intel type PC. Now all of the major distributions have their own tools
to get X running in no time.
SuSE offers a program called Sax. This is about the most user-friendly program I
have yet encountered for X setup. It is graphical, so the simple fact that you can
run it before you've even start configuring X is a good sign.
Mandrake offers their X configuration right in the install package so you go from
start to finish all in the same package.
However, given a situation where your X setup doesn't go smoothly, you can do
this this step by step, in text mode, with a program called xf86config. This is a
last resort and will almost always get you good results.
This program asks you questions about your peripheral hardware, like your
keyboard, mouse and monitor.
The most important questions that this program will ask you about your hardware
are the ones about your monitor. I don't mean to imply that the others are not
important. For example, if you don't answer the type of questions about your
mouse correctly, your mouse won't work. Or if you don't enter the
country/language values for your keyboard layout, you may not be able to use
letters or symbols that exist in your native language. That is obviously important.
However, if you don't enter the values correctly for the type of monitor you have,
your monitor can get seriously damaged. If you enter the vertical and
horizontal refresh rates incorrectly, your monitor will become just another
useless piece of plastic and glass, like so many others waiting to be thrown away
or recycled. It's beyond the scope of this lesson to explain what the vertical and
horizontal refresh rates mean (actually, it's the horizontal one that's a real
stickler) but trust me - you need to go get the manuals for your monitor and enter
the real values when it asks you. If you don't believe me, this is what xf86config
says
It is VERY IMPORTANT that you do not specify a monitor type with a horizontal
sync range that is beyond the capabilities of your monitor. If in doubt, choose a
conservative setting.
At this point in the configuration, you can choose option 11 and enter your own
values from the monitor's manuals and you'll be sure to get the correct settings.
Once you have passed this point, the questions are more straight forward and
errors have less grave consequences.
In the past years, as I mentioned, major Linux distributions have streamlined this
process so you probably won't even need xf86config. But it's nice to know you
have it there, especially if your hardware is proving to be less than cooperative.
Before start talking about the different windows managers and desktop
environments that are available for Linux, let's first see how our bare-bones X-
Window setup is working. Some X programs don't need a windows manager to
run, so let's try a simple experiment with one of them. Type this in your terminal
window:
xinit /usr/X11R6/bin/xedit
This will fire up a simple text editor called 'xedit'. You can try writing something
and pushing the buttons. When you push 'quit', you'll notice you go back to your
standard terminal. Try the same with an x-terminal:
xinit /usr/X11R6/bin/xterm
Type in a few commands. Then type 'exit'. Your x-term session ends and your
back in your terminal.
There isn't any practical reason to use X-Window in this way. It's better to use its
powerful capabilities with a full-featured windows manager and desktop
environment.
The decision to startup graphically is made when you first install Linux. If you
found that you've changed your mind; that is, you now want to startup graphically
or vice-versa, you can usually change this with your distribution's tools.
You can change the start-up behavior by going to your /etc/ directory and
changing a file. The file name will depend on your distribution. With SuSE, for
example, it is the file called rc.config. You should change the line:
DISPLAYMANAGER=""
to:
DISPLAYMANAGER="xdm"
You may also use 'kdm' or 'gdm' here. Make sure that your CHECK_INITTAB
setting is "yes"
In the case of RedHat and RedHat based distributions (Mandrake, KRUD), you'll
need to change the file /etc/inittab. In the line: id:3:initdefault:, the number 3 needs to
be changed to a 5
As I mentioned, if you want to do just the opposite, change the default graphical
login to a text mode login (something which I recommend), just reverse all those
changes above. If you decided not to use a graphical login, you may want to un-
install 'xdm' (or gdm/kdm).
Well, now that we're clear on whether to use a graphical start-up or not, let's
explore some of the possibilities for your Linux desktop.
[Previous] [Next]
If you're reading this, then you've probably made the decision to try Linux. Before
we talk about what your Linux desktop is going to look like, we should first talk
about the difference between a window manager and a desktop environment.
Window managers
Most programs made for computers nowadays run in a graphic environment.
However, it became apparent that these programs would be more efficient if they
could take their attributes from a common source. This is what a window
manager does. It decides how the window is going to look, the aspect of its
buttons and frames. It determines how it is going to reacted when you click in it
or you reduce it or re-size it.
There are more two dozen different window managers available for Linux. The
more popular ones make their way onto Linux distributions. They range from
completely minimalist to well-engineered works of art. Here is a list of the ones
that generally find their way onto the major distributions' CDs.
You can check out the above sites and find one that you like. The first one,
FVWM, is my personal favorite. It is also the most minimalist of the one's I've
listed here. This is, as far as I know, the oldest of the aforementioned as well.
This is not meant to be an endorsement of this window manager. I just happen to
like its minimalist approach and low memory requirements. I'd rather pass that
RAM savings on to the really important applications running on my computer.
I have provided a screenshot (153k) of the my view on the world of Linux. * I have
a menu item that links to a script that will place a new picture as the desktop
image when I get bored of the one I've been seeing for a couple of days (or
hours, depending on my threshold of boredom at the moment).
I have fun tweaking the configuration file. I think the main reason that a lot of
people prefer other windows managers to fvwm2 is that the file that sets up your
desktop menus and buttons and other things has to be worked on by hand. They
really prefer the click-as-you-go configuration of other window managers. I
happen to like experimenting and I am prone to change it once a month or so
(depending on that threshold of boredom factor again). Fvwm2 is so configurable
that if you got 5 different configuration files, known as .fvwm2rc, off the Internet
and tried them out, you would swear that you're seeing 5 different window
managers.
You can check out the .fvwm2rc file behind the above screenshot. I'd like to
acknowledge that the main file was written by Jay Kuri. Thanks Jay, wherever
you are. I also included some tweaks that I got here and there. The main buttons
you see are from Eric S. Raymond's (author of The Cathedral and the Bazaar)
.fvwm2rc and modified slightly.
*
There's a neat application called gkrellm that keeps track of a lot of things that are going on with
the system besides displaying the time and date. MS Windows users should take note of the
uptime (last time of reboot) of 27 days, 21 hours. We had a power blackout that lasted about 3
hours while a transformer in my neighborhood was being fixed. Previous uptime was 31 days. I
don't remember what happened 31 days before that.
Most computer users like to have a set of tools that they always see - things like
a clock, a region that displays the date, a button that displays a menu with the
programs available for you to use. People have become accustomed to an icon
system that sits on a "desktop" that allows you, with a click of your mouse, to
have your favorite program up and running or open a web browser to your
favorite website. This usually goes beyond the call of duty for a window manager.
In these cases you need the services of a "desktop environment". This is a
uniform looking desktop interface which sits on top of and uses the services of a
window manager. There are two major desktop environments, GNOME, which
uses the services of independent window managers (at the time of this writing
GNOME runs with Enlightenment) or KDE, which has its own background
window manager, known as kwm
GNOME or KDE
The question: 'Should I use GNOME or KDE?' was a controversial one not so
long ago. Luckily, now, it is just a matter of which interface you like more. The
controversy stemmed around the KDE project which was founded in 1996 with
the goal of creating a uniform desktop experience for Linux. KDE made the
decision to use libraries to create the desktop interface which were not open
source. The libraries in question, known as 'QT' are now open source, so the
question is pretty much moot. However, at the time, the issue inspired a young
Mexican developer named Miguel de Icaza to create a desktop interface known
as GNOME.
GNOME was founded in August of 1997 and was an attempt to create a uniform
desktop manager that was totally compliant with the GNU's General Public
License, avoiding the licensing issues involved in the case of KDE's using the QT
libraries. Miguel de Icaza and Nat Friedman founded Helix Code in 1999 to
oversee the business end of developing the GNOME desktop. Helix Code later
changed it's name to Ximian.
Most distributions come with both the GNOME and KDE desktop environments.
However, if your distribution did not have this or you are reading this and have
not yet installed Linux, you may want to check out both offerings.
• KDE homepage
• Ximian Inc.
You can also download the latest versions from their homepages.
[Previous] [Next]
Internet/WWW Browsers
Netscape Communicator
The heavyweight of all browsers was one of the first to release a version for
Linux. Includes an HTML authoring tool and full-featured email program. Comes
with the standard plug-ins to view Flash animation and listen and see Real
Audio/Video content. At the time of this writing, version 6.2 is available for Linux.
Opera
Billed as the "fastest browser", Opera Software of Norway released their first
version of Opera for Linux in March of 2000. These early versions were not
stable but the company kept working and released a finished Opera 5 for Linux.
At this time, the company has released a beta version Opera 6 which offers plug-
in support for Flash and Real Audio/Video. Their browser for Linux still doesn't
have the same features as their flagship MS Windows version (like an email
client), but it's fast and extremely stable and reliable.
Mozilla
Konqueror
Konqueror, part of the KDE project, is a file manager and Internet browser
wrapped up into one. You can surf the net and manage your files at the same
time. If you're migrating from Windows, you should find it very similar to
Microsoft's Internet Explorer. Includes plug-in support as well as enabling for
Java and JavaScript. You need to have KDE installed to run this.
Galeon
Galeon is the browser associated with the GNOME project. It is based on the
Gekko HTML rendering engine that also runs Mozilla (this converts HTML into
content you can read). This browser is essentially Mozilla (you actually need
Mozilla to run it) modified somewhat to fit into the GNOME scheme of things.
With the use of 'themes', the look is much more configurable than Mozilla itself.
StarOffice
We'll talk more about StarOffice in our section on office suites. It comes with a
with a web browser and an email client. Speaking of email clients, let's look at
some popular ones available for Linux
[Previous] [Next]
Evolution
Ximian's Evolution, part of the GNOME desktop project has received a lot of
press lately. It is shaping up to be the only serious challenger to Microsoft
Outlook's domination of the groupware scene. Seeing that it has all the features
of Outlook, sans the virus problem, then you can see why it's getting some
notice. If you're looking for a good email client that comes with scheduling tools,
task management, address books and all those things that the busy yet
organized person needs, than Ximian is probably the thing for you.
Kmail
Kmail is KDE's major email client. It is not a complete groupware solution like
Ximian's Evolution, but its email management capabilities are very powerful.
There is support for all major types of email transport, intricate configuration of
mail filters, complete support for HTML formatted mail and other useful features.
Sylpheed
Japanese developer Hiroyuki Yamamoto has developed this fast, easy to use
full-featured email client. This client is a big hit with developers as it offers really
nice threading (the ability to keep track of all mails based on one original mail)
and a fairly good way of managing different email accounts. If you have to
respond to mail in different capacities (boss, friend, worker), Sylpheed offers the
tools to do this all in one client.
Mutt
One of the most famous quotes in the Linux world is the one found at the top of
the home page for Mutt: All mail clients suck. This one just sucks less.. This was
said by Michael Elkins, who developed this email client. A lot of people will
probably point out, and rightly so, that Mutt doesn't have a graphic user interface.
That is true. However, this client is so popular in the Linux world that I just had to
include it here. If you are a newcomer to Linux, you may not want to use Mutt just
yet. Using it efficiently requires a well-written .muttrc file. This is the main
configuration file that determines how Mutt is going to work. However, if you get
used to Mutt, you are probably not going to ever switch. It's lack of a pretty
interface is more than made up for by the ability you have to configure Mutt. After
you have some months behind you working with it, emails will practically write
themselves. If you handle a lot of email, this is the client you probably want to at
least look into.
[Previous] [Next]
KOffice
KOffice is the KDE Project's offering for desktop productivity. It includes all of the
standard office suite applications. The software is offered free of charge.
This suite was formerly known as ApplixWare. Once again, all the standard office
suite tool are offered here. This one boasts a Microsoft Office look and feel. This
is not a free product. It cost 99 US dollars at the time of this writing.
Siag Office
Don't let a name like Pathetic Writer dissuade you from checking out this office
suite for Linux. The word processor part of the suite can open Microsoft Word
format (*.doc) files. The project started with the Scheme in a grid spreadsheet.
Now you know why it's called Siag. Another free offering in the office category.
Hancom Linux of Korea has developed this commercial full-featured office suite
for Linux. Provides compatibility with Microsoft Office formats and smooth
integrating into the KDE desktop. An evaluation version is available for download,
but the software must be purchased in order to continue to use it.
GNOME Office
GNOME office should actually appear in quotes, because this is not an office
suite in the classic sense, but a set of applications that are often associated with
office suites, as a package deal, so to speak. Some of the high-lights include:
If you download the Ximian Desktop, you'll get these applications plus the other
productivity tools associated with the GNOME project.
[Previous] [Next]
Music
When I got broadband Internet access, my life changed forever. No more paying
for dial-ups on a hourly basis. No more painful downloads of software. But what's
more important than all of this is that I could now listen to radio! So what, you
say. Well, I live more than 6,000 miles from the place where I grew up, so when I
could finally listen to a radio station from the city where I was born as easily as
my mother (who still lives there) can switch on the radio, I was delighted.
RealAudio player for Linux is just one of those little apps I'd rather not live
without.
RealPlayer
XMMS
The GIMP
xv
In the words of the its author, John Bradley, xv doesn't stand for
anything. I use this program all the time, literally. It is what I use to
display the image in my desktop window.
type this:
#!/bin/sh
do
ImageMagick
display 'vid:*.jpg'
This creates one image of all of the jpg images as thumbnails in the
directory you're in. This takes up a lot of CPU power on even a
fairly powerful machine, so be patient. If you've got a lot of images
in a directory and a slow machine, you might want to consider
doing them in small batches.
animate *.jpg
Sometimes you don't want to fire up a whole office suite to read some text file
and sometimes you have to create and/or edit documents as plain text. If you
wanted, for example, to modify my image rotation script above, you would open
up a text editor. There are two that I use on two different occasions.
Emacs
xedit
As we're on the topic of basic X-Window applications, you can use xcolors to get
a background and foreground combination that suits your eyes. Use the right
mouse button to select a font color and the middle button to select the
background.
If you want to select colors (for example, for web page work) and you've got the
GNOME desktop installed, you can use GNOME Color Browser. It's easier to
manage that xcolors and has a nice grab feature to select colors from other
places and get their values/names.
Miscellaneous Programs
root-tail
Let's explain some of these options. First, after '-color' you should
use the name of the color you want the text to appear in. Use
xcolors to find a color you like that's supported by your system. The
next one is '-font'. As you see, I've chosen a good sized one. '-
shade' will give the text a little shade under it and will look snazzier.
'-g' stands for 'geometry' or the location in the window. I use
+10+100 which set it right in front of me. You can experiment with
settings. Now you have no excuse for forgetting to buy your loved
ones presents on their birthdays!
gkrellm
Xchat
There are thousands of programs for Linux in our applications section. Have a
look and we're sure you'll find the right programs to suit your needs
[Previous] [Next]
This is a file you'll find in your user directory. You can use it to start programs
automatically when you start X-window. Open the file with vi or the text editor of
your choosing. Then, for example, add:
-bg sets the background color and the -geometry setting I have used here gives
you a fairly small, but not too small clock in the upper left hand corner of your
desktop. You can type: man xclock to see more options. Experiment with options
first before you put your definitive xclock settings in your .xinitrc file. Just type
your settings into an xterm and try different ones. Type: killall xclock to shut off the
clock each time.
.Xdefaults file
There's another file in your user directory called .Xdefaults. You can use this file to
change the way some of your X-window applications look. It's fun to try out
different styles and get some settings that please your eye. Before you try to do
this however, make a backup. Type:
cp .Xdefaults .Xdefaults_good
because there is always some danger of making some applications non-operable
because you have left spaces where you shouldn't. It is important when you
change settings that you leave no trailing spaces. Most major distributions
provide a working .Xdefaults file. It's best to leave what you find there, but you're
free to add stuff to it.
First, open up the file with Vi or any text editor your prefer. Add this to it:
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! emacs changes [date]
emacs*Background: DarkCyan
emacs*Foreground: Khaki
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Let's explain what we've done here. First, the exclamation point (!) in this file is
used to make comments. The two rows of exclamation points I've used to show
where my emacs section begins and ends. Then I use two to comment that I am
changing emacs and I have included [date] where I would put the actual date to
show when I made the changes. You don't have to to this. It's just something
extra to remind me when I made the changes. Then we make the actual
changes.
With: emacs*Foreground: Khaki we've changed the color of the words in the menu.
To make the changes take effect, you have to issue this command in an xterm:
This will restart the x-server database and log in your changes. If you don't do
this, X-window keeps your old .Xdefaults in memory and you won't see anything
new. Restart emacs and you should see your new colors. If emacs doesn't come
up, you may have left some trailing white space. If that is the case, just type
emacs in an xterm and an error message should appear saying something like:
Warning: Color name "khaki " is not defined or similar. If you see a space before the
second quotation mark, then you've got whitespace in your .Xdefaults file that
needs to be eliminated.
As you get more adept at changing things, you'll make your desktop more to your
liking.
xwininfo
This comes in handy especially to find suitable '-geometry' settings for use in
starting up applications and including them in the .xinitrc file.
xset
This is a command line utility to control things like your mouse, keyboard, monitor
and pc speaker. Both GNOME and KDE have other graphic apps to do this stuff
a lot easier, so I find myself using this less and less. But you can try it out. For
example, type: xset b off to stop your computer from beeping at it. And to turn it
back on? You guessed it: xset b on. You can also change the tone by typing
something like: xset b 30 550 300 The first number is for volume, the second pitch
and the third duration of the beep.
xsetroot
In a previous section, we told you how to use xv to put your favorite picture on
your desktop. If you get tired of pictures and you want something plain, you can
use xsetroot to just put a color scheme on the desktop. For example, typing:
xsetroot -solid seagreen will get you a solid dark green color as a background. This
one is soothing to the eyes. It's the same color used on pool and card tables. Of
course, you're free to use the color you like! Type: man xsetroot to see other
options.
[Previous] [Next]
With Linux, you are not limited to starting X-window only once. You may open up
another virtual terminal and start another instance of X-window. Remember
though that running two instances will use up a lot of memory.
startx -- :1
This is the thing I love to show people from the MS Windows world. I point to the
computer across the room and then say: "Now I am going to start the browser
from that system and make it appear here." You don't need to be David
Copperfield to perform this magic. You only need X-window running on one and
installed on the other. You also need a means of logging in to the other
computer. And here's one more thing. The computer doesn't even need to be in
the same room. It can be in a different room in a different building on a different
continent. Providing your bandwidth is good enough, you can start a program on
a computer 5000 kilometers away and use it on your desktop.
There are two ways to do this. One is not secure and probably should only be
used on a local network, if at all. The second one is very secure and can be used
for trans-oceanic X-window sessions.
If you have the remote login device telnet and the telnet server installed on the
machines, you can use this fairly safely in a local network. For example, if you
workstation is called 'amos' and the other machine is called 'andy' and you want
to use a program on 'andy', sitting at 'amos', you would type:
xhost +andy
Then, type:
DISPLAY=amos:0.0
then
export DISPLAY
Now you can type the name of any program you want to run that you know is on
'andy'. Remember though, as I mentioned, telnet is insecure. This are better
ways of doing this. You should never do this if you're working over a public
network, like the Internet.
Open SSH stands for Open Secure Shell. That's just what it is. A secure shell for
logging in at other computers in a secure manner. What goes over the network is
encrypted and your security is not compromised. Most major distributions will
offer this and it is normally installed by default. You may have to specifically
install the OpenSSH server which you need to have to for this to work on your
local network. Using X on another machine, also known as X forwarding is
usually disabled by default so you may have to edit one file to get this to work
locally. If you're doing this across oceans or continents the configuration will
depend on the remote machine. As long as you have a OpenSSH client and an
account on the other machine, you can do this.
As I mentioned, if you want to do this locally. Here's what you have to do. Let's
use our 'amos' and 'andy' example again. You're sitting at your workstation called
'amos'. Make sure you have OpenSSH server on installed on 'andy' and have
created a user account there. On 'andy' you need to login as 'root' and make sure
that there is a line in a file called 'sshd_config', usually located in /etc/ssh that
says X11Forwarding yes. If this says X11Forwarding no than you need to change it to
yes. Then you need to restart the OpenSSH server. The easiest way is to look
for its PID by typing: ps ax | grep sshd and killing it's PID number. Then type: sshd to
start the server again.
Then, from 'amos' just connect to 'andy' via SSH, like so:
[Previous] [Next]
In this lesson we've given you a number of addresses of web pages of these
types of projects. The best thing to do to support these efforts is to check back on
these projects from time to time, install the latest version and talk to your friends
about how good you think they are. Also, contact the developers or join the
mailing list for that particular project and provide feedback, both positive and
negative, about the software you've tried. That's essentially what the Linux
movement is all about. You can also volunteer to do some work. You don't have
to be a programmer to make a vital contribution. You can translate the
documentation or the graphic interface to your native language, for example. In
the end, any form of collaboration is good. That's how Linux grew into the major
operating system that it is and that's essentially what the Linux movement is all
about.
[Previous]