====== Dateisystemaufbau ======
Unter Linux haben viele Verzeichnisse (dank der UNIX-Historie und dem [[http://proton.pathname.com/fhs/|Filesystem Hierarchy Standard]]) eine fest definierte Funktion. Das erleichert die Orientierung und Distributoren/Softwareentwickler können standardkonforme Pakete erstellen.
===== Links =====
* [[http://www.faqs.org/docs/linux_intro/sect_03_01.html|General overview of the Linux file system]]
* [[http://www.builderau.com.au/news/soa/10-things-you-should-know-about-every-Linux-installation/0,339028227,339219801,00.htm|10 things you should know about every Linux installation]]
===== Grundlegende Verzeichnisse =====
Wenn "tree" installiert ist, kann man sich eine Übersicht im Textmodus anzeigen lassen tree / -L 1
^ [[wpde>Mountpoint]] ^ Ablageort für ... ^
| **/bin** | enthält Programme welche beim booten benötigt werden (systemweite programme). |
| **/boot** | Verzeichnis welches die (den) Linuxkernel enthalten, werden beim booten gestartet. Außerdem liegen hier die Konfigurationsdateien des Bootmanagers [[linux:bootmanager und bootprozess|Grub]] im Verzeichnis ''/boot/grub''. |
| **/dev** | Enthält Gerätedateien (Gerätenummern und Zuordnungen (z.B. /dev/hda1 usw.). Das dev-verzeichnis wird bei jedem Start durch udev in einem eigenen Dateisystem neu erstellt. |
| **/etc** | Enthält **Konfigurationsdateien**. Diese Konfigurationsdateien gelten Systemweit. Benutzerspezifische Konfigurationsdateien befinden sich im Heimatverzeichnis des jeweiligen Benutzers. |
| **/home** | Enthält die **Heimatverzeichnisse** der Benutzer. |
| **/initrd** | [[wpde>initrd]] ist ein temporäres Dateisystem, das vom [[linux:Linux]]-[[linux:Kernel]] während des Bootvorgangs verwendet wird. |
| **/lib** | enthält Systembibliotheken welche von Programmen in /bin oder /sbin benötigt werden. Außerdem auch Kernelmodule. |
| **/lost+found** | hier werden nach Dateisystemchecks (gefundene) verlorene Zuordnungseinheiten gespeichert. |
| **/media** bzw. manchmal **/mnt**, letzteres ist für temporäre mount gedacht) | Diese beiden Verzeichnisse enthalten [[wpde>Mountpoint|Mountpoints]] für zusätzliche Datenträger, wie etwa CD-Rom oder USB-Sticks. Das ältere Verzeichnis ''/mnt'' wird dabei auf den meisten Distributionen durch die Alternative /media verdrängt. Bei den meisten Distributionen werden hier **externe Datenträger** eingehangen. |
| **/opt** | In diesem Verzeichnis ist optionale Anwendungssoftware enthalten. Meist handelt es sich um größere Programmpakete, wie z. B. OpenOffice.org oder KDE. //Nicht alle Distributionen verwenden dieses Verzeichnis.// |
| **/proc** und **/sys** | Die darin enthaltenen Dateien existieren nicht wirklich auf der Festplatte, sondern werden beim booten mit Dateien gefüllt, die Informationen über Prozesse, angeschlossene Hardware und Kerneleinstellungen wie Stromsparmechanismen liefern. Zum /proc-Dateisystem siehe unten. |
| **/root** | Ist das Heimatverzeichnis des Benutzers root. |
| **/sbin** | enthält Programme welche beim booten benötigt werden, aber nur solche, welche nur von root benutzt werden können. |
| /srv | Verzeichnis für Daten der Serverdienste (nicht überall vorhanden) |
| **/tmp** | Ordner für temporäre Dateien, ist für alle Benutzer des Systems schreibbar. Dennoch kann jeder Benutzer nur seine Dateien löschen, da das "[[wpde>Sticky Bit]]" gesetzt ist. |
| **/usr** | Enthält die Mehrzahl der Anwendungsprogramme, inklusive ihrer Manpages und Dokumentation. Dieses Unterverzeichnis besitzt selber Unterverzeichnisse wie /usr/bin, /usr/sbin, /usr/lib, welche den obigen /bin, /sbin und /lib-Verzeichnissen entsprechen. Zusätzlich auch noch /usr/share, welches zusätzliche Dateien zu Programmen enthält (beispielsweise Übersetzungsdateien oder grafische Icons), sowie /usr/local, in welchen standardmäßig selbstkompilierte Programme landen. |
| **/var** | Variable Daten, wie z. B. Mailspool oder Druckerspooldateien oder die Logdateien. **Logdateien liegen in /var/log**. Auch manche Serverdienste legen ihre Datendateien hier ab (z. B. Datenbankdateien oder Emails eines Mailservers).|
Der Standardsuchpfad (Variable PATH) enthält meist die Verzeichnisse
''/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin'' (Trennung durch Doppeltpunkt).
^ Dateien (bzw. symbolische Links) im Wurzelverzeichnis "/" ^^^
^ Name ^ symbolischer Link auf ^ Zweck ^
| initrd.img | -> /boot/initrd.img-2.6.20-16-generic | enthält die ("initial ramdisk", siehe [[wpde>initrd]]) also Treiber etc. die zum booten gebraucht werden. |
| initrd.img.old | -> /boot/initrd.img-2.6.20-16-generic | Hier wird die alte "initial ramdisk" mit vmlinuz.old referenziert, um ihn bei Problemen mit dem neuen [[linux:Kernel]] zu nutzen. |
| vmlinuz | -> /boot/vmlinuz-2.6.20-16-generic | Verweis auf das aktuelle [[linux:Kernel|Kernelimage]] |
| vmlinuz.old | -> /boot/vmlinuz-2.6.20-16-generic | Hier wird der alte [[linux:Kernel]] mit vmlinuz.old referenziert, um ihn bei Problemen mit dem neuen [[linux:Kernel]] zu nutzen. |
===== /boot =====
In boot werden die Dateien des Bootmanagers installiert, ebenso wie die initrd (falls benutzt) und das (die) [[linux:Kernel]]-Image(s).
===== /proc =====
Das virtuelle Proc-Dateisystem hat eine spezielle Aufgabe: Es stellt Einstellungen und Informationen über das System bereit die zur Laufzeit verändert bzw. angezeigt werden können.
Eine Liste von Einstellungen gibt der Befehl "''sysctl -a''", einzelne Parameter lassen sich zur Laufzeit mit "''sysctl -w Einstellung''" und permanent in in ''/etc/sysctl.conf'' setzen.
Siehe auch [[http://linux.die.net/man/5/proc|proc(5) - Linux man page]] und [[http://www.linuxfocus.org/Deutsch/January2004/article324.shtml|Das Proc File System verstehen]].
^ proc-Pfad ^ enthält/bewirkt was? ^ Wert dauerhaft in ''/etc/sysctl.conf'' setzen ^
| echo 1 > /proc/sys/net/ipv4/ip_forward | IP-Routing einschalten (bzw.''echo 1 >/proc/sys/net/ipv6/conf/all/forwarding'' bei [[netzwerke:IPv6]]) | ''net.ipv4.ip_forward=1'' bzw. bei IPv6: ''net.ipv6.conf.all.forwarding=1'' |
| cat /proc/6410/sched | Beispiel: Informationen zum Prozess 6410 (scheduling) | |
| ''cat /proc/cpuinfo'' oder ''lscpu'' | Informationen zu Prozessor (CPU)| |
| /proc/ioports | Informationen zur I/O-Adressen | |
| cat /proc/meminfo | Informationen zur Speicherbelegung | |
| cat /proc/mounts /proc/partitions | Informationen über gemountete Datenträger und Partitionen anzeigen |
| cat /proc/scsi/scsi | zeigt die aktiven SCSI-Geräte an. Damit kann man auch neue per hotplug entfernen oder hinzufügen: echo "scsi scan-new-devices" > /proc/scsi/scsi
Siehe auch: [[http://dlhp.berlios.de/HOWTO/DE-SCSI-Programmierung-HOWTO-3.html|SCSI-Programmierung]] |
| cat /proc/sys/kernel/random/uuid | eine zufällige [[UUID]] wird angezeigt.| |
| cat /proc/sys/vm/swappiness | Beeinflusst das Verhalten Programmteile im Arbeitsspeicher auf Festplatte auszulagern gegenüber möglichst viel Cache anzulegen. Wertebereich ist von 0 (nicht auslagern sondern erst alten Cache zu löschen) bis 100 (viel auslagern, möglichst viel Cache anlegen). Standardwert ist 60, Server deren Antwortzeit kritisch sind (Datenbankserver, ...) sollten eher unter 50 gehen, Desktop sind über 50 durchaus gut bedient. | vm.swappiness=30 |
===== /usr =====
^ Verzeichnis ^ Bedeutung ^
| /usr/bin | von allen Benutzern ausführbare Dateien |
| /usr/lib | Bibliotheken, die für die Ausführung zusätzlich installierter Pakete notwendig sind |
| /usr/sbin |ausführbare Dateien für den Superuser |
| /usr/share |Gemeinsame Dateien installierter Pakete |
| /usr/local/... | Dateien manuell eingerichteter Programmpakete (bin), Bibliotheken (lib), für den Superuser (sbin) und gemeinsame Dateien (share)|
===== /var =====
FIXME
^ Verzeichnis ^ Bedeutung ^
| /var/lib |variable Dateien diverser auf dem Server laufender Applikationen|
| /var/lib/mysql |Hier finden sich die von [[datenbanken:MySQL]] verwalteten [[datenbanken:Datenbanken]] in jeweils eigenen Unterverzeichnissen.|
| /var/lib/named |beinhaltet die Informationen von [[server:Bind]] ([[netzwerke:DNS]]-Server)|
| /var/log |globales Verzeichnis für allgemeine Protokolldateien|
| /var/spool/cron/crontabs | crontabs der Benutzer (''crontab -l'') |