Cấu trúc thư mục Linux, được giải thích

Tác giả Starlink, T.M.Một 01, 2024, 07:44:09 CHIỀU

« Chủ đề trước - Chủ đề tiếp »

0 Thành viên và 1 Khách đang xem chủ đề.

Nếu bạn đến từ Windows, cấu trúc hệ thống tập tin của Linux có thể có vẻ khá lạ lẫm.

Nếu bạn đến từ Windows, cấu trúc hệ thống tệp Linux có vẻ khá lạ lẫm. Ổ đĩa C: và các ký tự ổ đĩa đã biến mất, thay vào đó là dấu / và các thư mục có âm thanh khó hiểu, hầu hết đều có tên gồm ba chữ cái.


Tiêu chuẩn phân cấp hệ thống tệp (FHS) định nghĩa cấu trúc của hệ thống tệp trên Linux và các hệ điều hành giống UNIX khác. Tuy nhiên, hệ thống tệp Linux cũng chứa một số thư mục chưa được tiêu chuẩn định nghĩa.

1. / – Thư mục gốc

Mọi thứ trên hệ thống Linux của bạn đều nằm trong thư mục /, được gọi là thư mục gốc. Bạn có thể nghĩ thư mục / tương tự như thư mục C: trên Windows—nhưng điều này không hoàn toàn đúng, vì Linux không có ký tự ổ đĩa. Trong khi một phân vùng khác sẽ nằm tại D: trên Windows, phân vùng khác này sẽ xuất hiện trong một thư mục khác dưới / trên Linux.


2. /bin – Tệp nhị phân người dùng thiết yếu

Thư mục /bin chứa các tệp nhị phân người dùng thiết yếu (chương trình) phải có khi hệ thống được gắn kết ở chế độ người dùng đơn. Các ứng dụng như Firefox, nếu không được cài đặt dưới dạng Snaps, được lưu trữ trong /usr/bin, trong khi các chương trình và tiện ích hệ thống quan trọng như bash shell nằm trong /bin. Thư mục /usr có thể được lưu trữ trên một phân vùng khác. Đặt các tệp này trong thư mục /bin đảm bảo hệ thống sẽ có các tiện ích quan trọng này ngay cả khi không có hệ thống tệp nào khác được gắn kết. Thư mục /sbin cũng tương tự: nó chứa các tệp nhị phân quản trị hệ thống thiết yếu.


3. /boot – Các tập tin khởi động tĩnh

Thư mục /boot chứa các tệp cần thiết để khởi động hệ thống. Ví dụ, các tệp của trình tải khởi động GRUB và hạt nhân Linux của bạn được lưu trữ tại đây. Tuy nhiên, các tệp cấu hình của trình tải khởi động không nằm ở đây; chúng nằm trong /etc cùng với các tệp cấu hình khác.

4. /cdrom – Điểm gắn kết lịch sử cho CD-ROM

Thư mục /cdrom không phải là một phần của tiêu chuẩn FHS, nhưng bạn vẫn có thể tìm thấy nó trên Ubuntu và các hệ điều hành khác. Đây là vị trí tạm thời cho các đĩa CD-ROM được lắp vào hệ thống. Tuy nhiên, vị trí chuẩn cho phương tiện tạm thời nằm bên trong thư mục /media.

5. /dev – Tập tin thiết bị

Linux hiển thị các thiết bị dưới dạng tệp và thư mục /dev chứa một số tệp đặc biệt đại diện cho các thiết bị. Đây không phải là các tệp thực tế như chúng ta biết, nhưng chúng xuất hiện dưới dạng tệp. Ví dụ, /dev/sda đại diện cho ổ đĩa SATA đầu tiên trong hệ thống. Nếu bạn muốn phân vùng ổ đĩa này, bạn có thể khởi động trình chỉnh sửa phân vùng và yêu cầu nó chỉnh sửa /dev/sda.

Thư mục này cũng chứa các thiết bị giả, là các thiết bị ảo không thực sự tương ứng với phần cứng. Ví dụ, /dev/random tạo ra các số ngẫu nhiên. /dev/null là một thiết bị đặc biệt không tạo ra đầu ra và tự động loại bỏ tất cả đầu vào; khi bạn chuyển đầu ra của lệnh đến /dev/null, bạn loại bỏ nó.


6. /etc – Các tập tin cấu hình

Thư mục /etc chứa các tệp cấu hình, thường có thể được chỉnh sửa thủ công trong trình soạn thảo văn bản. Lưu ý rằng thư mục /etc/ chứa các tệp cấu hình toàn hệ thống. Các tệp cấu hình dành riêng cho người dùng nằm trong thư mục home của mỗi người dùng.

7. /home – Thư mục trang chủ

Thư mục /home chứa một thư mục home cho mỗi người dùng. Ví dụ, nếu tên người dùng của bạn là bob, bạn có một thư mục home nằm tại /home/bob. Thư mục home này chứa các tệp dữ liệu của người dùng và các tệp cấu hình dành riêng cho người dùng. Mỗi người dùng chỉ có quyền ghi vào thư mục home của riêng họ và phải có được quyền nâng cao (trở thành người dùng root) để sửa đổi các tệp khác trên hệ thống.


8. /lib – Thư viện chia sẻ thiết yếu

Thư mục /lib chứa các thư viện cần thiết cho các tệp nhị phân thiết yếu trong thư mục /bin và /sbin. Các thư viện cần thiết cho các tệp nhị phân trong thư mục /usr/bin nằm trong /usr/lib. Bạn cũng sẽ thấy một thư mục tương ứng /lib64 trên các hệ thống 64 bit.

