Thông tin liên hệ
- 036.686.3943
- admin@nguoicodonvn2008.info
Bạn có bao giờ thắc mắc tại sao các một số chương trình trong Linux được lưu dưới các thư mục khác nhau như /bin, /sbin, /usr/bin hay /usr/sbin?
Ví dụ như, một số được lưu trong /usr/bin. Sao không là /bin hay /sbin? Điểm khác biệt giữa các thư mục đó là gì?

Trong bài viết này, chúng tôi sẽ ôn lại giúp bạn về cấu trúc file hệ thống của Linux và ý nghĩa của từng thư mục chính.
Đúng với tên gọi của mình: nút gốc (root) đây là nơi bắt đầu của tất cả các file và thư mục. Chỉ có root user mới có quyền ghi trong thư mục này. Chú ý rằng /root là thư mục home của root user chứ không phải là /.
Thư mục này chứa các chương trình thực thi. Các chương trình chung của Linux được sử dụng bởi tất cả người dùng được lưu ở đây. Ví dụ như: ps, ls, ping...
Cũng giống như /bin, /sbinn cũng chứa các chương trình thực thi, nhưng chúng là những chương trình của admin, dành cho việc bảo trì hệ thống. Ví dụ như: reboot, fdisk, iptables...
Thư mục này chứa các file cấu hình của các chương trình, đồng thời nó còn chứa các shell script dùng để khởi động hoặc tắt các chương trình khác. Ví dụ: /etc/resolv.conf, /etc/logrolate.conf
Các phân vùng ổ cứng, thiết bị ngoại vi như USB, ổ đĩa cắm ngoài, hay bất cứ thiết bị nào gắn kèm vào hệ thống đều được lưu ở đây. Ví dụ: /dev/sdb1 là tên của USB bạn vừa cắm vào máy, để mở được USB này bạn cần sử dụng lệnh mount với quyền root: # mount /dev/sdb1 /tmp
Thư mục này chứa các file tạm thời được tạo bởi hệ thống và các người dùng. Các file lưu trong thư mục này sẽ bị xóa khi hệ thống khởi động lại.
Thông tin về các tiến trình đang chạy sẽ được lưu trong /proc dưới dạng một hệ thống file thư mục mô phỏng. Ví dụ thư mục con /proc/{pid} chứa các thông tin về tiến trình có ID là pid (pid ~ process ID). Ngoài ra đây cũng là nơi lưu thông tin về về các tài nguyên đang sử dụng của hệ thống như: /proc/version, /proc/uptime...
Thông tin về các biến của hệ thống được lưu trong thư mục này. Như thông tin về log file: /var/log, các gói và cơ sở dữ liệu /var/lib...
Chứa các thư viện, file thực thi, tài liệu hướng dẫn và mã nguồn cho chương trình chạy ở level 2 của hệ thống. Trong đó
Thư mục này chứa tất cả các file cá nhân của từng người dùng. Ví dụ: /home/john, /home/marie
Tất cả các file yêu cầu khi khởi động như initrd, vmlinux. grub được lưu tại đây. Ví dụ vmlixuz-2.6.32-24-generic
Chứa cá thư viện hỗ trợ cho các file thực thi trong /bin và /sbin. Các thư viện này thường có tên bắt đầu bằng ld* hoặc lib*.so.*. Ví dụ như ld-2.11.1.so hay libncurses.so.5.7
Tên thư mục này nghĩa là optional (tùy chọn), nó chứa các ứng dụng thêm vào từ các nhà cung cấp độc lập khác. Các ứng dụng này có thể được cài ở /opt hoặc một thư mục con của /opt
Đây là thư mục tạm để mount các file hệ thống. Ví dụ như # mount /dev/sda2 /mnt
Thư mục tạm này chứa các thiết bị như CdRom /media/cdrom. floppy /media/floopy hay các phân vùng đĩa cứng /media/Data (hiểu như là ổ D:/Data trong Windows)
Chứa dữ liệu liên quan đến các dịch vụ máy chủ như /srv/svs, chứa các dữ liệu liên quan đến CVS.
Phần này sẽ chỉ cho bạn cách xem cấu trúc thư mục bằng lệnh tree. Lệnh này sẽ hiển thị nội dung của một thư mục ở định dạng cây.
Nếu bạn chạy lệnh tree mà không có bất kỳ đối số nào, lệnh tree sẽ hiển thị tất cả nội dung của thư mục làm việc hiện hành ở định dạng cây.
$ tree
Đầu ra mẫu:

