old-www/LDP/intro-linux/html/sect_03_02.html

2127 lines
41 KiB
HTML

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML
><HEAD
><TITLE
>Orientation in the file system</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.7"><LINK
REL="HOME"
TITLE="Introduction to Linux"
HREF="index.html"><LINK
REL="UP"
TITLE="About files and the file system"
HREF="chap_03.html"><LINK
REL="PREVIOUS"
TITLE="General overview of the Linux file system"
HREF="sect_03_01.html"><LINK
REL="NEXT"
TITLE="Manipulating files"
HREF="sect_03_03.html"></HEAD
><BODY
CLASS="sect1"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>Introduction to Linux: </TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="sect_03_01.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Chapter 3. About files and the file system</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="sect_03_03.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="sect1"
><H1
CLASS="sect1"
><A
NAME="sect_03_02"
></A
>3.2. Orientation in the file system</H1
><DIV
CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="sect_03_02_01"
></A
>3.2.1. The path</H2
><P
>When you want the system to execute a command, you almost never have to give the full path to that command. For example, we know that the <B
CLASS="command"
>ls</B
> command is in the <TT
CLASS="filename"
>/bin</TT
> directory (check with <B
CLASS="command"
>which <TT
CLASS="option"
>-a</TT
> <TT
CLASS="parameter"
><I
>ls</I
></TT
></B
>), yet we don't have to enter the command <B
CLASS="command"
>/bin/ls</B
> for the computer to list the content of the current directory.</P
><P
>The <TT
CLASS="varname"
>PATH</TT
> environment variable takes care of this. This variable lists those directories in the system where executable files can be found, and thus saves the user a lot of typing and memorizing locations of commands. So the path naturally contains a lot of directories containing <TT
CLASS="filename"
>bin</TT
> somewhere in their names, as the user below demonstrates. The <B
CLASS="command"
>echo</B
> command is used to display the content (<SPAN
CLASS="QUOTE"
>"$"</SPAN
>) of the variable <TT
CLASS="varname"
>PATH</TT
>:</P
><TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="screen"
>&#13;<TT
CLASS="prompt"
>rogier:&#62;</TT
> <B
CLASS="command"
>echo $PATH</B
>
/opt/local/bin:/usr/X11R6/bin:/usr/bin:/usr/sbin/:/bin
</PRE
></FONT
></TD
></TR
></TABLE
><P
>In this example, the directories <TT
CLASS="filename"
>/opt/local/bin</TT
>, <TT
CLASS="filename"
>/usr/X11R6/bin</TT
>, <TT
CLASS="filename"
>/usr/bin</TT
>, <TT
CLASS="filename"
>/usr/sbin</TT
> and <TT
CLASS="filename"
>/bin</TT
> are subsequently searched for the required program. As soon as a match is found, the search is stopped, even if not every directory in the path has been searched. This can lead to strange situations. In the first example below, the user knows there is a program called <B
CLASS="command"
>sendsms</B
> to send an SMS message, and another user on the same system can use it, but she can't. The difference is in the configuration of the <TT
CLASS="varname"
>PATH</TT
> variable:</P
><TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="screen"
>&#13;<TT
CLASS="prompt"
>[jenny@blob jenny]$</TT
> <B
CLASS="command"
>sendsms</B
>
bash: sendsms: command not found
[jenny@blob jenny]$ echo $PATH
/bin:/usr/bin:/usr/bin/X11:/usr/X11R6/bin:/home/jenny/bin
[jenny@blob jenny]$ su - tony
Password:
tony:~&#62;which sendsms
sendsms is /usr/local/bin/sendsms
tony:~&#62;echo $PATH
/home/tony/bin.Linux:/home/tony/bin:/usr/local/bin:/usr/local/sbin:\
/usr/X11R6/bin:/usr/bin:/usr/sbin:/bin:/sbin
</PRE
></FONT
></TD
></TR
></TABLE
><P
>Note the use of the <B
CLASS="command"
>su</B
> (switch user) facility, which allows you to run a shell in the environment of another user, on the condition that you know the user's password.</P
><P
>A backslash indicates the continuation of a line on the next, without an <B
CLASS="keycap"
>Enter</B
> separating one line from the other.</P
><P
>In the next example, a user wants to call on the <B
CLASS="command"
>wc</B
> (word count) command to check the number of lines in a file, but nothing happens and he has to break off his action using the <B
CLASS="keycap"
>Ctrl</B
>+<B
CLASS="keycap"
>C</B
> combination:</P
><TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="screen"
>&#13;<TT
CLASS="prompt"
>jumper:~&#62;</TT
> <B
CLASS="command"
>wc -l test</B
>
(Ctrl-C)
<TT
CLASS="prompt"
>jumper:~&#62;</TT
> <B
CLASS="command"
>which wc</B
>
wc is hashed (/home/jumper/bin/wc)
<TT
CLASS="prompt"
>jumper:~&#62;</TT
> <B
CLASS="command"
>echo $PATH</B
>
/home/jumper/bin:/usr/local/bin:/usr/local/sbin:/usr/X11R6/bin:\
/usr/bin:/usr/sbin:/bin:/sbin
</PRE
></FONT
></TD
></TR
></TABLE
><P
>The use of the <B
CLASS="command"
>which</B
> command shows us that this user has a <TT
CLASS="filename"
>bin</TT
>-directory in his home directory, containing a program that is also called <B
CLASS="command"
>wc</B
>. Since the program in his home directory is found first when searching the paths upon a call for <B
CLASS="command"
>wc</B
>, this <SPAN
CLASS="QUOTE"
>"home-made"</SPAN
> program is executed, with input it probably doesn't understand, so we have to stop it. To resolve this problem there are several ways (there are always several ways to solve a problem in UNIX/Linux): one answer could be to rename the user's <B
CLASS="command"
>wc</B
> program, or the user can give the full path to the exact command he wants, which can be found by using the <TT
CLASS="option"
>-a</TT
> option to the <B
CLASS="command"
>which</B
> command.</P
><P
>If the user uses programs in the other directories more frequently, he can change his path to look in his own directories last:</P
><TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="screen"
>&#13;<TT
CLASS="prompt"
>jumper:~&#62;</TT
> <B
CLASS="command"
>export PATH=/usr/local/bin:/usr/local/sbin:/usr/X11R6/bin:\
/usr/bin:/usr/sbin:/bin:/sbin:/home/jumper/bin</B
>
</PRE
></FONT
></TD
></TR
></TABLE
><DIV
CLASS="note"
><P
></P
><TABLE
CLASS="note"
WIDTH="100%"
BORDER="0"
><TR
><TD
WIDTH="25"
ALIGN="CENTER"
VALIGN="TOP"
><IMG
SRC="../images/note.gif"
HSPACE="5"
ALT="Note"></TD
><TH
ALIGN="LEFT"
VALIGN="CENTER"
><B
>Changes are not permanent!</B
></TH
></TR
><TR
><TD
>&nbsp;</TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
><P
>Note that when using the <B
CLASS="command"
>export</B
> command in a shell, the changes are temporary and only valid for this session (until you log out). Opening new sessions, even while the current one is still running, will not result in a new path in the new session. We will see in <A
HREF="sect_07_02.html"
>Section 7.2</A
> how we can make these kinds of changes to the environment permanent, adding these lines to the shell configuration files.</P
></TD
></TR
></TABLE
></DIV
></DIV
><DIV
CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="sect_03_02_02"
></A
>3.2.2. Absolute and relative paths</H2
><P
>A path, which is the way you need to follow in the tree structure to reach a given file, can be described as starting from the trunk of the tree (the / or root directory). In that case, the path starts with a slash and is called an absolute path, since there can be no mistake: only one file on the system can comply.</P
><P
>In the other case, the path doesn't start with a slash and confusion is possible between <TT
CLASS="filename"
>~/bin/wc</TT
> (in the user's home directory) and <TT
CLASS="filename"
>bin/wc</TT
> in <TT
CLASS="filename"
>/usr</TT
>, from the previous example. Paths that don't start with a slash are always relative.</P
><P
>In relative paths we also use the . and .. indications for the current and the parent directory. A couple of practical examples:</P
><P
></P
><UL
><LI
><P
>When you want to compile source code, the installation documentation often instructs you to run the command <B
CLASS="command"
>./configure</B
>, which runs the <EM
>configure</EM
> program located in the current directory (that came with the new code), as opposed to running another configure program elsewhere on the system.</P
></LI
><LI
><P
>In HTML files, relative paths are often used to make a set of pages easily movable to another place:</P
><TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="screen"
>&#13;&#60;img alt="Garden with trees" src="../images/garden.jpg"&#62;
</PRE
></FONT
></TD
></TR
></TABLE
></LI
><LI
><P
>Notice the difference one more time:</P
><TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="screen"
>&#13;<TT
CLASS="prompt"
>theo:~&#62;</TT
> <B
CLASS="command"
>ls /mp3</B
>
ls: /mp3: No such file or directory
theo:~&#62;ls mp3/
oriental/ pop/ sixties/
</PRE
></FONT
></TD
></TR
></TABLE
></LI
></UL
></DIV
><DIV
CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="sect_03_02_03"
></A
>3.2.3. The most important files and directories</H2
><DIV
CLASS="sect3"
><H3
CLASS="sect3"
><A
NAME="sect_03_02_03_01"
></A
>3.2.3.1. The kernel</H3
><P
>The kernel is the heart of the system. It manages the communication between the underlying hardware and the peripherals. The kernel also makes sure that processes and daemons (server processes) are started and stopped at the exact right times. The kernel has a lot of other important tasks, so many that there is a special kernel-development mailing list on this subject only, where huge amounts of information are shared. It would lead us too far to discuss the kernel in detail. For now it suffices to know that the kernel is the most important file on the system.</P
></DIV
><DIV
CLASS="sect3"
><H3
CLASS="sect3"
><A
NAME="sect_03_02_03_02"
></A
>3.2.3.2. The shell</H3
><DIV
CLASS="sect4"
><H4
CLASS="sect4"
><A
NAME="AEN2296"
></A
>3.2.3.2.1. What is a shell?</H4
><P
>When I was looking for an appropriate explanation on the concept of a <EM
>shell</EM
>, it gave me more trouble than I expected. All kinds of definitions are available, ranging from the simple comparison that <SPAN
CLASS="QUOTE"
>"the shell is the steering wheel of the car"</SPAN
>, to the vague definition in the Bash manual which says that <SPAN
CLASS="QUOTE"
>"bash is an sh-compatible command language interpreter,"</SPAN
> or an even more obscure expression, <SPAN
CLASS="QUOTE"
>"a shell manages the interaction between the system and its users"</SPAN
>. A shell is much more than that.</P
><P
>A shell can best be compared with a way of talking to the computer, a language. Most users do know that other language, the point-and-click language of the desktop. But in that language the computer is leading the conversation, while the user has the passive role of picking tasks from the ones presented. It is very difficult for a programmer to include all options and possible uses of a command in the GUI-format. Thus, GUIs are almost always less capable than the command or commands that form the backend.</P
><P
>The shell, on the other hand, is an advanced way of communicating with the system, because it allows for two-way conversation and taking initiative. Both partners in the communication are equal, so new ideas can be tested. The shell allows the user to handle a system in a very flexible way. An additional asset is that the shell allows for task automation.</P
></DIV
><DIV
CLASS="sect4"
><H4
CLASS="sect4"
><A
NAME="AEN2308"
></A
>3.2.3.2.2. Shell types</H4
><P
>Just like people know different languages and dialects, the computer knows different shell types:</P
><P
></P
><UL
><LI
><P
><B
CLASS="command"
>sh</B
> or <SPAN
CLASS="application"
>Bourne Shell</SPAN
>: the original shell still used on UNIX systems and in UNIX related environments. This is the basic shell, a small program with few features. When in POSIX-compatible mode, <B
CLASS="command"
>bash</B
> will emulate this shell.</P
></LI
><LI
><P
><B
CLASS="command"
>bash</B
> or <SPAN
CLASS="application"
>Bourne Again SHell</SPAN
>: the standard GNU shell, intuitive and flexible. Probably most advisable for beginning users while being at the same time a powerful tool for the advanced and professional user. On Linux, <B
CLASS="command"
>bash</B
> is the standard shell for common users. This shell is a so-called <EM
>superset</EM
> of the <SPAN
CLASS="application"
>Bourne</SPAN
> shell, a set of add-ons and plug-ins. This means that the <SPAN
CLASS="application"
>Bourne Again SHell</SPAN
> is compatible with the <SPAN
CLASS="application"
>Bourne</SPAN
> shell: commands that work in <B
CLASS="command"
>sh</B
>, also work in <B
CLASS="command"
>bash</B
>. However, the reverse is not always the case. All examples and exercises in this book use <B
CLASS="command"
>bash</B
>.</P
></LI
><LI
><P
><B
CLASS="command"
>csh</B
> or <SPAN
CLASS="application"
>C Shell</SPAN
>: the syntax of this shell resembles that of the C programming language. Sometimes asked for by programmers.</P
></LI
><LI
><P
><B
CLASS="command"
>tcsh</B
> or <SPAN
CLASS="application"
>Turbo C Shell</SPAN
>: a superset of the common <SPAN
CLASS="application"
>C Shell</SPAN
>, enhancing user-friendliness and speed.</P
></LI
><LI
><P
><B
CLASS="command"
>ksh</B
> or the <SPAN
CLASS="application"
>Korn</SPAN
> shell: sometimes appreciated by people with a UNIX background. A superset of the <SPAN
CLASS="application"
>Bourne</SPAN
> shell; with standard configuration a nightmare for beginning users.</P
></LI
></UL
><P
>The file <TT
CLASS="filename"
>/etc/shells</TT
> gives an overview of known shells on a Linux system:</P
><TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="screen"
>&#13;<TT
CLASS="prompt"
>mia:~&#62;</TT
> <B
CLASS="command"
>cat /etc/shells</B
>
/bin/bash
/bin/sh
/bin/tcsh
/bin/csh
</PRE
></FONT
></TD
></TR
></TABLE
><DIV
CLASS="note"
><P
></P
><TABLE
CLASS="note"
WIDTH="100%"
BORDER="0"
><TR
><TD
WIDTH="25"
ALIGN="CENTER"
VALIGN="TOP"
><IMG
SRC="../images/note.gif"
HSPACE="5"
ALT="Note"></TD
><TH
ALIGN="LEFT"
VALIGN="CENTER"
><B
>Fake Bourne shell</B
></TH
></TR
><TR
><TD
>&nbsp;</TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
><P
>Note that <TT
CLASS="filename"
>/bin/sh</TT
> is usually a link to <SPAN
CLASS="application"
>Bash</SPAN
>, which will execute in <SPAN
CLASS="application"
>Bourne</SPAN
> shell compatible mode when called on this way.</P
></TD
></TR
></TABLE
></DIV
><P
>Your default shell is set in the <TT
CLASS="filename"
>/etc/passwd</TT
> file, like this line for user <EM
>mia</EM
>:</P
><TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="screen"
>&#13;mia:L2NOfqdlPrHwE:504:504:Mia Maya:/home/mia:/bin/bash
</PRE
></FONT
></TD
></TR
></TABLE
><P
>To switch from one shell to another, just enter the name of the new shell in the active terminal. The system finds the directory where the name occurs using the <TT
CLASS="varname"
>PATH</TT
> settings, and since a shell is an executable file (program), the current shell activates it and it gets executed. A new prompt is usually shown, because each shell has its typical appearance:</P
><TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="screen"
>&#13;<TT
CLASS="prompt"
>mia:~&#62;</TT
> <B
CLASS="command"
>tcsh</B
>
<TT
CLASS="prompt"
>[mia@post21 ~]$</TT
>
</PRE
></FONT
></TD
></TR
></TABLE
></DIV
><DIV
CLASS="sect4"
><H4
CLASS="sect4"
><A
NAME="AEN2394"
></A
>3.2.3.2.3. Which shell am I using?</H4
><P
>If you don't know which shell you are using, either check the line for your account in <TT
CLASS="filename"
>/etc/passwd</TT
> or type the command</P
><P
><B
CLASS="command"
>echo <TT
CLASS="varname"
>$SHELL</TT
></B
> </P
></DIV
></DIV
><DIV
CLASS="sect3"
><H3
CLASS="sect3"
><A
NAME="sect_03_02_03_03"
></A
>3.2.3.3. Your home directory</H3
><P
>Your home directory is your default destination when connecting to the system. In most cases it is a subdirectory of <TT
CLASS="filename"
>/home</TT
>, though this may vary. Your home directory may be located on the hard disk of a remote file server; in that case your home directory may be found in <TT
CLASS="filename"
>/nethome/your_user_name</TT
>. In another case the system administrator may have opted for a less comprehensible layout and your home directory may be on <TT
CLASS="filename"
>/disk6/HU/07/jgillard</TT
>.</P
><P
>Whatever the path to your home directory, you don't have to worry too much about it. The correct path to your home directory is stored in the <TT
CLASS="varname"
>HOME</TT
> environment variable, in case some program needs it. With the <B
CLASS="command"
>echo</B
> command you can display the content of this variable:</P
><TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="screen"
>&#13;<TT
CLASS="prompt"
>orlando:~&#62;</TT
> <B
CLASS="command"
>echo $HOME</B
>
/nethome/orlando
</PRE
></FONT
></TD
></TR
></TABLE
><P
>You can do whatever you like in your home directory. You can put as many files in as many directories as you want, although the total amount of data and files is naturally limited because of the hardware and size of the partitions, and sometimes because the system administrator has applied a quota system. Limiting disk usage was common practice when hard disk space was still expensive. Nowadays, limits are almost exclusively applied in large environments. You can see for yourself if a limit is set using the <B
CLASS="command"
>quota</B
> command:</P
><TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="screen"
>&#13;<TT
CLASS="prompt"
>pierre@lamaison:/&#62;</TT
> <B
CLASS="command"
>quota -v</B
>
Diskquotas for user pierre (uid 501): none
</PRE
></FONT
></TD
></TR
></TABLE
><P
>In case quotas have been set, you get a list of the limited partitions and their specific limitations. Exceeding the limits may be tolerated during a grace period with fewer or no restrictions at all. Detailed information can be found using the <B
CLASS="command"
>info <TT
CLASS="parameter"
><I
>quota</I
></TT
></B
> or <B
CLASS="command"
>man <TT
CLASS="parameter"
><I
>quota</I
></TT
></B
> commands.</P
><DIV
CLASS="note"
><P
></P
><TABLE
CLASS="note"
WIDTH="100%"
BORDER="0"
><TR
><TD
WIDTH="25"
ALIGN="CENTER"
VALIGN="TOP"
><IMG
SRC="../images/note.gif"
HSPACE="5"
ALT="Note"></TD
><TH
ALIGN="LEFT"
VALIGN="CENTER"
><B
>No Quota?</B
></TH
></TR
><TR
><TD
>&nbsp;</TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
><P
>If your system can not find the <B
CLASS="command"
>quota</B
>, then no limitation of file system usage is being applied.</P
></TD
></TR
></TABLE
></DIV
><P
>Your home directory is indicated by a tilde (~), shorthand for <TT
CLASS="filename"
>/path_to_home/user_name</TT
>. This same path is stored in the <TT
CLASS="varname"
>HOME</TT
> variable, so you don't have to do anything to activate it. A simple application: switch from <TT
CLASS="filename"
>/var/music/albums/arno/2001</TT
> to <TT
CLASS="filename"
>images</TT
> in your home directory using one elegant command:</P
><TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="screen"
>&#13;<TT
CLASS="prompt"
>rom:/var/music/albums/arno/2001&#62;</TT
> <B
CLASS="command"
>cd ~/images</B
>
<TT
CLASS="prompt"
>rom:~/images&#62;</TT
> <B
CLASS="command"
>pwd</B
>
/home/rom/images
</PRE
></FONT
></TD
></TR
></TABLE
><P
>Later in this chapter we will talk about the commands for managing files and directories in order to keep your home directory tidy.</P
></DIV
></DIV
><DIV
CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="sect_03_02_04"
></A
>3.2.4. The most important configuration files</H2
><P
>As we mentioned before, most configuration files are stored in the <TT
CLASS="filename"
>/etc</TT
> directory. Content can be viewed using the <B
CLASS="command"
>cat</B
> command, which sends text files to the standard output (usually your monitor). The syntax is straight forward:</P
><P
><B
CLASS="command"
>cat <TT
CLASS="filename"
>file1</TT
> <TT
CLASS="filename"
>file2</TT
> ... <TT
CLASS="filename"
>fileN</TT
></B
> </P
><P
>In this section we try to give an overview of the most common configuration files. This is certainly not a complete list. Adding extra packages may also add extra configuration files in <TT
CLASS="filename"
>/etc</TT
>. When reading the configuration files, you will find that they are usually quite well commented and self-explanatory. Some files also have man pages which contain extra documentation, such as <B
CLASS="command"
>man <TT
CLASS="parameter"
><I
>group</I
></TT
></B
>.</P
><DIV
CLASS="table"
><A
NAME="AEN2485"
></A
><P
><B
>Table 3-3. Most common configuration files</B
></P
><TABLE
BORDER="1"
CLASS="CALSTABLE"
><THEAD
><TR
><TH
ALIGN="LEFT"
VALIGN="MIDDLE"
>File</TH
><TH
ALIGN="LEFT"
VALIGN="MIDDLE"
>Information/service</TH
></TR
></THEAD
><TBODY
><TR
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
><TT
CLASS="filename"
>aliases</TT
>
</TD
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>Mail aliases file for use with the Sendmail and Postfix mail server. Running a mail server on each and every system has long been common use in the UNIX world, and almost every Linux distribution still comes with a Sendmail package. In this file local user names are matched with real names as they occur in E-mail addresses, or with other local addresses.
</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>&#13; <TT
CLASS="filename"
>apache</TT
>
</TD
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>Config files for the Apache web server.
</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>&#13; <TT
CLASS="filename"
>bashrc</TT
>
</TD
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>The system-wide configuration file for the Bourne Again SHell. Defines functions and aliases for all users. Other shells may have their own system-wide config files, like <TT
CLASS="filename"
>cshrc</TT
>.
</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>&#13; <TT
CLASS="filename"
>crontab</TT
> and the <TT
CLASS="filename"
>cron.*</TT
> directories
</TD
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>Configuration of tasks that need to be executed periodically - backups, updates of the system databases, cleaning of the system, rotating logs etc.
</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>&#13; <TT
CLASS="filename"
>default</TT
>
</TD
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>Default options for certain commands, such as <B
CLASS="command"
>useradd</B
>.
</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>&#13; <TT
CLASS="filename"
>filesystems</TT
>
</TD
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>Known file systems: ext3, vfat, iso9660 etc.
</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>&#13; <TT
CLASS="filename"
>fstab</TT
>
</TD
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>Lists partitions and their <EM
>mount points</EM
>.
</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>&#13; <TT
CLASS="filename"
>ftp*</TT
>
</TD
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>Configuration of the ftp-server: who can connect, what parts of the system are accessible etc.
</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>&#13; <TT
CLASS="filename"
>group</TT
>
</TD
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>Configuration file for user groups. Use the shadow utilities <B
CLASS="command"
>groupadd</B
>, <B
CLASS="command"
>groupmod</B
> and <B
CLASS="command"
>groupdel</B
> to edit this file. Edit manually only if you really know what you are doing.
</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>&#13; <TT
CLASS="filename"
>hosts</TT
>
</TD
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>A list of machines that can be contacted using the network, but without the need for a domain name service. This has nothing to do with the system's network configuration, which is done in <TT
CLASS="filename"
>/etc/sysconfig</TT
>.
</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>&#13; <TT
CLASS="filename"
>inittab</TT
>
</TD
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>Information for booting: mode, number of text consoles etc.
</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>&#13; <TT
CLASS="filename"
>issue</TT
>
</TD
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>Information about the distribution (release version and/or kernel info).
</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>&#13; <TT
CLASS="filename"
>ld.so.conf</TT
>
</TD
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>Locations of library files.
</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>&#13; <TT
CLASS="filename"
>lilo.conf</TT
>, <TT
CLASS="filename"
>silo.conf</TT
>, <TT
CLASS="filename"
>aboot.conf</TT
> etc.
</TD
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>Boot information for the LInux LOader, the system for booting that is now gradually being replaced with GRUB.
</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>&#13; <TT
CLASS="filename"
>logrotate.*</TT
>
</TD
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>Rotation of the logs, a system preventing the collection of huge amounts of log files.
</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>&#13; <TT
CLASS="filename"
>mail</TT
>
</TD
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>Directory containing instructions for the behavior of the mail server.</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>&#13; <TT
CLASS="filename"
>modules.conf</TT
>
</TD
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>Configuration of modules that enable special features (drivers).
</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>&#13; <TT
CLASS="filename"
>motd</TT
>
</TD
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>Message Of The Day: Shown to everyone who connects to the system (in text mode), may be used by the system admin to announce system services/maintenance etc.
</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>&#13; <TT
CLASS="filename"
>mtab</TT
>
</TD
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>Currently mounted file systems. It is advised to never edit this file.
</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>&#13; <TT
CLASS="filename"
>nsswitch.conf</TT
>
</TD
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>Order in which to contact the name resolvers when a process demands resolving of a host name.
</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>&#13; <TT
CLASS="filename"
>pam.d</TT
>
</TD
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>Configuration of authentication modules.
</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>&#13; <TT
CLASS="filename"
>passwd</TT
>
</TD
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>Lists local users. Use the shadow utilities <B
CLASS="command"
>useradd</B
>, <B
CLASS="command"
>usermod</B
> and <B
CLASS="command"
>userdel</B
> to edit this file. Edit manually only when you really know what you are doing.
</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>&#13; <TT
CLASS="filename"
>printcap</TT
>
</TD
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>Outdated but still frequently used printer configuration file. Don't edit this manually unless you really know what you are doing.
</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>&#13; <TT
CLASS="filename"
>profile</TT
>
</TD
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>System wide configuration of the shell environment: variables, default properties of new files, limitation of resources etc.
</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>&#13; <TT
CLASS="filename"
>rc*</TT
>
</TD
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>Directories defining active services for each run level.
</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>&#13; <TT
CLASS="filename"
>resolv.conf</TT
>
</TD
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>Order in which to contact DNS servers (Domain Name Servers only).
</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>&#13; <TT
CLASS="filename"
>sendmail.cf</TT
>
</TD
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>Main config file for the Sendmail server.
</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>&#13; <TT
CLASS="filename"
>services</TT
>
</TD
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>Connections accepted by this machine (open ports).
</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>&#13; <TT
CLASS="filename"
>sndconfig</TT
> or <TT
CLASS="filename"
>sound</TT
>
</TD
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>Configuration of the sound card and sound events.
</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>&#13; <TT
CLASS="filename"
>ssh</TT
>
</TD
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>Directory containing the config files for secure shell client and server.
</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>&#13; <TT
CLASS="filename"
>sysconfig</TT
>
</TD
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>Directory containing the system configuration files: mouse, keyboard, network, desktop, system clock, power management etc. (specific to RedHat)
</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>&#13; <TT
CLASS="filename"
>X11</TT
>
</TD
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>Settings for the graphical server, X. RedHat uses XFree, which is reflected in the name of the main configuration file, XFree86Config. Also contains the general directions for the window managers available on the system, for example <B
CLASS="command"
>gdm</B
>, <B
CLASS="command"
>fvwm</B
>, <B
CLASS="command"
>twm</B
>, etc.
</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>&#13; <TT
CLASS="filename"
>xinetd.*</TT
> or <TT
CLASS="filename"
>inetd.conf</TT
>
</TD
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>Configuration files for Internet services that are run from the system's (extended) Internet services daemon (servers that don't run an independent daemon).</TD
></TR
></TBODY
></TABLE
></DIV
><P
>Throughout this guide we will learn more about these files and study some of them in detail.</P
></DIV
><DIV
CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="sect_03_02_05"
></A
>3.2.5. The most common devices</H2
><P
>Devices, generally every peripheral attachment of a PC that is not the CPU itself, is presented to the system as an entry in the <TT
CLASS="filename"
>/dev</TT
> directory. One of the advantages of this UNIX-way of handling devices is that neither the user nor the system has to worry much about the specification of devices.</P
><P
>Users that are new to Linux or UNIX in general are often overwhelmed by the amount of new names and concepts they have to learn. That is why a list of common devices is included in this introduction.</P
><DIV
CLASS="table"
><A
NAME="AEN2726"
></A
><P
><B
>Table 3-4. Common devices</B
></P
><TABLE
BORDER="1"
CLASS="CALSTABLE"
><THEAD
><TR
><TH
ALIGN="LEFT"
VALIGN="MIDDLE"
>Name</TH
><TH
ALIGN="LEFT"
VALIGN="MIDDLE"
>Device</TH
></TR
></THEAD
><TBODY
><TR
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
><TT
CLASS="filename"
>cdrom</TT
></TD
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>CD drive</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
><TT
CLASS="filename"
>console</TT
></TD
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>Special entry for the currently used console.</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
><TT
CLASS="filename"
>cua*</TT
></TD
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>Serial ports</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
><TT
CLASS="filename"
>dsp*</TT
></TD
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>Devices for sampling and recording</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
><TT
CLASS="filename"
>fd*</TT
></TD
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>Entries for most kinds of floppy drives, the default is <TT
CLASS="filename"
>/dev/fd0</TT
>, a floppy drive for 1.44 MB floppies.</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
><TT
CLASS="filename"
>hd[a-t][1-16]</TT
></TD
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>Standard support for IDE drives with maximum amount of partitions each.</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
><TT
CLASS="filename"
>ir*</TT
></TD
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>Infrared devices</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
><TT
CLASS="filename"
>isdn*</TT
></TD
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>Management of ISDN connections</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
><TT
CLASS="filename"
>js*</TT
></TD
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>Joystick(s)</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
><TT
CLASS="filename"
>lp*</TT
></TD
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>Printers</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
><TT
CLASS="filename"
>mem</TT
></TD
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>Memory</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
><TT
CLASS="filename"
>midi*</TT
></TD
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>midi player</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
><TT
CLASS="filename"
>mixer*</TT
> and <TT
CLASS="filename"
>music</TT
></TD
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>Idealized model of a mixer (combines or adds signals)</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
><TT
CLASS="filename"
>modem</TT
></TD
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>Modem</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
><TT
CLASS="filename"
>mouse</TT
> (also msmouse, logimouse, psmouse, input/mice, psaux)</TD
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>All kinds of mouses</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
><TT
CLASS="filename"
>null</TT
></TD
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>Bottomless garbage can</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
><TT
CLASS="filename"
>par*</TT
></TD
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>Entries for parallel port support</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
><TT
CLASS="filename"
>pty*</TT
></TD
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>Pseudo terminals</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
><TT
CLASS="filename"
>radio*</TT
></TD
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>For Radio Amateurs (HAMs).</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
><TT
CLASS="filename"
>ram*</TT
></TD
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>boot device</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
><TT
CLASS="filename"
>sd*</TT
></TD
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>SCSI disks with their partitions</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
><TT
CLASS="filename"
>sequencer</TT
></TD
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>For audio applications using the synthesizer features of the sound card (MIDI-device controller)</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
><TT
CLASS="filename"
>tty*</TT
></TD
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>Virtual consoles simulating vt100 terminals.</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
><TT
CLASS="filename"
>usb*</TT
></TD
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>USB card and scanner</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
><TT
CLASS="filename"
>video*</TT
></TD
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>For use with a graphics card supporting video.</TD
></TR
></TBODY
></TABLE
></DIV
></DIV
><DIV
CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="sect_03_02_06"
></A
>3.2.6. The most common variable files</H2
><P
>In the <TT
CLASS="filename"
>/var</TT
> directory we find a set of directories for storing specific non-constant data (as opposed to the ls program or the system configuration files, which change relatively infrequently or never at all). All files that change frequently, such as log files, mailboxes, lock files, spoolers etc. are kept in a subdirectory of <TT
CLASS="filename"
>/var</TT
>.</P
><P
>As a security measure these files are usually kept in separate parts from the main system files, so we can keep a close eye on them and set stricter permissions where necessary. A lot of these files also need more permissions than usual, like <TT
CLASS="filename"
>/var/tmp</TT
>, which needs to be writable for everyone. A lot of user activity might be expected here, which might even be generated by anonymous Internet users connected to your system. This is one reason why the <TT
CLASS="filename"
>/var</TT
> directory, including all its subdirectories, is usually on a separate partition. This way, there is for instance no risk that a mail bomb, for instance, fills up the rest of the file system, containing more important data such as your programs and configuration files.</P
><DIV
CLASS="note"
><P
></P
><TABLE
CLASS="note"
WIDTH="100%"
BORDER="0"
><TR
><TD
WIDTH="25"
ALIGN="CENTER"
VALIGN="TOP"
><IMG
SRC="../images/note.gif"
HSPACE="5"
ALT="Note"></TD
><TH
ALIGN="LEFT"
VALIGN="CENTER"
><B
>/var/tmp and /tmp</B
></TH
></TR
><TR
><TD
>&nbsp;</TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
><P
>Files in <TT
CLASS="filename"
>/tmp</TT
> can be deleted without notice, by regular system tasks or because of a system reboot. On some (customized) systems, also <TT
CLASS="filename"
>/var/tmp</TT
> might behave unpredictably. Nevertheless, since this is not the case by default, we advise to use the <TT
CLASS="filename"
>/var/tmp</TT
> directory for saving temporary files. When in doubt, check with your system administrator. If you manage your own system, you can be reasonably sure that this is a safe place if you did not consciously change settings on <TT
CLASS="filename"
>/var/tmp</TT
> (as root, a normal user can not do this).</P
><P
>Whatever you do, try to stick to the privileges granted to a normal user - don't go saving files directly under the root (/) of the file system, don't put them in <TT
CLASS="filename"
>/usr</TT
> or some subdirectory or in another reserved place. This pretty much limits your access to safe file systems.</P
></TD
></TR
></TABLE
></DIV
><P
>One of the main security systems on a UNIX system, which is naturally implemented on every Linux machine as well, is the log-keeping facility, which logs all user actions, processes, system events etc. The configuration file of the so-called <EM
>syslogdaemon</EM
> determines which and how long logged information will be kept. The default location of all logs is <TT
CLASS="filename"
>/var/log</TT
>, containing different files for access log, server logs, system messages etc.</P
><P
>In <TT
CLASS="filename"
>/var</TT
> we typically find server data, which is kept here to separate it from critical data such as the server program itself and its configuration files. A typical example on Linux systems is <TT
CLASS="filename"
>/var/www</TT
>, which contains the actual HTML pages, scripts and images that a web server offers. The FTP-tree of an FTP server (data that can be downloaded by a remote client) is also best kept in one of <TT
CLASS="filename"
>/var</TT
>'s subdirectories. Because this data is publicly accessible and often changeable by anonymous users, it is safer to keep it here, away from partitions or directories with sensitive data.</P
><P
>On most workstation installations, <TT
CLASS="filename"
>/var/spool</TT
> will at least contain an <TT
CLASS="filename"
>at</TT
> and a <TT
CLASS="filename"
>cron</TT
> directory, containing scheduled tasks. In office environments this directory usually contains <TT
CLASS="filename"
>lpd</TT
> as well, which holds the print queue(s) and further printer configuration files, as well as the printer log files.</P
><P
>On server systems we will generally find <TT
CLASS="filename"
>/var/spool/mail</TT
>, containing incoming mails for local users, sorted in one file per user, the user's <SPAN
CLASS="QUOTE"
>"inbox"</SPAN
>. A related directory is <TT
CLASS="filename"
>mqueue</TT
>, the spooler area for unsent mail messages. These parts of the system can be very busy on mail servers with a lot of users. News servers also use the <TT
CLASS="filename"
>/var/spool</TT
> area because of the enormous amounts of messages they have to process.</P
><P
>The <TT
CLASS="filename"
>/var/lib/rpm</TT
> directory is specific to RPM-based (RedHat Package Manager) distributions; it is where RPM package information is stored. Other package managers generally also store their data somewhere in <TT
CLASS="filename"
>/var</TT
>.</P
></DIV
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="sect_03_01.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
ACCESSKEY="H"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="sect_03_03.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>General overview of the Linux file system</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="chap_03.html"
ACCESSKEY="U"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Manipulating files</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>