9. /lost+found – Các tập tin được phục hồi

Mỗi hệ thống tệp Linux đều có một thư mục lost+found. Nếu hệ thống tệp bị sập, một kiểm tra hệ thống tệp sẽ được thực hiện khi khởi động tiếp theo. Bất kỳ tệp bị hỏng nào được tìm thấy sẽ được đặt trong thư mục lost+found, do đó bạn có thể cố gắng khôi phục càng nhiều dữ liệu càng tốt.

10. /media – Phương tiện di động

Thư mục /media chứa các thư mục con nơi các thiết bị phương tiện di động được lắp vào máy tính được gắn kết. Ví dụ, khi bạn lắp một đĩa CD vào hệ thống Linux của mình, một thư mục sẽ tự động được tạo bên trong thư mục /media. Bạn có thể truy cập nội dung của đĩa CD bên trong thư mục này.

11. /mnt – Điểm gắn kết tạm thời

Theo truyền thống, thư mục /mnt là nơi quản trị viên hệ thống gắn hệ thống tệp tạm thời trong khi sử dụng chúng. Ví dụ, nếu bạn đang gắn phân vùng Windows để thực hiện một số hoạt động khôi phục tệp, bạn có thể gắn nó tại /mnt/windows. Tuy nhiên, bạn có thể gắn các hệ thống tệp khác ở bất kỳ đâu trên hệ thống.

12. /opt – Các gói tùy chọn

Thư mục /opt chứa các thư mục con cho các gói phần mềm tùy chọn. Nó thường được sử dụng bởi phần mềm độc quyền không tuân theo hệ thống phân cấp tệp tiêu chuẩn. Ví dụ, một chương trình độc quyền có thể đổ các tệp của nó vào /opt/application khi bạn cài đặt nó.

13. /proc – Các tập tin Kernel và Process

Thư mục /proc tương tự như thư mục /dev vì nó không chứa các tệp chuẩn. Nó chứa các tệp đặc biệt biểu diễn thông tin hệ thống và quy trình.


14. /root – Thư mục gốc

Thư mục /root là thư mục home của người dùng root. Thay vì nằm ở /home/root, nó nằm ở /root. Thư mục này khác với /, là thư mục gốc của hệ thống.

15. /run – Tệp trạng thái ứng dụng

Thư mục /run cung cấp cho các ứng dụng một nơi chuẩn để lưu trữ các tệp tạm thời mà chúng cần như socket và ID tiến trình. Các tệp này không thể được lưu trữ trong /tmp vì các tệp trong /tmp có thể bị xóa.

16. /sbin – Tệp nhị phân quản trị hệ thống

Thư mục /sbin tương tự như thư mục /bin. Thư mục này chứa các tệp nhị phân thiết yếu thường được người dùng root chạy để quản trị hệ thống.


17. /snap – Lưu trữ cho các gói Snap

Một thư mục khác không phải là một phần của FHS nhưng thường thấy hiện nay là /snap. Thư mục này chứa các gói Snap đã cài đặt và các tệp khác liên quan đến Snap. Ubuntu hiện sử dụng Snap theo mặc định, nhưng nếu bạn đang sử dụng một bản phân phối khác không có Snap, bạn sẽ không thấy thư mục này.

18. /srv – Dữ liệu dịch vụ

Thư mục /srv chứa "dữ liệu cho các dịch vụ do hệ thống cung cấp". Nếu bạn sử dụng máy chủ Apache HTTP để phục vụ một trang web, bạn có thể sẽ lưu trữ các tệp của trang web trong một thư mục bên trong thư mục /srv.

19. /tmp – Các tập tin tạm thời

Các ứng dụng lưu trữ các tệp tạm thời trong thư mục /tmp. Các tệp này thường bị xóa bất cứ khi nào hệ thống của bạn được khởi động lại và có thể bị xóa bất cứ lúc nào bởi các tiện ích như systemd-tmpfiles.

20. /usr – Tệp nhị phân của người dùng & Dữ liệu chỉ đọc

Thư mục /usr chứa các ứng dụng và tệp do người dùng sử dụng, trái ngược với các ứng dụng và tệp do hệ thống sử dụng. Ví dụ, các ứng dụng không cần thiết nằm bên trong thư mục /usr/bin thay vì thư mục /bin và các tệp nhị phân quản trị hệ thống không cần thiết nằm trong thư mục /usr/sbin thay vì thư mục /sbin. Thư viện cho mỗi tệp nằm bên trong thư mục /usr/lib. Thư mục /usr cũng chứa các thư mục khác. Ví dụ, các tệp độc lập với kiến trúc như đồ họa nằm trong /usr/share.

Thư mục /usr/local là nơi các ứng dụng được biên dịch cục bộ cài đặt theo mặc định. Điều này ngăn không cho chúng làm hỏng phần còn lại của hệ thống.


21. /var – Các tập tin dữ liệu biến

Thư mục /var là đối tác có thể ghi của thư mục /usr, phải chỉ đọc trong hoạt động bình thường. Các tệp nhật ký và mọi thứ khác thường được ghi vào /usr trong hoạt động bình thường được ghi vào thư mục /var. Ví dụ, bạn sẽ tìm thấy các tệp nhật ký trong /var/log.

Để biết thông tin kỹ thuật chi tiết hơn về hệ thống phân cấp tệp Linux, hãy tham khảo tài liệu Tiêu chuẩn phân cấp tệp.