Znaczenie katalogów w systemach Unix i Unix podobnych

112

Używam Linuksa od kilku lat, ale wciąż nie wiem, skąd wzięły się nazwy katalogów w systemach uniksowych i podobnych. Np. Co oznacza etclub var? Skąd optpochodzi nazwa?

A skoro i tak jesteśmy na ten temat. Czy ktoś może wyjaśnić, który katalog najlepiej jest do tego wykorzystywany. Czasem się mylę, gdzie jest zainstalowane określone oprogramowanie lub w którym katalogu najlepiej zainstalować oprogramowanie.

Łukasz
źródło
Zabawne jest to, że unix jest parodią multimediów i przetrwa ... Myślę, że multics wyprzedził swój czas.
SparK

Odpowiedzi:

134

Aby uzyskać więcej danych na temat układu systemów plików Linux, zapoznaj się z Hierarchią Systemów Plików Standard (teraz w wersji 2.3 z wersją beta 3.0 wdrożoną na najnowszych dystrybucjach). Wyjaśnia niektóre źródła, z których pochodzą:

  • / bin - Bin aries.
  • / boot - Pliki wymagane do uruchomienia .
  • / dev - Dev pliki lód.
  • / etc - Et c etera . Nazwa jest dziedziczona od najwcześniejszych Uniksów, kiedy to stało się miejscem umieszczania plików konfiguracyjnych.
  • / home - Gdziesą przechowywane katalogi domowe .
  • / lib - Gdzieprzechowywane są biblioteki lib kodu.
  • / media - Bardziej nowoczesny katalog, ale w którymmontowane są nośniki wymienne.
  • / mnt - Jeżeli plik tymczasowy systemy są m ou nt ed.
  • / opt - Gdziejest zainstalowane dodatkowe oprogramowanie opt ional. Jest to dyskretne z/usr/local/powodów, które omówię później.
  • / run - Gdzieprzechowywane są dane zmiennych w czasie wykonywania .
  • / sbin - gdzie s uper- bin Baran są przechowywane. Zazwyczaj działają one tylko z rootem.
  • / srv - oznacza „ s e rv e”. Ten katalog jest przeznaczony dla obsługiwanych plików statycznych. /srv/httpbyłoby dla statycznych stron internetowych,/srv/ftpdla serwera FTP.
  • / tmp - gdzie t e mp orary pliki mogą być przechowywane.
  • / usr - inny katalog odziedziczony po dawnych uniksach, oznacza „ U NIX S ystem R esources”. To nie nie stać na „user” (patrz Wiki Debiana ). Ten katalog powinien być współdzielony między hostami i może być bezpiecznie podłączony do systemu plików NFS na wielu hostach. Można go bezpiecznie zamontować tylko do odczytu.
  • / var - Kolejny katalog dziedziczone z Uniksów starych, to skrót od „ var iable”. W tym miejscu mogą być przechowywane różne dane systemowe. Mogą tu znajdować się takie katalogi jak bufor i bufor. Jeśli program musi zapisać do lokalnego systemu plików i nie udostępnia tych danych komuś bezpośrednio, przejdzie tutaj.

/ opt vs / usr / local

Regułę, którą widziałem, najlepiej opisać jako:

Używaj /usr/localdo rzeczy, które normalnie by się włączyły /usrlub zastępują rzeczy, które już są /usr. Użyj /optdo rzeczy, które instalują wszystko w jednym katalogu lub są w inny sposób wyjątkowe.

sysadmin1138
źródło
2
Dokument bardzo dobrze odpowiada na pierwszą połowę mojego pytania. Jednak to, skąd pochodzą te nazwy, wciąż pozostaje tajemnicą. Powodem, dla którego chciałbym wiedzieć, jest to, że myślę, że da mi to większy kontekst.
Luke
Nazewnictwo jest prawie w całości zrozumiałe. Zwłaszcza jeśli czytasz opisy w tym linku.
Dan Carley,
3
Nie, nie jest. Wyjaśnia, do czego służy „etc”, ale nie wyjaśnia, skąd pochodzi nazwa ani co oznacza.
Luke
@ sysadmin1138, więc /runzasadniczo odnosi się do pamięci RAM?
Pacerier,
@Pacerier Jest to system plików, ale można go bezpiecznie zamontować jako dysk RAM. To powiedziawszy, wiele programów zakłada tam ustaloną strukturę, więc faktycznie wymaga wytrwałości.
sysadmin1138
22

