Bài giảng Hệ điều hành UNIX-Linux - Chương 3: Hệ thống file - Đặng Thu Hiền

Khái niệm cơ bản

n  Một đối tượng điển hình trong các hệ điều hành đó là file

n  Tệp (file) là đơn vị lưu trữ nhỏ nhất trong hệ điều hành Unix/Linux

n  File là một tập hợp dữ liệu có tổ chức được hệ điều hành quản lý

n  Cách tổ chức dữ liệu trong file thuộc về chủ của nó là người đã tạo ra file

n  File có thể là:

n  một văn bản (trường hợp đặc biệt là chương trình nguồn trên C, shell

script .)

n  một chương trình ngôn ngữ máy,

n  Hệ điều hành tổ chức việc lưu trữ nội dung file trên các thiết bị nhớ lâu

dài và đảm bảo các thao tác lên file.

n  Hệ điều hành đảm bảo các chức năng liên quan đến file nên người dùng

không cần biết file của mình lưu ở vùng nào trên đĩa từ, bằng từ cách nào

đọc/ghi lên các vùng của đĩa từ mà vẫn thực hiện được yêu cầu tìm

kiếm, xử lý lên các file

n  Hệ điều hành quản lý file theo tên gọi của file (tên file) và một số thuộc

tính liên quan đến file

pdf 58 trang yennguyen 3020
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Hệ điều hành UNIX-Linux - Chương 3: Hệ thống file - Đặng Thu Hiền", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Bài giảng Hệ điều hành UNIX-Linux - Chương 3: Hệ thống file - Đặng Thu Hiền

