Nội dung

(cid:132) Hệ thống tệp của hệ điều hành Unix-Linux

Nhập môn hệ điều hành Unix

(cid:132) Khái niệm tệp và thư mục (file/directory) (cid:132) Liên kết trong hệ thống tệp Unix (cid:132) Quyền truy cập thư mục và tệp (cid:132) Các lệnh cơ bản thao tác với tệp và thư mục (cid:132) Nội dung một số file và thư mục đặc biệt (cid:132) Nén và sao lưu tệp và thư mục (cid:132) Định hướng lại vào/ra và pipe

Nguyễn Hải Châu Khoa Công nghệ Thông tin Trường Đại học Công nghệ Đại học Quốc gia Hà Nội (Bài giảng tuần 2)

Tệp và thư mục

Tên tệp/Tên thư mục

hệ điều hành Unix/Linux

(cid:132) Tệp (file) là đơn vị lưu trữ nhỏ nhất trong

biệt, dùng để quản lý thông tin về các file khác

tệp/thư mục: !, *, $, &, #

(cid:132) Tệp và thư mục được phân biệt qua tên (cid:132) Tên tệp/thư mục có thể dài 256 ký tự, bao gồm chữ, số, gạch chân, dấu chấm, dấu cách (cid:132) Tệp là một chuỗi byte (cid:132) Thư mục trong Unix là một loại tệp đặc (cid:132) Các ký tự không được sử dụng trong tên

quản lý được gọi là “hệ thống tệp”

(cid:132) Tập các tệp có trong máy do Unix/Linux

Ký hiệu chỉ nhóm tệp

Cấu trúc hệ thống tệp

(cid:132) Một số tên thư mục

để chỉ định nhóm các tệp

(cid:132) Có thể sử dụng các ký hiệu đặc biệt * và ?

đặc biệt: (cid:132) “/”: Thư mục gốc (cid:132) “.”: Thư mục hiện hành (cid:132) “..”: Thư mục cha

(cid:132) ab*: Tất cả các tệp có tên bắt đầu bằng ab (cid:132) bb*.c: Tất cả các tệp có tên bắt đầu bằng ab

(cid:132) Ví dụ:

và kết thúc bằng .c

(cid:132) a?cd: Tất cả các tệp có tên bắt đầu bằng chữ a, sau đó là một ký tự bất kỳ rồi kết thúc là cd

(cid:132) “/”: Thư mục gốc (cid:132) “usr” là thư mục con của “/” và là thư mục cha của “lib”, “local”…

(cid:132) Ví dụ:

1

Đường dẫn tuyệt đối và tương đối

Đường dẫn (path)

hệ thống tệp, ta cần một đường dẫn

dẫn tuyệt đối

định vị tệp/thư mục từ thư mục hiện hành

(cid:132) Đường dẫn đến thư mục: /usr/bin (cid:132) Đường dẫn đến tệp: /usr/bin/vi (vi là tên một

hệ soạn thảo văn bản trên Unix)

(cid:132) Để định vị một tệp hoặc một thư mục trong (cid:132) Đường dẫn tuyệt đối bắt đầu bởi dấu “/” (cid:132) Đường dẫn tương đối không phải là đường (cid:132) Ví dụ: (cid:132) Đường dẫn tương đối dùng để chỉ cách

(cid:132) Đường dẫn có nhiều thành phần, các thành phần là tên thư mục hoặc tên tệp (thường ở vị trí cuối cùng) cách nhau bởi dấu “/”

Kiến trúc bên trong hệ thống tệp

Liên kết

(cid:132) Liên kết cứng (cid:132) Liên kết tượng trưng (liên kết mềm)

trang 40 đến trang 49

(cid:132) Unix có 2 kiểu liên kết (cid:132) Không bắt buộc học phần này (cid:132) Xem trong giáo trình, mục 3.1.2, 3.1.3

một cách định vị trong hệ thống tệp (không có liên kết cứng đến thư mục)

(cid:132) Liên kết cứng cho phép chúng ta tạo thêm

(cid:132) Liên kết mềm là một kiểu tệp đặc biệt tham chiếu đến tên một tệp hoặc thư mục khác

Lệnh tạo liên kết

Quyền truy cập tệp/thư mục

(cid:132) ln [] <đích> [] (cid:132) Các tùy chọn:

(cid:132) -b, --backup[=CONTROL] : tạo liên kết quay trở lại cho mỗi

(cid:132) Quyền truy cập một tệp/thư mục qui định

