PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Was gibt den für ein System hinter dem Verzeichnissbaum?



Seiten : [1] 2

hermann_77
03.03.03, 21:47
Hallo Leute
Ich habe da mal eine algemeine frage zum Verzeichnisbaum von Linux. Ganz speziell zu denen in den die Programme drin sind. Unter Windows läuft das so das man oben ein "Programme" Verzeichniss hat und dan jeweil ein Verzeichniss mit allen Programrelevanten Dateien. Das werden die meisten kenn. Dieses System ist einfach durchschaubar. Bei Linux (ich habe hier eine Suse 8.1) gibt es /bin, /sbin, /usr/bin, /usr/sbin, /us/local/bin, /usr/local/sbin, und so weiter. Wo steckt den da das system dahinter. Bringst das irgentwelche vorteile? Ich will hier nicht Flamen, sondern bin nur neugierig. Ich habe noch nicht verstanden wieso das so ist.

viele grüsse,
Hermann

sepp2k
03.03.03, 21:52
in /bin sind die wichtigen Programme für den User (mit wichtig meine ich zB die shells. also die Programme die zum Funktionieren des Systems wichtig sind)
in /sbin sind die wichtigen Programme für den Admin
in /usr/bin sind die nicht so wichtigen Programme fpr den User
in /usr/sbin sind die nicht so wichtigen Programme für den Admin
/usr/local/bin und /usr/local/sbin sind bei mir leer :confused:

hermann_77
03.03.03, 21:56
Was ist da nun der vorteil? Das könnte doch alles zentral liegen. Die Verzeichnisse werden doch eh mit benutzerrechten belegt.

Komet
03.03.03, 21:58
dazu auch folgendes:

http://www.pathname.com/fhs/
bzw.
http://www.pathname.com/fhs/2.2/

sepp2k
03.03.03, 21:59
Es ist übersichtlicher. Außerdem liegt sbin für einen normalen User nicht im $PATH, was auch gut so ist. Wenn die Admin-Progs in /bin liegen würden, wären sie ja auch automatisch im $PATH für alle User

Berufspenner
03.03.03, 21:59
Original geschrieben von hermann_77
Was ist da nun der vorteil? Das könnte doch alles zentral liegen. Die Verzeichnisse werden doch eh mit benutzerrechten belegt. Du könntest z.B. jedes Grundverzeichnis auf eine extra HDD legen um so die Ausfallsicherheit zu erhöhen. Meist macht man sowas mit /home. Aber das ist nur eine Möglichkeit.

Cu
André

gfc
03.03.03, 21:59
Original geschrieben von hermann_77
Was ist da nun der vorteil? Das könnte doch alles zentral liegen. Die Verzeichnisse werden doch eh mit benutzerrechten belegt.

es liegt ja zentral!

der ordner /usr kannst du mit dem "Windows" Verzeichnis vergleichen, /opt ist mit "Programme"-Verzeichnis Vergleichbar... /home ist "Dokumente und Einstellungen"

sepp2k
03.03.03, 22:03
Original geschrieben von gfc
der ordner /usr kannst du mit dem "Windows" Verzeichnis vergleichen
Dann werden ja bei mir alle Programme ins "Windows"-Verzeichniss installiert :confused:

gfc
03.03.03, 22:09
Original geschrieben von sepp2k
Dann werden ja bei mir alle Programme ins "Windows"-Verzeichniss installiert :confused:

was DU so festgelegt hast (oder gentoo)

der Sinn wäre an sich, dass alle System notwendigen Bestandteile im /usr drin sind.. dazu zählt auch der X-Server etc.

KDE, Gnome und Openoffice etc sollte in den /opt kommen.. das ist bei diversen Distros, unteranderem bei Suse und United Linux auch so!

hermann_77
03.03.03, 22:13
Die ganzen argumente finde ich nicht umbedingt logisch. Mann könnte auch ein /bin erstellen, und dort weiter unterteilen in system, und benutzer, und dort meinetwegen noch eine stufe tiefer. Selbst die KDE bin's hab ich irgentwo verstreut im Verzeichnissbaum gefunden. Ich finde es auf jedenfall zimlich unübersichtlich.