Bài giảng Hệ điều hành UNIX-Linux - Chương 3: Hệ thống file - Đặng Thu Hiền
1 
Hệ điều hành UNIX-Linux 
Chương 3. Hệ thống file 
tck12 
Đặng Thu Hiền 
Khoa Công nghệ thông tin 
Trường Đại học Công nghệ 
Đại học Quốc gia Hà Nội 
2 
Khái niệm cơ bản 
n  Một đối tượng điển hình trong các hệ điều hành đó là file 
n  Tệp (file) là đơn vị lưu trữ nhỏ nhất trong hệ điều hành Unix/Linux 
n  File là một tập hợp dữ liệu có tổ chức được hệ điều hành quản lý 
n  Cách tổ chức dữ liệu trong file thuộc về chủ của nó là người đã tạo ra file 
n  File có thể là: 
n  một văn bản (trường hợp đặc biệt là chương trình nguồn trên C, shell 
script ...) 
n  một chương trình ngôn ngữ máy, 
n  Hệ điều hành tổ chức việc lưu trữ nội dung file trên các thiết bị nhớ lâu 
dài và đảm bảo các thao tác lên file. 
n  Hệ điều hành đảm bảo các chức năng liên quan đến file nên người dùng 
không cần biết file của mình lưu ở vùng nào trên đĩa từ, bằng từ cách nào 
đọc/ghi lên các vùng của đĩa từ mà vẫn thực hiện được yêu cầu tìm 
kiếm, xử lý lên các file 
n  Hệ điều hành quản lý file theo tên gọi của file (tên file) và một số thuộc 
tính liên quan đến file 
3 
Khái niệm cơ bản 
n  Để làm việc được với các file, hệ điều hành không chỉ 
quản lý nội dung file mà còn phải quản lý các thông 
tin liên quan đến các file. 
n  Thư mục (directory) là đối tượng được dùng để chứa 
thông tin về các file, hay nói theo một cách khác, thư 
mục chứa các file 
n  Các thư mục cũng được hệ điều hành quản lý trên 
vật dẫn ngoài và vì vậy, theo nghĩa này, thư mục 
cũng được coi là file 
4 
Tên file/thư mục 
n  Tên file trong Linux có thể dài tới 256 ký tự 
n  Gồm các chữ cái, chữ số, dấu gạch nối, gạch chân, dấu chấm 
n  Tên thư mục/file trong Linux có thể có nhiều hơn một dấu chấm 
n  Ví dụ: This_is.a.VERY_long.filename 
n  Xâu con của tên file từ dấu chấm cuối cùng được gọi là phần mở 
rộng của tên file (hoặc file). 
n  Phần mở rộng ở đây không mang ý nghĩa như một số hệ điều 
hành khác (chẳng hạn như MS-DOS) 
n  Phân biệt chữ hoa và chữ thường đối với tên thư mục/file 
n  Nếu trong tên thư mục/file có chứa khoảng trống, đặt tên vào 
trong cặp dấu nháy kép để sử dụng. 
n  Một số ký tự không được sử dụng trong tên thư mục/file: !, *, $, 
&, # 
n  Tập các tệp có trong máy do Unix/Linux quản lý được gọi là “hệ 
thống tệp” 
5 
Ký hiệu chỉ nhóm file 
n  Có thể sử dụng các ký hiệu đặc biệt * và ? để 
chỉ định nhóm các tệp 
n  Ví dụ: 
n  ab*: Tất cả các tệp có tên bắt đầu bằng ab 
n  ab*.c: Tất cả các tệp có tên bắt đầu bằng ab và 
kết thúc bằng .c 
n  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 
6 
Cấu trúc hệ thống file 
n  Cấu trúc logic dạng cây 
n  Một số tên thư mục đặc 
biệt: 
n  “/”: Thư mục gốc 
n  “.”: Thư mục hiện hành 
n  “..”: Thư mục cha 
n  Ví dụ: 
n  “/”: Thư mục gốc 
n  “usr” là thư mục con 
của “/” và là thư mục 
cha của “lib”, “local” 
7 
Một số thư mục đặc biệt 
n  Thư mục gốc / 
n  Đây là thư mục gốc chứa đựng tất cả các thư mục con có trong hệ thống. 
n  Thư mục /root 
n  Thư mục /root có thể được coi là "thư mục riêng" của siêu người dùng. 
Thư mục này được sử dụng để lưu trữ các file tạm thời, nhân Linux và 
ảnh khởi động, các file nhị phân quan trọng (những file được sử dụng 
đến trước khi Linux có thể gắn kết đến phân vùng /user), các file đăng 
nhập quan trọng, bộ đệm in cho việc in ấn, hay vùng lưu tạm cho việc 
nhận và gửi email. Nó cũng được sử dụng cho các vùng trống tạmthời khi 
thực hiện các thao tác quan trọng, ví dụ như khi xây dựng (build) một gói 
RPM từ các file RPM nguồn. 
n  Thư mục /bin 
n  thư mục "binaries" lưu trữ các chương trình khả thi có trên hệ thống Khi 
có nhiều hơn các file khả thi có trong Linux, có thêm các thư mục /sbin, /
usr/bin được sử dụng để lưu trữ 
8 
Một số thư mục đặc biệt 
n  Thư mục /dev 
n  Chứa các trình điều khiển thiết bị 
n  Thư mục /etc 
n  Lưu trữ tất cả các thông tin hay các file cấu hình hệ thống 
n  Thư mục /lib 
n  Lưu trữ các thư viện hàm và thủ tục 
n  Thư mục /lost+found 
n  Lưu file được khôi phục sau khi có bất kỳmột vấn đề hoặc gặp một lỗi về 
ghi đĩa 
n  Thư mục /mnt 
n  Nơi để kết nối các thiết bị (ví dụ đĩa cứng, đĩa mềm...) vào hệ thống file 
chính nhờ lệnh mount 
n  Các thư mục con của /mnt chính là gốc của các hệ thống file được kết 
nối: 
n  /mnt/floppy: đĩa mềm, /mnt/hda1: vùng đầu tiên của đĩa cứng thứ nhất (hda), 
n  /mnt/hdb3: vùng thứ ba của đĩa cứng thứ 2 (hdb) ... 
n  Thư mục /tmp: /tmp là thư mục dùng để chứa các file tạm. 
n  thư mục /tmp được rất nhiều chương trình trong Linux sử dụng như một 
nơi để lưu trữ các file tạmthời. 
9 
Một số thư mục đặc biệt 
n  Thư mục /usr 
n  Trung tâm lưu trữ tất cả các lệnh hướng đến người dùng 
n  Hầu hết các file nhị phân cần cho Linux đều được lưu trữ ở đây 
n  Thư mục con /usr/src bao gồmcác thư mục con chứa các chương trình nguồn của nhân Linux. 
n  Thư mục /home 
n  Chứa các thư mục cá nhân của người dùng 
n  Tên người dùng được lấy làmtên của thư mục con. 
n  Thư mục /var 
n  Lưu trữ các file chứa các thông tin luôn luôn thay đổi: bộ đệmin, vùng lưu tạmthời cho việc 
nhận và gửi thư (mail)... 
n  Thư mục /boot 
n  Chứa nhân của hệ thống 
n  Thư mục /proc 
n  Dành cho nhân (kernel) của hệ điều hành và thực tế đây là một hệ thống file độc lập do nhân 
khởi tạo 
n  Tthư mục /misc và thư mục /opt 
n  Cho phép lưu trữ mọi đối tượng vào hai thư mục này 
n  Thư mục /sbin 
n  Thư mục lưu giữ các file hệ thống thường tự động chạy 
10 
Đường dẫn 
n  Để định vị một tệp hoặc một thư mục trong hệ thống 
tệp, ta cần một đường dẫn 
n  Ví dụ: 
n  Đường dẫn đến thư mục: /usr/bin 
n  Đườ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) 
n  Đườ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 “/” 
11 
Đường dẫn tuyệt đối và tương đối 
n  Đường dẫn tuyệt đối bắt đầu bởi dấu “/” 
n  Ví dụ: /home/hiendt/tailieu.txt 
n  Đường dẫn tương đối không phải là đường dẫn tuyệt 
đối 
n  Đường dẫn tương đối dùng để chỉ cách định vị tệp/
thư mục từ thư mục hiện hành 
n  Ví dụ: Nếu thư mục hiện tại là hiendt thì để chỉ file 
tailieu.txt, chỉ cần viết tailieu.txt hoặc ./tailieu.txt (ký 
hiệu . để chỉ thư mục hiện thời) 
12 
Cách tổ chức 
n  Trên đĩa hệ thống file là dãy tuần tự các khối lôgic 
mỗi khối chứa hoặc 512B hoặc 1024B hoặc bội của 
512B 
n  Các khối dữ liệu được địa chỉ hóa bằng cách đánh chỉ 
số liên tiếp, mỗi địa chỉ được chứa trong 4 byte (32 
bit) 
n  Cấu trúc nội tại gồm 4 thành phần kế tiếp nhau: Boot 
block (dùng để khởi động hệ thống), Siêu khối (Super 
block), Danh sách inode và Vùng dữ liệu. 
13 
Siêu khối 
n  Chứa thông tin liên quan đến trạng thái của hệ thống file 
n  Kích thước của danh sách inode, định kích cỡ vùng không gian 
trên Hệ thống file quản lý các inode. 
n  Kích thước của hệ thống file. 
n  Danh sách chỉ số các khối rỗi 
n  Chỉ số các khối rỗi thường trực trên siêu khối được dùng để đáp 
ứng nhu cầu phân phối mới 
n  Chỉ số của khối rỗi tiếp theo trong danh sách các khối rỗi 
n  Một danh sách các inode rỗi 
n  Danh sách này chứa chỉ số các inode rỗi được dùng để phân phối 
ngay được cho một file mới được khởi tạo 
n  Cờ chỉ dẫn rằng hệ thống file chỉ có thể đọc (cấm ghi) 
n  Số lượng tổng cộng các khối rỗi trong hệ thống file 
n  Số lượng tổng cộng các inode rỗi trong hệ thống file 
n  Thông tin về thiết bị, 
n  Kích thước khối của hệ thống file (phổ biến của khối là 1KB) 
14 
Inode 
n  Mỗi khi tạo một file mới, hệ thống sẽ gán cho nó một inode chưa 
sử dụng 
n  inode cho ta biết tập hợp các khối dữ liệu của file và các thông tin 
về file 
n  Tổ hợp gồm inode và tập các khối dữ liệu như là một file vật lý 
n  Các inode có chỉ số của inode: số thứ tự của inode trong danh 
sách inode trên hệ thống 
n  Hệ thống dùng 2 bytes để lưu trữ chỉ số của inode 
n  Một file chỉ có một inode song một file lại có một hoặc một số tên 
file 
n  Người dùng tác động thông qua tên file và tên file lại tham chiếu 
đến inode 
n  Khi làm việc, Linux dùng một vùng bộ nhớ chứa danh sách các 
inode: in-core inode 
15 
Cấu trúc Inode 
n  Kiểu file (file thông thường, thư mục, đặc tả kí tự, đặc tả khối, ống dẫn) 
n  Kiểu file có giá trị 0 tương ứng đó là inode chưa được sử dụng 
n  Quyền truy nhập file: có 3 mức quyền truy nhập liên quan đến các đối tượng: 
n  chủ của file 
n  mức nhóm người dùng của chủ nhân của file 
n  người dùng khác 
n  Quyền truy nhập là đọc, ghi, thực hiện hoặc một tổ hợp nào đó từ nhóm gồm 3 
quyền trên. 
n  Số lượng liên kết đối với inode: số lượng các tên file trên các thư mục được liên 
kết với inode này 
n  Định danh chủ nhân của inode 
n  Định danh nhóm chủ nhân 
n  Độ dài của file tính theo byte 
n  Thời gian truy nhập file: 
n  thời gian file được sửa đổi muộn nhất, 
n  thời gian file được truy nhập muộn nhất, 
n  thời gian file được khởi tạo, 
n  13 phần tử địa chỉ: 10 phần tử trực tiếp, 1 phần tử gián tiếp bậc 1, 1 phần tử gián 
tiếp bậc 2 và một phần tử gián tiếp bậc 3 
16 
Liên kết 
n  Unix có 2 kiểu liên kết 
n  Liên kết cứng 
n  Liên kết tượng trưng (liên kết mềm) 
n  Liên kết cứng: 
n  "Liên kết cứng" là một cách gọi khác đối với một file đang tồn tại, cho 
phép chúng ta tạo thêm một cách định vị trong hệ thống tệp 
n  Cùng chia sẻ một inode và inode này chứa đựng tất cả các thông tin về 
file 
n  Không có liên kết cứng đến thư mục 
n  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 
n  Kiểu file này như là một con trỏ chỉ dẫn tới một file hoặc một thư mục, và 
được sử dụng để thay thế cho file hoặc thư mục được trỏ tới 
n  Các thao tác (mở, đọc, ghi ...) được thực hiện trên các file liên kết, sau 
đó, nhân hệ thống sẽ tự động "tham chiếu" và thực hiện trên file đích của 
liên kết. 
n  Thao tác như xóa file, file liên kết sẽ bị xóa bỏ chứ không phải file đích 
của nó. 
17 
Lệnh tạo liên kết 
n  ln [] [] 
n  Các tùy chọn: 
n  -b, --backup[=CONTROL] : tạo liên kết quay trở lại cho mỗi file đích đang 
tồn tại. 
n  -f, --force : xóa bỏ các file đích đang tồn tại. 
n  -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. 
n  -n, --no-dereference : một file bình thường được xemlà đích liên kết từ 
một thư mục. 
n  -i, interactive : vẫn tạo liên kết dù file đích đã bị xóa bỏ. 
n  -s, --symbolic : tạo các liên kết tượng trưng. 
n  --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. 
n  -v, --verbose : hiển thị tên các file trước khi tạo liên kết. 
n  --help : hiển thị trang trợ giúp và thoát. 
18 
Quyền truy nhập 
n  Quyền truy cập một tệp/thư mục qui định 
nhóm người sử dụng nào được phép làm gì 
(thao tác) trên tệp thư mục đó 
n  Các nhóm người sử dụng 
n  Owner/User (người sở hữu), ký hiệu là u 
n  Group (những người cùng nhóm), ký hiệu là g 
n  Other (những người khác), ký hiệu là o 
n  All (tất cả mọi người), ký hiệu là a 
19 
Các kiểu file 
20 
Các quyền truy nhập 
21 
Cách đọc quyền truy nhập 
n  Giả sử khi thực hiện lệnh ls –l, chúng ta có kết quả 
như sau: 
n  -rw-r--r-- 1 brucelee martialart 5335 Nov 30 2006 myfile 
n  drwxr-xr-x 2 brucelee martialart 96 Apr 17 23:32 gis/ 
n  Khi đó: 
n  Nhóm u được đọc/ghi tệp myfile, không được thực 
hiện tệp myfile (rw-) 
n  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) 
n   
22 
Thay đổi quyền sở hữu/truy nhập 
n  chown [tùy-chọn] [chủ][:nhóm] 
n  Nếu chỉ có tham số về chủ, thì người dùng chủ sẽ có quyền sở hữu file và nhóm sở 
hữu không thay đổi 
n  Nếu theo sau tên người chủ là dấu “:" và tên của một nhóm thì nhóm đó sẽ nhóm 
sở hữu file 
n  Nếu chỉ có dấu “:" và nhóm mà không có tên người chủ thì chỉ có quyền sở hữu 
nhóm của file thay đổi, lúc này, lệnh chown có tác dụng giống như lệnh chgrp 
n  Các tùy chọn: 
n  -c, --changes: hiển thị dòng thông báo chỉ với các file mà lệnh làm thay đổi sở hữu 
(số thông báo hiện ra có thể ít hơn trường hợp -v, -verbosr). 
n  -f, --silent, --quiet: bỏ qua hầu hết các thông báo lỗi. 
n  -R, --recursive: thực hiện đổi quyền sở hữu đối với thư mục và file theo đệ quy. 
n  -v, --verbose: hiển thị dòng thông báo với mọi file liên quan mà chown tác động tới 
(có hoặc không thay đổi sở hữu). 
n  --help: đưa ra trang trợ giúp và thoát. 
n  Ví dụ: Thư mục LinuxVN.com có người sở hữu hiện tại là người dùng thu. Để 
người dùng lan là chủ sở hữu, gõ lệnh: 
n  # chown lan LinuxVN.com 
23 
Thay đổi nhóm sở hữu 
n  chgrp [tùy-chọn] {nhóm|--reference=nhómR} 
n  Thay thuộc tính nhóm sở hữu của file theo tên nhóm được chỉ ra 
trực tiếp theo tham số nhóm hoặc gián tiếp qua thuộc tính nhóm 
của file có tên là nhóm R. 
n  Các tùy chọn của lệnh là (một số tương tự như ở lệnh chown): 
n  -c, --changes : hiển thị dòng thông báo chỉ với các file mà lệnh làm 
thay đổi sở hữu (số thông báo hiện ra có thể ít hơn trường hợp -
v, -verbosr). 
n  -f, --silent, --quiet : bỏ qua hầu hết các thông báo lỗi. 
n  -R, --recursive : thực hiện đổi quyền sở hữu đối với thư mục và 
file theo đệ quy. 
n  -v, --verbose : hiển thị dòng thông báo với mọi file liên quan mà 
chgrp tác động tới (có hoặc không thay đổi sở hữu). 
n  --help : hiển thị trang trợ giúp và thoát 
24 
Thay đổi quyền truy cập 
n  chmod [tùy-chọn] 
n  chmod [tùy-chọn] 
n  chmod [tùy-chọn] --reference=nhómR 
n  Xác lập quyền truy nhập theo kiểu (mode) trên file: 
n  Dạng xác lập tương đối, 
n  Dạng thứ hai là dạng xác lập tuyệt đối 
n  Dạng gián tiếp chỉ dẫn theo quyền truy nhập của file nhómR. 
n  Các tùy chọn: 
n  -c, --changes 
n  -f, --silent, --quiet 
n  -v, --verbose 
n  -R, --recursive 
n  --help 
n  Tham số --reference=RFILE cũng ý nghĩa gián tiếp như trong lệnh chgrp. 
25 
Cách xác lập tương đối 
n  Ví dụ: 
n  chmod g+w test 
n  chmod o-rx test 
26 
Cách xác lập tuyệt đối 
n  Ví dụ, cặp 3 số hệ 8 là 755 tương ứng với dòng 9 bít 
111101101 với 111 cho chủ sở hữu, 101 cho nhóm sở hữu, 101 
cho người dùng khác 
n  Ví dụ: chmod 753 memo1 
n  đặt thuộc tính quyền truy nhập đối với file memo1 là rwxr-xr-x 
27 
Xem thông tin về thư mục 
n  -Xác định thư mục hiện thời với lệnh pwd 
n  pwd 
n  Cho biết hiện người dùng đang ở trong thư mục nào và 
hiện ra theo dạng một đường dẫn tuyệt đối. 
n  Ví dụ: gõ lệnh pwd tại dấu nhắc lệnh sau khi người 
dùng lan vừa đăng nhập thì màn hình hiển thị như sau: 
n  # pwd 
n  /home/lan 
n  # 
28 
Xem thông tin về thư mục 
n  ls [tùy-chọn] [file]... 
n  Tham số file có thể chứa các mô tả nhóm*, ? và cặp [ và ] 
n  Nếu không có tham số file, mặc định là thư mục hiện thời 
n  Các tùy chọn: 
n  -a : liệt kê tất cả các file, bao gồm cả file ẩn. 
n  -l : đưa ra thông tin đầy đủ nhất về các file và thư mục. 
n  -s : chỉ ra kích thước củ ... Linux không có lệnh khôi phục lại 
những gì đã xóa vì thế hãy cẩn trọng khi sử dụng lệnh này 
n  Cú pháp: 
n  rm[tùy-chọn] ... 
n  Xóa bỏ một file hoặc nhiều file. 
n  Các tùy chọn: 
n  -d, --directory : loại bỏ liên kết của thư mục, kể cả thư mục không rỗng. 
Chỉ có siêu người dùng mới được phép dùng tùy chọn này. 
n  -f, --force : bỏ qua các file (xác định qua tham số file) không tồn tại mà 
không cần nhắc nhở. 
n  -i, --interactive : nhắc nhở trước khi xóa bỏmột file. 
n  -r, -R, --recursive : xóa bỏ nội dung của thư mục một cách đệ quy. 
n  -v, --verbose : đưa ra các thông báo về quá trình xóa file. 
n  --help : hiển thị trang trợ giúp và thoát. 
n  - Lệnh rmcho phép xóa nhiều file cùng một lúc bằng cách chỉ ra tên của 
các file cần xóa trong dòng lệnh (hoặc dùng kí kiệu mô tả nhóm). 
41 
Đếm từ trong file 
n  wc [tùy-chọn] [file]... 
n  Lệnh hiện ra số lượng dòng, số lượng từ, số lượng ký tự có trong mỗi file, và một 
dòng tính tổng nếu có nhiều hơn một file được chỉ ra 
n  Nếu không có tùy chọn nào thì mặc định đưa ra cả số dòng, số từ và số ký tự 
n  Ngầm định khi không có tên file trong lệnh thì sẽ đọc và đếm trên thiết bị vào 
chuẩn 
n  Các tuỳ chọn: 
n  -c, --byte, --chars : đưa ra số ký tự trong file 
n  -l, --lines : đưa ra số dòng trong file 
n  -L, --max-line-length : đưa ra chiều dài của dòng dài nhất trong file 
n  -w, --words : đưa ra số từ trong file 
n  --help : hiển thị trang trợ giúp và thoát. 
n  Ví dụ: 
n  # wc /home/lan/mau/mau1 
n  11 64 293 /home/lan/mau/mau1 
n  Dòng thông báo trên cho biết file mau1 có 293 ký tự, số 64 từ và có 11 dòng 
n  # wc /home/lan/vd/vdcalj /home/lan/vd/vdwc 
n  8 41 192 /home/lan/vd/vdcalj 
n  24 209 1473 /home/lan/vd/vdwc 
n  32 250 1665 total 
42 
Loại bỏ những dòng không quan trọng 
n  Khi nội dung một file có một số các thông tin bị trùng lặp: các 
dòng trống, các dòng chứa nội dung giống nhau => Để làm gọn 
và thu nhỏ kích thước của file: sử dụng lệnh uniq 
n  uniq [tùy-chọn] [input] [output] 
n  Lệnh uniq sẽ loại bỏ các dòng trùng lặp kề nhau từ input và chỉ giữ 
lại một dòng duy nhất trong số các dòng trùng lặp rồi đưa ra 
output 
n  Các tuỳ chọn: 
n  -c, --count : đếmvà hiển thị số lần xuất hiện của các dòng trong 
file. 
n  -d : hiển thị lên màn hình dòng bị trùng lặp. 
n  -u : hiển thị nội dung file sau khi xóa bỏ toàn bộ các dòng bị trùng 
lặp không giữ lại một dòng nào. 
n  -i : hiển thị nội dung file sau khi xóa bỏ các dòng trùng lặp và chỉ 
giữ lại duy nhất một dòng có nội dung bị trùng lặp. 
n  -D : hiển thị tất cả các dòng trùng lặp trên màn hình. 
43 
Sắp xếp nội dung file 
n  sort là lệnh đọc các thông tin và sắp xếp chúng theo thứ tự trong bảng 
chữ cái hoặc theo thứ tự được quy định theo các tùy chọn của lệnh 
n  sort [tùy-chọn] [file] ... 
n  Các tùy chọn: 
n  + [-] : Hai giá trị số1 và số2 xác định "khóa" sắp xếp của 
các dòng, thực chất lấy xâu con từ vị trí số1 tới vị trí số2 của các dòng để 
so sánh lấy thứ tự sắp xếp các dòng. Nếu số2 không có thì coi là hết các 
dòng; nếu số2 nhỏ hơn số1 thì bỏ qua lựa chọn này. Chú ý, nếu có số2 
thì phải cách số1 ít nhất một dấu cách. 
n  -b : bỏ qua các dấu cách đứng trước trong phạmvi sắp xếp. 
n  -c : kiểmtra nếu file đã sắp xếp thì thôi không sắp xếp nữa. 
n  -d : xemnhư chỉ có các ký tự [a-zA-Z0-9] trong khóa sắp xếp, các dòng có 
các kí tự đặc biệt (dấu cách, ? ...) được đ-a lên đầu. 
n  -f : sắp xếp không phân biệt chữ hoa chữ thường. 
n  -n : sắp xếp theo kích thước của file. 
n  -r : chuyển đổi thứ tự sắp xếp hiện thời. 
n  Ví dụ: 
n  # sort -f vdsort 
44 
Xác định kiểu file 
n  Cú pháp lệnh file: 
n  file [tùy-chọn] [-f file] [-m ...] ... 
n  Xác định và in ra kiểu thông tin chứa trong file 
n  Lệnh file sẽ lần lượt kiểmtra từ kiểu file hệ thống, kiểu file magic (ví dụ file mô tả thiết bị) rồi đến kiểu file văn bản thông thường 
n  Nếu file được kiểmtra thỏa mãn một trong ba kiểu file trên thì kiểu file sẽ được in ra theo các 
dạng cơ bản sau: 
n  text: dạng file văn bản thông thường, chỉ chứa các mã ký tự ASCII. 
n  executable: dạng file nhị phân khả thi. 
n  data: thường là dạng file chứa mã nhị phân và không thể in ra được. 
n  Một số tuỳ chọn: 
n  -b : cho phép chỉ đưa ra kiểu file mà không đưa kèmtheo tên file. 
n  -f tên-file : cho phép hiển thị kiểu của các file có tên trùng với nội dung trên mỗi dòng trong file 
tên-file. Để kiểmtra trên thiết bị vào chuẩn, sử dụng dấu "-". 
n  -z : xemkiểu của file nén. 
n  Ví dụ: 
n  # file file.c file /dev/hda 
n  file.c: C program text 
n  file: ELF 32-bit LSB executable, Intel 80386,version 1,dynamically linked, not stripped 
n  /dev/hda: block special 
45 
Xem nội dung các file 
n  more [-dlfpcsu] [-số] [+/xâumẫu] [+dòng-số] [file ...] 
n  Các lựa chọn: 
n  -số : xác định số dòng nội dung của file được hiển thị (số). 
n  -d : trên màn hình sẽ hiển thị các thông báo giúp ng-ời dùng cách sử dụng đối với lệnh more, 
ví như [ Press space to continue, "q" to quit .], hay hiển thị [Press 
n  "h" for instructions .] thay thế cho tiếng chuông cảnh báo khi bấm sai một phím. 
n  -l : more thường xem^L là một ký tự đặc biệt, nếu không có tùy chọn này, lệnh sẽ dừng tại 
dòng đầu tiên có chứa ^L và hiển thị % nội dung đã xem được (^L không bị mất), nhấn 
phímspace (hoặc enter) để tiếp tục. Nếu có tùy chọn -l, nội dung của file sẽ được hiển thị như 
bình thường nhưng ở một khuôn dạng khác, tức là dấu ^L sẽ mất và trước dòng có chứa ^L 
sẽ có thêmmột dòng trống. 
n  -p : không cuộn màn hình, thay vào đó là xóa những gì có trên màn hình và hiển thị tiếp nội 
dung file. 
n  -c : không cuộn màn hình, thay vào đó xóa màn hình và hiển thị nội dung file bắt đầu từ đỉnh 
màn hình 
n  -s : xóa bớt các dòng trống liền nhau trong nội dung file chỉ giữ lại một dòng 
n  -u : bỏ qua dấu gạch chân. 
n  +/xâumẫu : tùy chọn +/xâumẫu chỉ ra một chuỗi sẽ được tìm kiếm trước khi hiển thị mỗi file. 
n  +dòng-số : bắt đầu hiển thị từ dòng thứ dòng-số. 
n  Ví dụ: 
n  # more -d vdmore 
46 
Các phím trong more 
47 
Thêm số thứ tự của các dòng trong file 
n  nl [tùy-chọn] 
n  Các tuỳ chọn: 
n  -b, --body-numbering=STYLE : sử dụng kiểu STYLE cho việc đánh thứ tự các dòng trong nội 
dung file. Có các kiểu STYLE sau: 
n  a : đánh số tất cả các dòng kể cả dòng trống; 
n  t : chỉ đánh số các dòng không trống; 
n  n : không đánh số dòng. 
n  -d, --section-delimiter=CC : sử dụng CC để đánh số trang logic (CC là hai ký tự xác định phạmvi 
cho việc phân trang logic). 
n  -f, --footer-numbering=STYLE : sử dụng kiểu STYLE để đánh số các dòng trong nội dung file 
(một câu có thể có hai dòng ...). 
n  -h, --header-numbering=STYLE : sử dụng kiểu STYLE để đánh số các dòng trong nội dung file. 
n  -i, --page-increment=số : đánh số thứ tự của dòng theo cấp số cộng có công sai là số. 
n  -l, --join-blank-lines=số :nhóm số dòng trống vào thành một dòng trống. 
n  -n, --number-format=khuôn : chèn số dòng theo khuôn (khuôn: ln - căn trái, không có số 0 ở 
đầu; rn - căn phải, không có số 0 ở đầu; rz - căn phải và có số 0 ở đầu) 
n  -p, --no-renumber : không thiết lập lại số dòng tại mỗi trang logic. 
n  -s, --number-separator=xâu : thêmchuỗi xâu vào sau số thứ tự của dòng. 
n  -v, --first-page=số : số dòng đầu tiên trên mỗi trang logic. 
n  -w, --number-width=số : hiển thị số thứ tự của dòng trên cột thứ số. 
n  --help : hiển thị trang trợ giúp và thoát. 
48 
Xem qua nội dung file 
n  head [tùy-chọn] [file]... 
n  Đưa ra màn hình 10 dòng đầu tiên của mỗi file 
n  Nếu có nhiều hơn một file, thì lần lượt tên của file và 10 dòng nội dung đầu tiên sẽ được 
hiển thị. Nếu không có tham số file, hoặc file là dấu "-", thì ngầm định sẽ đọc từ thiết bị vào 
chuẩn. 
n  Các tuỳ chọn: 
n  -c, --bytes=cỡ : hiển thị cỡ (số nguyên) ký tự đầu tiên trong nội dung file (cỡ có thể nhận 
n  giá trị là b cho 512, k cho 1K, m cho 1 Meg) 
n  -n, --lines=n : hiển thị n (số nguyên) dòng thay cho 10 dòng ngầm định. 
n  -q, --quiet, --silent : không đ-a ra tên file ở dòng đầu. 
n  -v, --verbose : luôn đ-a ra tên file ở dòng đầu. 
n  --help : hiển thị trang trợ giúp và thoát. 
n  Ví dụ: 
n  # head -6 vdhead1 vdhead2 
n  ==> vdhead1 <== 
n  1) New configuration mode 
n  1-1) Directories 
n  Now, everything goes to ~/GNUstep/Library/AfterStep or 
n  ==> vdhead2 <== 
n  1.7.164 patch 3 
n  $HOME/GNUstep/Library/AfterStep/start/Desktop/Theme/.include 
n  changed from shell script call to perl script call 
49 
Xem qua nội dung file 
n  tail [tùy-chọn] [file]... 
n  Đưa ra màn hình 10 dòng cuối trong nội dung của các file 
n  Nếu có nhiều hơn một file, thì lần lượt tên của file và 10 dòng cuối sẽ được hiển 
thị 
n  Nếu không có tham số file, hoặc file là dấu "-" thì ngầm định sẽ đọc từ thiết bị 
vào chuẩn. 
n  Các tùy chọn: 
n  --retry : cố gắng mởmột file khó truy nhập khi bắt đầu thực hiện lệnh tail. 
n  -c, --bytes=n : hiển thị n (số) ký tự sau cùng. 
n  -f, --follow[={name | descritptor}] : sau khi hiện nội dung file sẽ hiện thông tin về file: -f, --
follow, và --follow=descriptor là như nhau. 
n  -n, --lines=n : hiển thị n (số) dòng cuối cùng của file thay cho 10 dòng ngầm định. 
n  --max-unchanged-stats=n : hiển thị tài liệu về file (ngầm định n là 5). 
n  --max-consecutive-size-changes=n : hiển thị tài liệu về file (ngầm định n là 200). 
n  --pid=PID : kết hợp với tùy chọn -f, chấm dứt sau khi quá trình có chỉ số = PID lỗi. 
n  -q, --quiet, --silent : không đ-a ra tên file ở dòng đầu trong nội dung được hiển thị. 
n  -s, --sleep-interval=k : kết hợp với tùy chọn -f, dừng k giây giữa các hoạt động. 
n  -v, --verbose : luôn hiển thị tên của file. 
n  --help : hiển thị trang trợ giúp và thoát. 
n  Ví dụ: 
n  # tail -2 vdtail1 vdtail2 
50 
Tìm sự khác nhau giữa hai file 
n  diff [tuỳ-chọn] 
n  So sánh nội dung của hai file 
n  Nếu file1 là một thư mục còn file2 là một file bình thường, diff sẽ so sánh file có tên trùng với 
file2 trong thư mục file1 với file2. 
n  Nếu cả file1 và file2 đều là thư mục, diff sẽ thực hiện sự so sánh lần lượt các file trong cả hai 
thư mục theo thứ tự từ a-z (sự so sánh này sẽ không đệ qui nếu tuỳ chọn -r hoặc --recursive 
không được đ-a ra). So sánh giữa hai thư mục không thể chính xác như khi so sánh hai file 
n  Các tuỳ chọn: 
n  -a: xem tất cả các file ở dạng văn bản và so sánh theo từng dòng. 
n  -b: bỏ qua sự thay đổi về số l-ợng của ký tự trống. 
n  -B: bỏ qua mọi sự thay đổi mà chỉ chèn hoặc xoá các dòng trống. 
n  --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 
n  nhau. 
n  -d: tìmra sự khác biệt nhỏ (tuỳ chọn này có thể làmchậm tốc độ làmviệc của lệnh 
n  diff). 
n  --exclude-from=file: khi so sánh thư mục, bỏ qua các file và các thư mục con có tên 
n  phù hợp với mẫu có trong file. 
n  -i: so sánh không biệt chữ hoa chữ thường. 
n  -r: thực hiện so sánh đệ qui trên thư mục. 
n  -s: thông báo khi hai file là giống nhau. 
n  -y: hiển thị hai file cạnh nhau để dễ phân biệt sự khác nhau. 
51 
Tìm theo nội dung file bằng lệnh grep 
n  Lọc đầu ra của một lệnh khác với cú pháp là 
n  | grep 
n  Tìm dòng chứa mẫu đã định trong file được chỉ ra. 
n  grep [tùy-chọn] [file] 
n  Lệnh grep hiển thị tất cả các dòng có chứa mẫu-lọc trong file được chỉ ra (hoặc từ thiết bị 
vào chuẩn nếu không có file hoặc file có dạng là dấu "-") 
n  Các tùy chọn: 
n  -G, --basic-regexp : xemmẫu lọc như một biểu thức thông thường 
n  -E, --extended-regexp : xemmẫu lọc như một biểu thức mở rộng 
n  -F, --fixed-strings : xemmẫu như một danh sách các xâu cố định, được phân ra bởi 
n  các dòng mới. Ngoài lệnh grep còn có hai lệnh là egrep và fgrep. egrep tương 
n  tự như lệnh grep -E, fgrep tương tự với lệnh grep -F . 
n  -f file, --file=file : lấy các mẫu từ file, một mẫu trên một dòng. File trống chứa đựng 
n  các mẫu rỗng, và các dòng đưa ra cũng là các dòng trống. 
n  -H, --with-file : đ-a ra tên file trên mỗi dòng chứa mẫu tương ứng. 
n  -h, --no-filename : không hiển thị tên file kèmtheo dòng chứa mẫu trong trường hợp 
n  tìmnhiều file. 
n  -i : hiển thị các dòng chứa mẫu không phân biệt chữ hoa chữ thường. 
n  -l : đ-a ra tên các file trùng với mẫu lọc. 
n  -n, --line-number : thêm số thứ tự của dòng chứa mẫu trong file 
52 
Tìm theo nội dung file bằng lệnh grep 
53 
Tìm theo nội dung file bằng lệnh egrep 
54 
Tìm file theo đặc tính 
n  find [đường-dẫn] [biểu_thức] 
n  Tìm kiếm file trên cây thư mục theo biểu thức được đưa ra. Mặc định đường dẫn 
là thư mục hiện thời, biểu thức là -print. 
n  -daystart : đo thời gian (-amin, -atime, -cmin, -ctime, -mmin, -mtime). 
n  -depth : thực hiện tìm kiếm từ nội dung bên trong thư mục trước (mặc định việc 
tìm kiếm được thực hiện bắt đầu tại gốc cây thư mục có chứa file cần tìm). 
n  -follow : (tùy chọn này chỉ áp dụng cho thư mục) nếu có tùy chọn này thì các liên 
kết tượng trưng có trong một thư mục liên kết sẽ được chỉ ra. 
n  -help, --help : hiển thị kết quả của lệnh find và thoát. 
n  -amin n : tìm file được truy nhập n phút trước. 
n  -atime n : tìm file được truy nhập n*24 giờ trước. 
n  -cmin n : trạng thái của file được thay đổi n phút trước đây. 
n  -ctime n : trạng thái của file được thay đổi n*24 giờ trước đây. 
n  -empty : file rỗng và hoặc là thư mục hoặc là file bình thường. 
n  -user tên-ng-ời: file được sở hữu bởi người dùng tên-người. 
n  Vd: 
n  # find -name 'what*' 
n  ./usr/bin/whatis 
n  ./usr/bin/whatnow 
55 
Sao lưu các file 
n  tar [tùy-chọn] [, ...] [, ...] 
n  -c, --create : tạo file lưu trữ mới. 
n  --delete : xóa từ file lưu trữ (không sử dụng cho băng từ). 
n  -r, --append : chèn thêm file vào cuối file lưu trữ. 
n  -t, --list : liệt kê nội dung của một file lưu trữ. 
n  -u, --update : chỉ thêm vào file lưu trữ các file mới hơn các file đã có. 
n  -x, --extract, --get : tách các file ra khỏi file lưu trữ. 
n  -C, --directory tên-thư-mục : thay đổi đến thư mục có tên là tên-thư-mục. 
n  --checkpoint : đưa ra tên thư mục khi đọc file lưu trữ. 
n  --remove-files : xóa file gốc sau khi đã sao lưu chúng vào trong file lưu 
trữ. 
n  --totals : đưa ra tổng số byte đ-ợc tạo bởi tùy chọn --create. 
n  -v, --verbose : hiển thị danh sách các file đã được xử lý. 
n  Ví dụ 
n  # tar --create --file ./backup /usr/src 
56 
Nén, giải nén và xem nội dung các file 
n  Cú pháp các lệnh này như sau: 
n  gzip [tùy-chọn] [ -S suffix ] [ ] 
n  gunzip [tùy-chọn] [ -S suffix ] [ ] 
n  zcat [tùy-chọn] [ ] 
n  compress [tùy-chọn] [] 
n  uncompress [tùy-chọn] [] 
n  Ví dụ 
n  # gzip /home/test/vd1 
n  # ls /home/test 
n  Desktop data dictionary newt-0.50.8 rpm save vd1.gz 
n  # zcat /home/test/vd1 
57 
Cơ chế pipe 
n  | |  | 
58 
Tổng kết 
n  File, thư mục, hệ thống file 
n  Một số thư mục đặc biệt 
n  Quyền truy cập, quyền sở hữu tệp và thư mục 
n  Một số lệnh cơ bản thường dùng 
n  Định hướng lại vào/ra và pipe 

File đính kèm:

  • pdfbai_giang_he_dieu_hanh_unix_linux_chuong_3_he_thong_file_dan.pdf