file đích đang tồn tại.

nhómngườisửdụngnào được phép làmgì (thaotác)trên tệp thư mục đó

(cid:132) Các nhóm người sử dụng

(cid:132) -f, --force : xóa bỏ các file đích đang tồn tại. (cid:132) -d, -F, --directory : tạo liên kết cứng đến các thư mục (tùy chọn này chỉ dành cho người dùng có quyền quản trị hệ thống). Một số phiên bản không có tùy chọn này.

(cid:132) -n, --no-dereference : một file bình thường được xem là đích

liên kết từ một thư mục.

(cid:132) -i, interactive : vẫn tạo liên kết dù file đích đã bị xóa bỏ. (cid:132) -s, --symbolic : tạo các liên kết tượng trưng. (cid:132) --target-directory= : xác định thư mục tên-

thư-mục là thư mục có chứa các liên kết.

(cid:132) Owner/User (người sở hữu), ký hiệu là u (cid:132) Group (những người cùng nhóm), ký hiệu là g (cid:132) Other (những người khác), ký hiệu là o (cid:132) All (tất cả mọi người), ký hiệu là a

(cid:132) -v, --verbose : hiển thị tên các file trước khi tạo liên kết. (cid:132) --help : hiển thị trang trợ giúp và thoát.

2

Quyền truy cập tệp/thư mục

Cách quản lý quyền truy cập

8

6

5

3

2

0

Bit Nhóm Thao tác

7 u xwr

4 g xwr

1 o xwr

(cid:132) Đọc nội dung thư mục (read): r (cid:132) Được tạo tệp mới trong thư mục (write): w (cid:132) Được xem các tệp trong thư mục (execute): x

(cid:132) Các thao tác trên tệp: (cid:132) Đọc (read), ký hiệu là r (cid:132) Ghi (write), ký hiệu là w (cid:132) Thực hiện (execute), ký hiệu là x (cid:132) Các thao tác trên tệp:

Cách đọc quyền truy cập

Kiểu tệp trong Unix

Kiểu tệp

(cid:132) Giả sử khi thực hiện lệnh ls –l, chúng ta có kết

Chữ cái biểu diễn

quả như sau:

1 brucelee martialart 5335 Nov 30 2006 myfile

96 Apr 17 23:32 gis/

d b c

-rw-r--r-- drwxr-xr-x 2 brucelee martialart (cid:132) Khi đó:

(cid:132) Nhóm u được đọc/ghi tệp myfile, không được thực

hiện tệp myfile (rw-)

(cid:132) Nhóm g được đọc và duyệt thư mục gis/ và không

được tạo tệp mới trong thư mục đó (r-x)

l p s -

Thư mục (directory) File kiểu khối (block-type special file) File kiểu ký tự (character-type special file) Liên kết tượng trưng (symbolic link) File đường ống (pipe) Socket File bình thường (regular file)

(cid:132) …

Thay đổi quyền sở hữu/truy cập

Qui tắc viết quyền truy cập

chown

(cid:132) Thay đổi người sở hữu: (cid:132) Qui tắc tương đối

chgrp

(cid:132) Thay đổi nhóm:

(cid:132) chmod <+/-/=> Nhóm có thể một trong số a, u, g hoặc o Quyền là một trong số: r, w hoặc x (cid:132) Ví dụ: (cid:132) chmod o+rw myfile (cid:132) chmod g-w myfile

chmod là một dãy chữ hoặc

số hệ 8 được viết theo qui tắc như sau:

(cid:132) Thay đổi quyền truy cập:

3

Qui tắc viết quyền truy cập

Các lệnh thao tác với thư mục

(cid:132) hiện hành: ls –l (cid:132) bất kỳ: ls –l

(cid:132) Xem nội dung thư mục…

(cid:132) chmod 755 myfile (cid:132) chmod 644 myfile

(cid:132) Qui tắc tuyệt đối: Sử dụng các chữ số hệ 8 (cid:132) Qui ước: (cid:132) r=4 (cid:132) w=2 (cid:132) x=1 (cid:132) Ví dụ:

(cid:132) Đổi thư mục hiện hành: cd (cid:132) Xem tên thư mục hiện hành: pwd (cid:132) Tạo thư mục mới: mkdir (cid:132) Xóa thư mục rỗng: rmdir (cid:132) Đổi tên thư mục: mv

Các lệnh thao tác với tệp (1)

Các lệnh thao tác với tệp (2)

