MandrakeUser.Org - Your Mandrake-Linux Knowledge Base!


 
 

* DocIndex - Basics

File System Hierarchy IV

* /usr

Related Resources:

File system Hierarchy Standard (FHS)
Mdk Reference, II.6

Revision / Modified: April 20, 2002
Author: Tom Berger

 

* /usr

"In the original Unix implementations, /usr was where the home directories of the users were placed (that is to say, /usr/someone was then the directory now known as /home/someone ).[...] In current Unices, /usr is where user-land programs and data (as opposed to 'system land' programs and data) hang out. The name hasn't changed, but it's meaning has narrowed and lengthened from "everything user related" to "user usable programs and data"."
(Lew Pitcher on /.)

The '/usr' directory contains the vast majority of files on every Linux box. All the programs go there, their documentation, their libraries, their header files etc.
At a first glance, the listing of this directory is really frightening. It is very easy to get lost in here.

/usr/X11R6

Another large subdirectory-structure begins here, containing libraries, executables, docs, fonts and much more concerning the X Window System.
Its inclusion here is somewhat inconsistent and so is the difference between '/usr' and '/usr/X11R6' directories. One would assume that programs that run on X only have their files in the '/usr/X11R6' hierarchy, while the others use '/usr'. Regrettably, it isn't so. KDE and GNOME put their files in the '/usr' hierarchy, whereas the window manager Window Maker uses '/usr/X11R6'.
Documentation files for X11R6 are not in '/usr/X11R6/doc', but primarily in '/usr/X11R6/lib/X11/doc' (one might not have guessed that, hum? ;-)).
This mess is due to the fact that in contrast to other operating systems, the graphical desktop isn't an integral part of the system. Linux is still primarily used on servers, where graphical systems don't make sense.

/usr/bin

This directory contains the vast majority of binaries (executables) on your system.

/usr/doc

In older releases, this was the central documentation directory. Current releases use '/usr/share/doc'.

/usr/etc

Theoretically, that's another directory for configuration files. Practically, I've yet to see a reason to use it.

/usr/games

Once upon a time, this directory contained network games files. It's rarely used nowadays.

/usr/i586-mandrake-linux/

Used to store some compiler related files.

/usr/include

The directory for 'header files', needed for compiling source code.

/usr/info

In older releases, this directory contained the files of the info documentation system. Now they are in '/usr/share/info'.

/usr/lib

This directory contains program libraries. Libraries are collections of frequently used program routines.

/usr/libexec

I would lie if I'd say I'd know what this directory is good for.

/usr/local

The original idea behind '/usr/local' was to have a separate ('local') '/usr' directory on every machine besides '/usr', which might be just mounted read-only from somewhere else. It copies the structure of '/usr'. These days, '/usr/local' is widely regarded as a good place to keep self-compiled or third-party programs in.

/usr/man

In older releases, this directory contained the man pages. Has been moved to '/usr/share/man'.

/usr/sbin

This directory contains programs for administering a system, meant to be run by 'root'. Like '/sbin', it's not part of a user's $PATH.

/usr/share

This directory contains 'shareable', architecture-independent files (docs, icons, fonts etc).

"Note, however, that '/usr/share' is generally not intended to be shared by different operating systems or by different releases of the same operating system.
Any program or package which contains or requires data that doesn't need to be modified should store that data in '/usr/share' (or '/usr/local/share', if installed locally). It is recommended that a subdirectory be used in /usr/share for this purpose."

(From the File system Hierarchy Standard)
/usr/src

The 'linux' sub-directory holds the Linux kernel sources, header-files and documentation. 'RPM/' provides a substructure for building RPMs from SRPMs.

/usr/tmp

Hey, look, another directory for temporary files! ;-) It's just a link to 'var/tmp/', though.

Well, I hope this was exhaustive enough for you. It sure was for me ;-).

* section index * top


 
Legal: All texts on this site are covered by the GNU Free Documentation License. Standard disclaimers of warranty apply. Copyright LSTB (Tom Berger) and Mandrakesoft 1999-2002.