sepp2k
03.03.03, 22:18
Original geschrieben von hermann_77
Die ganzen argumente finde ich nicht umbedingt logisch. Mann könnte auch ein /bin erstellen, und dort weiter unterteilen in system, und benutzer, und dort meinetwegen noch eine stufe tiefer.
Und wie soll man das denn mit dem $PATH regeln?
btw: wenn dir der Verzeichnisbaum nicht gefällt bau dir doch ein Linux From Scratch mit deinem eigenem Verzeichnissbaum

gfc
03.03.03, 22:23
Original geschrieben von hermann_77
Die ganzen argumente finde ich nicht umbedingt logisch. Mann könnte auch ein /bin erstellen, und dort weiter unterteilen in system, und benutzer, und dort meinetwegen noch eine stufe tiefer. Selbst die KDE bin's hab ich irgentwo verstreut im Verzeichnissbaum gefunden. Ich finde es auf jedenfall zimlich unübersichtlich.

naja.. am Anfang vielleicht... aber ehrlich gesagt, solltest du nicht windows mit linux verlgeichen.. das endet nie gut..

anyway, wie fandest du das den unter Windows?? ein Teil der Profile im :\windows, ein teil im Dokumente, wo die Mails sind weiss eh niemand, eigene Dateien sind mal da mal dort, DLL sind im Windows ordner, die zugehörigen Programme im \programme, im Windows-Ordner selbst 20 diverse Ordner, die eigentlich alle das selbe bedeuten und die Einstellungen sind irgendwo in ner Registry versteckt.. du siehstst: alles gewöhnungssache...

tkortkamp
03.03.03, 22:24
Hi!

Dazu nochmal: http://www.linuxfaq.de/f/cache/45.html

c ya,
Tobias

Catonga
04.03.03, 01:21
Wie schon Komet erwähnte, lies dir das Filesystem Hierarchy Standard Dokument durch,
es wird dir alle Fragen beantworten:

http://www.pathname.com/fhs/2.2/

Das FHS Dokument ist eines der mit Abstand wichtigsten Dokumente,
welches jeder Linux Newbie mindestens einmal durchgelesen haben sollte.


Kurz gesagt:
Danach hast du den totalen Durchblick im Linux Verzeichnisbaum. :)

sticky bit
04.03.03, 04:16
Hmm, aber um deinem Gedanken dass das etwas komisch /unübersichtlich ist aufzugreifen, über diesen FHS lässt sich IMHO auch ganz gut streiten, ohne jetzt irgendwie in Richtung Flame zu gehen, wer's nutzen will solls tun wer nicht bleiben lassen...

Und, es sei angemerkt, dass es stark auf deine Distrie ankommt was letztlich wo landet...

@sepp2k:
Standardmässig landet das Zeug von selbstkompilierten Programmen in /usr/local, deshalb, weil du noch nichts selbstkompiliertes installiert hast, diese Configuration geändert hast oder die wenigen Packete erwischt hast die anderswo hininstallieren ist dein /usr/local/bin usw. wohl auch leer...

sepp2k
04.03.03, 04:34
Original geschrieben von sticky bit
@sepp2k:
Standardmässig landet das Zeug von selbstkompilierten Programmen in /usr/local, deshalb, weil du noch nichts selbstkompiliertes installiert hast, diese Configuration geändert hast oder die wenigen Packet erwischt hast die anderswo hininstallieren ist dein /usr/local/bin usw. wohl auch leer...
Naja, ich benutze Gentoo und installiere alle Programme per ebuild (es lässt sich für jedes Programm irgendwo ein ebuild auftreiben und wenn nicht kann man auchmal schnell selber eins schreiben) und da wird an das confiugre-script automatisch der Parameter --prefix=/usr übergeben.

Da fällt mir ein: Ein Verzeichnissbaum wie hermann_77 ihn vorschlägt wäre doch realisierbar. Man müsste nur bei der Definition der $PATH-Variable eine Schleife einbauen, die die Unterordner miteinbezieht. Hehe, ich wollte schon immer mal ein LFS bauen, mir hat nur bislang ne Grundidee gefehlt (wenn ein LFS genauso aussieht wie alle anderen Linuxe kann mans ja gleich lassen). Jupp, das mach ich. Ein LFS mit ner Verzeichnissstruktur wie herman sie vorgeschlagen hat (nur das ich das ganze ein bißchen ausbessern werde).

