
1
NhậpmônhệđiềuhànhUnix
NguyễnHảiChâu
Khoa Công nghệThông tin
Trường Đạihọc Công nghệ
ĐạihọcQuốcgiaHàNội
(Bài giảng tuần2)
Nội dung
Hệthống tệp của hệ điều hành Unix-Linux
Khái niệm tệp và thư mục (file/directory)
Liên kết trong hệthống tệp Unix
Quyền truy cập thư mục và tệp
Các lệnh cơ bản thao tác với tệp và thư mục
Nội dung một sốfile và thư mục đặc biệt
Nén và sao lưu tệp và thư mục
Định hướng lại vào/ra và pipe
Tệpvàthưmục
Tệp (file) là đơnvịlưutrữnhỏnhấttrong
hệđiềuhànhUnix/Linux
Tệplàmộtchuỗibyte
ThưmụctrongUnix làmộtloạitệpđặc
biệt, dùng để quản lý thông tin vềcác file
khác
Tên tệp/Tên thưmục
Tệpvàthưmụcđượcphânbiệtqua tên
Tên tệp/thưmụccóthểdài 256 ký tự, bao
gồmchữ, số, gạch chân, dấuchấm, dấu
cách
Các ký tựkhông đượcsửdụng trong tên
tệp/thưmục: !, *, $, &, #
Tậpcáctệp có trong máy do Unix/Linux
quảnlýđượcgọilà“hệthống tệp”
Ký hiệuchỉnhóm tệp
Có thểsửdụng các ký hiệuđặcbiệt* và?
để chỉđịnh nhóm các tệp
Ví dụ:
ab*: Tấtcảcác tệpcótênbắtđầubằng ab
bb*.c: Tấtcảcác tệpcótênbắtđầubằng ab
và kết thúc bằng .c
a?cd: Tấtcảcác tệpcótênbắtđầubằng chữ
a, sau đólàmộtkýtựbấtkỳrồikết thúc là cd
Cấutrúchệthống tệp
Mộtsốtên thưmục
đặcbiệt:
“/”: Thưmụcgốc
“.”: Thưmụchiệnhành
“..”: Thưmụccha
Ví dụ:
“/”: Thưmụcgốc
“usr” là thưmụccon
của“/”vàlàthưmục
cha của“lib”, “local”…

2
Đường dẫn(path)
Để định vịmộttệphoặcmộtthưmụctrong
hệthống tệp, ta cầnmộtđường dẫn
Ví dụ:
Đường dẫnđếnthưmục: /usr/bin
Đường dẫnđếntệp: /usr/bin/vi (vi là tên một
hệsoạnthảovănbảntrênUnix)
Đường dẫncónhiềuthànhphần, các thành
phầnlàtênthưmụchoặctêntệp(thường ở
vịtrí cuối cùng) cách nhau bởidấu“/”
Đường dẫntuyệtđốivàtương đối
Đường dẫntuyệtđốibắtđầubởidấu“/”
Đường dẫntương đốikhôngphảilàđường
dẫntuyệtđối
Đường dẫntương đốidùngđể chỉcách
định vịtệp/thưmụctừthưmụchiệnhành
Kiếntrúcbêntronghệthống tệp
Không bắtbuộchọcphầnnày
Xem trong giáo trình, mục 3.1.2, 3.1.3
trang 40 đếntrang49
Liên kết
Unix có 2 kiểu liên kết
Liên kếtcứng
Liên kếttượng trưng (liên kếtmềm)
Liên kếtcứng cho phép chúng ta tạothêm
mộtcáchđịnh vịtrong hệthống tệp
(không có liên kếtcứng đếnthưmục)
Liên kếtmềmlàmộtkiểutệpđặcbiệttham
chiếuđếntênmộttệphoặcthưmụckhác
Lệnh tạoliênkết
ln [<tùychọn>] <đích> [<tên liên kết>]
Các tùy chọn:
-b, --backup[=CONTROL] : tạo liên kết quay trởlại cho mỗi
file đích đang tồn tại.
-f, --force : xóa bỏcác file đích đang tồn tại.
-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ộtsốphiên bản không có tùy chọnnày.
-n, --no-dereference : một file bình thường đượcxemlàđích
liên kếttừmộtthưmục.
-i, interactive : vẫntạo liên kết dù file đích đãbịxóa bỏ.
-s, --symbolic : tạo các liên kếttượng trưng.
--target-directory=<tên-thư-mục> : xác định thưmụctên-
thư-mụclàthưmụccóchứa các liên kết.
-v, --verbose : hiểnthịtên các file trướckhitạo liên kết.
--help : hiểnthịtrang trợgiúp và thoát.
Quyềntruycậptệp/thưmục
Quyềntruycậpmộttệp/thưmụcqui định
nhóm ngườisửdụng
nào đượcphép
làm gì
(thao tác)
trên tệpthưmụcđó
Các nhóm ngườisửdụng
Owner/User (ngườisởhữu), ký hiệulàu
Group (những người cùng nhóm), ký hiệulàg
Other (những người khác), ký hiệulào
All (tấtcảmọingười), ký hiệulàa

