Cấu trúc thư mục var linux

Để tìm hiểu và sử dụng hệ điều hành Linux, việc hiểu được cấu trúc tệp tin của nó là điều cực kỳ quan trọng. Nếu bạn là người chuyển từ Windows sang, bạn sẽ thấy ngạc nhiên vì cấu trúc các tệp tin khác hẳn và không hiểu nổi các ổ đĩa của mình bây giờ nằm ở chỗ nào. 

Hệ điều hành Linux coi tất cả đều là các tệp tin [file] thậm chí cả các thiết bị cũng như ổ đĩa. Nó quản lý tất cả trên một “hệ thống tệp tin” duy nhất mặc dù các tệp tin này có thể nằm ở nhiều phân vùng ổ đĩa vật lý khác nhau, bắt đầu ở gốc là một thư mục “root” và đây là thư mục ở mức cao nhất. Cấu trúc cơ bản của hệ thống tệp tin này được mô tả như hình vẽ ở bên dưới


Bạn có thể dùng lệnh ls để liệt kê các thư mục và tệp tin nằm trong root như sau:

$ ls / # / đại diện cho thư mục root.

1. / – Thư mục gốc [Root]

Đú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 ‘/’ khác với ‘/root’ là thư mục home của root user còn ‘/’ thư mục gốc trong đó có chứa thư mục root.

2. /bin – Chương trình của người dùng [User Binaries]

Thư mục này chứa các chương trình thực thi và các chương trình khởi động của hệ thống. 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.

Đối lập với /sbin/ thư mục này chứa rất nhiều ứng dụng khác nhau dùng được cả cho việc bảo trì hệ thống của root, cũng như các lệnh cho người dùng thông thường. Thư mục này thông thường chứa hệ vỏ [Shell], cũng như rất nhiều lệnh hữu dụng như cp [sao chép], mv [di chuyển], cat, ls, ping, ps. Cũng giống như sbin, thư mục /usr/bin cũng chứa các tệp tin có chức năng tương tự như /bin.

3. /sbin – Chương trình hệ thống [System Binaries]

Thư mục này chứa các file thực thi của hệ thống dành cho người quản trị [root], các file thực thi dạng binary [nhị phân] của các chương trình cơ bản giúp hệ thống có thể hoạt động. Các lệnh bên trong /sbin thường được sử dụng dùng cho các mục đích là duy trì quản trị hệ thống. Các lệnh này yêu cầu phải có quyền root.
Một số lệnh trong đây ví dụ: reboot, fdisk, iptables, lilo, fdisk, init, ifconfig v.v.. Để liệt kê, bạn dùng lệnh “ls /sbin/”.
Còn một thư mục mà nó chứa các tệp tin thi hành cho hệ thống là /usr/sbin/. Nhưng các chương trình ở đây không được sử dụng để bảo trì hệ thống.

4. /etc – Các file cấu hình [Configuration Files]

Thư mục này chứa các file cấu hình của các chương trình hoạt động, thường là các tệp tin dạng text thường, đồ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 [cấu hình dns-server ]
/etc/network dùng để quản lý dịch vụ network
Ở /etc có một thư mục quan trọng đó là /etc/rc.d. Nơi đây thường chứa các scripts dùng để start, stop, kiểm tra status cho các chương trình.

5. /dev – Các file thiết bị [Device Files]

Đây là một thư mục thú vị nhất, nó thể hiện một cách rõ ràng là hệ điều hành Linux coi mọi thứ đều là các tệp tin và thư mục.
Trong thư mục này bạn có thể thấy rất nhiều tệp tin đại diện cho các phân vùng ổ cứng, các thiết bị ngoại vi như USB, ổ đĩa cắm ngoài, cổng COM, ổ SATA v.v.. hay bất cứ thiết bị nào gán kèm vào hệ thống đều được lưu ở đây. Bạn liệt kê chúng ra bằng lệnh “ls /dev/”. Bạn sẽ thấy rất nhiều nhưng không phải chúng đều có thật trên máy tính của bạn đâu nhé. Chẳng hạn bạn chỉ có một cổng COM nhưng ở đây bạn sẽ thấy không chỉ có một.
Ví dụ:
/dev/sda : đây là ổ đĩa SATA thứ nhất
/dev/cdrom : ổ CD
/dev/fd0 : ổ đĩa mềm
/dev/hda1 : phân vùng 1 của ổ HDD1
/dev/hda2 : phân vùng 2 của ổ HDD1
/dev/ttyS0 : cổng COM1
/dev/sdb1 : USB bạn 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

6. /tmp – Các file tạm [Temporary Files]

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.

7. /proc – Thông tin về các tiến trình [Process Infomation]

Là một pseudo filesystem chứa 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à một virtual filesystem nơi lưu thông tin tài nguyên hệ thống như: /proc/cpuinfo cung cấp cho ta thông số kỹ thuật của CPU, /proc/version, /proc/uptime… Bạn có thể xem bằng lệnh ‘cat’: $cat /proc/cpuinfo

8. /var – File về biến của chương trình