hermann_77
04.03.03, 07:29
Ich wollte garnicht steiten, aber selbst die linuxfaq geben mir keinen grund warum alle möglichen ausfürbahren Dateien im gesamten Verzeichnissbaum verstreut liegen. Ich habe jetzt schon verstanden das es verschiedene Verzeichnisse gibt für verschiedene aufgaben, aber die so zu zerstreuen und nicht einem Hauptverzeichniss untzerzuordnen finde ich etwas unübersichtlich. Nun gut.
Eine andere sache, aber bitte nicht streiten. Wer hat sich eigentlich die abkürzungen für die Verzeichnisse ausgedacht. Da sind alle auf 3 Buchstaben gekürzt, aber andere werden dann doch ausgeschrieben so wie root, oder local. Hätte man die nicht besser ausgeschrieben bennennen können so das man auch vesteht was eventuell in den Verzeichnissen zu finden ist. Grade bei anfängern und Otto Normalen fürt soetwas zu ausagen wie :"das ist doch alles viel zu kryptisch". Das stammt doch sicherlich noch aus dem Steinzeitalter der Unixe wo eh nur erfahrene Leute mit solchen Systemen umgegeangen sind. Ich will das garnicht vesuchen zu ändern, weil ich es auch nicht kann. Aber fragen ist doch sicherlich OK.

viele grüsse,
Hermann

Susu
04.03.03, 07:54
Original geschrieben von gfc
KDE, Gnome und Openoffice etc sollte in den /opt kommen.. das ist bei diversen Distros, unteranderem bei Suse und United Linux auch so!
Mmmhh... bei meinem Woody liegen KDE und GNOME unter /usr...

Gruß, Susu

drunkenPenguin
04.03.03, 08:13
@hermann_77:

Hi,

Kryptisch ist so etwas wie /usr/share/doc/ zwar schon, aber denk mal an die Zeiten, als die Menschen
mit der Konsole arbeiten mussten, weil GUIs einfach noch nicht existierten oder noch nicht ausgereift waren.
Was bedeutet weniger Tipparbeit: cd /usr/share/doc/ oder cd /unixsystemresources/sharedfiles(?)/documents/?
Genau. Akronyme sind dazu da, uns das Denken und die Arbeit zu erleichtern.
Wenn du weniger klicken und mehr tippen möchtest, haben solche Abkürzungen ihre Berechtigung.
Mag sein, dass Anfänger abgeschreckt werden, aber wer einen Computer einschalten und lesen kann,
kommt auch auf solche Dinge.


Cu
Dani

Jasper
04.03.03, 08:16
Original geschrieben von hermann_77
Ich wollte garnicht steiten, aber selbst die linuxfaq geben mir keinen grund warum alle möglichen ausfürbahren Dateien im gesamten Verzeichnissbaum verstreut liegen. Ich habe jetzt schon verstanden das es verschiedene Verzeichnisse gibt für verschiedene aufgaben, aber die so zu zerstreuen und nicht einem Hauptverzeichniss untzerzuordnen finde ich etwas unübersichtlich. Nun gut.


denk daran, dass unix ein multiuser-betriebssystem ist. da macht es sinn, die bin-verzeichnisse aufzuteilen:

sbin == für root
bin == für alle user

dann sind alle bin-verzeichnisse im root-fs, also /bin und /sbin möglichst klein zu halten. da liegen die binaries drin, die zum booten benötigt werden.
die bin-verzechnisse unter /usr sind für alle user, diese werden u.U. per NFS geshared.
die bin-verzeichnisse unter /usr/local sind für eigenes zeug und werden bspw. bei einem upgrade nicht angefasst (suse macht da ausnahmen),

nun überleg dir mal, wie du das alles mit einem zentralen bin-verzeichnis machen willst. die einzige möglichkeit wäre, alles /bin (wegen der sache mit dem booten). d.h. du packst alle möglichen binaries (kde, gnome, etc) ins root-verzeichnis, was dadurch aufgebläht wird und dem grundsatz "root-fs so klein wie möglich" zuwider läuft. und mit dem nfs-mounten ists dann auch vorbei. zum anderen werden bei steigender dateianzahl innerhalb eines verzeichnisses die suchzeiten höher.