Sau khi hoàn thành việc liệt kê tất cả các file/thư mục được tìm thấy, lệnh tree trả về tổng số file và/hoặc thư mục được liệt kê. Như bạn thấy trong đầu ra ở trên, thư mục hiện tại chứa 3321 thư mục con và 40023 file.
Để liệt kê các file của thư mục cụ thể ở định dạng cây, chẳng hạn như /etc, hãy chạy lệnh:
$ tree /etc/
Đầu ra mẫu:

Theo mặc định, lệnh tree sẽ không liệt kê các file ẩn. Nếu bạn muốn liệt kê các file ẩn, hãy sử dụng tham số -a như bên dưới.
$ tree -a /etc/
Đầu ra mẫu:

Bây giờ, hãy kiểm tra đầu ra ở trên. Tổng số thư mục và file cao hơn đầu ra trước đó. Đó là bởi vì, lần này lệnh tree liệt kê tất cả các thư mục và file, bao gồm cả file ẩn.
Để xem cấu trúc thư mục ở định dạng màu, hãy sử dụng tham số -C.
$ tree -C /etc/
Đầu ra mẫu:

Bạn có để ý không? Bây giờ, lệnh tree liệt kê các thư mục và file với những màu khác nhau. Điều này sẽ hữu ích trong việc phân biệt các thư mục và file.
Như bạn có thể nhận thấy, tất cả các lệnh trên đều liệt kê các thư mục con và file. Bạn cũng có thể chỉ liệt kê các thư mục sử dụng tham số -d như bên dưới.
$ tree -d /etc/
Đầu ra mẫu:

Bạn cũng có thể hiển thị danh sách thư mục theo từng dòng bằng cách sử dụng lệnh sau:
$ tree -d /etc/ | less
Nhấn ENTER để điều hướng qua đầu ra.
Theo mặc định, lệnh tree sẽ liệt kê tất cả các thư mục con và file bên trong thư mục chính. Để giới hạn độ sâu hoặc mức độ đệ quy, hãy sử dụng tham số -L như bên dưới.
$ tree -L 2 /etc
Ở đây, L cho biết độ sâu hiển thị tối đa của cây thư mục.
Để biết thêm chi tiết, hãy tham khảo các trang man:
$ man tree
Nguồn tin: Quantrimang.com
Ý kiến bạn đọc
Những tin mới hơn
Những tin cũ hơn
Cách kết nối ChatGPT với Google Sheets
Sự khác biệt giữa tự động hóa và AI Agent
Prompt xây dựng bài giảng hoàn chỉnh theo GDPT 2018
Xây dựng agent trong Copilot Studio
Jasper vs Copy.ai: Công cụ AI nào tốt hơn?
5 công cụ AI trong Photoshop tuyệt vời cho người mới bắt đầu chỉnh sửa ảnh
Prompt tạo infographic khoa học về các loài động vật hoang dã
Tìm hiểu về Seedream 5.0 Pro: Mô hình xử lý hình ảnh AI của ByteDance với khả năng chỉnh sửa dựa trên layer
Prompt tạo ảnh chân dung phong cách bìa tạp chí nghệ thuật tối giản
ChatGPT, Claude hay Gemini làm tốt hơn khi trợ giúp build PC?
Hướng dẫn dịch nội dung trên Notion AI
15 prompt quản lý công việc bằng Notion AI
Các mô hình AI tốt nhất cho Agentic Workflow năm 2026
Power Automate vs UiPath: Nên chọn công cụ nào?
Tìm hiểu về Muse Spark 1.1: LLM cạnh tranh mới của Meta
Hướng dẫn lựa chọn và xây dựng đề tài SKKN
3 lỗi thường gặp khi sử dụng Claude Code Skills
Hướng dẫn xây dựng công tác chủ nhiệm đầu năm học từ A đến Z
Cấu hình chi tiết và hướng dẫn cho agent trong Copilot Studio
AgentsView là gì?