Bài giảng Phần mềm mã nguồn mở và Linux - Chương 3: Hệ thống Linux

Tóm tắt Bài giảng Phần mềm mã nguồn mở và Linux - Chương 3: Hệ thống Linux: ... loại (vd., / usr, /home,) •  Tệp thông thường là một tệp chứa dữ liệu hoặc tệp chương trình (vd., /bin/passwd, /etc/passwd, ) •  Tệp đặc biệt là một tệp thiết bị tương ứng với thiết bị ngoại vi hoặc các tệp tự sinh bởi HĐH. Có thể có tệp ký tự hoặc tệp block •  Liên kết •  Các tệp bi...07:30 .bash_profile -rw-r--r-- 1 tuananh user1 351 Feb 7 07:30 .bash_logout @Hà Quốc Trung 2009 17 Quản lý tệp •  $cp file1 [] dir –  sao chép một hoặc nhiều tệp vào một thư mục •  $mv file1 [] dir –  di chuyển một hoặc nhiều tệp đến một thư mục •  $rm file1 [] –  xoá một hoặc nhiề...g lệnh ls –l $ ls -l -rw-rw-r-- 1 tuananh user1 0 Nov 12 15:19 file drwxr-xr-x 2 tuananh user1 4096 Dec 14 17:50 dir •  Tại sao với một thư mục luôn có ít nhất 2 liên kết vật lý? •  Xoá một tệp (lệnh rm) đồng nghĩa với xoá một liên kết –  Nếu là liên kết vật lí cuối cùng trỏ đến inod...

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

File đính kèm:

  • pdfbai_giang_phan_mem_ma_nguon_mo_va_linux_chuong_3_he_thong_li.pdf