(cid:132) Unix/Linux: more (cid:132) Linux: less

và <đích> là hai thư mục (cid:132) Đổi tên tệp: mv (cid:132) Xóa tệp: rm

(cid:132) Đây là lệnh “nguy hiểm”, cần thận trọng khi

(cid:132) Copy thư mục: cp –r <đích>, với (cid:132) Xem nội dung tệp: cat (cid:132) Xem nội dung tệp theo từng trang:

dùng

(cid:132) có thể là một tệp, khi đó <đích> là

(cid:132) Linux/Unix không có cơ chế khôi phục tệp đã bị

một tệp hoặc một thư mục

xóa

(cid:132) có thể là nhiều tệp, khi đó <đích>

phải là một thư mục

(cid:132) Copy tệp: cp <đích>

Các lệnh thao tác với tệp (3)

Các lệnh thao tác với tệp (4)

(cid:132) Xem kiểu tệp: file (cid:132) Thêm số thứ tự của các dòng trong tệp:

(cid:132) nl [tùy-chọn], các tùy chọn (cid:132) -b=STYLE, trong đó STYLE là a (đánh số tất cả các dòng kể cả dòng trống), t (chỉ đánh số các dòng không trống)

(cid:132) -i=số: đánh số thứ tự của dòng theo cấp số

cộng có công sai là số …

Các tùy chọn: (cid:132) -k=[,]: Xếp theo các cột có số thứ tự từ [đến cột ]. Cột bắt đầu từ 1.

(cid:132) -f: không phân biệt chữ hoa và chữ thường

(cid:132) Đếm ký tự, từ và dòng trong một tệp: (cid:132) Đếm số ký tự: wc –c (wc: word count) (cid:132) Đếm từ: wc –w (cid:132) Đếm dòng: wc –l (cid:132) Sắp xếp nội dung tệp: sort [tùy-chọn] tệp.

4

Các lệnh thao tác với tệp (5)

Các lệnh thao tác với tệp (6)

(cid:132) So sánh hai tệp có giống nhau hay không:

cmp

(cid:132) Xem n dòng ở đầu tệp: head –n (cid:132) Xem n dòng ở cuối tệp: tail –n (cid:132) Tìm các điểm khác nhau ở hai tệp:

(cid:132) diff [tùy chọn] , tùy

chọn:

(cid:132) -a: Xem tất cả các file ở dạng văn bản và so

sánh theo từng dòng

(cid:132) -b: bỏ qua sự thay đổi về số lượng của ký tự

(cid:132) Tìm một mẫu ký tự trong một hoặc nhiều tệp: grep (cid:132) Xem thêm các lệnh lọc phức tạp hơn:

egrep và fgrep (trang 78-80 giáo trình) (cid:132) Lệnh tìm tệp theo các thuộc tính của tệp:

trống

find (xem trang 80-82 giáo trình)

(cid:132) --brief: chỉ thông báo khi có sự khác nhau mà

không đưa ra chi tiết nội dung khác nhau

Các lệnh thao tác với tệp (7)

Định hướng lại vào/ra

(cid:132) Nén và giải nén tệp:

(cid:132) Nén: gzip , zip (cid:132) Giải nén: gunzip , unzip

(cid:132) Unix/Linux cho phép định hướng lại vào/ra: (cid:132) Định hướng lại input: < (cid:132) Định hướng lại output: > (cid:132) Định hướng lại error: 2> (cid:132) Ví dụ: (cid:132) Lưu trữ các tệp:

tar cvzf

(cid:132) ls –l > tencacfile; cat > tepmoi (cid:132) wc –l < myprog (cid:132) myprogram 2> tepbaoloi

(cid:132) Lấy các tệp từ lưu trữ:

tar xvzf

Cơ chế pipe

Các vấn đề cần nhớ

Chương trình 1

Chương trình 2

(cid:132) | | … |

Ra |

Ra

Vào

Vào

(cid:132) Tệp, thư mục, hệ thống tệp, liên kết (cid:132) Quyền truy cập tệp và thư mục (cid:132) Một số lệnh cơ bản thường dùng (cid:132) Định hướng lại vào/ra và pipe (quan

trọng)

Pipe

5

Bài tập

(cid:132) Thử nghiệm các lệnh với tệp và thư mục (cid:132) Thay đổi quyền truy cập (cid:132) Copy, nén, giải nén, lưu trữ tệp (cid:132) Định hướng lại vào/ra và pipe

(cid:132) Thực hành trên phòng máy:

6