Bài giảng Hệ điều hành UNIX-Linux - Chương 3: Hệ thống File
Một đối tượng điển hình trong các hệ điều hành đó là file
! Tệp (file) là đơn vịlưu trữnhỏnhất trong hệ điều hành Unix/Linux
! 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ềchủcủa nó là 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, 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.
! 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
! 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
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:
- Bài giảng Hệ điều hành UNIX-Linux - Chương 3 Hệ thống File.pdf