Chứa đựng các file có sự thay đổi kích thước trong quá trình hoạt động của hệ điều hành cũng như các ứng dụng. Ví dụ:
+ nhật ký của hệ thống /var/log
+ database file /var/lib
+ email /var/mail
+ các hàng đợi in ấn: /var/spool
+ lock file: /var/lock
+ Các file tạm thời cần cho quá trình reboot: /var/tmp
+ Dữ liệu cho trang web: /var/www

9. /usr – Chương trình của người dùng

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 đó

  • /usr/bin chứa file binary thực thi cho các chương trình của người dùng [user]. Nếu như một user trong quá trình thực thi một lệnh ban đầu sẽ tìm kiếm trong /bin, nếu như không có thì sẽ tiếp tục nhìn vào /usr/bin. Ví dụ một số lệnh như at. awk, cc…
  • /usr/sbin chứa các file binary thực thi của hệ thống dưới quyền của system administrator. Nếu như ta không tìm thấy các file system binary bên dưới /sbin thì ta có thể tìm ở trong /usr/sbin. Ví dụ một số lệnh như cron, sshd, useradd, userdel
  • /usr/lib chứa các file libraries cho /usr/bin và /usr/sbin
  • /usr/local dùng để chứa chương trình của các user, các chương trình này được cài đặt từ source. Ví dụ khi ta install apache từ source thì nó sẽ nằm ở vị trí là/usr/local/apache2

Nếu nâng cấp hệ thống thì các chương trình bạn cài đặt trong thư mục /usr/local vần giữ nguyên và bạn không phải sợ các chương trình bị mất mát. Thư mục này tương tự như thư mục C:\Program Files của Windows.

10. /home – Thư mục người của dùng

Thư mục này chứa thông tin, dữ liệu , cấu hình riêng cho từng user. Nó giống như thư mục “C:\Documents and Settings” trong Windows XP. Ví dụ: /home/john, /home/marie

11. /boot – Các file khởi động

Nó chứa các tệp tin khởi động và cả nhân kernel là vmlinuz. Trong các bản phân phối gần đây, nó cũng chứa cả dữ liệu cho grub. Phần mềm khởi động Grub [viết tắt của GRand Unified Boot loader] ngày nay được sử dụng khá phổ biến.

12. /lib – Thư viện hệ thống

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

13. /opt – Các ứng dụng phụ tùy chọn

Tên thư mục này nghĩa là optional [tùy chọn], nó chứa các phần mềm hoặc ứng dụng không nằm trong phần cài đặt mặc định được thêm vào từ các nhà cung cấp độc lập khác thường là hãng thứ 3. Các ứng dụng này có thể được cài ở /opt hoặc một thư mục con của /opt

10. /mnt – Mount Directory

Chứa các thư mục dùng để system admin thực hiện quá trình mount. Như đã nói, hệ điều hành Linux coi tất cả là các file và lưu giữ trên một cây chung. Đây chính nơi tạo ra các thư mục để ‘gắn’ các phân vùng ổ đĩa cứng cũng như các thiết bị khác vào. Sau khi được mount vào đây, các thiết bị hay ổ cứng được truy cập từ đây như là một thư mục. Ví dụ như # mount /dev/sda2 /mnt

15. /media – Các thiết bị gắn có thể gỡ bỏ

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]

16. /srv – Dữ liệu của các dịch vụ khác

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.

17. /lost+found

Vì một lý do bất ngờ nào đó như lỗi phần mềm, mất điện v..v, hệ thống có thể đổ vỡ. Khi khởi động lại, hệ thống sẽ kiểm tra lại hệ thống filesystem bằng lệnh fchk và cố gắng phục hồi lại các lỗi mà nó tìm thấy. Kết quả của việc này sẽ được lưu giữ trong thư mục /lost+found.

Ngoài ra nếu quan tâm đến lập trình thì ta có thể tìm hiểu thêm một số thư mục khác như:

/usr/include, /usr/local/inlcude: Chứa các file header cần dùng khi biên dịch các chương trình nguồn viết bằng C/C++.

/usr/src: Thư mục chứa mã nguồn kể cả mã nguồn của Linux.

/usr/man: Chứa tài liệu hướng dẫn [manual].

Tại File System [phân vùng cài đặt chính] được xem là thư mục gốc, kí hiệu bằng kí tự “/”. Địa chỉ của các tập tin, thư mục đều xuất phát từ đây. Ví dụ: Di chuyển vào thư mục người dùng có tên example, dùng lệnh cd như sau:

cd /home/example

Dấu xổ đầu tiên “/” từ thư mục gốc vào thư mục home, rồi đến thư mục người dùng example.

Mỗi ổ đĩa [phân vùng hay partition] khác được nhận diện và gắn [mount] vào hệ thống thư mục gốc giống như một thư mục bình thường.

 

Để biết được thư mục đang nằm trên phân vùng nào các bạn hãy sử dụng lệnh df với đối số là dấu chấm [.] biểu diễn thư mục hiện hành.

Chủ Đề