Pochodząc ze świata Windows, większość nazw katalogów folderów jest dość intuicyjna:
\Program Files
zawiera pliki używane przez programy (niespodzianka!)\Program Files (x86)
zawiera pliki używane przez programy 32-bitowe w 64-bitowych systemach operacyjnych\Users
(poprzednioDocuments and Settings
) zawiera pliki użytkowników, tj. dokumenty i ustawienia\Users\USER\Application Data
zawiera dane specyficzne dla aplikacji\Users\USER\Documents
zawiera dokumenty należące do użytkownika
\Windows
zawiera pliki należące do samego systemu Windows\Windows\Fonts
przechowuje pliki czcionek (niespodzianka!)\Windows\Temp
to globalny katalog tymczasowy
i tak dalej. Nawet gdybym nie miał pojęcia, co zrobiły te foldery, potrafiłem z dużą dokładnością odgadnąć ich nazwy.
Teraz przyglądam się Linuxowi i jestem dość zdezorientowany, jak znaleźć sposób na obejście systemu plików.
Na przykład:
/bin
zawiera pliki binarne. Ale tak zrobić/sbin
,/usr/bin
,/usr/sbin
, i prawdopodobnie bardziej, że nie wiem o. Który jest który?? Jaka jest różnica między nimi? Jeśli chcę zrobić plik binarny i umieścić go w systemie, gdzie go umieścić?/media
zawiera zewnętrzne systemy plików multimedialnych. Ale tak też jest/mnt
. I żadne z nich obecnie nie zawiera niczego w moim systemie; wszystko wydaje się być w środku/dev
. Co za różnica? Gdzie są inne partycje na moim dysku twardym, takie jakC:
iD:
te, które były w systemie Windows?/home
zawiera pliki użytkownika i ustawienia. To wszystko jest intuicyjne, ale w co zatem ma iść/usr
? Jak/root
to możliwe, że wciąż jest osobny, mimo że jest to użytkownik z plikami i ustawieniami?/lib
zawiera współdzielone biblioteki, takie jak biblioteki DLL. Ale tak też jest/usr/lib
. Co za różnica?Co jest
/etc
? Czy to naprawdę oznacza „et cetera”, czy coś innego? Jakie pliki powinny tam być - globalne czy lokalne? Czy jest to wszystko dla rzeczy, o których nikt nie wiedział, gdzie je umieścić, czy też istnieje konkretny przypadek użycia tego?Jakie są
/opt
,/proc
i/var
? Co oznaczają i do czego służą? Nie widziałem czegoś takiego w Windows * i po prostu nie mogę pojąć, do czego mogą być.
Jeśli ktoś może wymyślić inne standardowe miejsca, o których warto wiedzieć, dodaj je do pytania; mam nadzieję, że może to być dobre odniesienie dla osób takich jak ja, które zaczynają się zapoznawać z systemami * nix.
* OK, to kłamstwo. Widziałem podobne rzeczy w WinObj, ale oczywiście nie regularnie. Nadal jednak nie wiem, co one robią w systemie Linux.
źródło
C:\Program Files
,C:\ProgramData
,%HOME%\AppData\Local
,%HOME%\AppData\LocalLow
,C:\Windows\SystemApps
... Wszystkie przykłady, gdzie można znaleźć pliki wykonywalne w systemie Windows. I nawet nie będę mówił o plikach konfiguracyjnych i rejestrze, nie chcę być jeszcze bardziej przygnębiony. PS: Pracuję głównie w systemie Windows.Odpowiedzi:
Dystrybucje Linuksa używają FHS: http://www.pathname.com/fhs/pub/fhs-2.3.html
Możesz także spróbować
man hier
.Spróbuję podsumować odpowiedzi na twoje pytania z góry mojej głowy, ale zdecydowanie sugeruję przeczytanie FHS:
Aby uzyskać dostęp do systemu, na ogół nie potrzebujesz / var, / opt, / usr, / home; niektóre potencjalnie największe katalogi w systemie.
Jednym z moich ulubionych, z którego niektórzy nie korzystają, jest / srv. Dotyczy danych hostowanych za pośrednictwem usług takich jak http / ftp / samba. Często widziałem / var używane do tego, co nie jest tak naprawdę jego celem.
źródło
/home/users/username
użytkowników i/home/services/servicename
do tego, o/src
czym wspominałeś . Myślę, że to działa lepiej, ponieważ jest bardziej uniwersalne w dzieleniu na partycje. Możesz mieć go na swojej własnej partycji lub użyć tej samej partycji i danych użytkownika, co często jest tym, co chcę robić.Nie odpowiem na pytanie, co oni wszyscy znaczą (inni mają), ale przedstawię trochę kontekstu historycznego.
Po pierwsze, pamiętaj, że UNIX zbliża się do 40 lat, w czasach taśmy papierowej i 300 bodów zakodowanych na stałe terminali do komputerów mainframe (system Windows XP ma prawie 10 lat). Pisanie było powolne, a potrzeba wydajności pisania przeważała nad wieloma innymi względami. To jest powód bardzo krótkich podstawowych poleceń (tj. „Ls”, „cat”, „cc”, „dd” itp.). To samo dotyczy struktur katalogów. Chodziło o to, że jeśli polecenie ma więcej niż trzy lub cztery znaki, nazwa jest za długa.
Katalog / usr pierwotnie zawierał katalogi domowe użytkownika, ponieważ większość poleceń znajdowała się w / bin, a wszystkie pliki urządzeń w / dev. Później sądzono, że główny dysk (główny system plików, „/”) jest mały, aby skrócić czas uruchamiania. Tak więc powstały inne struktury, takie jak / usr / bin, / usr / include i / usr / lib, gdzie / usr był oddzielnym „napędem”. Znacznie później sądzono, że w katalogu / home znajduje się katalog domowy użytkownika, co stanowi kolejny dysk. I znacznie później, aby mieć / var (skrót od zmienna / zmienna). Katalog / etc miał na myśli „et cetera”, ponieważ była to lokalizacja dla wszystkich plików konfiguracyjnych systemu. / Mnt był używany jako tymczasowe miejsce dostępu do dysku (często dysk zapasowy). Katalogi takie jak / opt, / proc i / media pojawiły się znacznie później.
Jest wiele rzeczy, które zostały pominięte (jak / usr / local i / net), ale daje to krótki opis powodów, dla których nazwy są „mniej intuicyjne”.
źródło
Jak już wspomniano tutaj, dystrybucje Linuksa najczęściej korzystają z FHS, zobacz tutaj samouczek, szczególnie odpowiedni dla kogoś pochodzącego z systemu Windows.
Uwaga: katalogi Windows wydają się powierzchownie intuicyjne. Ale pozwól, że zapytam, gdzie należą ustawienia programu, jako
*.ini
plik w folderze programów, wDocuments and Settings\User
(\Application Data
lub\Local Settings\Application Data
) lub w niesławnym rejestrze? nikt nie wie, nawet Microsoft. I tak możemy kontynuować.źródło