/ usr /, zakładam, że jest użytkownikiem komputera.
Blisko.
Unix zaczynał jako system operacyjny dla wielu użytkowników, więc nie jest to „użytkownik”, to „ użytkownicy ” w liczbie mnogiej.
Przed wydaniem AT&T Unix System V Release 4 (SVR4) w 1988 r. Z narzędziami zarządzania użytkownikami domyślnie tworzącymi katalogi domowe użytkowników /home, konwencjonalna lokalizacja to /usr.¹ Twój $HOMEkatalog mógł znajdować /usr/jfwsię w pudełku Systemu III .
/usrrównież zawarte, wtedy jak i teraz /usr/bin, /usr/libitp Doświadczenie wykazało, że segregacji katalogów domowych była dobra praktyka zarządzania systemem, więc ze /homezmianą polityki w SVR4, to pozostawił wszystko, co obecnie uważamy za przynależności /usr.
/usrwciąż miał dobry powód, by trzymać się tej nazwy: pozostały tylko pliki, które nie musiały być dostępne, dopóki system nie uruchomił się wystarczająco daleko, by obsługiwać normalne interaktywne użytkowanie. Oznacza to, że pozostały zorientowane na użytkownika części systemu operacyjnego. Oznaczało to, że /usrmoże on znajdować się na innym woluminie fizycznym, co było dobrą rzeczą w czasach 92 MB dysków twardych wielkości pralek .
Wczesne systemy uniksowe /usrstarały się unikać podstawowych plików systemu operacyjnego, aby nadal można było uruchomić system w trybie pojedynczego użytkownika², nawet jeśli z /usrjakiegoś powodu wolumin był niemożliwy do zamontowania . Wolumin główny zawierał wystarczające narzędzia do przywrócenia /usrwoluminu online.
Kilka smaki Unix teraz pominąć tę starą zasadę konstrukcyjną, ponieważ nawet małe systemy wbudowane mają wystarczająco dużo miejsca zarówno dla tradycyjnych plików głośności korzeń i wszystko /usrna jednym volume.³ Red Hat Enterprise Linux, Solaris i Cygwin dowiązanie symboliczne /bindo /usr/bini /libaby /usr/libtak, że nie ma dłuższa różnica między tymi katalogami.
... / local / ... oczywiście oznacza lokalny komputer ...
Tak. Odnosi się do faktu, że pliki poniżej /usr/localpowinny być specyficzne dla tego pojedynczego systemu. Pliki, które są w jakikolwiek sposób ogólne, powinny znajdować się gdzie indziej.
Ma to również swoje korzenie w sposobie, w jaki systemy Unix były powszechnie używane dekady temu, kiedy wszystko to zostało znormalizowane. Ponownie, dyski twarde w tamtych czasach były nieporęczne, naprawdę drogie i mało przechowywane według dzisiejszych standardów. Aby zaoszczędzić pieniądze i miejsce na dyskach, laboratorium komputerowe pełne skrzynek Unix często /usrdzieliło większość z NFS lub innego sieciowego protokołu udostępniania plików, więc każde pudełko nie musiało mieć własnej nadmiarowej kopii. Pliki specyficzne dla pojedynczego pole pójdzie pod /usr/local, co byłoby oddzielnym tomem od /usr.
To historyczne dziedzictwo jest powodem, dla którego większość programów uniksowych innych firm jest instalowana /usr/localręcznie. Większość takiego oprogramowania pozwala zainstalować pakiet w innym miejscu, ale nie dokonując wyboru, otrzymujesz bezpieczne ustawienie domyślne, które nie koliduje z innymi popularnymi lokalizacjami instalacji o bardziej szczegółowych celach.
Istnieją dobre powody, aby zamiast tego instalować oprogramowanie w innym miejscu. Zespół Apple MacOS robi to, gdy buduje, powiedzmy, bashz kodu źródłowego GNU Bash . Używają /jako prefiksu instalacji, zastępując /usr/localdomyślny, więc Bash kończy się w /bin.
Innym przykładem jest sposób, w jaki starsze systemy Linux segregowały swoje oprogramowanie GUI /usr/X11R6, aby oddzielić je od tradycyjnego wiersza poleceń i cursesoprogramowania opartego na oprogramowaniu. Dokonano tego po prostu nadpisując domyślny /usr/localprzedrostek za pomocą /usr/X11R6.⁵
A co to jest / bin?
Jest skrótem od „binarny”, co w tym kontekście oznacza „plik, który nie jest zwykłym tekstem”. Większość takich plików to pliki wykonywalne w systemie Unix, więc te dwa terminy stały się synonimami w niektórych kręgach. („Proszę, zbudujcie mnie plik binarny dla RHEL 7, Fred.”)
Pliki tekstowe na polu Unix żyć gdzie indziej: /etc, /usr/include, /usr/share, itd.
Dawno, dawno temu nawet skrypty powłoki - które są zwykłymi plikami tekstowymi - były trzymane poza binkatalogami, ale ta linia również się zacierała. Dziś binkatalogi zazwyczaj zawierają dowolny plik wykonywalny, czy to ściśle „binarny”, czy nie
Przypisy i dygresje :
Prymitywna natura narzędzi do zarządzania użytkownikami przed SVR4 oznaczała, że HOME=/usr/$NAMEschemat został jedynie udokumentowany jako konwencja, a nie domyślnie wymuszony przez narzędzia programowe.
Możesz to zobaczyć na str. 4-8 „ Podręcznika administratora systemu AT&T Unix System V Release 3.2 : tutaj AT&T zaleca stary /usr/$NAMEschemat ostatniej ostatniej wersji Unixa przed wydaniem SVR4.
W starszych systemach uniksowych administratorzy systemu dość często wybierali inny schemat, który był dla nich bardziej sensowny. Ludzie będący ludźmi oznaczali, że wymyślono wiele różnych schematów.
Jednym ze schematów, z którym się zetknąłem, /home/$NAMEstał się standardem /u/$NAME.
Inny system użyłem na początku 1990 mieliśmy tak wielu użytkowników, którzy nie mogli dopasować wszystkie katalogi domowe na jednym tomie fizycznej, dlatego stosowany schemat podobny /u1/$NAME, /u2/$NAMEi tak dalej, o ile pamiętam. To, na którym dysku skończył się Twój katalog domowy, było po prostu kwestią tego, który z nich miał miejsce w momencie tworzenia konta.
Możesz uruchomić system macOS w trybie pojedynczego użytkownika, przytrzymując go Cmd-Spodczas uruchamiania. Puść, gdy ekran zmieni kolor na czarny i zobaczysz jasnoszary tekst. To tak, jakby działało pod terminalem, ale przejmuje cały ekran, ponieważ GUI jeszcze się nie uruchomił.
Uważaj, biegniesz jak root.
Wpisz „exit” w monicie użytkownika root, aby wyjść z trybu jednego użytkownika i kontynuować uruchamianie w trybie GUI dla wielu użytkowników.
Uniksowe systemy operacyjne, które nadal wydają się utrzymywać krytyczne pliki trybu pojedynczego użytkownika, /usrmogą w rzeczywistości tego nie robić. Kiedyś sprawiłem, że pudełko FreeBSD 9 nie uruchamia się, przechodząc /usrna wolumin ZFS. Zapomniałem, że funkcje ZFS-on-root nie wylądowały aż do FreeBSD 10, tworząc Catch 22 : system operacyjny potrzebował plików /usrdo zamontowania /usr!
To było wystarczająco złe, ale gdyby FreeBSD 9 nadal /usrnie pozwalał na uruchomienie jednego użytkownika , mógłbym to naprawić. Ponieważ nie uruchomiłby się nawet w trybie pojedynczego użytkownika, ponieważ nie można go /usrbyło zamontować, jasne jest, że tradycja została w jakiś sposób naruszona. Musiałem uruchomić komputer z ratunkowej płyty CD, aby ponownie uruchomić system.
Tutaj też otrzymujemy /usr/share: segreguje pliki, które mogą być współużytkowane nawet między skrzynkami Unix z różnymi typami procesorów. Zwykle pliki tekstowe: strony podręcznika, słownik itp.
„X11R6” odnosi się do wersji systemu X Window, która stanowiła podstawę graficznych interfejsów systemu Linux w czasie, gdy ta konwencja była powszechna. Systemy Linux generalnie przestały segregować oprogramowanie GUI w momencie, gdy X11R6 zostało zastąpione X.Org .
Oryginalne systemy uniksowe zachowały swoje podstawowe skrypty powłoki /etc, aby uniknąć mieszania ich z prawdziwymi plikami binarnymi /bin.