To The Student This text is a basic introduction to the complex world of the
Unix operating system. Here, you will find information about several aspects
of working with Unix, from simple personal tasks to shell programming and
system administration. Unix is a powerful and ever-evolving system, which
is now available in variants designed for every hardware platform and with
configurations to suit any preferences or needs. It powers much of the world’s
academic and business information technology, and is increasingly popular
for home networks and machines. You may find Unix intimidating, especially if you have not worked
with text-based operating systems before. Although it might be unfamiliar
territory, explore the systems available to you and practice the various commands
you see in this book or find elsewhere. You will come to see that, although
the user interface can initially be uncomfortable, working with Unix is much
like working on any other operating system: especially if you are working
on a Unix installation which offers a graphical user interface, some of which
are virtually indistinguishable from Windows or MacOS. If you have a spare computer available to you, we strongly encourage
you to consider downloading and installing a Unix variant for your own practice
and exploration. The most popular Unix variants for personal computers are
Linux and FreeBSD. There are more than a hundred Linux variants available
on the Internet, but the Red Hat and Debian distributions tend to be the friendliest
for new users. FreeBSD has only one distribution, but it is also good for
newcomers. While you are learning, it would be best to keep your Unix machine
separate from your regular home computer, should you have one. You can run
Linux on a 486, as long as you work primarily in text mode. Using the graphical
interfaces can slow the system significantly if there is not enough RAM or
a fast enough chip. Unix is best learned hands on. Whether this is the only Unix course you take or whether you are
interested in pursuing a career related to Unix administration or development,
this course will expose you to the various elements that make up the day of
most professional Unix people. The Unix employment outlook is still vibrant,
especially in academic and large corporate arenas. Even those who plan to
work with Microsoft or Apple products will benefit from Unix knowledge since
heterogeneous networks are increasingly the norm rather than the deviation. To The Teacher This text is designed to provide an overview of several critical
areas of the Unix operating system. With this text, you can expose your students
to a range of activities related to Unix, from simple filesystem navigation
to scripting with sed and awk, as well as the various functions which system
administrators perform regularly. No matter what the focus of your particular
course – from a survey of operating systems to a class designed for IT majors
– you should find information here which will support your classroom activities. The text is divided into several sections, so that it can be used
in a variety of courses with different syllabi and emphasis. Most instructors
will use the first two sections in their courses, especially if their students
have little experience with multi-user operating systems. - Chapters 1-6 provide an overview of Unix history, how the operating system
works, how commands are given and processed, the file system, and jobs and
processes. This section also introduces the shell environment. The bash shell
is the default shell used in this book.
- Chapters 7-9 introduce your students to common Unix applications: various
text editors, with an emphasis on vi, and some popular Internet applications
which your students can put to use immediately if you are working in a networked
environment. For those instructors who use electronic mail to communicate
with their students, several e-mail clients are covered in this section.
- Chapters 10 and 11 introduce networking. From the most basic concepts of
Unix networking to a case study in which students can build a small local
network and connect it to the Internet, the ideas presented here are useful
for students no matter what their major or eventual career goal.
- Chapters 12-15 concentrate on bash shell programming. Some instructors may
not cover this material in their courses, while others find that shell programming
is an excellent introduction to programming in general, especially if students
are required to take more complex programming courses in their course of study.
The basic concepts of shell scripting are introduced here, with increasingly
complex scripts and examples.
- Chapters 16-19 are focused on system administration. Since sysadmin jobs
are one of the most common destinations for Unix-skilled students, the jobs
that routinely make up an administrator’s day are an important focus. These
chapters introduce user and disk management, working with software, the X
Window System, and running networked services: printing, Internet services,
and remote access. Attention is also paid to security management and to working
with disabled users.
- The appendices contain a brief command compendium, a glossary, a set of
configuration files which you can use for examples or illustration, and a
set of URLs for further study or exploration.
The text is general enough that it can be used with almost every
Unix variant, and all the variants which are likely to be found in an academic
setting. Of course, hands on work is the best way to gain comfort with Unix,
and we encourage students (and instructors) to consider installing Linux or
FreeBSD on a spare machine. This allows students to explore root-restricted
programs and functions, as well as demystifying the operating system through
familiarity. Red Hat or Debian Linux, or FreeBSD, are the most user-friendly
choices. If your academic set-up offers both graphical interfaces and text
mode, note that we have concentrated on text mode, or terminal window access,
throughout the book since it is hard to predict how many systems still run
as text-only. |