Người mới bắt đầu Linux đối mặt núi thông tin phải học: Terminal là gì? Chạy update software như thế nào? Chọn distro nào? Đó là câu hỏi phổ biến. Tuy nhiên, vẫn có câu hỏi khiến nhiều user Linux giàu kinh nghiệm đau đầu: mỗi thư mục trong virtual directory system Linux chứa gì? Bài viết cover từ "/" đến "/boot" trong hướng dẫn virtual directory system Linux.
Linux Virtual Directory System là gì?
Virtual Directory System là cách tổ chức file và thư mục trong OS. Gọi "virtual" vì không có physical component thực – trên Windows, bạn có ổ "C:", "D:", v.v. Trên Linux, tất cả physical disk được treat như file trong virtual directory system. Đấy là nguồn gốc cụm từ "everything is a file". ngay cả ổ cứng chứa OS bạn đang dùng cũng được treat như file.
Hiểu Virtual Directory System
Thư mục gốc (root directory): /
Bắt đầu từ đầu. Thư mục "/" (hay "root") chứa mọi thứ trong hệ thống. Chạy cd / là zoom out tối đa trên hệ thống. Chuyển đến "/" và chạy ls. Bạn bắt đầu hiểu. Thay vì "Documents", "Downloads", "Pictures", bạn thấy "bin", "dev", "home". Sẽ khác một chút tùy distro, nhưng có core directory gần như luôn có. Tất cả thư mục từ đây sẽ có "/" đầu vì đó là root của mọi thứ – hence the name "root".
Thư mục Binary: /bin
"/bin" chứa tất cả binary program trong hệ thống. Nếu nhìn vào, thấy lệnh phổ biến như cd và ls đã dùng. Tìm bằng which cd hoặc which ls. Hầu hết distro hiện đại, "/bin" link đến "/usr/bin". "/usr" cover sau, nhưng tóm lại: tách binary cho system/admin ở "/bin" và system user ở "/usr/bin".
Thư mục Boot: /boot
"/boot" chứa thông tin basic hệ thống cần để khởi động. Tất cả kernel cài trên hệ thống, config file cho kernel, info Grub – tất cả. Thư mục rất quan trọng, được treat như EFI system partition tách biệt. Đó là lý do khi tạo manual partition, cần tạo riêng "/" và "/boot".
Thư mục Devices: /dev
"/dev" chứa tất cả device file trong hệ thống, là tất cả hardware component trên hệ thống (cũng như virtual device quan trọng như "null" và "random".) Nhìn vào, thấy "cpu", "sda", "tty", "stderr", "stdin", "stdout". Đó là device file quan trọng bạn tương tác hàng ngày.
Thư mục Etc: /etc
Nơi chứa "stuff" lẫn lộn. "/etc" (đọc như Etsy) là nơi tìm config file cho hầu hết thứ trong hệ thống. SSH, Pipewire, systemD, Firefox đều có config file ở đây. Giống "ngăn kéo tạp chất" của Virtual Directory System – siêu quan trọng nhưng hơi cồng kềnh tìm thứ.
Thư mục Home: /home
"/home" chứa file cá nhân của user. Khi user tạo, thường được cấp thư mục "/home" và permission chỉnh sửa chỉ file trong "/home" của họ. Một số user cũng được admin rights (đó là sudo), nhưng chỉ assume quyền root user. Chạy whoami và sudo whoami liên tiếp, bạn thấy điều đó. Đây là thư mục bạn quen thuộc nhất.
Thư mục Library: /lib, /lib32, /lib64
Các thư mục "/lib" chứa library cụ thể mà program trong "/bin" hoặc "/sbin" (cover sau) sẽ dùng. Nơi lưu firmware, cùng library khác cho cài các phần kernel và Kernel Modules. Thư mục chị em "/lib32" và "/lib64" chỉ chứa version cho OS 32-bit và 64-bit, gần như identical base "/lib".
Thư mục Media: /media và /mnt
Nhóm cùng nhau vì thường phục vụ cùng mục đích. "/media" lưu nội dung CD, DVD, removable media. Cắm USB drive, nó pop up ở "/media" trên hầu hết hệ thống.
"/mnt" dùng cho mount dài hạn. Ví dụ: thêm SSD vào hệ thống, có thể setup permanent mount point ở "/mnt". Hoặc có NAS tại nhà, mount info đó ở "/mnt".
/opt
"/opt" chứa additional software package cho user dùng. Nhỏ hơn bạn nghĩ – của tác giả chỉ chứa file Brave, Google Chrome, Sublime Text. Thêm repo cho phần mềm, có thể tìm thấy ở "/opt".
/proc
"/proc" chứa hardware info và ongoing process info. Khi hệ thống tìm hiểu hardware landscape, lưu ở "/proc". Ví dụ chạy cat /proc/cpuinfo, bạn biết về CPU nhiều hơn bạn từng nghĩ.
/root
Đây chỉ là phiên bản "/home" của root user. Nếu làm việc nhiều as root user, bạn sẽ thấy thứ ở đó.
/run
"/run" hơi giống "/proc" – chỉ thay vì hardware, "/run" focus trên software. Cả hai lưu "volatile runtime data", nghĩa là thư mục này gần như clear mỗi reboot, nhưng lưu thứ hữu ích khi OS học về hệ thống và bạn dùng nó làm gì.
/sbin
"/sbin" chứa binary program chỉ nên available cho root user. Ví dụ: binary tắt máy (poweroff) nên ở "/sbin".
/srv
Thư mục chứa data site-specific dựa trên web-accessible service bạn chạy. FTP, HTTP sẽ có info cụ thể ở đây. Tác giả không chạy service nào, nên "/svr" trống.
/sys
"/sys" chứa info key device trong hệ thống. Của tác giả thấy "/sys/dev", "/sys/firmware", "/sys/kernel". Đây là cherry-picking super important hardware device từ "/dev".
/tmp
"/tmp" lưu temporary info từ các program trên hệ thống. Info lưu vài ngày không reboot, chỉ temporary lock info để free storage khác. Hầu hết user không bao giờ làm gì với "/tmp".
/usr
"/usr" ngày càng thường được touch. Giờ thư mục như "/bin", "/lib", "/sbin" link đến version của chúng trong "/usr". Thấy điều đó khi chạy ll trên hệ thống tác giả.
Chúng là soft link, có thể unlink, nhưng hệ thống đọc từ "/usr/bin" hoặc "/usr/sbin" thay vì "/bin" hoặc "/sbin". Tất cả để simplify hierarchy và dễ tìm program hơn. Quality-of-life thing tốt làm dễ chuyển từ Linux sang Unix hoặc không fixed location cho binary.
/var
"/var" giống "/tmp" nhưng giữ data lâu hơn. Cũng lưu log file và KVM VM disk image.
Như bạn thấy, Linux virtual directory system nhằm organize file hệ thống dùng và đơn giản hóa administer/manage hệ thống. Chắc chắn, bạn có thể làm gì muốn với hệ thống này (đó là vẻ đẹp Linux), nhưng để nguyên trạng cũng fine cho hầu hết desktop user. Bạn cũng có thể muốn tìm hiểu filesystem nào tốt nhất cho Linux 2021.