MỤC TIÊU BÀI HỌC
• Trình bày được kiến trúc hệ thống tệp trong hệ điều hành Linux.
• Liệt kê được các lệnh liên quan đến quyền truy cập tệp tin.
• Liệt kê được các lệnh theo tác với tệp tin.
CÁC KIẾN THỨC CẦN CÓ
Để hiểu rõ bài này, yêu cầu sinh viên cần có các kiến
thức cơ bản liên quan đến các môn học sau:
• Công nghệ phần mềm;
• Nguyên lí hệ điều hành.
HƯỚNG DẪN HỌC
• Đọc tài liệu và tóm tắt những nội dung chính của
từng bài.
• Luôn liên hệ và lấy ví dụ thực tế khi học đến từng
vấn đề̀ và khái niệm.
• Thực hành trực tiếp trên hệ điều hành Linux và
một số phần mềm mã nguồn mở như Open
office, PHP
• Làm bài tập và luyện thi trắc nghiệm theo yêu
cầu từng bài.
33 trang |
Chia sẻ: thanhle95 | Lượt xem: 617 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Bài giảng Mã nguồn mở - Bài 4: Tổng quan hệ thống tệp - Phan Thanh Toàn, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
v1.0015106225
1
MÃ NGUỒN MỞ
Giảng viên: ThS. Phan Thanh Toàn
1
v1.0015106225
BÀI 4
TỔNG QUAN HỆ THỐNG TỆP
Giảng viên: ThS. Phan Thanh Toàn
2
v1.0015106225
MỤC TIÊU BÀI HỌC
• Trình bày được kiến trúc hệ thống tệp trong hệ điều hành Linux.
• Liệt kê được các lệnh liên quan đến quyền truy cập tệp tin.
• Liệt kê được các lệnh theo tác với tệp tin.
3
v1.0015106225
CÁC KIẾN THỨC CẦN CÓ
Để hiểu rõ bài này, yêu cầu sinh viên cần có các kiến
thức cơ bản liên quan đến các môn học sau:
• Công nghệ phần mềm;
• Nguyên lí hệ điều hành.
4
v1.0015106225
HƯỚNG DẪN HỌC
• Đọc tài liệu và tóm tắt những nội dung chính của
từng bài.
• Luôn liên hệ và lấy ví dụ thực tế khi học đến từng
vấn đề̀ và khái niệm.
• Thực hành trực tiếp trên hệ điều hành Linux và
một số phần mềm mã nguồn mở như Open
office, PHP
• Làm bài tập và luyện thi trắc nghiệm theo yêu
cầu từng bài.
5
v1.0015106225
CẤU TRÚC NỘI DUNG
Quyền truy cập thư mục và tệp tin4.2
Tổng quan về hệ thống tệp4.1
Các lệnh với thư mục4.3
6
v1.0015106225
4.1. TỔNG QUAN VỀ HỆ THỐNG TỆP
4.1.1. Một số khái niệm
4.1.2. Sơ bộ về kiến trúc
hệ thống tệp
7
v1.0015106225
4.1.1. MỘT SỐ KHÁI NIỆM CƠ BẢN
• Tệp tin (File)
Một tập các dữ liệu được liên quan trên bộ nhớ ngoài.
Mọi dữ liệu trên hệ thống đều được lưu trữ dưới dạng file.
Mỗi tệp tin có một tên duy nhất trong hệ thống.
Kích thước tệp tin phụ thuộc vào dung lượng lưu trữ bộ nhớ, khả năng của hệ
điều hành.
Tệp tin được quản lí bởi hệ điều hành.
Tên tệp tin thường có 2 phần: Phần tên chính và phần mở rộng, được ngăn cách
bởi dấu chấm “.”
8
v1.0015106225
4.1.1. MỘT SỐ KHÁI NIỆM CƠ BẢN (tiếp theo)
• Thư mục (Directory):
Thư mục là một dạng tệp tin đặc biệt có công
dụng như một ngăn chứa.
Thư mục được sử dụng để chứa các tệp tin và
thư mục khác.
Mỗi thư mục có một tên xác định.
Các thư mục thường được tổ chức theo dạng
hình cây (Tree).
• Đường dẫn (Path):
Đường dẫn là một dãy các tên thư mục được
ngăn cách bởi kí tự “/” để xác định vị trí của tài
nguyên trên hệ thống.
Đường dẫn tuyệt đối là đường dẫn có đầy đủ
tên ổ đĩa, tên các thư mục.
Đường dẫn tương đối là đường dẫn xuất phát
từ thư mục hiện tại.
9
v1.0015106225
4.1.1. MỘT SỐ KHÁI NIỆM CƠ BẢN (tiếp theo)
10
• Chương trình (Program): là các tệp tin mã
lệnh, điều khiển máy tính thực hiện các
công việc xác định
Chương trình hệ thống: Quản lí và điều
khiển các hoạt động của máy tính.
Chương trình ứng dụng: Chương trình
dành cho người sử dụng thực hiện các
công việc xác định.
v1.0015106225
4.1.2. SƠ BỘ KIẾN TRÚC HỆ THỐNG TỆP
• Tổng quan về hệ thống tệp ảo (VFS – Virtual File System)
VFS biểu diễn cách trình bày dữ liệu trên ổ đĩa cứng;
Mount tệp logic vào hệ thống.
11
v1.0015106225
4.1.2. SƠ BỘ KIẾN TRÚC HỆ THỐNG TỆP (tiếp theo)
12
• Các module:
Mỗi thiết bị có một trình điều khiển thiết bị.
Module ghép nối độc lập với thiết bị.
Hệ thống tệp có một hệ thống tệp logic.
Giao diện độc lập với hệ thống cho phép mô tả sự độc lập của hệ thống tệp logic
với các tài nguyên phần cứng.
Giao diện hệ thống cung cấp cách thức truy cập hệ thống cho người sử dụng.
• Biểu diễn dữ liệu:
Tất cả các tệp được biểu diễn bởi các i-node.
Mỗi cấu trúc i-node cho biết thông tin về vị trí các khối của tệp trên thiết bị vật lí.
v1.0015106225
4.1.2. SƠ BỘ KIẾN TRÚC HỆ THỐNG TỆP (tiếp theo)
• Các kiểu tệp và hệ thống tệp
Tệp chính tắc (regular) (-): là tệp phổ biến cho lưu trữ thông tin trong hệ thống.
Tệp thư mục (directory) (d): là tệp đặc biệt, chứa các tệp tin.
Tệp đặc biệt (special file) (c,f): là một cơ chế sử dụng cho cá thao tác
vào/ra (I/O).
Tệp liên kết (link) (l): là một hệ thống tạo ra một thư mục hay tệp nhìn thấy được
trong nhiều phần của cây hệ thống tệp.
Tệp socket (s): là loại tệp đặc biệt cho các truyền thông mạng của một tiến trình
bên trong hệ thống, và được bảo vệ bởi qui tắc truy nhập tệp.
Tệp ống (pipe) (p): là cơ chế để các tiến trình liên lạc với nhau.
• Cơ sở dữ liệu cho hệ thống tệp
Mỗi tệp ứng với một i-node duy nhất.
I-node cho biết các thông tin: mô tả tệp, quyền truy cập tệp, quyền sở hữu tệp,
thời gian tạo lập...
I-node (index node) là một lá của cây biểu diễn hệ thống tập.
Mỗi i-node có thể tương ứng với nhiều tệp.
Các i-node được lưu trữ trong hệ thống tệp trên đĩa.
Kernel đọc dữ liệu từ đĩa và đưa vào một bảng gọi là I-node table.
13
v1.0015106225
4.1.2. SƠ BỘ KIẾN TRÚC HỆ THỐNG TỆP (tiếp theo)
14
File table:
Là kiến trúc tổng thể của kernel;
Theo dõi quyền truy cập tệp.
File descriptor table: Cung cấp các thông tin về tệp cho tiến trình khi thực hiện
mở tệp.
Inode table
Là một bảng của kernel;
Chứa các i-node được đọc từ đĩa;
Mỗi inode khi đọc vào bộ nhớ sẽ được cấp một đầu vào trong bảng.
v1.0015106225
4.1.2. SƠ BỘ KIẾN TRÚC HỆ THỐNG TỆP (tiếp theo)
15
• Mỗi quan hệ giữa các bảng trong hệ thống tệp
v1.0015106225
4.1.2. SƠ BỘ KIẾN TRÚC HỆ THỐNG TỆP (tiếp theo)
• Mỗi phân vùng trên đĩa được quản lí bởi một hệ thống tệp (FS – File System), mỗi
FS chứa một chuỗi các khối logic có độ lớn 512 byte (hoặc bội của 512)
v1.0015106225
4.1.2. SƠ BỘ KIẾN TRÚC HỆ THỐNG TỆP (tiếp theo)
17
• Cấu trúc ext2 của hệ điều hành Linux
Boot block:
Phần đầu tiên của FS;
Chứa mã bootstrap.
Supper Block:
Mô tả tình trạng của FS: độ lớn, không gian trống
Super block có các trường sau: kích thước FS, tổng số block còn chưa cấp
phát cho tệp, danh sách block còn trống trên FS, chỉ số các block còn trống
tiếp theo trong danh sách
I-node list: Danh sách các i-node trong FS.
Data blocks: Vùng chứa nội dung dữ liệu.
v1.0015106225
4.2. QUYỀN TRUY CẬP THƯ MỤC VÀ TỆP TIN
4.2.1. Quyền truy cập
4.2.2. Các lệnh cơ bản
18
v1.0015106225
4.2.1. QUYỀN TRUY CẬP
• Mỗi tệp tin, thư mục đều có một chủ sở hữu và một nhóm sở hữu.
• Mỗi tệp tin và thư mục có một tập quyền truy cập.
• Thông tin về một tệp được hiển thị bởi lệnh ls và có dạng như sau:
• 10 ký tự đầu mô tả kiểu tệp và quyền truy cập tệp tin.
• Người tạo tệp tin là người sở hữu tệp.
• Chủ sở hữu có thể thay đổi quyền sở hữu tệp tin.
drwxr-xr-x 12 root root 4096 Oct 25 2014
Quyền truy cập Số liên kết Chủ sở hữu Nhóm sở hữu Kích thước tệp
19
v1.0015106225
4.2.1. QUYỀN TRUY CẬP (tiếp theo)
20
• Các kiểu tệp tin trong hệ điều hành Linux
Chữ cái biểu diễn Kiểu tệp
d Thư mục
b Tệp kiểu khối (block)
c Tệp kiểu kí tự
l Tệp liên kết
p Tệp kiểu ống (Pipe)
s Tệp socket
- Tệp thông thường
• 9 kí tự mô tả quyền truy cập tệp tin như sau: 3 kí tự đầu quyền truy cập chủ sở hữu,
3 kí tự tiếp mô tả quyền truy cập của nhóm sở hữu, 3 kí tự cuối mô tả quyền truy cập
của người sử dụng khác.
rwx r-x r-x
Quyền của chủ
sở hữu
Quyển của
nhóm sở hữu
Quyển của người
dùng khác
v1.0015106225
4.2.1. QUYỀN TRUY CẬP
21
• Có 3 quyền truy cập với tệp tin
Quyền chỉ đọc tệp tin: r
Quyền ghi tệp tin: w
Quyền thực thi tệp tin: x
Quyền thực thi tệp tin cho phép người sử dụng có thể chạy tệp tin nếu đó là tệp
tin chương trình.
Quyền truy cập Ý nghĩa
--- Không có bất cứ quyền nào đối với tệp tin
r-- Chỉ được đọc tệp tin
r-x Quyền đọc và thực hiện
rw- Quyền đọc và ghi
rwx Cho phép tất cả các quyền
v1.0015106225
4.2.2. CÁC LỆNH CƠ BẢN VỚI QUYỀN TRUY CẬP TỆP TIN
• Thay đổi quyền sở hữu tệp
Cú pháp: chown [tùy chọn][chủ][nhóm]
Lệnh cho phép thay đổi chủ sở hữu cho tệp tin.
Tham số chủ/nhóm là tên chủ sở hữu hoặc tên nhóm sở hữu.
Tùy chọn:
-c: Hiển thị thông báo khi tệp tin bị thay đổi chủ sở hữu thực sự;
-f: Bỏ qua các thông báo lỗi;
-v: Hiển thị thông báo đối với mọi tệp tin mà lệnh chown tác động tới.
Ví dụ: Có tệp tin baitap.c thuộc quyền sở hữu của người dùng tienpv, thay đổi chủ
sở hữu tệp cho người dùng hoannt ta sử dụng lệnh như sau:
chown hoannt baitap.c
22
v1.0015106225
4.2.2. CÁC LỆNH CƠ BẢN VỚI QUYỀN TRUY CẬP TỆP TIN (tiếp theo)
23
• Thay đổi quyền sở hữu nhóm
Cú pháp: chgrp [tùy chọn]
Lệnh cho phép thay đổi thuộc tính nhóm sở hữu cho tệp tin.
Tùy chọn:
-c: Hiển thị thông báo khi tệp tin bị thay đổi chủ sở hữu thực sự;
-f: Bỏ qua các thông báo lỗi;
-v: Hiển thị thông báo đối với mọi tệp tin mà lệnh chown tác động tới.
Ví dụ: Thay đổi nhóm sở hữu tệp tin baitap.c thành nhóm staff
chgrp staff baitap.c
• Thay đổi quyền truy cập tệp tin
Cú pháp: chmod [tùy chọn]
Lệnh cho phép xác lập quyền truy cập tệp tin theo mod được xác định.
Tùy chọn:
-c: Hiển thị thông báo khi tệp tin bị thay đổi chủ sở hữu thực sự;
-f: Bỏ qua các thông báo lỗi;
-v: Hiển thị thông báo đối với mọi tệp tin mà lệnh chown tác động tới.
Mod: Được xác định theo các cách sau đây
v1.0015106225
4.2.2. CÁC LỆNH CƠ BẢN VỚI QUYỀN TRUY CẬP TỆP TIN (tiếp theo)
Xác lập quyền theo mod tương đối: Quyền theo mod tương đối được xác định bởi 3
tham số: quyền truy cập + thao tác thay đổi + kiểu truy cập
Ví dụ: Thêm quyền ghi đối với tệp tin baitap.c cho tất cả nhóm sở hữu tệp
chmod g+w baitap.c
Quyền truy cập
u = user (người sở hữu)
g = group (nhóm sở hữu)
o = other (người khác)
a = all (tất cả người dùng)
Thao tác thay đổi
“+” thêm quyền
“-” gỡ bỏ quyền
“=“ xác lập quyền
Kiểu truy cập
r - read
w - write
x - execute
24
v1.0015106225
4.2.2. CÁC LỆNH CƠ BẢN VỚI QUYỀN TRUY CẬP TỆP TIN (tiếp theo)
25
Xác lập quyền
theo phương
pháp tuyệt đối
Quyền truy cập tệp tin được xác định bởi dãy gồm 9 kí tự
dưới dạng rwxrwxrwx.
3 kí tự đầu là quyền truy cập của chủ sở hữu tệp.
3 kí tự tiếp theo là quyền truy cập của nhóm sở hữu tệp.
3 kí tự cuối là quyền truy cập của người sử dụng khác.
Quyền truy cập tệp có thể được biểu diễn bởi dãy gồm 9
bit nhị phân, trong đó bit 1 là thiết lập quyền, bit 0 là gỡ
bỏ quyền.
Chủ sở hữu ứng với 3 bit đầu, nhóm sở hữu ứng với 3
bit tiếp, người dùng khác ứng với 3 bit cuối.
v1.0015106225
4.2.2. CÁC LỆNH CƠ BẢN VỚI QUYỀN TRUY CẬP TỆP TIN (tiếp theo)
26
Ví dụ: Thiết lập quyền cho tệp tin baitap.c theo yêu cầu sau
Chủ sở hữu có đầy đủ các quyền
Nhóm sở hữu có quyền đọc và ghi
Người dùng khác chỉ có quyền đọc
chmod 764 baitap.c
• Đăng nhập vào nhóm người dùng khác
Cú pháp: newgrp [Nhóm]
Lệnh cho phép người sử dụng đăng nhập vào một nhóm làm việc mới được chỉ
ra bởi tên nhóm.
Ví dụ: newgrp staff
v1.0015106225
4.3. CÁC LỆNH VỚI THƯ MỤC
27
4.3.1. Một số thư mục
đặc biệt
4.3.2. Các lệnh với
thư mục
v1.0015106225
4.3.1. MỘT SỐ THƯ MỤC ĐẶC BIỆT
• Linux tổ chức hệ thống tệp theo cấu trúc cây thư mục.
• Mỗi thư mục chứa một số thông tin theo mục đích riêng.
• Một số thư mục đặc biệt trong hệ điều hành Linux
Thư mục gốc: Chứa tất cả các thư mục con khác, kí hiệu “/”.
Thư mục /root: Thư mục riêng của siêu người dùng, thư mục này chứa nhân hệ
điều hành, bộ đệm máy in, vùng lưu trữ tạm cho dữ liệu gửi và nhận mail
Thư mục /bin: Lưu trữ các tệp chương trình khả thi.
Thư mục /dev: Lưu trữ các trình điều khiển thiết bị.
Thư mục /etc: Lưu trữ các thông tin, tệp cấu hình hệ thống (tài khoản người dùng,
chính sách bảo mật)
Thư mục /lib: Lưu trữ các thư viện của Linux.
Thư mục /mnt: là nơi kết nối các thiết bị vào hệ thống, các thư mục con của /mnt
chính là gốc của các hệ thống tệp được kết nối với thiết bị: /mnt/floppy, /mnt/hda1.
Thư mục /home: Thư mục này chứa các thư mục cá nhân của người dùng, mỗi
người dùng sẽ có một thư mục con trong thư mục /home, tên thư mục trùng với
tên người dùng.
Thư mục /var: Lưu trữ các tệp tin có nội dung thay đổi như các khóa của các
tiến trình
Thư mục /boot: Chứa nhân của hệ thống, trình điều khiển thiết bị RAID, các bản
sao lưu boot record của các phân vùng ổ đĩa cứng. 28
v1.0015106225
4.3.2. CÁC LỆNH VỚI THƯ MỤC
• Xác định thư mục hiện thời
Cú pháp: pwd.
Lệnh cho biết hiện người sử dụng đang ở thư mục nào trong hệ thống.
Ví dụ: pwd
/home/tienpv
• Xem thông tin về thư mục
Cú pháp: ls [tùy chọn]
Lệnh hiển thị các thông tin về thư mục.
29
v1.0015106225
4.3.2. CÁC LỆNH VỚI THƯ MỤC (tiếp theo)
30
Tùy chọn:
-a: Hiển thị cả các tệp tin ẩn;
-l: Hiển thị đầy đủ các thông tin về thư mục;
-s: Chỉ ra kích thước của tệp tin, tính theo khối (block, 1 block = 1024 byte);
-F: Xác định kiểu tệp;
-m: Liệt kê các tệp tin và được ngăn cách bởi dấu phẩy (,);
-C: Hiển thị thông tin theo dạng cột;
-t: Sắp xếp các thông tin theo thời gian;
-r: Sắp xếp thông tin theo thứ tự ngược lại;
-R: Liệt kê lần lượt các thư mục và nội dung của các thư mục;
Ví dụ:
Hiển thị thông tin về thư mục hiện tại ls –l
Hiển thị thông tin về thư mục /home ls /home
v1.0015106225
4.3.2. CÁC LỆNH VỚI THƯ MỤC (tiếp theo)
• Lệnh tạo thư mục
Cú pháp: mkdir [tùy chọn]
Lệnh cho phép tạo thư mục mới với tên được xác định bởi tên thư mục.
Chú ý cần chỉ rõ vị trí (đường dẫn) cần tạo thư mục.
Tùy chọn:
-m: Thiết lập quyền truy cập thư mục trong khi tạo thư mục;
-p: Tạo thư mục và không thông báo lỗi khi thư mục đã tồn tại.
Ví dụ: Tạo thư mục HOC TAP trong thư mục home
mkdir /home/HOCTAP
31
v1.0015106225
4.3.2. CÁC LỆNH VỚI THƯ MỤC (tiếp theo)
32
• Lệnh xóa thư mục
Cú pháp: rmdir [tùy chọn]
Lệnh cho phép xóa thư mục mới với tên được xác định bởi tên thư mục.
Chú ý cần chỉ rõ vị trí (đường dẫn) của thư mục cần xóa.
Tùy chọn:
--ignore-fail-on-non-empty: Bỏ qua các lỗi nếu xóa thư mục không rỗng;
-p: Xóa bỏ thư mục sau đó xóa bỏ tiếp các thư mục có trên đường dẫn chứa
thư mục vừa xóa.
Ví dụ: Xóa thư mục HOC TAP trong thư mục home
rmdir /home/HOCTAP
• Lệnh đổi tên thư mục
Cú pháp: mv
Lệnh cho phép đổi tên thư mục hoặc tệp tin.
Chú ý cần chỉ rõ vị trí (đường dẫn) của thư mục cần đổi tên.
Ví dụ: đổi tên tệp tin baitap.c thành tệp baitap01.c
mv baitap.c baitap01.c
v1.0015106225
TÓM LƯỢC CUỐI BÀI
Trong bài học này, chúng ta đã tìm hiểu những nội dung
chính sau:
• Tổng quan về hệ thống tệp;
• Quyền truy cập thư mục và tệp tin;
• Các lệnh với thư mục.
33