Historycznie /etcoznacza „etcetera” i /varjest skrótem od „zmienna”. Przypuszczam, że ten pierwszy jest spowodowany tym, że wchodzi do niego duży zbiór niepowiązanych plików konfiguracji systemu /etc. To drugie, ponieważ oczekuje się, że pliki /varsię zmienią. Często można zamontować /usri /jak tylko do odczytu (z wyjątkiem podczas wykonywania aktualizacji), ale nigdy nie można montować /vartylko do odczytu. Przechowuje logi systemowe, blokuje pliki, zbiory buforowe i inne rzeczy, które zmieniają się dynamicznie.

Inne osoby dały ci wskazówki, które pomogą Ci dowiedzieć się, co najlepiej się dzieje.

Eddie
źródło
22

Przepraszamy za wskrzeszenie starego wątku, ale uważam, że ten szczegół jest ważnym wyjaśnieniem dla wszystkich przyszłych poszukiwaczy tych informacji:

  • / opt oznacza opcjonalne (jak w opcjonalnych pakietach dodatków).
  • / bin oznacza plik binarny (zawiera pliki wykonywalne używane przez system operacyjny).
  • / lib oznacza bibliotekę (zawiera biblioteki współdzielone używane przez system plików i do uruchamiania, prawdopodobnie używane przez pliki wykonywalne w bin)
  • / proc oznacza procesy.
  • / root oznacza użytkownika root.
  • / home przechowuje podkatalogi home dla użytkowników innych niż root.
  • / dev oznacza urządzenie (przechowuje pliki specjalne i pliki urządzenia).
  • / tmp oznacza tymczasowe.
  • / srv oznacza serw.
  • / mnt oznacza punkt montowania (zamontuj tymczasowy system plików tutaj).
  • / include zawiera pliki #include, tj. pliki nagłówkowe (np. stdio.h).
  • / var oznacza zmienną
  • / etc oznacza etcetera

  • / usr oznacza Unix System Resources ( źródło )

Mikrofon
źródło
Ładna odpowiedź: zwięzła, skierowana na poziom pytania i nie trzeba szukać innych linków. +1
Scott Biggs,
Nie widziałem wcześniej srv. Wolę konwencję niż konfigurację, o ile ma to sens i jest egzekwowane. Oczywiście Apache nie zawsze obsługuje pliki z katalogu / srv.
user148298,
19

Spróbuj tego:

$ man hier
Anonimowy
źródło
1
Niezłe. Jednak, podobnie jak dokument wymieniony w innych odpowiedziach, ta strona podręcznika mówi tylko o tym, do czego służą katalogi. Interesuje mnie również, dlaczego wybrano niektóre nazwiska, takie jak / etc, np.
Luke
2
Odpowiedź na twoje pytanie dotyczące / etc jest tutaj: en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard
Anonimowy
1

Jeśli zauważysz kilka odmian systemu operacyjnego Unix, zauważysz jaką różnicę w nazwach katalogów, ale większość z nich wyjaśniono poniżej ...

/ bin oznacza binarny (zawiera pliki binarne, a także zawiera polecenia najczęściej używane przez użytkowników. Jest to również domyślna ścieżka do wykonywania poleceń).

/ sbin (zawiera specjalne polecenia, które są generalnie uruchamiane przez superużytkownika)

/ lib oznacza bibliotekę (zawiera biblioteki współdzielone używane przez system plików i uruchamianie, prawdopodobnie używane przez pliki wykonywalne w bin) / proc oznacza procesy (jeśli chcesz zweryfikować, po prostu sprawdź tego dyrektora, będzie on zawierał kilka katalogów o nazwach losowych, które są nic oprócz numeru procesu można sprawdzić krzyżowo przez ps - ef)

/ root oznacza użytkownika root. (katalog domyślny dla użytkownika root) / home (wszyscy użytkownicy inni niż root mają tam katalog domowy w tym katalogu) / dev oznacza urządzenie (przechowuje pliki specjalne i urządzenia, jeśli przeglądasz ten katalog za pomocą ls - w tym katalogu wyświetlane są również numery główne i drugorzędne polecenia l także typ urządzenia pokazany na początku każdej linii w wyniku ls - l. B oznacza blok specjalnego urządzenia, c oznacza specjalne urządzenie znakowe. / tmp oznacza tymczasowe. (tymczasowe zasoby wymagane dla niektórych procesów przechowywanych tutaj tymczasowo) / mnt oznacza punkt montowania (podłącz tymczasowy system plików tutaj). / var oznacza zmienną (przechowuje zmienne dane, katalog, który zawiera zmienia się za każdym razem) / opt oznacza opcjonalnie (zwykle w tym katalogu instalowane jest oprogramowanie innych firm). / usr oznacza Unix System Resources.

Anwar Khan
źródło