Bài giảng Hệ điều hành Unix-Linux - Chương 3: Hệ thống File

Khái niệm cơ bản

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

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

 Cách tổ chức dữ liệu trong file thuộc về người đã tạo ra file

 File có thể là:

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

trên C, PASCAL, shell script .)

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

 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.

pdf83 trang | Chuyên mục: Linux | Chia sẻ: dkS00TYs | Lượt xem: 2236 | Lượt tải: 3download
Tóm tắt nội dung Bài giảng Hệ điều hành Unix-Linux - Chương 3: Hệ thống File, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
ersion 1,dynamically linked, 
not stripped
/dev/hda: block special
66
Linux operating system - Nguyen Tri Thanh
Xem nội dung các file
more [-dlfpcsu] [-số] [+/xâumẫu] [+dòng-số] [file ...]
 Tùy chọn
-số : xác ñịnh số dòng nội dung của file ñược hiển thị (số).
-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 "h" for instructions .] thay thế cho tiếng
chuông cảnh báo khi bấm sai một phím.
-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ím space (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êm một dòng trống.
67
Linux operating system - Nguyen Tri Thanh
Xem nội dung các file (tiếp)
more [-dlfpcsu] [-số] [+/xâumẫu] [+dòng-số] [file ...]
 Tùy chọ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.
-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
-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
-u : bỏ qua dấu gạch châ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.
+dòng-số : bắt ñầu hiển thị từ dòng thứ dòng-số.
 Ví dụ
# more -d vdmore
68
Linux operating system - Nguyen Tri Thanh
Các phím trong more
69
Linux operating system - Nguyen Tri Thanh
Thêm số thứ tự của các dòng trong file
nl [tùy-chọn] 
 Tuỳ chọ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:
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;
n : không ñánh số dòng.
-d, --section-delimiter=CC : sử dụng CC ñể ñánh số trang logic (CC là
hai ký tự xác ñịnh phạm vi cho việc phân trang logic).
-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 ...).
-h, --header-numbering=STYLE : sử dụng kiểu STYLE ñể ñánh số các
dòng trong nội dung file.
70
Linux operating system - Nguyen Tri Thanh
Thêm số thứ tự của các dòng trong file (tiếp)
nl [tùy-chọn] 
 Tuỳ chọ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ố.
-l, --join-blank-lines=số :nhóm số dòng trống vào thành một dòng trống.
-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) 
-p, --no-renumber : không thiết lập lại số dòng tại mỗi trang logic.
-s, --number-separator=xâu : thêm chuỗi xâu vào sau số thứ tự của dòng.
-v, --first-page=số : số dòng ñầu tiên trên mỗi trang logic.
-w, --number-width=số : hiển thị số thứ tự của dòng trên cột thứ số.
 Ví dụ
# nl --body-numbering=a --number-format=rz vdnl
71
Linux operating system - Nguyen Tri Thanh
Xem qua nội dung file
head [tùy-chọn] [file]...
 Hiển thị 10 dòng ñầu tiên của mỗi file
 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ị
 Tuỳ chọ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 giá trị là b cho 512, k cho 1K, m cho 1 Meg)
-n, --lines=n : hiển thị n (số nguyên) dòng thay cho 10 dòng ngầm ñịnh.
-q, --quiet, --silent : không ñ-a ra tên file ở dòng ñầu.
 Ví dụ
# head -6 vdhead1 vdhead2
==> vdhead1 <==
1) New configuration mode
1-1) Directories
Now, everything goes to ~/GNUstep/Library/AfterStep or
==> vdhead2 <==
1.7.164 patch 3
$HOME/GNUstep/Library/AfterStep/start/Desktop/Theme/.include
changed from shell script call to perl script call
72
Linux operating system - Nguyen Tri Thanh
Xem qua nội dung file
tail [tùy-chọn] [file]...
 ðưa ra màn hình 10 dòng cuối trong nội dung của các file
 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ị
 Tùy chọn
 --retry : cố gắng mở một file khó truy nhập khi bắt ñầu thực hiện lệnh
tail
 -c, --bytes=n : hiển thị n (số) ký tự sau cùng
 -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
 Ví dụ
# tail -2 vdtail1 vdtail2
73
Linux operating system - Nguyen Tri Thanh
Tìm sự khác nhau giữa hai file
diff [tuỳ-chọn] 
 So sánh nội dung của hai file
 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ế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 
 So sánh giữa hai thư mục không thể chính xác như khi so sánh
hai file
74
Linux operating system - Nguyen Tri Thanh
Tìm sự khác nhau giữa hai file
diff [tuỳ-chọn] 
 Các tuỳ chọn:
 -a: xem tất cả các file ở dạng văn bản và so sánh theo từng dòng
 -b: bỏ qua sự thay ñổi về số l-ợng của ký tự trống
 -B: bỏ qua mọi sự thay ñổi mà chỉ chèn hoặc xoá các dòng trống.
 --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
 -d: tìm ra sự khác biệt nhỏ (tuỳ chọn này có thể làm chậm tốc ñộ
làm việc của lệnh diff)
 -i: so sánh không biệt chữ hoa chữ thường
 -r: thực hiện so sánh ñệ qui trên thư mục
 -s: thông báo khi hai file là giống nhau
 -y: hiển thị hai file cạnh nhau ñể dễ phân biệt sự khác nhau
 Ví dụ
diff ./ver0.5/mydb.c ./ver0.6/mydb.c
75
Linux operating system - Nguyen Tri Thanh
Tìm theo nội dung file bằng lệnh grep
 | grep 
grep [tùy-chọn] [file]
 Hiển thị tất cả các dòng có chứa mẫu-lọc
 Tùy chọn