3
Quyềntruycậptệp/thưmục
Các thao tác trên tệp:
Đọc(read), kýhiệulàr
Ghi (write), ký hiệulàw
Thựchiện (execute), ký hiệulàx
Các thao tác trên tệp:
Đọcnội dung thưmục(read): r
Đượctạotệpmớitrongthưmục (write): w
Đượcxemcáctệptrongthưmục (execute): x
Cách quảnlýquyềntruycập
xwrxwrxwrThao tác
oguNhóm
012345678Bit
Cách đọcquyềntruycập
Giảsửkhi thựchiệnlệnh ls –l, chúng ta có kết
quảnhưsau:
-rw-r--r-- 1 brucelee martialart 5335 Nov 30 2006 myfile
drwxr-xr-x 2 brucelee martialart 96 Apr 17 23:32 gis/
Khi đó:
Nhóm uđượcđọc/ghi tệp myfile, không đượcthực
hiệntệpmyfile(
rw-)
Nhóm gđượcđọcvàduyệtthưmục gis/ và không
đượctạotệpmớitrongthưmụcđó(
r-x)
…
KiểutệptrongUnix
Thưmục (directory)
File kiểukhối (block-type special file)
File kiểukýtự(character-type
special file)
Liên kếttượng trưng (symbolic link)
File đường ống (pipe)
Socket
File bình thường (regular file)
d
b
c
l
p
s
-
KiểutệpChữcái
biểudiễn
Thay đổiquyềnsởhữu/truy cập
Thay đổingườisởhữu:
chown<tênngườisởhữu> <tên tệp>
Thay đổinhóm:
chgrp <tên nhóm> <tên tệp>
Thay đổiquyềntruycập:
chmod <thay đổiquyềntruycập> <tên tệp>
<thay đổiquyềntruycập> là mộtdãychữhoặc
sốhệ8 đượcviết theo qui tắcnhưsau:
Qui tắcviếtquyềntruycập
Qui tắctương đối
chmod <nhóm><+/-/=><quyền> <tệp>
Nhóm có thểmộttrongsốa, u, ghoặco
Quyềnlàmộttrongsố: r, whoặcx
Ví dụ:
chmod o+rw myfile
chmod g-w myfile

