Ý nghĩa của các thư mục trên Unix và Unix như các hệ thống


112

Tôi đã sử dụng Linux được vài năm rồi nhưng tôi vẫn chưa biết nguồn gốc hoặc ý nghĩa của một số tên thư mục là gì trên hệ thống Unix và Unix. Ví dụ, những gì không đại diện etccho hoặc var? Trường hợp không opttên đến từ đâu?

Và trong khi chúng ta đang ở trong chủ đề này. Ai đó có thể đưa ra một lời giải thích rõ ràng về thư mục nào được sử dụng tốt nhất cho những gì. Đôi khi tôi cảm thấy bối rối khi cài đặt phần mềm nào đó hoặc thư mục phù hợp nhất để cài đặt phần mềm vào đâu.


Điều thú vị là unix là một trò nhại của multics và là người sống sót ... Tôi đoán rằng multics đã đi trước thời đại.
SparK

Câu trả lời:


134

Để biết thêm dữ liệu về cách bố trí các hệ thống tệp Linux, hãy xem Tiêu chuẩn phân cấp hệ thống tệp (hiện tại phiên bản 2.3, với phiên bản beta 3.0 được triển khai trên hầu hết các bản phát hành gần đây). Nó giải thích một số nơi mà các tên đến từ:

  • / bin - Thùng Aries.
  • / boot - Tập tin cần thiết để khởi động ing.
  • / dev - Dev băng tập tin.
  • / vv - Et c etera . Tên được kế thừa từ các Unix sớm nhất, đó là khi nó trở thành vị trí để đặt các tập tin cấu hình.
  • / home - Nơigiữ các thư mục nhà .
  • / lib - Trường hợp mã lib lib được lưu giữ.
  • / media - Một thư mục hiện đại hơn, nhưng nơi phương tiện di độngđược gắn kết.
  • / mnt - Trường hợp hệ thống tệp tạm thời là m ou nt ed.
  • / opt - Trường hợp từ chối ional add-on phần mềm được cài đặt. Điều này là rời rạc/usr/local/vì lý do tôi sẽ đến sau.
  • / run - Nơilưu giữ dữ liệu biến thời gian chạy .
  • / sbin - Nơi s uper- bin aries được lưu trữ. Chúng thường chỉ hoạt động với root.
  • / srv - Viết tắt của " s e rv e". Thư mục này dành cho các tệp tĩnh được phục vụ. /srv/httpsẽ dành cho các trang web tĩnh,/srv/ftpcho một máy chủ FTP.
  • / tmp - Nơi t e mp file orary có thể được lưu trữ.
  • / usr - Một thư mục khác được kế thừa từ các Unix cũ, nó là viết tắt của " U NIX S ystem R esource". Nó không đại diện cho "người dùng" (xem Debian Wiki ). Thư mục này phải có thể chia sẻ giữa các máy chủ và có thể được gắn NFS vào nhiều máy chủ một cách an toàn. Nó có thể được gắn chỉ đọc một cách an toàn.
  • / var - Một thư mục khác được kế thừa từ Unix cũ, nó là viết tắt của " var iable". Đây là nơi dữ liệu hệ thống khác nhau có thể được lưu trữ. Những thứ như thư mục spool và cache có thể được đặt ở đây. Nếu một chương trình cần ghi vào hệ thống tệp cục bộ và không phục vụ trực tiếp dữ liệu đó cho ai đó, chương trình sẽ chuyển đến đây.

/ opt vs / usr / cục bộ

Quy tắc của ngón tay cái tôi đã thấy được mô tả tốt nhất là:

Sử dụng /usr/localcho những thứ thường đi vào /usrhoặc ghi đè lên những thứ đã có trong đó /usr. Sử dụng /optcho những thứ cài đặt tất cả trong một thư mục, hoặc đặc biệt.


2
Tài liệu trả lời nửa đầu câu hỏi của tôi rất tốt. Tuy nhiên, nơi những cái tên được bắt nguồn từ đó vẫn còn là một bí ẩn. Lý do tôi muốn biết là vì tôi nghĩ nó sẽ cho tôi nhiều bối cảnh hơn.
Luke

Việc đặt tên là gần như tất cả tự giải thích. Đặc biệt nếu bạn đọc qua các mô tả trong liên kết đó.
Dan Carley

3
Không, không. Nó giải thích "cái gì đó" được sử dụng cho nhưng không giải thích tên đó đến từ đâu hoặc tên của nó là gì.
Luke

@ sysadmin1138, vậy /runvề cơ bản là tham khảo RAM?
Pacerier

@Pacerier Đó là một hệ thống tập tin, nhưng có thể được gắn an toàn dưới dạng đĩa RAM. Điều đó nói rằng, nhiều chương trình giả định một cấu trúc thiết lập trong đó, vì vậy thực sự đòi hỏi sự kiên trì.
sysadmin1138

22

Trong lịch sử, /etcviết tắt của "etcetera" và /varviết tắt của "biến". Tôi cho rằng trước đây là do một tập hợp lớn các tệp cấu hình hệ thống không liên quan đi vào /etc. Thứ hai là bởi vì các tập tin trong /vardự kiến ​​sẽ thay đổi. Bạn có thể thường xuyên gắn kết /usrvà chỉ /đọc (trừ khi thực hiện cập nhật), nhưng bạn không bao giờ có thể gắn kết chỉ /varđọc. Nó chứa các tệp nhật ký hệ thống, khóa tệp, tệp đệm và các thứ khác thay đổi linh hoạt.

Những người khác đã cho bạn gợi ý để giúp bạn tìm ra những gì tốt nhất đi đâu.


22

Xin lỗi để phục hồi một chủ đề cũ, nhưng tôi cảm thấy chi tiết này là một sự làm rõ quan trọng cho tất cả những người tìm kiếm thông tin này trong tương lai:

  • / opt là viết tắt của tùy chọn (như trong các gói bổ trợ tùy chọn).
  • / bin là viết tắt của nhị phân (chứa các tệp thực thi được sử dụng bởi HĐH).
  • / lib là viết tắt của thư viện (chứa các thư viện dùng chung được sử dụng bởi hệ thống tập tin và để khởi động, có thể được sử dụng bởi các tệp thực thi trong bin)
  • / Proc là viết tắt của các quy trình.
  • / root có nghĩa là người dùng root.
  • / home giữ các thư mục con nhà cho bất kỳ người dùng không root.
  • / dev là viết tắt của thiết bị (chứa các tệp đặc biệt và thiết bị).
  • / tmp là viết tắt của tạm thời.
  • / srv là viết tắt của phục vụ.
  • / mnt là viết tắt của điểm gắn kết (gắn kết một hệ thống tập tin tạm thời ở đây).
  • / include chứa các tệp #include, tức là các tệp tiêu đề (ví dụ: stdio.h).
  • / var là viết tắt của biến
  • / etc là viết tắt của etcetera

  • / usr là viết tắt của Tài nguyên hệ thống Unix ( Nguồn )


Câu trả lời hay: cô đọng, hướng vào cấp độ của câu hỏi và không cần phải tìm các liên kết khác. +1
Scott Biggie

Tôi chưa từng thấy srv trước đây. Tôi thích quy ước hơn cấu hình, miễn là nó có ý nghĩa và được thi hành. Rõ ràng, Apache không phải lúc nào cũng phục vụ các tệp từ thư mục / srv.
user148298

19

Thử đi:

$ man hier

1
Đẹp một. Tuy nhiên, giống như tài liệu được đề cập trong các câu trả lời khác, trang người đàn ông này chỉ nói về những gì các thư mục được sử dụng cho. Tôi cũng quan tâm đến lý do tại sao một số tên nhất định được chọn, như / v.v.
Luke

2
Câu trả lời cho câu hỏi của bạn về / etc có ở đây: en.wikipedia.org/wiki/Filesystem_HVELy_St Chuẩn
Ẩn danh



1

Nếu bạn quan sát một số hương vị của hệ điều hành unix hơn bạn sẽ tìm thấy một số khác biệt trong tên thư mục, nhưng hầu hết các phổ biến được giải thích dưới đây ...

/ bin là viết tắt của nhị phân (chứa các tệp nhị phân và cũng chứa các lệnh được người dùng sử dụng nhiều nhất. Đây cũng là đường dẫn mặc định để thực thi lệnh).

/ sbin (cái này chứa các lệnh đặc biệt thường được siêu người dùng kích hoạt)

/ lib là viết tắt của thư viện (chứa các thư viện dùng chung được sử dụng bởi hệ thống tập tin và để khởi động, có thể được sử dụng bởi các tệp thực thi trong bin) / Proc là viết tắt của các quy trình (nếu bạn muốn xác minh chỉ cần kiểm tra giám đốc này, nó sẽ chứa một số thư mục có tên trong các số ngẫu nhiên, đó là không có gì ngoài số tiến trình bạn có thể kiểm tra chéo bằng ps - ef)

/ root có nghĩa là người dùng root. - l lệnh số lớn và số phụ cũng được hiển thị trong thư mục này cũng là loại thiết bị hiển thị ở đầu mỗi dòng trong kết quả ls - l. B có nghĩa là thiết bị đặc biệt khối, c có nghĩa là thiết bị đặc biệt ký tự). / tmp là viết tắt của tạm thời. (tài nguyên tạm thời cần thiết cho một số quy trình được lưu giữ tạm thời ở đây) / mnt là viết tắt của điểm gắn kết (gắn kết một hệ thống tệp tạm thời ở đây). / var là viết tắt của biến (nó chứa dữ liệu biến, thư mục mà nó chứa đang thay đổi kích thước mỗi lần) / opt là viết tắt của tùy chọn (phần mềm của bên thứ ba thường được cài đặt trong thư mục này). / usr là viết tắt của Tài nguyên hệ thống Unix.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.