-G, --basic-regexp : xem mẫu lọc như một biểu thức thông thường
-E, --extended-regexp : xem mẫu lọc như một biểu thức mở rộng
-F, --fixed-strings : xem mẫu như một danh sách các xâu cố ñịnh, ñược
phân ra bởi các dòng mới. Ngoài lệnh grep còn có hai lệnh là egrep
và fgrep. egrep tương tự như lệnh grep -E, fgrep tương tự với lệnh
grep -F 
-f file, --file=file : lấy các mẫu từ file, một mẫu trên một dòng
-H, --with-file : ñ-a ra tên file trên mỗi dòng chứa mẫu tương ứng.
-h, --no-filename : không hiển thị tên file kèm theo dòng chứa mẫu trong
trường hợp tìm nhiều file.
-i : hiển thị các dòng chứa mẫu không phân biệt chữ hoa chữ thường.
-l : ñưa ra tên các file trùng với mẫu lọc.
-n, --line-number : thêm số thứ tự của dòng chứa mẫu trong file
76
Linux operating system - Nguyen Tri Thanh
Tìm theo nội dung file bằng lệnh grep
77
Linux operating system - Nguyen Tri Thanh
Tìm theo nội dung file bằng lệnh egrep
Tương tự như lệnh grep, nhưng egrep ñưa ra thêm một số ký
tự ñại diện trong biểu thức chính quy tạo mẫu-lọc
78
Linux operating system - Nguyen Tri Thanh
Lệnh tách và ghép các cột trong file văn bản
 Các lệnh trong Linux thường trả về kết quả theo dạng các dòng
ñược chia thành các cột (lệnh ls, ps, …)
 Các file cấu hình trong Linux cũng có thể ñược lưu theo dạng
này (file /etc/passwd)
 Lệnh cut dùng ñể trích ra một số cột trong 1 file văn bản
 cut [tùy chọn] file
 cut –f 1,2 /etc/passwd
 Lệnh paste dùng ñể ghép các cột của các file văn bản thành 1 
file lớn hơn
 paster …
 paste file1.txt file2.txt > file3.txt
79
Linux operating system - Nguyen Tri Thanh
Tìm file theo ñặc tính
find [ñường-dẫn] [biểu_thức]
 Tìm kiếm file trên cây thư mục theo biểu thức ñược ñưa ra
 Tùy chọn
 Mặc ñịnh ñường dẫn là thư mục hiện thời, biểu thức là -print.
 -daystart : ño thời gian (-amin, -atime, -cmin, -ctime, -mmin, -
mtime).
 -depth : thực hiện tìm kiếm từ nội dung bên trong thư mục
 các test
 -amin n : tìm file ñược truy nhập n phút trước.
 -atime n : tìm file ñược truy nhập n*24 giờ trước.
 -cmin n : trạng thái của file ñược thay ñổi n phút trước ñây.
 -ctime n : trạng thái của file ñược thay ñổi n*24 giờ trước ñây.
 -empty : file rỗng và hoặc là thư mục hoặc là file bình thường.
 -user tên-người: file ñược sở hữu bởi người dùng tên-người.
80
Linux operating system - Nguyen Tri Thanh
Tìm file theo ñặc tính
 Ví dụ
# find -name 'what*' 
./usr/bin/whatis
./usr/bin/whatnow
 Có thể kết hợp lệnh find với một lệnh khác nữa
# find . -type f -exec grep -l -i mapping ‘{}’ \ ;
./OWL/WordMap/msw-to-txt.c
./.elm/aliases.text
./Mail/mark
./News/usenet.alt
./bin/my.new.cmd: Permission denied
./src/fixit.c
./temp/attach.msg
find . -maxdepth 1 -type d -name "*" -exec rm -rf '{}' \;
find /tmp -name core -type f -print | xargs /bin/rm -f
81
Linux operating system - Nguyen Tri Thanh
Nén, giải nén và xem nội dung các file
gzip [tùy-chọn] [ -S suffix ] [ ]
gunzip [tùy-chọn] [ -S suffix ] [ ]
zcat [tùy-chọn] [ ]
 Ví dụ
# gzip /home/test/vd1
# ls /home/test
Desktop data dictionary newt-0.50.8 rpm save vd1.gz 
# zcat /home/test/vd1.gz 
 Tiện ích nén mới
bzip2 [tùy chọn] 
bunzip2 [tùy chọn] 
82
Linux operating system - Nguyen Tri Thanh
Sao lưu các file
tar [tùy-chọn] [, ...] [, ...]
 Tùy chọn
-c, --create : tạo file lưu trữ mới.
--delete : xóa từ file lưu trữ (không sử dụng cho băng từ).
-r, --append : chèn thêm file vào cuối file lưu trữ.
-t, --list : liệt kê nội dung của một file lưu trữ.
-u, --update : chỉ thêm vào file lưu trữ các file mới hơn các file ñã có.
-x, --extract, --get : tách các file ra khỏi file lưu trữ.
-C, --directory tên-thư-mục : thay ñổi ñến thư mục có tên là tên-thư-
mục.
--remove-files : xóa file gốc sau khi ñã sao lưu chúng vào trong file lưu
trữ.
-v, --verbose : hiển thị danh sách các file ñã ñược xử lý.
 Ví dụ
# tar --create --file ./backup /usr/src
83
Linux operating system - Nguyen Tri Thanh
Sao lưu các file (tiếp)
tar [tùy-chọn] [, ...] [, ...]
 Có thể kết hợp nén file sau khi sao lưu
-z : nén bằng gzip
-j : nén bằng bzip2
 Cách sử dụng các tùy chọn này là bài tập

File đính kèm:

  • pdfBài giảng Hệ điều hành Unix-Linux - Chương 3 Hệ thống File.pdf