Während die anderen Verzeichnisse der ersten Hierarchie für den normalenÄnwender wenig Interessantes zu bieten haben, eröffnet sich im /usr Verzeichnis die ganze Welt der Linux-Anwendungen. Hier ist der X11-Server ebenso zu finden wie das TeX Satzsystem, der GNU C-Compiler, der emacs Editor oder das News&Mail System.
Alle Programme des /usr Systems sind für alle Rechner eines lokalen Netzes gleichermaßen interessant und/oder wichtig. Deshalb wird mit dem File-System-Standard festgelegt, daß die Daten im /usr Ast des Dateisystems über ein lokales Netz verteilt benutzbar sein sollen. Eine wichtige Voraussetzung dafür ist, daß dieser Ast ''Read-Only'' gemountet werden kann.
Um das zu erreichen, wird ein weiterer Ast des Dateisystems mit dem Namen /var eingeführt, der die variablen Teile des /usr Systems aufnimmt.
Ein beispielhaftes Listing des /usr-Verzeichnisses zeigt die folgenden Unterverzeichnisse:
$ ls -F /usr X11R6/ dict/ games/ lib/ preserve@ spool@ adm@ doc/ include/ local/ sbin/ src/ bin/ etc/ info/ man/ share/ tmp@ $ _
Die Einträge adm, preserve, spool und tmp sind symbolische Links auf entsprechene Verzeichnisse unter /var.
In den Unterverzeichnissen von /usr/X11R6 befindet sich das X Window System -- die grafische Benutzeroberfläche von Linux.
In diesem Verzeichnis befinden sich fast alle Benutzerkommandos der Linux-Distribution.
Dieses Verzeichnis ist für die Wörterbücher (dictionaries) der ispell Rechtschreibkorrektur vorgesehen.
Der File-System-Standard sieht dieses Verzeichnis für verschiedene Dokumentationen von allgemeinem Interesse vor.
Alle Konfigurationsdateien zu einer Linux-Distribution, die nicht zu Programmen im Rootfilesystem gehören und nicht rechnerspezifisch sind, gehören in das Verzeichnis /usr/etc. Beispielsweise die magic Datenbank für das file-Kommando, die Musterdateien für die Benutzerverwaltung und die Konfigurationsdatei für den syslogd gehören hierher.
Would you like to play a game? ttt
Funny, the only way to win is not to play at all.
Das Verzeichnis /usr/include mit seinen Unterverzeichnissen enthält ausschließlich `header' Dateien, die vom C-Präprozessor bearbeitet werden.
Das Verzeichnis /usr/include/linux sollte ein symbolischer Link auf das Verzeichnis /usr/src/linux/include/linux sein; /usr/include/asm sollte in gleicher Weise auf das Verzeichnis /usr/src/linux/include/asm zeigen.
Um eine deutliche Trennung zwischen der originalen Distribution und den lokalen Erweiterungen zu erreichen, gibt es hinter dem Verzeichnis /usr/local eine Hierarchie von Verzeichnissen, die im Prinzip der von /usr entspricht. Der File-System-Standard legt fest, daß keine Linux-Distribution Daten in diesem Zweig des Verzeichnisbaums anlegen darf.
In diesem Verzeichnis sind die Textdateien des TeX info Dokumentationssystems untergebracht.
Das Verzeichnis /usr/lib beherbergt traditionell den C-Compiler und die C-Funktionsbibliotheken, sowie unveränderliche, nichtausführbare Arbeitsdaten zu verschiedenen Programmpaketen.
Hier sind die Hilfstexte zu allen Kommandos, Dateiformaten, Spielen, C-Bibliotheksfunktionen etc., die sogenannten Manuapages untergebracht.
Um landessprachliche Hilfstexte für alle Nationalitäten gleichberechtigt zu unterstützen, sieht der File-System-Standard eine Aufteilung von /usr/man in sprachspezifische Unterverzeichisse vor.
Die zu den meisten Programmen gehörenden englischen Manualpages gehören nach /usr/man/en, die bereits existierenden oder noch entstehenden deutschen Hilfstexte werden im Verzeichnis /usr/man/de_DE.88591 untergebracht.
Die sprachspezifischen Verzeichnisse werden in der traditionellen Weise weiter unterteilt. Es sind zwei Gruppen von Unterverzeichnissen möglich. Die Namen der ersten und in jedem Fall erforderlichen Gruppe beginnen mit manünd enthalten die ''rohen'' Manualpages. Diese unformatierten Hilfstexte werden von dem Programm man automatisch für die Anzeige auf dem Textbildschirm formatiert und durch einen Pager ausgegeben. Die rohen Manualpages können aber auch durch groff für andere Ausgabegeräte, beispielsweise einen Postscriptdrucker oder ein X Fenster formatiert werden.
Die Namen der anderen Gruppe beginnen mit catünd enthalten die Manpages bereits für den Textbildschirm formatiert. Die dort abgelegten Dateien können mit compress oder gzip komprimiert sein. Das man-Kommando dekomprimiert den Inhalt automatisch vor der Ausgabe.
Die Verzeichnisse jeder Gruppe sind numeriert. Die Numerierung entspricht den in der Erklärung vom man-Kommando beschriebenen Aufteilung der Manpages.
Zusammen mit dem Verzeichnis /sbin nimmt /usr/sbin die ausführbaren Dateien aus /etc und /usr/etc auf, deren Ausführung allein der Superuserin vorbehalten ist. Der im File-System-Standard festgelegten Trennung zwischen Rootfilesystem und verteiltem Benutzersystem entsprechend, werden in /usr/sbin alle Programmdateien der oben beschriebenen Art untergebracht, die nicht zu essentiellen Systemverwaltungsaufgaben notwendig sind.
Beispielsweise alle Programme zur Benutzerverwaltung aus dem Shadow-Paßwortsystem gehören hier her. Das folgende Listing zeigt beispielhaft den Inhalt von /usr/sbin:
$ ls /usr/sbin clock iflink level-1 pwck showkey crond in.bootpd logger ramsize stopalop ctrlaltdel in.ftpd lpc rdev sulogin dip in.nntpd lpd readlog swapdev dirdump in.ntalkd lptest rootflags syslogd dmesg in.popd makehole routed tcpd doshell in.rlogind miscd rpc.bwnfsd tune2fs dpasswd in.rshd mklost+found rpc.mountd updatedb dumpkeys in.telnetd mktable rpc.nfsd useradd fdformat in.tftpd named rpc.pcnfsd userdel fdisk inetd named-xfer rpc.portmap usermod fixperms ipcrm named.reload rpc.ugidd vidmode frag ipcs named.restart rwhod wdsetup groupadd kbdrate newusers selection groupdel kd pac sendlog groupmod ldconfig pkg setfdprm grpck level-0 psupdate setserial
Die Funktion des Verzeichnisses /usr/share besteht in der Zusammenfassung architekturunabhängiger Daten in verteilten Systemen mit unterschiedlichen Rechnerarchitekturen.
Dieser Zweig des Dateisystems ist für die Aufnahme der Quelltexte (Sourcen) für alle Programme des Standardsystems vorgesehen.
Eine sinnvolle Unterteilung in Unterverzeichnisse bleibt der Systemverwalterin überlassen. Allein das Verzeichnis /usr/src/linux mit den Kernelsourcen wird von anderen Systemkomponenten genau an dieser Stelle erwartet. Besonders wichtig sind die symbolischen Links der Verzeichnisse /usr/include/linux und /usr/include/asm auf die entsprechenden Verzeichnisse in /usr/src/linux/include.
Das Verzeichnis /usr/spool wird aus Gründen der Abwärtskompatibilität als symbolischer Link auf das neue Verzeichnis /var/spool weitergeführt.