Eine andere sache, aber bitte nicht streiten. Wer hat sich eigentlich die abkürzungen für die Verzeichnisse ausgedacht. Da sind alle auf 3 Buchstaben gekürzt, aber andere werden dann doch ausgeschrieben so wie root, oder local. Hätte man die nicht besser ausgeschrieben bennennen können so das man auch vesteht was eventuell in den Verzeichnissen zu finden ist. Grade bei anfängern und Otto Normalen fürt soetwas zu ausagen wie :"das ist doch alles viel zu kryptisch". Das stammt doch sicherlich noch aus dem Steinzeitalter der Unixe wo eh nur erfahrene Leute mit solchen Systemen umgegeangen sind. Ich will das garnicht vesuchen zu ändern, weil ich es auch nicht kann. Aber fragen ist doch sicherlich OK.


naja, was heisst kryptisch. viele sachen erklären sich doch von selbst. einzig "etc" ist da erklärungsbedürftig.
man darf nicht vergessen, dass bei unix viel über kommandozeile passiert, lange verzeichnisnamen sind da nur hinderlich (nicht alle shells haben completion). wer mag kann sich ja links setzen "bin -> ausführbare_programme_für_alle_user" :)
und gerade anfänger sollten die dokumente lesen, in denen der generelle aufbau eines unix erklärt wird. denn wenn man versucht, seine windows-vorstellungen auf unix zu projezieren, stellt sich sehr schnell frust ein, weil die beiden doch recht unterschiedlich sind.

-j

LKH
04.03.03, 08:18
Hi hermann_77,

du hast Recht: das stammt alles aus der UNIX-Steinzeit; ist aber mittlerweile ein Standard geworden, den man nicht so ohne weiteres mehr ändern kann. Sicher kannst du dir auch einen anderen Verzeichnisbaum und andere Verzeichnisnamen aufbauen. Allerdings wird sich dann niemand mit deinem System auskennen.

Ob ich vor einer Linux-, HP-UX-, AIX- oder BSD-Maschine sitze: ich fühle mich immer zuhause (na ja - fast ;)) Ich denke mal, dass ist ein entscheidender Vorteil.

sepp2k
04.03.03, 08:30
Original geschrieben von Jasper
nun überleg dir mal, wie du das alles mit einem zentralen bin-verzeichnis machen willst. die einzige möglichkeit wäre, alles /bin (wegen der sache mit dem booten). d.h. du packst alle möglichen binaries (kde, gnome, etc) ins root-verzeichnis, was dadurch aufgebläht wird und dem grundsatz "root-fs so klein wie möglich" zuwider läuft. und mit dem nfs-mounten ists dann auch vorbei. zum anderen werden bei steigender dateianzahl innerhalb eines verzeichnisses die suchzeiten höher.
Wie herman bereits erwähnte könnte man /bin ja Unterverzeichnisse verpassen. Ich finde diese Idee eigenltich immer cooler, je mehr ich darüber nachdenke. Ich wollte schon immer mal ein Linux-System basteln, das sich an weniger Standards hält als SuSE :ugly:

Susu
04.03.03, 08:45
Original geschrieben von sepp2k
Ich finde diese Idee eigenltich immer cooler, je mehr ich darüber nachdenke. Ich wollte schon immer mal ein Linux-System basteln, das sich an weniger Standards hält als SuSE :ugly: Wenn Du sonst nix zu tun hast??? *lol*

Susu

Jasper
04.03.03, 08:49
Original geschrieben von sepp2k
Wie herman bereits erwähnte könnte man /bin ja Unterverzeichnisse verpassen. Ich finde diese Idee eigenltich immer cooler, je mehr ich darüber nachdenke. Ich wollte schon immer mal ein Linux-System basteln, das sich an weniger Standards hält als SuSE :ugly:

die unterverzeichnisse lösen aber nicht das NFS-problem.
selbst wenn man unterverzeichnisse verwendet, hat man immer noch das problem, dass entweder alle binaries im root-fs liegen oder ich mir den /bin-baum zusammenmounte. d.h. ich müsste die einzelnen zweige des bin-baums als einzelne volumes (ab 2.4 geht --binddir, aber das ist kein standard) anlegen.

