SỬ DỤNG HỆ ĐIỀU HÀNH LINUX
II. HỆ THỐNG TẬP TIN
A. Tổ chức:
1) Tên các partition:
Mọi partition trong Linux đều tham chiếu qua các tập tin, với tên tập tin được đặt nhu sau:
/dev/xxyN Trong đó:
/dev/ là tên của thư mục chứa tất cả các tập tin thiết bị.
xx Hai chữ cái này chỉ ra kiểu thiết bị, như sau:
hd -ổ đĩa cứng IDE.
sd -ổ đĩa cứng SCSI.
fd -ổ mềm
cdrom –liên kết tới tập tin thiết bị CDROM
y Chữ cái này xác định thiết bị mà partion nằm trên đó. Trong đó:
a –là ổ đĩa cứng thứ nhất, master.
b –là ổ đĩa cứng thứ nhất slave.
c –là ổ đĩa cứng thứ hai, master.
d –là ổ đĩa cứng thứ hai, slave.
N con số nguyên này cho biết là partition thứ mấy của đĩa cứng. Các sốtừ 0 đến 4 xác định 4 phần chia đầu tiên (primary hay extended) Các phần chia logic được đánh số bắt đầu từ 5.
Ví dụ: /dev/hda1 là partition thứ nhất của ổ đĩa IDE thứ nhất 2) Tổ chức cây thư mục:
Tổ chức cơ bản của hệ thống thư mục trong Linux gồm một số thư mục sau:
− Thư mục /:là thư mục cao nhất.
− Thư mục /dev: Lưu các tập tin thiết bị.
− Thư mục /etc: Lưu các tập tin cấu hình của toàn bộ hệ thống bao gồm các tập tin cấu hình của các ứng dụng.
− Thư mục /sbin: là thư mục có chứa các tập tin thi hành dành riêng cho người dùng root sử dụng.
− Thư mục /usr: chứa các tập tin có thể dùng chung trên toàn hệ thống. Trong /usr còn có nhiều thư mục con như: /usr/bin chứa các tập tin thi hành, /usr/etc chúa các tập tin cấu hình, /usr/games dành cho các trò chơi, /usr/lib chứa các tập tin thư viện,…
− Thư mục /var: lưu các tập tin có kích thước thay đổi thất thường, có lúc lớn lúc nhỏ. Các tập tin thường dùng trong thư mục này là các tập tin hàng đợi của các dịch vụ như e-mail, máy in,…
− Thư mục /lib: chứa những thư viện cần thiết để thi hành các tập tin nhị phân có trong các thư mục bin và /sbin.
− Thư mục /proc: có chứa những tập tin đặc biệt, những tập tin này đại diện cho trạng thái hiện tại của nhân (kernel) hệ điều hành.
− Thư mục /mnt: tham chiếu đến các hệ thống tập tin được gắn (mount) tạm thời vào hệ thống tập tin. Ví dụ như CDROM, đĩa mềm.
− Thư mục /opt: được dùng để cài đặt các gói phần mềm bổ sung, với mục đích tạo điều kiện dễ dàng hơn cho công tác quản trị hệ thống.
3) Một số loại tập tin cơ bản trong Linux:
Tập tin nén và lưu trữ: là các tập tin có đuôi là .Z : tập tin được nén
.tar : tập tin lưu trữ (viết tắt của từ tape archive) .gz : tập tin nén (gzipped)
.tgz : tập tin vừa được lưu trữ, vừa được nén.
/
dev etc sbin usr var lib proc mnt opt
Tập tin hệ thống: là các tập tin có đuôi là
.rpm : chứa gói phần mềm cần cài đặt (Redhat Package Manager) .conf : tập tin cấu hình
.a : tập tin lưu trữ của hệ thống
Các tập tin chương trình và script (tập tin kịch bản): là các tập tin có đuôi là .h : tập tin header trong ngôn ngữ lập trình C/C++
.c : tập tin mã nguồn viết bằng ngôn ngữ C
.cc hoặc .cpp : tập tin mã nguồn viết bằng ngôn ngữ C++
.o : tập tin đối tượng (object) chương trình.
.pl : Perl script .tcl : TCL script .so : tập tin thư viện
Các tập tin đã được định dạng: là các tập tin ảnh, âm thanh, tài liệu điện tử (e- document)
.txt : tập tin ASCII
.html/htm : tập tin viết bằng ngôn ngữ HTML .ps : tập tin PostScript, được định dạng cho in ấn .au, .wav : tập tin âm thanh
.xmp, .jpg, .gif, .png : tập tin ảnh .pdf : tập tin tài liệu điện tử PDF Tập tin thiết bị:
Linux và Unix xem các thiết bị như là các tập tin. Vào ra dữ liệu trên các tập tin này chính là vào ra dữ liệu trên thiết bị. Ví dụ khi ta chép dữ liệu vào ổ A thì ta sẽ chép vào tập tin /dev/fd0. Hoặc mỗi máy in khi gắn vào hệ thống thì có một tập tin tương ứng với máy in, khi ta thực hiện việc in ấn thì dữ liệu được in sẽ đưa ra tập tin máy in tương ứng với máy in.
4) Link, Hard link và Symbol link:
Link (liên kết): là tạo ra một tên tập tin thứ hai cho một tập tin. Ví dụ, ta có một tập tin /usr/bill/testfile và ta muốn tạo một tập tin giống như vậy trong thư mục /usr/tim. Muốn vậy, ta có thể dùng phương pháp copy tập tin, nhưng ta cũng có thể dùng phương pháp tạo link, với lệnh như sau:
ln /usr/bill/testfile /usr/tim/testfile
Việc tạo link tức là tập tin được nhân lên nhiều lần nhưng các tập tin đều là một. Do đó nếu có bất kỳ sự thay đổi ở một tập tin sẽ ảnh hưởng ngay đến tập tin còn lại. Chú ý: nếu dùng phương pháp copy thì ta được hai tập tin riêng biệt nhau, không ảnh hưởng nhau.
Hard link: nội dung của tập tin hard link và tập tin nó liên kết kết tới luôn luôn giống nhau. Khi thay đổi nội dung của tập tin hard link thì nội dung của tập tin mà nó liên kết tới cũng thay đổi (và ngược lại). Bởi vì cả 2 tập tin này đều có cùng một inode giống nhau, nên chúng cùng trỏ tới các khối dữ liệu giống nhau trên vùng DataBlocks (xem lại cấu trúc hệ thống file Ext2 ở chương II)
Symbol link: là một tập tin chỉ chứa tên tập tin khác. Khi ta duyệt tập tin symbol link thì nó dẫn ta đến tập tin mà nó chỉ đến. Sự khác nhau giữa hard link và symbol link là hard link tham chiếu trực tiếp còn symbol link thì chỉ tham chiếu đến tên tập tin mà nó link đến.
5) Quyền tập tin:
Mỗi tập tin và thư mục trong Linux có tương ứng một bộ các quyền. Bộ quyền này xác định người dùng nào có quyền truy cập và mức độ truy cập đến tập tin/thư mục.
r w x r w x r w x
owner group-owner other users
Trong đó:
read: quyền đọc write: quyền viết execute: quyền thực thi
owner: chủ nhân, người tạo ra tập tin/thư mục group-owner: nhóm user có chứa chủ nhân.
other-user: các user khác (không thuộc owner và group-owner) B. Các lệnh về hệ thống tập tin:
1) Các lệnh về tập tin và thư mục:
Xem đường dẫn hiện hành, thư mục hiện hành lệnh pwd
Ví dụ:
# pwd
/var/spool/mail
Thay đổi thư mục hiện hành lệnh cd
cú pháp: cd [-L | -P] [dir]
dir: là thư mục muốn chuyển tới
-P: chuyển đến thư mục theo cấu trúc vật lý thay vì theo symbol link -L: cho phép chuyển đến thư mục theo symbol link
Ví dụ: Để so sánh sự khác nhau giữa hai tùy chọn –L và –P, ta xét ví dụ sau (trong đó /etc/init.d/ là một symbol link của /etc/rc.d/init.d/)
#cd -P init.d
#pwd
/etc/rc.d/init.d
#cd -L /etc/init.d
#pwd /etc/init.d Trường hợp đặc biệt:
− Chuyển đến thư mục cha cua thư mục hiện hành: cd ..
− Chuyển đến thư mục gốc của hệ thống: cd /
− Trở về thư mục chủ của người dùng: cd ~otheruser (vd: cd ~teo trở về thư mục chủ của user tên teo)
Liệt kê nội dung thư mục:
lệnh ls
Cú pháp: ls [options] [đường_dẫn/file]
Một số options của lệnh này:
-a: liệt kê tất cả các tập tin, thư mục con có trong thư mục, bao gồm cả các tập tin ẩn.
-l: liệt kê chi tiết các tập tin, thư mục con có trong thư mục. Bao gồm: ngày tháng, giờ tạo, kích thước, link, các quyền tập tin,…
-R: cho phép liệt kê cả nội dung bên trong các thư mục con của thư mục đang xét.
Xem nội dung tập tin:
Lệnh more
Cú pháp: more [options] [đường_dẫn/file]
Lệnh này dùng để hiển thị nội dung của một tập tin, lệnh này cho phép xem từng trang của màn hình. Trong lúc xem từng trang màn hình thì có thể nhấn phím:
q: thoát khỏi lệnh more f:lật sang trang kế tiếp b: trở về trang kế trước Các options của lệnh này:
-num: xác định kích thước màn hình là –num dòng (ví dụ: -8 là chỉ hiển thị 8 dòng 1 lần)
+linenum: dòng thứ linenum sẽ bắt đầu hiển thị.
-s: xóa bớt các dòng trắng, chỉ để lại các dòng trắng giữa các đoạn Lệnh less
Cú pháp: less [options] [đường_dẫn/file]
lệnh less tương tự như lệnh more nhưng khác với more ở chỗ nó cho phép thực hiện di chuyển lên xuống bằng các phím mũi tên.
Lệnh cat:
Lệnh cat dùng để hiển thị nội dung tập tin dạng văn bản. Để xem tập tin, ta chọn tên tập tin làm đối số
cú pháp: cat [tên_tập_tin]
ví dụ: #cat /mnt/ploppydisk/baitap.txt Lệnh cat dùng để nối tập tin:
Ví dụ: muốn nối thêm tập tin baitap1.txt vào tập tin baitap2.txt thành tập tin mới có tên là baitap3.txt, ta thực hiện như sau:
#cat baitap1.txt baitap2.txt > baitap3.txt
Lệnh cat cũng được dùng để soạn thảo một văn bản mới dạng text:
Cú pháp: cat > <tên_tập_tin> [Enter]
(chỗ này gõ các dòng dữ liệu của tập tin) gõ xong thì nhấn Ctr-D để kết thúc.
Tạo tập tin liên kết (link):
Lệnh ln:
Cú pháp: ln [options] target [link-name]
Với link-name có đường dẫn hoặc không có đường dẫn. Nếu không có đường dẫn thì link được tạo tại thư mục hiện hành.
Lệnh ln cho phép tạo một tập tin liên kết link-name đến tập tin target. Nếu không chỉ ra tập tin liên kết link-name thì một tập tin có tên trùng với tên tập tin target sẽ được tạo tại thư mục hiện hành.
Một số option của lệnh này:
-s: tạo các symbol link thay vì tạo các hard link. Ngầm định (không có tùy chọn –s) thì một hard link sẽ được tạo ra.
-b: tạo tập tin sao lưu của mỗi tập tin hiện có ở thư mục đích trước khi bị ghi đè. Các tập tin sao lưu có thêm ký tự ‘~’ cuối tên tập tin.
Ví dụ: Tạo một symbol link có tên là sales-june (đặt tại thư mục gốc) tới thư mục /mydoc/sales/june/ bằng lệnh sau:
#ln -s /mydoc/sales/june/ /sales-june
Chú ý: Không thể tạo được hard link cho một thư mục, chỉ có thể tạo được hard link trên cùng một partition. Có thể tạo được một symbol link ngay cả khi tập tin được liên kết không tồn tại. Khi tạo symbol link, target và link-name phải được chỉ ra theo đường dẫn tuyệt đối.
Sao chép tập tin,thư mục:
Lệnh cp:
cp [options] source dest
cp [options] source … directory
Lệnh cp được sử dụng để sao chép các tập tin và thư mục. Lệnh này cũng cho phép tạo các link. Lệnh này sao chép sao chép tập tin/thư mục source đến tập tin/thư mục dest, hoặc sao chép nhiều tập tin source đến thư mục directory.
Một số option của lệnh này:
-l: tạo hard link cho các tập tin thay vì sao chép.
-s: tạo symbol link cho các tập tin thay vì sao chép.
-r, -R: Sao chép các thư mục, kể cả thư mục con.
-p: các tập tin mới vẫn không thay đổi thông tin (mode, ownership, timestamps), vẫn giống như của tập tin gốc.
-i: xuất hiện lời nhắc trước khi ghi đè lên tập tin hiện có.
-u: chỉ sao chép các tập tin không có ở dest hoặc các tập tin ở source là mới hơn ở dest.
-L: xử lý symbol link như là một tập tin độc lập, nghĩa là tập tin mới sẽ là một tập tin bình thường.
-d: sao chép giữ nguyên trạng thái của symbol link, nghĩa là tập tin mới tạo vẫn là một symbol link
-b: tạo tập tin sao lưu của mỗi tập tin hiện có ở thư mục đích trước khi bị ghi đè. Các tập tin sao lưu có thêm ký tự ‘~’ cuối tên tập tin.
Ví dụ: sau đây thực hiện sao lưu cập nhật các tập tin có phần tên mở rộng là .doc và .txt vào thư mục /mydoc
#cp -u *.doc *.txt /mydoc
Xóa bỏ tập tin:
Lệnh rm:
Cú pháp: rm [options] file … Lệnh này để xóa bỏ một tập tin. Nó sẽ nhắc ta trước khi xóa.
Một số option của lệnh này:
-f: không thông báo khi thực hiện xóa tập tin.
-i: nhắc trước khi thực hiện xóa tập tin.
Ví dụ: #rm -f mydoc.txt Di chuyển/đổi tên tập tin:
Lệnh mv:
Cú pháp:
mv [options] source dest
mv [options] source… directory
Lệnh này thực hiện đổi tên tập tin source thành dest, hoặc thực hiện di chuyển các tập tin source vào thư mục directory
Một số option của lệnh này:
-i: nhắc trước khi thực hiện ghi đè.
-u: chỉ di chuyển các tập tin không có ở dest hoặc các tập tin ở source là mới hơn ở dest.
-f: không xuất hiện lời nhắc trước khi thực hiện ghi đè.
-b: tạo tập tin sao lưu của mỗi tập tin hiện có ở thư mục đích trước khi bị ghi đè. Các tập tin sao lưu có thêm ký tự ‘~’ cuối tên tập tin.
Ví dụ: sau đây thực hiện di chuyển tất cả các tập tin có phần tên mở rộng là .tar trong thư mục hiện hành vào thư mục backup:
#rm *.tar /backup Tạo thư mục:
Lệnh mkdir:
Cú pháp: mkdir [options] directory Một số option của lệnh này:
-p: cho phép tạo cả thư mục cha nếu như thư mục cha chưa có
Ví dụ: sau đây cho phép tạo cây thư mục mới docs/xls/priv trong thư mục /mnt đã có:
#mkdir -p /mnt/ docs/xls/priv Lệnh trên tương đương với 3 lệnh sau:
#mkdir /mnt/ docs/
#mkdir /mnt/ docs/xls/
#mkdir /mnt/ docs/xls/priv Xóa thư mục:
Lệnh rmdir:
Cú pháp: rmdir [options] directory Lệnh này cho phép xóa thư mục
Một số option của lệnh này:
-p: cho phép xóa bỏ cả cây thư mục (xóa bỏ cả thư mục cha nếu nó rỗng) Ví dụ: hai lệnh sau đây tương đương nhau:
#rmdir -p a/b/c
#rmdir a/b/c a/b a
Xác định vị trí tập tin chương trình hệ thống:
Lệnh whereis
Ví dụ: để xác định vị trí của tập tin chương trình ipchains, ta thực hiện lệnh:
#whereis ipchains ipchains: /sbin/ipchains Thay đổi quyền tập tin:
Lệnh chmod
Cú pháp: chmod [nhóm-người-dùng] [thao tác] [quyền] <tên-tập-tin>
Lệnh này được dùng để cấp phép hoặc loại bỏ bớt quyền tập tin. Nhưng chỉ có chủ sở hữu hoặc super-user root mới có quyền thực hiện lệnh này.
nhóm-người-dùng thao tác quyền
u (là user) + : thêm quyền r (là read)
g (là group) - : xóa quyền w (là write)
o (là others) = : gán quyền x (là execute – thực thi) a (là tất cả -all)
Ví dụ: Xóa quyền read của group và other: #chmod go -w myfile.txt Cấp quyền thực thi (x) cho mọi người: #chmod ugo +x myfile.txt hoặc #chmod a +x myfile.txt
lệnh chown:
Dùng để thay đổi người chủ sở hữu tập tin hoặc thư mục
Cú pháp: chown [tên-user] [:tên-nhóm] <tên-tập-tin/thư-mục>
chown -R [tên-user] [:tên-nhóm] <thư-mục>
Với tùy chọn –R, cho phép thay đổi tất cả thư mục con của thư mục đang xét Lệnh chgrp:
Dùng để thay đổi nhóm sở hữu của một tập tin/thư mục
Cú pháp: chgrp [tên-nhóm] <tên-thư-mục>
2) Các lệnh về quản lý đĩa và hệ thống tập tin:
Gắn kết (mount) và tháo kết (umount) một đĩa:
Việc dùng đĩa trong Linux không giống như trong MS-DOS hay trong MS- Windows. Khi muốn làm việc với một đĩa, ta phải gắn kết nó vào hệ thống bằng lệnh mount, khi sử dụng xong thì phải thực hiện lệnh umount rồi mới được lấy ra.
Cú pháp:
mount [-t type] [-o option] device mount-point umount device
trong đó:
type: là loại filesystem của đĩa muốn gắn kết (fat, ext2,…) option: là các tùy chọn
device: là tên của thiết bị đĩa (xem lại phần II.A.1)Tên các partition)
mount-point: là thư mục sẽ chứa nội dung của đĩa (từ đây, các truy cập đến thiết bị đĩa sẽ thông qua thư mục này). Chú ý, không được umount một đĩa khi đang đứng tại thư mục mount-point của đĩa đó.
Ví dụ: muốn gắn kết đĩa mềm ở ổ B hệ thống file FAT vào hệ thống tại thư mục /mnt/floppy thì dùng lệnh:
#mount -t vfat /dev/fd1 /mnt/floppy lấy ra: #umount /dev/fd1
Ví dụ: muốn gắn kết đĩa logic C tại partition thư hai hệ thống file Ext2 vào hệ thống tại thư mục /mnt/harddisk1 thì dùng lệnh:
#mount -t ext2 /dev/hda2 /mnt/ harddisk1 lấy ra: #umount /dev/hda2
đối với đĩa CD thì chỉ đơn giản:
#mount /dev/cdrom và #umount /dev/cdrom Tạo partition cho đĩa:
Muốn xem các partition trên đĩa, ta dùng lệnh sau:
fdisk -l [device]
lệnh này liệt kê tất cả các partition co trên ổ đĩa device được chỉ ra. Nếu không có tham số device thì nó sẽ liệt kê thông tin có trong tập tin /proc/partitions (nếu tập tin này tồn tại)
Để tạo partion cho một đĩa, ta dùng lệnh sau:
fdisk device
trong đó device là ổ đĩa mà ta muốn tạo các partition. Khi sử dụng lệnh này, sẽ xuất hiện lời nhắc sau:
Command (m for help):_
Tại dấu nhắc này ta có thể nhập các lệnh con của fdisk để fdisk thực hiện. Các lệnh đó bao gồm:
m: hiển thị danh sách các lệnh của fdisk.
p: hiển thị thông tin về các partition hiện có.
q: thoát khỏi lệnh fdisk mà không ghi lại các thay đổi.
w: thoát khỏi lệnh fdisk và có ghi lại các thay đổi.
v: kiểm tra bảng partition.
d: xóa bỏ một partition.
n: tạo một partition mới.
t: chọn kiểu hệ thống file cho partition.
a: thiết lập/loại bỏ cờ khởi động (boot) cho một partition.
l: liệt kê các loại hệ thống file và số hiệu đại diện cho mỗi loại hệ thống file.
Ví dụ:
#fdisk /dev/hdb
Command (m for help):_
Format một partition:
Lệnh mkfs:
Cú pháp: mkfs [option] filesystem
Lệnh này dùng để format (định dạng) một partition. Trong đó, filesystem là tên phần chia muốn định dạng. Ví dụ như /dev/hda1, /dev/sdb2, hoặc là một điểm gắn kết (mount-point) với phần chia. Ví dụ như /mnt/floppy.
Một số tùy optition của lệnh này: