Làm thế nào để hiểu cách bố trí hệ thống tập tin Ubuntu?


220

Trong Windows có lẽ chỉ có một vài thư mục quan trọng (quan trọng là ý tôi quan trọng trong bức tranh logic của hệ thống tệp Windows) trong ổ đĩa cài đặt (trong trường hợp của tôi C:\). Cụ thể Program FilesWindows. Tôi chỉ đơn giản là tránh xa Windowsthư mục và các tập tin chương trình xóa thêm vào đó là đủ tốt để xử lý program filesthư mục của Windows. Tất nhiên, có một thư mục được đặt tên Usersnơi người dùng (không phải quản trị viên) chỉ có thể truy cập các thư mục của họ.

Do đó, có một hình ảnh rõ ràng ở một mức độ nào đó trong tâm trí của tôi về hệ thống tệp Windows. Trong Ubuntu, khi tôi đến vị trí /, có một danh sách lớn các thư mục, hầu hết trong số đó tôi không có manh mối gì về những gì chúng chứa. Các /binthư mục có vẻ là tương đương với các Windowsthư mục trong cửa sổ. Các /usrthư mục có vẻ như đó là tương đương với các Usersthư mục trong Windows. Nhưng ngay cả /homethư mục trông giống như nó có thể phù hợp với hóa đơn.

Xin hãy hiểu rằng tôi hiểu rằng Ubuntu (Linux) có một đặc điểm khác với Windows, nghĩa là không cần phải có chính xác các chức năng của Windows, trong Ubuntu. Tất cả những gì tôi đang tìm kiếm là một bức tranh rõ ràng hơn một chút về hệ thống tệp Ubuntu.

Câu hỏi này là một phần của câu hỏi lớn hơn mà tôi đang chia ra để làm cho nó dễ trả lời hơn. Câu hỏi ban đầu có thể được tìm thấy ở đây:
http://sgsawant.wordpress.com/2012/05/17/whats-the-equivalent-of-add-or-remove-programs-in-ub Ubuntu /


3
Xem thêm thẻ cấu trúc thư mục trên Unix & Linux . Tất cả các bản phân phối Linux đều theo cùng một mô hình.
Gilles

Cảm ơn tất cả các câu trả lời của bạn. Tôi hơi bối rối về một vài điểm: Trong Windows, thiết lập thường cung cấp thông qua một tùy chọn để cài đặt phần mềm cho tất cả người dùng. Làm thế nào để tạo sự khác biệt đó trong Ubuntu? Ngoài ra, đây là một vấn đề thông thường trong việc cấu hình phần mềm phát triển cho IDE của họ. Trong các cửa sổ, ví dụ, trong "tệp chương trình \ miktex \ bin" có tệp "pdflatex.exe". Do đó tôi có thể trỏ IDE vào tập tin này và cấu hình nó. Làm thế nào để đi về quá trình này trong Ubuntu? Tệp nhị phân chung được liên kết với một phần mềm ở đâu (đặc biệt từ quan điểm cấu hình)?
Sawash Shashank

2
Trong Ubuntu, bạn thường cài đặt phần mềm cho tất cả người dùng. Tất cả mọi thứ bạn làm thông qua trình quản lý gói là dành cho tất cả người dùng. Tôi không hiểu phần còn lại của bình luận của bạn; người ta không cấu hình và tập tin nhị phân của tập tin liên kết với một phần mềm. Bạn nên hỏi điều này như một câu hỏi riêng biệt và đưa ra lời giải thích tốt hơn về những gì bạn đang cố gắng làm.
Gilles

Hiểu rồi. Tôi sẽ đóng khung một câu hỏi mới. Thậm chí sau đây là một lời giải thích ngắn gọn về ý tôi: Trong các cửa sổ, các tệp .exe có thể dễ dàng tìm thấy. Ví dụ: "C: \ Python27 \ python.exe". Vì vậy, tôi biết chương trình Python bắt đầu từ đâu. Bây giờ nếu tôi phải sử dụng IDE Eclipse, tôi có thể chỉ cần trỏ nó vào python.exe và đây là ý của tôi khi "configure". Tôi đã cấu hình IDE cho Python. Trong Ubuntu vị trí cài đặt chương trình ở đâu? Đó là những gì vẫn lảng tránh tôi.
Sawash Shashank

2
@Gilles Hãy cẩn thận khi nói all. Các dự án GoboLinux thực sự sử dụng một hơn Windows như cấu trúc thư mục.
new123456

Câu trả lời:


251

Bạn có thể đọc lên trên ví dụ trên wikipedia. Một đoạn trích:

Các hệ thống tập tin tiêu chuẩn cấp bậc (đảm bảo VSATTP) định nghĩa các thư mục chính và nội dung của họ trong hệ điều hành Linux. Đối với hầu hết các phần, nó là một sự chính thức hóa và mở rộng của hệ thống phân cấp hệ thống tập tin BSD truyền thống.

FHS được duy trì bởi Linux Foundation, một tổ chức phi lợi nhuận bao gồm các nhà cung cấp phần mềm và phần cứng lớn, như HP, Red Hat, IBM và Dell. Phiên bản hiện tại là 3.0, phát hành vào ngày 3 tháng 6 năm 2015.

Một đại diện trực quan với một mô tả ngắn:

nhập mô tả hình ảnh ở đây

Về cơ bản Linux đã phân chia cấu trúc thư mục dựa trên chức năng của những gì cần thiết để làm cho hệ thống an toàn nhất có thể với số lượng quyền tối thiểu cần thiết. Nếu không, ai đó chắc chắn phải làm rất nhiều công việc có thể tránh được.

Hãy nhớ rằng Unix và Linux, nơi được tạo ra như các hệ thống nhiều người dùng và Windows đã được tạo cho một người dùng. Mọi thứ khác có thể được giải thích từ ý tưởng đó. Bạn có thể giải thích mọi thư mục khi nghĩ về nó là đa người dùng và bảo mật.

3 ví dụ:

  • Bạn sẽ thấy các tệp và thư mục chỉ dành cho quản trị viên được tập hợp trong cùng một thư mục: s trong /sbin/usr/sbin/usr/local/sbinlà viết tắt của hệ thống. Một người dùng bình thường thậm chí không thể bắt đầu các chương trình trong đó. Các tệp mà người dùng bình thường có thể bắt đầu nằm trong / bin, / usr / bin, / usr / local / bin dựa trên vị trí hợp lý nhất. Nhưng nếu họ là quản trị viên thì họ nên vào sphiên bản của thư mục đó. Có một tiện ích nổi tiếng được gọi là fuser. Bạn có thể giết các tiến trình với nó. Nếu một người dùng bình thường có thể sử dụng (các) điều này, anh ta sẽ có thể giết phiên của bạn.

  • Điều tương tự cũng xảy ra với /home: / home / user1 là thuộc tính của user1. / home / user2 là tài sản của user2. user2 không có doanh nghiệp làm công cụ tại nhà của user1 (và cách khác cũng đúng: user1 không có doanh nghiệp làm công cụ trong nhà của user2). Nếu tất cả các tệp sẽ ở trong / nhà mà không có tên người dùng bên dưới, bạn sẽ phải cấp quyền cho mọi tệp và khẳng định nếu ai đó được phép ghi / xóa các tệp đó. Một cơn ác mộng nếu bạn có hàng chục người dùng.

  • Ngoài ra liên quan đến thư viện.

    /lib/, /usr/lib//usr/local/lib/là các vị trí ban đầu, từ trước khi các hệ thống multilib tồn tại và tồn tại để ngăn chặn phá vỡ mọi thứ. /usr/lib32, /usr/lib/64, /usr/local/lib32/, /usr/local/lib64/Là 32 phát minh multilib / 64-bit.

Nó không phải là một khái niệm tĩnh bởi bất kỳ phương tiện. Các hương vị Linux khác đã thực hiện các chỉnh sửa cho bố cục này. Ví dụ; hiện tại bạn sẽ thấy debian và Ubuntu thay đổi rất nhiều trong bố cục của FHS vì SSD tốt hơn với các tệp chỉ đọc. Có một phong trào hướng tới một bố cục mới trong đó các tệp được chia thành một thư mục / nhóm 'chỉ đọc' và 'có thể ghi' để chúng ta có thể có một phân vùng gốc có thể được gắn chỉ đọc (phân vùng cho một ssd) và có thể ghi (sata hdd). Thư mục mới được sử dụng cho việc này (không phải trong hình ảnh) là /run/.


18
+1 Cơn gió. Tôi thích hình ảnh, thực sự đang tìm kiếm một.
Luis Alvarado

5
ha nghĩ rằng sẽ nhận được sự chú ý: + @LuisAlvarado
Rinzwind

4
Không thể có câu trả lời tốt hơn!
Sawash Shashank

1
Không phải là /mntnhững gì /mediabây giờ, một vài năm trước?
RobinJ

9
@RobinJ: Sự khác biệt là trong /mntlịch sử đã được quản lý thủ công. Với sự gia tăng của nhiều thiết bị tạm thời (ổ đĩa flash, v.v.) và tự động gắn kết trở thành tiêu chuẩn, cần phải tự động xử lý các điểm gắn kết. Một thư mục mới là cần thiết để tránh xung đột với cấu hình thủ công hiện có. Vì vậy, những ngày /mntnày đã được chuyển sang vai trò cung cấp một điểm gắn kết tạm thời thuận tiện.
Scott Severance

104

Hãy thử lệnh này ...

man 7 hier

Bạn cũng có thể xem trang hướng dẫn này tại đây: http://manpages.ubfox.com/manpages/en/man7/hier.7.html

Hy vọng nó giúp


1
gọi tốt Tôi luôn quên rằng một cái mặc dù nó luôn luôn có mặt (ngay cả khi mạng bị hỏng;))
Rinzwind

1
con người nên được đổi tên thành "nó". :)))
Shiki

man hierbây giờ là một trong những lệnh yêu thích của tôi! Các giải thích đối với tôi rõ ràng hơn so với tài liệu FHS, đặc biệt là phân biệt giữa 'cục bộ với máy' và 'toàn bộ trang web', cho người dùng Ubuntu chưa có kinh nghiệm, vượt qua trải nghiệm DOS / Windows vừa phải.
WillC

BTW số 7 đứng của phần Miscellanea của trang hier man.
Pablo A

hmm Đối với những gì nó đáng để loại này nhắc nhở tôi về một câu trả lời chỉ liên kết, mặc dù có khả năng mọi phiên bản của ubfox sẽ có điều này. Bạn có thể kết hợp một số nội dung từ trang người đàn ông vào câu trả lời của bạn không?
jrh

45

Trả lời muộn - Tôi đã tạo lộ trình cho người mới bắt đầu theo dõi. Nếu họ đang tìm kiếm một tệp nhưng không biết tìm ở đâu, họ có thể sử dụng bản đồ để điều hướng xung quanh. Bạn có thể tải xuống một PNG độ phân giải cao ở đây . Bạn có thể tìm thấy bài viết liên quan ở đây . Tôi sẽ tiếp tục cập nhật cả tập tin và bài đăng khi thời gian cho phép, kết hợp những bình luận hữu ích.


Ý tưởng thú vị và hữu ích để tạo ra một sơ đồ, nhưng thật không may, nó dường như có một số ngõ cụt. Câu hỏi của tôi là nếu tôi đang thực hiện một mysqldumpnơi tôi nên xuất tập tin đến đâu?
BadHorsie

@BadHorsie tất nhiên nó luôn phụ thuộc vào trường hợp sử dụng cụ thể của bạn, nhưng việc bỏ nó vào một /home/badhorsie/mysqldumpthư mục sẽ đủ. Nếu bạn đang chạy nhiều ứng dụng, bạn có thể tạo một người dùng mới để chạy từng ứng dụng và kết xuất nó trong thư mục ứng dụng / người dùng đó home.
d4nyll

@ paranoid-panda, bạn có thể mở rộng một chút về lý do tại sao bạn chọn không cho phép hình ảnh có thể nhấp qua độ phân giải đầy đủ không? Phiên bản được nhúng trong bài viết này là khá nhiều không thể đọc được.
waldyrious

@waldyrious: Nếu bạn nhìn vào lịch sử sửa đổi, bạn sẽ thấy rằng tôi chỉ sửa một lỗi chính tả, đó là một người dùng khác đã thêm hình ảnh theo cách đặc biệt này. Không có gì để làm với tôi. Vui lòng chỉnh sửa nó, tôi không thể nhớ chính xác cú pháp để làm cho nó có thể nhấp.

@ParanoidPanda đó chính xác là những gì tôi đã làm. Chỉnh sửa của tôi đã sửa lỗi chính tả và làm cho hình ảnh có thể nhấp được, và đánh giá của bạn là từ chối và chỉnh sửa , do đó câu hỏi của tôi: bạn thấy điều gì sai khi làm cho hình ảnh có thể nhấp được?
Waldyrious

36

Văn bản sau đây cho thấy cấu trúc thư mục.

mtk4@laptop:/$ pwd
/
mtk4@laptop:/$ tree -L 1
.
|-- bin
|-- boot
|-- cdrom
|-- dev
|-- etc
|-- home
|-- lib
|-- lost+found
|-- media
|-- mnt
|-- opt
|-- proc
|-- root
|-- run
|-- sbin
|-- selinux
|-- srv
|-- sys
|-- tmp
|-- usr
|-- var

Các thành phần chính ở đây là:

  1. /boot : Chứa bộ tải khởi động

  2. /home : Chứa các thư mục nhà của người dùng.

  3. /bin : Tất cả các nhị phân và lệnh thực thi được sử dụng bởi tất cả người dùng trên hệ thống được đặt ở đây.

  4. /sbin : Điều này chứa các nhị phân thực thi hệ thống thường được sử dụng bởi các quản trị viên hệ thống.

  5. /lib : Chứa các thư viện hệ thống hỗ trợ các nhị phân trong / bin và / sbin.

  6. /etc : Chứa các tệp cấu hình cho mạng, thời gian khởi động, v.v.

  7. /dev : Điều này có các tệp thiết bị, ví dụ như usb, thiết bị đầu cuối hoặc bất kỳ thiết bị nào khác được gắn vào hệ thống được hiển thị ở đây.

  8. /proc : Chứa thông tin về quá trình đang chạy.

  9. /tmp: Đây là thư mục tạm thời có nhiều quy trình tạo các tệp tạm thời cần thiết. Điều này được thanh lọc mỗi khi máy được khởi động.

Để biết thêm chi tiết, liên kết Thegeek ware giải thích hoàn hảo hệ thống tệp linux chung.


20

\Userstương đương với /home. Tên của /usrlà một cổ vật lịch sử.

Tương đương kết hợp của \Windows\Program Fileslà sự kết hợp của /bin, /boot, /etc, /lib, /sbin, /tmp, /usr/var. Linux và Windows tách ra cài đặt phần mềm khác nhau. Windows phân biệt giữa hệ điều hành và các chương trình đồng hành. Linux không tạo ra sự khác biệt này theo cùng một cách; hầu hết nếu không phải tất cả phần mềm đều thông qua Ubuntu (nhà phân phối) và được cài đặt trong cùng phân cấp thư mục và vì phần mềm được trình quản lý gói theo dõi, nên không cần lưu trữ từng chương trình trong thư mục riêng. Trên Linux:

  • /etc dành cho các tệp cấu hình hệ thống: các tệp cấu hình ảnh hưởng đến tất cả người dùng, cho dù chúng áp dụng cho toàn bộ hệ điều hành hay cho một ứng dụng cụ thể.
  • /usr dành cho mã hệ thống và dữ liệu (chương trình, thư viện, tài liệu, v.v.).
  • /vardành cho dữ liệu tạm thời hoặc dữ liệu tạm thời: tệp tạm thời, nhật ký, cơ sở dữ liệu quản lý gói, cuộn máy in, tệp lưu trò chơi, v.v. Ngoài ra còn có /tmpcác tệp tạm thời có thể bị xóa trong quá trình khởi động lại.
  • /bin, /lib/sbintrong thư mục gốc có các đối tác trong /usr. Các tập tin bên ngoài /usrlà những tập tin cần thiết sớm trong quá trình khởi động. Đây là một di tích từ thời các đĩa nhỏ và /usrcó thể nằm trên một hệ thống tệp được chia sẻ giữa một số máy trạm trên mạng, nó không thực sự là một điểm khác biệt hữu ích trên hầu hết các hệ thống.
  • /boot chứa một vài tệp chỉ cần để khởi động hệ điều hành chứ không phải cho hoạt động hàng ngày.

Có những thư mục bổ sung không tương ứng với bất cứ thứ gì Windows có:

  • /rootlà thư mục gốc của người dùng. Người dùng root là tài khoản quản trị viên không bị ràng buộc với bất kỳ người dùng cụ thể nào; đó là người dùng mà bạn thay đổi khi bạn chạy sudo. Ubuntu không cho phép người dùng root đăng nhập theo mặc định.
  • /media/mntlà các điểm gắn kết: chúng là nơi bạn có thể thấy các hệ thống tệp của các hệ điều hành và ổ đĩa từ xa khác. Tương đương Windows là các ký tự ổ đĩa khác.
  • /proc/syshiển thị thông tin hệ thống. Trên Windows, bạn cần lội qua các menu hoặc gọi lệnh hệ thống hoặc cài đặt chương trình của bên thứ ba để xem thông tin này.

Ubuntu, giống như các bản phân phối Linux khác, thường tuân theo Tiêu chuẩn phân cấp hệ thống tập tin Linux .


5

Ubuntu (giống như tất cả các hệ thống giống như UNIX) tổ chức các tệp trong cây phân cấp, nơi các mối quan hệ được nghĩ đến trong các nhóm trẻ em và phụ huynh. Thư mục có thể chứa các thư mục khác cũng như các tệp thông thường, đó là "lá" của cây. Bất kỳ yếu tố nào của cây đều có thể được tham chiếu theo tên đường dẫn; một tên đường dẫn tuyệt đối bắt đầu bằng ký tự / (xác định thư mục gốc, chứa tất cả các thư mục và tệp khác), sau đó mọi thư mục con phải được duyệt để đến phần tử được liệt kê, mỗi ký tự được phân tách bằng dấu /.

Tên đường dẫn tương đối là tên không bắt đầu bằng /; trong trường hợp đó, cây thư mục được duyệt bắt đầu từ một điểm đã cho, nó thay đổi tùy theo ngữ cảnh, được gọi là thư mục hiện tại. Trong mỗi thư mục, có hai thư mục đặc biệt được gọi. và .., tương ứng với thư mục chính và thư mục mẹ của nó.

Thực tế là tất cả các tệp và thư mục đều có gốc chung có nghĩa là, ngay cả khi một số thiết bị lưu trữ khác nhau có mặt trên hệ thống, tất cả chúng đều được xem là thư mục ở đâu đó trên cây, một khi chúng được gắn vào vị trí mong muốn

Tìm ví dụ và biết thêm thông tin ở đây :

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.