das erscheint mir wenig praktikabel. aber wers mag, kann sichs ja so einrichten.

-j

oenone
04.03.03, 14:29
Original geschrieben von Jasper
die unterverzeichnisse lösen aber nicht das NFS-problem.
selbst wenn man unterverzeichnisse verwendet, hat man immer noch das problem, dass entweder alle binaries im root-fs liegen oder ich mir den /bin-baum zusammenmounte. d.h. ich müsste die einzelnen zweige des bin-baums als einzelne volumes (ab 2.4 geht --binddir, aber das ist kein standard) anlegen.

das mit NFS kann man schon lösen... einfach im /bin verzeichnis symlinks auf andere verzeichnisse legen...
so kann man auch andere partitionen mit einbeziehen, ohne für jedes bin-dir eine eigene partition zu erstellen.

ich finde die verzeichnisstruktur von linux eigentlich recht übersichtlich...
"bin" sind alle nötigen programme für die user... egal ob nun in /bin, /usr/bin, /usr/X11R6/bin, /opt/bin, usw.
natürlich wird dadurch das suchen etwas erschwert, aber ein "whereis" tut auch sein bestes ;)

auf bald
oenone

tsuribito
04.03.03, 15:56
Es ist doch für mich als User egal wo der Befehl liegt.
Ich geb doch einfach den Befehl ein und er wird ausgeführt. (Meistens)
Also sehe ich keine Veranlassung das Ordnersystem zu ändern.

steve-bracket
04.03.03, 16:38
Win und Tux kannst nicht vergleichen.

Und zur Übersicht.
Für den 0815 User sieht es vielleicht so aus, dass alles notwendige in den ausgewählten Ordner für das Prog (C:\Programme\xyz) reinkommt, aber das ist (leider) nicht so.
Wie schon erwähnt gibt es dll's in den unterschiedlichsten und versteckesten Ordnern, Registry usw usw.
Hab vor kurzem einen Drucker händisch deinstalliert (da sich beim installieren die Druckersoftware nicht in das übliche Systemst./Software eingetragen hat) und hab noch immer nicht alle Dateien gefunden und deinstalliert/gelöscht.

Und die Registry ist meiner Meinung nach viel zu groß und unübersichtlich.


fG Steve

panzi
04.03.03, 17:05
Ne Frage die vieleicht nicht ganz hier reinpasst:

Ist LSB-mäßig definiert welches Skript die PATH Variable setzt? Wenn ja dann wär ein Konfigurationsfrontend wie in >= WinNT cool, und mann muss nicht selbst irgendein skript wo dazubasteln, welches die Variable setzt. Das mit'n Konfig-Tool ist vieleicht übertrieben, aber nur für die PATH Variable ein eigenes skript im gewünschten runlevel ausführenlassen is a bissal umständlich.

Catonga
04.03.03, 17:21
also viel interessanter als den ort der binarys zu ändern würde ich den
ort der Konfigurationsdateien im home verzeichnis finden.



Davon hätte man deutlich mehr, man müßte halt nur auch im source code rumwühlen,
da man diesen ort nicht so einfach via configure script ändern kann.

sticky bit
04.03.03, 19:52
Hmm, die Idee mit den Unterverzeichnissen finde ich gar nicht so blöd. Dann könnte man die Binaries sogar in verschiedene Kategorien unterteilen, z. B: /bin/multimedia und das kommt dann nur bei denjeigen Benutzern im Pfad die auch Multimedia nutzen wollen / dürfen, so als Bsp.
Wär dann zwar noch mehr Kosmetik als bin/ und sbin/ aber so eigentlich IMHO sehr viel sinnvoller...

Kann mir eigentlich einer erklären was dann /usr/libexec/ bzw. /usr/local/libexec/ soll? Bei manchen Unixen findet man da dann auch noch Ausführbares drinne, gem. FHS ist das ja nicht beschrieben oder ich bin blind?


Original geschrieben von Catonga
also viel interessanter als den ort der binarys zu ändern würde ich den
ort der Konfigurationsdateien im home verzeichnis finden. Hmm, es gibt ja die persönlichen rc's bei vielen Programmen und die globalen halt in /etc/. Ich denke da liegt es eher an den Programmen, dass diese individueller konfigurierbar gestaltet werden...