4
Qui tắcviếtquyềntruycập
Qui tắctuyệtđối: Sửdụng các chữsốhệ8
Qui ước:
r=4
w=2
x=1
Ví dụ:
chmod 755 myfile
chmod 644 myfile
Các lệnh thao tác vớithưmục
Xem nội dung thưmục…
hiện hành: ls –l
bấtkỳ: ls –l <tên thưmục>
Đổithưmụchiệnhành: cd <tên thưmục>
Xem tên thưmụchiệnhành: pwd
Tạothưmụcmới: mkdir <tên thưmục>
Xóa thưmụcrỗng: rmdir <tên thưmục>
Đổitênthưmục: mv <tên cũ> <tên mới>
Các lệnh thao tác vớitệp(1)
Xem nội dung tệp: cat <tên tệp>
Xem nội dung tệptheotừng trang:
Unix/Linux: more <tên tệp>
Linux: less <tên tệp>
Copy tệp: cp <nguồn> <đích>
<nguồn> có thểlà mộttệp, khi đó<đích> là
mộttệphoặcmộtthưmục
<nguồn> có thểlà nhiềutệp, khi đó<đích>
phảilàmộtthưmục
Các lệnh thao tác vớitệp(2)
Copy thưmục: cp –r <nguồn> <đích>, với
<nguồn> và <đích> là hai thưmục
Đổitêntệp: mv <tên cũ> <tên mới>
Xóa tệp: rm <tên tệp/nhóm tệp>
Đây là lệnh “nguy hiểm”, cầnthậntrọng khi
dùng
Linux/Unix không có cơchếkhôi phụctệpđãbị
xóa
Các lệnh thao tác vớitệp(3)
Đếmkýtự, từvà dòng trong mộttệp:
Đếmsốký tự: wc –c (wc: word count)
Đếmtừ: wc –w
Đếmdòng: wc –l
Sắpxếpnộidung tệp: sort [tùy-chọn] tệp.
Các tùy chọn:
-k=<c1>[,<c2>]: Xếptheocáccộtcósốthứ
tựtừ<c1> [đếncột<c2>]. Cộtbắtđầutừ1.
-f: không phân biệtchữhoavàchữthường
Các lệnh thao tác vớitệp(4)
Xem kiểutệp: file <tên tệp/nhóm tệp>
Thêm sốthứtựcủacácdòngtrongtệp:
nl [tùy-chọn]<tên tệp>, các tùy chọn
-b=STYLE, trong đóSTYLE làa(đánh sốtấtcả
các dòng kểcảdòng trống), t(chỉđánh sốcác
dòng không trống)
-i=số: đánh sốthứtựcủadòngtheocấpsố
cộng có công sai là số…

5
Các lệnh thao tác vớitệp(5)
Xem n dòng ởđầutệp: head –n <tên tệp>
Xem n dòng ởcuốitệp: tail –n <tên tệp>
Tìm các điểm khác nhau ởhai tệp:
diff [tùy chọn] <tên tệp 1> <tên tệp2>, tùy
chọn:
-a: Xem tấtcảcác file ởdạng vănbảnvàso
sánh theo từng dòng
-b: bỏqua sựthay đổivềsốlượng củakýtự
trống
--brief: chỉthông báo khi có sựkhác nhau mà
không đưarachi tiếtnội dung khác nhau
Các lệnh thao tác vớitệp(6)
So sánh hai tệpcógiống nhau hay không:
cmp <tệp 1> <tệp2>
Tìm mộtmẫukýtựtrong mộthoặc nhiều
tệp: grep <mẫukýtự> <tên/nhóm tệp>
Xemthêmcáclệnh lọcphứctạphơn:
egrep và fgrep (trang 78-80 giáo trình)
Lệnh tìm tệptheocácthuộctínhcủatệp:
find (xem trang 80-82 giáo trình)
Các lệnh thao tác vớitệp(7)
Nén và giảinéntệp:
Nén: gzip <tên/nhóm tệp>,
zip <tên/nhóm tệp>
Giải nén: gunzip <tên/nhóm tệp>,
unzip <tên/nhóm tệp>
Lưutrữcác tệp:
tar cvzf<têntệplưutrữ><thưmục/nhóm tệp>
Lấycáctệptừlưutrữ:
tar xvzf<têntệplưutrữ><thưmục/nhóm tệp>
Định hướng lạivào/ra
Unix/Linux cho phép định hướng lại vào/ra:
Định hướng lại input: <lệnh> <<tệpvào>
Định hướng lạioutput: <lệnh> ><tệpra>
Định hướng lạierror: <lệnh> 2> <tệpra>
Ví dụ:
ls –l > tencacfile; cat > tepmoi
wc –l < myprog
myprogram 2> tepbaoloi
Cơchếpipe
<lệnh 1> |<lệnh 2> |…|<lệnh n>
Chương trình 1 Chương trình 2
Vào Vào RaRa |
Pipe
Các vấnđề cầnnhớ
Tệp, thưmục, hệthống tệp, liên kết
Quyềntruycậptệpvàthưmục
Mộtsốlệnh cơbảnthường dùng
Định hướng lạivào/ravàpipe (quan
trọng)

