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
lý
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.
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:
- Bài giảng Hệ điều hành Unix-Linux - Chương 3 Hệ thống File.pdf