Chương 3 Hệ thống tệp Linux thuộc bài giảng Linux và phần mềm mã nguồn mở, nội dung trong chương này trình bày về: khái niệm về hệ thống tệp logic, các thao tác với thư mục, các thao tác với tệp, inode.
Hệ thống tệp Linux Môn học Linux Phần mềm Mã nguồn mở TS Hà Quốc Trung Bộ môn Truyền thơng Mạng Máy tính Nội dung Khái niệm hệ thống tệp logic Các thao tác với thư mục Các thao tác với tệp inode @Hà Quốc Trung 2009 Hệ thống tệp logic @Hà Quốc Trung 2009 Cấu trúc hệ thống tệp Một/Nhiều phân cấp thư mục tệp Tệp nhóm bít Một thư mục dùng để tạo nhóm tệp liệu thư mục Thư mục gốc (/) điểm vào cho thư mục Các tệp nút @Hà Quốc Trung 2009 Các thư mục thông dụng Linux / (thư mục gốc) /bin : thư mục tệp chương trình /boot : thư mục chứa hạt nhân HĐH /etc : thư mục tệp cấu hình /dev : thư mục tệp thiết bị /home : thư mục chứa liệu NSD /lib : thư viện hệ thống /usr : thư mục ứng dụng /var : thư mục liệu cập nhật /proc @Hà Quốc Trung 2009 Tệp Linux vs tệp Windows Giống độ dài tối đa cho tên tệp Chấp nhận tất kí tự 255 để đặt tên tệp (nhưng nên tránh sử dụng kí tự đặc biệt * ? [ ] & để tránh nhập nhằng câu lệnh sử dụng sau này) Tính đặc thù Linux Quản lý khung nhìn tệp cho thư mục loại tài nguyên hệ thống (ngoại vi, bảng phân chương đĩa) Khơng có khái niệm phần mở rộng tên tệp (kí tự '.' tên tệp đối xử kí tự khác Không dùng ổ đĩa logic thư mục '/' dùng thay cho '\' đường dẫn thư mục @Hà Quốc Trung 2009 Đường dẫn thư mục đặc biệt Truy cập tệp thư mục cần dùng đường dẫn Đường dẫn có mốc từ thư mục đặc biệt / : thư mục gốc ~/ : thư mục nhà : thư mục : thư mục cha @Hà Quốc Trung 2009 Đường dẫn tương đối tuyệt đối @Hà Quốc Trung 2009 Lệnh quản lý thư mục pwd cd ls –la [tên thư mục] mkdir [-p] [tên thư mục mới] rmdir [tên thư mục rỗng] @Hà Quốc Trung 2009 Quản lý thư mục pwd: hiển thị đường dẫn tuyệt đối thư mục cd: thay đổi vị trí thư mục $ cd /home/tuananh $ cd tuananh ls: liệt kê tệp thư mục $ ls $ ls /home/tuananh $ ls –la tuananh tuỳ chọn -a cho phép hiển thị tệp ẩn tuỳ chọn -l cho phép hiển thị thuộc tính cho tệp (kiểu, quyền, liên kết, chủ sở hữu, nhóm sở hữu, kích thước, ngày sửa đổi) mkdir: tạo thư mục rỗng rmdir: xoá thư mục rỗng @Hà Quốc Trung 2009 10 Ví dụ $ ls -l *.[c,h] -rw-r r tuananh user1 2451 Feb -rw-r r tuananh user1 2451 Feb $ ls -l *prog drwxr-xr tuananh user1 512 Feb drwxr-xr tuananh user1 512 Feb $ ls -l * -rw-r r tuananh user1 451 Feb -rw-r r tuananh user1 225 Feb -rw-r r tuananh user1 351 Feb @Hà Quốc Trung 2009 07:30 myprog.c 07:30 myprog.h 10 19:12 c_prog 10 19:12 java_prog 07:30 bashrc 07:30 bash_profile 07:30 bash_logout 17 Quản lý tệp $cp file1 […] dir $mv file1 […] dir di chuyển nhiều tệp đến thư mục $rm file1 […] xoá chép nhiều tệp vào thư mục nhiều tệp tuỳ chọn -R (recursive) cho phép chép/di chuyển/xố tồn thư mục bao gồm thư mục @Hà Quốc Trung 2009 18 Quản lý tệp cat: xem nhanh tệp more: xem dòng less: xem trang tail: xem cuối trang touch: tạo tệp mới, cập nhật tệp cũ echo > [tên tệp] @Hà Quốc Trung 2009 19 Ví dụ $ ls -l -rw-r r tuananh drwxr-xr tuananh $ cp test.txt vanban $ ls -l vanban -rw-r r tuananh $ rm –R vanban $ ls -l -rw-r r tuananh $ rm test.txt $ ls -l $ user1 user1 16 Feb 10 19:12 test.txt 512 Feb 10 19:14 vanban user1 16 Feb 12 20:03 test.txt user1 16 Feb 10 19:12 test.txt @Hà Quốc Trung 2009 20 Khái niệm inode Một inode tạo cho điểm vào hệ thống tệp Nội dung tệp lưu khối liệu tệp rỗng = inode khơng có khối liệu Một thư mục tệp với nội dung bảng liên kết liên kết gắn tên tệp với inode hệ thống tệp @Hà Quốc Trung 2009 21 Liên kết vật lý (1) Một liên kết vật lý quan hệ tên tệp thư mục với inode Có thể có nhiều liên kết vật lý đến inode Lệnh ln cho phép tạo liên kết vật lý đến inode (tệp) tồn $ln fbis lien tệp chia sẻ inode khối liệu tệp ban đầu @Hà Quốc Trung 2009 22 Liên kết vật lý (2) Số liên kết vật lý đến inode xem lệnh ls –l $ ls -l -rw-rw-r tuananh user1 Nov 12 15:19 file drwxr-xr-x tuananh user1 4096 Dec 14 17:50 dir Tại với thư mục ln có liên kết vật lý? Xoá tệp (lệnh rm) đồng nghĩa với xoá liên kết Nếu liên kết vật lí cuối trỏ đến inode xố khối liên quan đến inode xoá theo @Hà Quốc Trung 2009 23 Liên kết biểu tượng ln -s R2/nouveau R3/lien_symbolique tạo liên kết biểu tượng (tuỳ chọn –s) inode tạo inode chứa tên (dạng tuyệt đối hay tương đối) phần tử trỏ tới @Hà Quốc Trung 2009 24 Liên kết biểu tượng vs Liên kết vật lý Liên kết biểu tượng cho phép tránh hạn chế mặt dung lượng thiết bị lưu trữ Một liên kết vật lý luôn chiếm số lượng inode định Chúng ta phân biệt rõ file tạo file gốc liên kết biểu tượng Điều xảy người xóa file gốc ? @Hà Quốc Trung 2009 25 Ví dụ $ ls -l -rw-r r tuananh user1 Feb 10 1:12 test.txt $ ln test.txt link1 $ ln -s test.txt link2 $ ls -l link* -rw-r r tuananh user1 16 Feb 10 1:12 link1 lrw-r r tuananh user1 16 Feb 10 1:13 link2->test.txt @Hà Quốc Trung 2009 26 Cấu trúc inode @Hà Quốc Trung 2009 27 inode Direct blocks File info Indirect blocks Double Indirect Blocks Phân bổ đĩa cứng @Hà Quốc Trung 2009 29 Tìm kiếm file $ find tên_thư_mục expressions Các điều kiện Cho phép tìm kiếm file thư mục (ngầm định thư mục tại) với số điều kiện lệnh thực thi tập file tìm Tên : -name tên Quyền truy cập : -perm quyền_truy_cập Kiểu : -type d/f/ Kích thước : -size N Thời gian : -atime N, -mtime N, -ctime N Các lệnh thực thi tạp file tìm -print -exec câu_lệnh @Hà Quốc Trung 2009 30 Ví dụ $find /usr -name toto -print Tìm kiếm file tên toto thư mục /usr (bao gồm thư mục /usr) $find /usr -name " *.c " -print Đưa $find / -mtime -print Tìm danh sách file kết thúc « c » tất file có thay đổi ngày gần $find / -size 2000 -print Tìm tất file có kích thước lớn GB (= 2000 block 512 KB) $find / -type f -user olivier -perm 755 -print Tìm tất file thuộc người sử dụng olivier, đồng thời có quyền truy cập 755 @Hà Quốc Trung 2009 31 ... ls -l * -rw-r r tuananh user1 451 Feb -rw-r r tuananh user1 225 Feb -rw-r r tuananh user1 35 1 Feb @Hà Quốc Trung 2009 07 :30 myprog.c 07 :30 myprog.h 10 19:12 c_prog 10 19:12 java_prog 07 :30 ... tệp] @Hà Quốc Trung 2009 19 Ví dụ $ ls -l -rw-r r tuananh drwxr-xr tuananh $ cp test.txt vanban $ ls -l vanban -rw-r r tuananh $ rm –R vanban $ ls -l -rw-r r tuananh $ rm test.txt $ ls -l $... kí tự cho trước @Hà Quốc Trung 2009 16 Ví dụ $ ls -l *.[c,h] -rw-r r tuananh user1 2451 Feb -rw-r r tuananh user1 2451 Feb $ ls -l *prog drwxr-xr tuananh user1 512 Feb drwxr-xr tuananh user1