Tài liệu Bài giảng Hệ điều hành unix: HỆ ĐIỀU HÀNH UNIX
HỆ ĐIỀU HÀNH UNIX
I/ Tổng quan về hệ điều hành UNIX
1. Lịch sử
Năm 1969 Ken Thompson đã lần đầu tiên cài đặt hệ điều hành UNIX. Mục tiêu khởi đầu là cung
cấp một môi trường máy tính hoá để mô phỏng trò chơi không gian. Năm 1973 Ritchie và
Thompson đã viết lại hệ điều hành bằng ngôn ngữ C, khác hẳn với các hệ điều hành truyền thống
ghi bằng ngôn ngữ máy, do đó UNIX rất dễ cài đặt trên các hệ máy khác. Từ đó đã khai sinh ra
hệ điều hành UNIX. Năm 1974 hệ thống UNIX đã được cài đặt trên các máy DEC PDP-11 ở hơn
100 trường đại học. Mục tiêu chủ yếu là cung cấp môi trường cho các lập trình viên chuyên
nghiệp.
Ngày nay, 20 năm đã qua, có hàng trăm ngàn hệ thống UNIX cài đặt trên khắp thế giới. Hầu hết
các hãng sản xuất máy đều có một phiên bản cho UNIX.
Tuy nhiên hiện nay để chuẩn hoá hệ điều hành UNIX, người ta quy...
43 trang |
Chia sẻ: Khủng Long | Lượt xem: 1176 | Lượt tải: 0
Bạn đang xem trước 20 trang mẫu tài liệu Bài giảng Hệ điều hành unix, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
HEÄ ÑIEÀU HAØNH UNIX
HEÄ ÑIEÀU HAØNH UNIX
I/ Toång quan veà heä ñieàu haønh UNIX
1. Lòch söû
Naêm 1969 Ken Thompson ñaõ laàn ñaàu tieân caøi ñaët heä ñieàu haønh UNIX. Muïc tieâu khôûi ñaàu laø cung
caáp moät moâi tröôøng maùy tính hoaù ñeå moâ phoûng troø chôi khoâng gian. Naêm 1973 Ritchie vaø
Thompson ñaõ vieát laïi heä ñieàu haønh baèng ngoân ngöõ C, khaùc haún vôùi caùc heä ñieàu haønh truyeàn thoáng
ghi baèng ngoân ngöõ maùy, do ñoù UNIX raát deã caøi ñaët treân caùc heä maùy khaùc. Töø ñoù ñaõ khai sinh ra
heä ñieàu haønh UNIX. Naêm 1974 heä thoáng UNIX ñaõ ñöôïc caøi ñaët treân caùc maùy DEC PDP-11 ôû hôn
100 tröôøng ñaïi hoïc. Muïc tieâu chuû yeáu laø cung caáp moâi tröôøng cho caùc laäp trình vieân chuyeân
nghieäp.
Ngaøy nay, 20 naêm ñaõ qua, coù haøng traêm ngaøn heä thoáng UNIX caøi ñaët treân khaép theá giôùi. Haàu heát
caùc haõng saûn xuaát maùy ñeàu coù moät phieân baûn cho UNIX.
Tuy nhieân hieän nay ñeå chuaån hoaù heä ñieàu haønh UNIX, ngöôøi ta quy öôùc caùc taäp leänh chuaån vaø goïi
laø UNIX System V Release 4. Treân maùy PC hieän nay phoå bieán hai heä ñieàu haønh laø SCO UNIX vaø
SUN Solaris.
2. Caùc ñaëc ñieåm cô baûn
Heä ñieàu haønh UNIX coù moät soá ñaëc ñieåm sau:
— Ña chöông
— Nhieàu ngöôøi söû duïng
— Baûo maät
— Ñoäc laäp phaàn cöùng
— Keát noái môû
— Duøng chung thieát bò
— Toå chöùc taäp tin phaân caáp
a/ Nhieàu ngöôøi söû duïng:
Nhieàu ngöôøi söû duïng coù theå söû duïng maùy tính coù caøi UNIX taïi moät thôøi ñieåm. Ví duï:
UNIX Server:
— User A: duøng Oracle
— User B: chöông trình bieân dòch
— User C: göûi thö
Heä ñieàu haønh UNIX quaûn lyù nhöõng ngöôøi söû duïng theo caáu truùc phaân caáp, ngöôøi söû duïng coù theå
giao tieáp vôùi nhau theo caùc nhoùm. Ngöôøi söû duïng cao nhaát (super user) coù theå can thieäp ñeán caùc
ngöôøi söû duïng khaùc neáu caàn.
Trang 1/43
HEÄ ÑIEÀU HAØNH UNIX
b/ Ña chöông
Taïi moät thôøi ñieåm moät ngöôøi söû duïng coù theå thöïc hieän ñoàng thôøi nhieàu taùc vuï. Vôùi heä ñieàu haønh
ñôn chöông nhö MS-DOS moät leänh thöïc hieän seõ chieám toaøn boä thôøi gian CPU xöû lyù, baïn chæ coù
theå thöïc hieän leänh keá khi leänh tröôùc ñoù ñaõ ñöôïc thöïc hieän xong. Coøn trong heä ñieàu haønh UNIX
baïn coù theå ñaët leänh chaïy ôû cheá ñoä neàn (background) ñoàng thôøi khi ñoù coù theå thöïc hieän caùc leänh
keá.
c/ Toå chöùc taäp tin phaân caáp
Caùc taäp tin cuûa UNIX ñöôïc toå chöùc theo daïng caây coù chung thö muïc goác ñöôïc bieåu dieãn bôûi kyù töï
/.
Beân trong thö muïc coù theå laø caùc thö muïc con hay caùc taäp tin . UNIX coù 3 loaïi taäp tin:
- Taäp tin bình thöôøng (ordinary file): laø moät taäp tin chöùa caùc döõ lieäu ASCII hay nhò phaân.
- Taäp tin thö muïc (directory file): chöùa danh saùch caùc phaàn töû (thö muïc, taäp tin, thieát bò) coù theå
truy xuaát tôùi.
- Taäp tin ñaëc bieät (special file): laø caùc taäp tin lieân quan ñeán caùc thieát bò phaàn cöùng vaø truyeàn
thoâng.
Ví duï:
- baøn phím laø moät taäp tin nhaäp.
- maøn hình laø moät taäp tin xuaát.
/
UMUNIX - bin - users - dev
user1
user2
(n oå ñóa)
Ñoái vôùi Unix toaøn boä heä thoáng taäp tin chæ coù moät root. Coù theå söû duïng leänh mount ñeå keát noái caùc oå
ñóa trong moät heä thoáng taäp tin duy nhaát.
OÅ 1 : / LIB
BIN
USR
OÅ 2: /- ETC
ORACLE
mount => /- LIB
BIN
USR- ETC
Trang 2/43
HEÄ ÑIEÀU HAØNH UNIX
- ORACLE
d/ Ñoäc laäp phaàn cöùng
Vì heä ñieàu haønh UNIX ñöôïc vieát baèng ngoân ngöõ caáp cao cho neân noù raát deã caøi ñaët treân caùc caáu
hình phaàn cöùng khaùc. Hôn nöõa vôùi caùch toå chöùc caùc thieát bò laø caùc taäp tin ñaëc bieät neân vieäc theâm
vaøo hay loaïi boû caùc thieát bò raát deã daøng.
e/ Duøng chung thieát bò
Vì Unix laø moâi tröôøng nhieàu ngöôøi söû duïng do ñoù caùc thieát bò ngoaïi vi nhö maùy in,v.v... coù theå
ñöôïc duøng chung bôûi nhieàu ngöôøi söû duïng.
f/ Baûo maät
Unix cung caáp raát nhieàu cô cheá baûo maät khaùc. Trong ñoù moãi ngöôøi söû duïng coù moät soá quyeàn treân
caùc taäp tin nhaát ñònh vaø chæ ñöôïc pheùp chaïy moät soá chöông trình nhaát ñònh. Ngoaøi ra cô cheá maõ
hoaù vaø giaûi maõ cuõng laø moät phaàn cuûa heä ñieàu haønh.
g/ Keát noái môû
Unix cung caáp caùc thieát bò maïng qua Ethernet, Modem, X25. Vôùi nhieàu thuû tuïc truyeàn thoâng khaùc
nhau UUCP (Unix-to-Unix Copy), TCP/IP, vaø caùc öùng duïng E-mail,FTP, NFS (Network File
System).
3. Caùc thaønh phaàn chính cuûa heä ñieàu haønh UNIX:
Windows & Graphic User Interface
Shell
Leänh vaø tieän ích
Caùc boä ñieàu khieån thieát bò
Kernel
a/ Kernel:
Laø thaønh phaàn chuû yeáu hay traùi tim cuûa heä ñieàu haønh. Noù chieám khoaûng 500KB --> 2MB tuøy theo
tính chaát phöùc taïp cuûa heä thoáng. Nhieäm vuï chuû yeáu cuûa Kernel laø:
Quaûn lyù taøi nguyeân: nhö boä nhôù, v.v...
Quaûn lyù heä thoáng taäp tin: coù theå laø caùc taäp tin, thö muïc cuïc boä hay töø xa.
Quaûn lyù caùc quaù trình thöôøng truù (deamon).
Quaûn lyù boä nhôù aûo: ñeå thöïc thi nhieàu quaù trình ñoàng thôøi trong khiù soá löôïng boä nhôù coù haïn,
Unix toå chöùc moät vuøng treân ñóa nhö laø moät vuøng boä nhôù (boä nhôù aûo). Kernel phaûi “swap” caùc
quaù trình giöõa boä nhôù --> boä nhôù aûo
RAM
Kernel Vuøng laøm vieäc Swap
Ñóa cöùng
Swap
boä nhôù aûo
Trang 3/43
HEÄ ÑIEÀU HAØNH UNIX
Quaûn lyù quaù trình :
Nhö ñaõ bieát vì Unix laø moät heä ñieàu haønh ña chöông do ñoù vieäc quaûn lyù caùc quaù trình ñoàng thôøi raát
phöùc taïp. Noù phaûi quaûn lyù vieäc khôûi taïo vaø keát thuùc caùc quaù trình cuõng nhö caùc tranh chaáp coù theå
xaûy ra.
Quaûn lyù caùc boä ñieàu khieån thieát bò.
Quaûn lyù maïng: bao goàm nhieàu thieát bò phaàn cöùng khaùc vaø caùc thuû tuïc khaùc.
Quaûn lyù vieäc khôûi ñoäng vaø döøng maùy.
b/ Boä ñieàu khieån thieát bò:
UNIX theå hieän caùc thieát bò vaät lyù nhö caùc taäp tin ñaëc bieät. Moä taäp tin ñaëc bieät seõ coù 1 ñieåm vaøo
trong thö muïc vaø coù 1 teân taäp tin. Do ñoù Unix cho pheùp ngöôøi söû duïng ñònh nghóa teân thieát bò.
Caùc thieát bò ñöôïc chia laøm hai loaïi: kyù töï vaø khoái.
- Thieát bò kyù töï ñoïc vaø ghi doøng caùc kyù töï (ví duï caùc thieát bò ñaàu cuoái).
- Thieát bò khoái ñoïc vaø ghi döõ lieäu trong caùc khoái coù kích thöôùc coá ñònh (ví duï oå ñóa).
Thieát bò coù theå ñoåi teân nhö ñoåi teân taäp tin. Thö muïc chöùa caùc boä ñieàu khieån thieát bò laø /dev.
c/ Leänh vaø tieän ích:
Caùc leänh vaø tieän ích cuûa Unix raát ña daïng.
Moät leänh UNIX coù daïng:
$leänh [caùc choïn löïa] [caùc ñoái soá]
leänh thöôøng laø chöõ nhoû. Unix phaân bieät chöõ lôùn, nhoû.
Ví duï: $ls -c /dev
Ta coù theå chia leänh thaønh caùc nhoùm sau:
a/ Caùc leänh khôûi taïo:
exit thoaùt khoûi heä thoáng (Bourne-Shell)
logout thoaùt khoûi heä thoáng C-Shell
id chæ danh cuûa ngöôøi söû duïng
logname teân ngöôøi söû duïng login
man giuùp ñôõ
newgrp chuyeån ngöôøi söû duïng sang moät nhoùm môùi
psswd thay ñoåi password cuûa ngöôøi söû duïng
set xaùc ñònh caùc bieán moâi tröôøng
tty ñaët caùc thoâng soá terminal
uname teân cuûa heä thoáng (host)
who cho bieát nhöõng ai ñang thaâm nhaäp heä thoáng
b/ Trình baùo maøn hình:
echo hieån thò doøng kyù töï hay bieán
setcolor ñaët maøu neàn vaø chöõ cuûa maøn hình
Trang 4/43
HEÄ ÑIEÀU HAØNH UNIX
c/ Desktop:
bc tính bieåu thöùc soá hoïc
cal maùy tính caù nhaân
date hieån thò vaø ñaët ngaøy
mail göûi - nhaän thö tín ñieän töû
mesg caám/ cho pheùp hieån thò thoâng baùo treân maøn hình (bôûi write/ hello)
spell kieåm tra loãi chính taû
vi soaïn thaûo vaên baûn
write/ hello cho pheùp göûi doøng thoâng baùo ñeán nhöõng ngöôøi söû duïng trong heä thoáng
d/ Thö muïc:
cd ñoåi thö muïc
copy sao cheùp 2 thö muïc
mkdir taïo thö muïc
rmdir loaïi boû thö muïc
pwd trình baøy thö muïc hieän haønh
e/ Taäp tin:
cas/ more trình baøy noäi dung taäp tin
cp sao cheùp moät hay nhieàu taäp tin
find tìm vò trí cuûa taäp tin
grep tìm vò trí cuûa chuoãi kyù töï trong taäp tin
ls, l, lf, lc trình baøy teân vaø thuoäc tính cuûa caùc taäp tin trong thö muïc
mv chuyeån/ ñoåi teân moät taäp tin
sort saép thöù töï noäi dung taäp tin
wc ñeám soá töø trong taäp tin
f/ Quaûn lyù quaù trình:
kill huûy boû moät quaù trình
ps trình baøy tình traïng cuûa caùc quaù trình
sleep ngöng hoaït ñoäng moät thôøi gian
g/ Kieåm soaùt chuû quyeàn:
chgrp chuyeån chuû quyeàn taäp tin, thö muïc töø moät nhoùm sang moät nhoùm khaùc
chmod thay ñoåi quyeàn sôû höõu cuûa taäp tin hay thö muïc
chown thay ñoåi ngöôøi sôû höõu taäp tin hay thö muïc
h/ Kieåm soaùt in:
cancel ngöng in
lp in taøi lieäu ra maùy in
lpstat traïng thaùi cuûa haøng chôø in
Trang 5/43
HEÄ ÑIEÀU HAØNH UNIX
d/ Shell:
Laø boä xöû lyù leänh cuûa ngöôøi söû duïng, noù cho pheùp ngöôøi söû duïng taïo caùc leänh raát phöùc taïp töø caùc
leänh ñôn giaûn. Chuùng ta coù theå coi shell nhö moät ngoân ngöõ laäp trình caáp cao. Caùc chöùc naêng chính
cuûa shell laø:
UNIX Shell:
Kieåm soaùt I/O vaø ñoåi höôùng
Caùc bieán moâi tröôøng
Thöïc hieän leänh
Thö vieän leänh noäi taïi
Teân taäp tin môû roäng
Ngoân ngöõ laäp trình vaø moâi tröôøng
Thöïc hieän leänh: Leänh coù theå ñöôïc thöïc hieän ôû cheá ñoä töông taùc vôùi ngöôøi söû duïng hay cheá ñoä neàn
(background).
Thö vieän leänh noäi taïi: Caùc leänh noäi truù trong shell.
Ngoân ngöõ laäp trình vaø moâi tröôøng: Cho pheùp taïo caùc taäp tin shell-script vaø caùc caáu truùc ñieàu khieån
nhö Do, While, Until, If, Case.
Teân taäp tin môû roäng: Cho pheùp bieân dòch teân taäp tin ôû daïng ?, *.
Caùc bieán moâi tröôøng: Cho pheùp ñaët caùc bieán moâi tröôøng. Ví duï: PATH=/USR/BIN
Kieåm soaùt I/O vaø ñoåi höôùng: Shell ñònh nghóa caùc thieát bò xuaát/ nhaäp chuaån vaø cho pheùp ta ñoå
höôùng thieát bò xuaát/ nhaäp cuûa caùc quaù trình.
Hieän nay ngöôøi ta söû duïng ba loaïi shell, tuøy theo loaïi maø coù cuù phaùp khaùc nhau:
Bourne-Shell : laø shell cô baûn nhaát, nhanh, hieäu quaû, nhöng ít leänh.
C-Shell : gioáng nhö Bourne-Shell nhöng cung caáp theâm caùc caáu truùc ñieàu khieån, history, bí danh.
Korn-Shell : Keát hôïp caû Bourne-Shell vaø C-Shell.
e/ Windows vaø Graphic User Interface:
Giao tieáp ñoà hoaï vaø cöûa soå laø moät khaû naêng raát maïnh cuûa heä ñieàu haønh UNIX, noù cho pheùp heä
ñieàu haønh giao tieáp thaân thieän hôn vôùi ngöôøi söû duïng. Hieän nay UNIX caøi ñaët XWINDOW (X11)
laø moät moâi tröôøng quaûn lyù ñoà hoaï lyù töôûng. Trong Sun Solaris thì söû duïng vôùi teân goïi laø OpenWin.
4. Toùm laïi:
Ñöùng veà phía ngöôøi söû duïng ta coù theå hình dung heä ñieàu haønh UNIX nhö sau:
Ngöôøi söû duïng - leänh Unix - bieân dòch Shell - Kernel - Maùy tính.
5. UNIX vaø MS-DOS
Phaàn naøy nhaèm khaùm phaù söï töông töï vaø khaùc bieät giöõa UNIX vaø MS-DOS ñeå giuùp cho nhöõng
ngöôøi ñaõ laøm quen vôùi MS-DOS coù theå deã daøng hoïc UNIX.
Trang 6/43
HEÄ ÑIEÀU HAØNH UNIX
5.1/ Caùc ñaëc ñieåm chung cung caáp bôûi UNIX vaø MS-DOS
Boä bieân dòch leänh
UNIX vaø MS-DOS caû hai ñeàu coù boä bieân dòch leänh taùch bieät vôùi phaàn nhaân cuûa heä ñieàu haønh. Öu
ñieåm chính cuûa vieäc taùch bieät vôùi nhaân cuûa heä ñieàu haønh laø söï ñoäc laäp naøy cho pheùp baïn coù theå
choïn caùc loaïi shell khaùc nhau ñeå söû duïng. Caû hai moâi tröôøng DOS vaø UNIX ñeàu coù moät soá boä
bieân dòch leänh khaùc nhau.
Trong UNIX shell chuaån ñöôïc laø sh, trong MS-DOS noù ñöôïc goïi laø Command.com. Trong caû hai
heä thoáng baïn coù theå thöïc hieän moät baûn sao môùi cuûa shell baèng caùch ñaùnh teân cuûa noù nhö leänh.
Moät shell môùi seõ ñöôïc chaïy nhö moät quaù trình cuûa shell hieän haønh.
Laäp trình Shell
Trong MS-DOS coù caùc taäp tin boù cho pheùp baïn toå hôïp caùc leänh thöôøng söû duïng vaøo 1 leänh môùi.
Ñaây laø moät daïng laäp trình. Söùc maïnh laäp trình cuûa shell trong UNIX lôùn hôn nhieàu so vôùi ñaëc
ñieåm taäp tin boù cuûa MS-DOS. Moät chöông trình vieát bôûi shell UNIX goïi laø shell-script. Moät vaøi
leänh cho pheùp trong taäp tin boù cuûa MS-DOS thì laïi khoâng cho pheùp ñöa vaøo töø baøn phím. Ngöôïc
laïi, UNIX khoâng coù söï phaân bieät giöõa leänh trong taäp tin shell-script vaø leänh ñöa vaøo töø baøn phím.
Caùc bieán moâi tröôøng
Gioáng nhö MS-DOS, shell UNIX cung caáp caùc bieán moâi tröôøng ôû daïng TEÂN=GIAÙTRÒ. Caùc doøng
kyù töï naøy coù theå söû duïng ñeå chöùa caùc tham soá vaø choïn löïa ñeå cho chöông trình söû duïng. Moät vaøi
bieán moâi tröôøng ñöôïc söû duïng bôûi töï baûn thaân shell nhö PATH. Ví duï:
SET PATH = %PATH%;D:\NEW\DIR (DOS)
path=$path,:/new/dir (UNIX)
Caùc caáu truùc kieåm soaùt chöông trình
Caùc taäp tin boù MS-DOS söû duïng caáu truùc ñieàu khieån chöông trình chæ trong moät doøng. Caùc caáu
truùc ñieàu khieån trong UNIX laø khoâng giôùi haïn, baïn coù theå ghi moät taäp tin shell gioáng nhö moät
chöông trình. Ví duï: vieát taäp tin boù ñeå saép thöù töï vaø in 1 taäp hôïp caùc taäp tin.
Trong DOS:
FOR %F IN (*.WK) DO SPRT %F
Vôùi SPRT.BAT coù noäi dung:
SORT %1 >\TMP\%1
PRINT \TMP\%1
Trong UNIX:
for F in *.wk
do
sort $F >/tmp/$F
lp /tmp/$F
done
Xuaát nhaäp chuaån vaø ñoåi höôùng
Caû hai heä thoáng ñeàu chöùa caùc baûng trong boä nhôù ñeå quaûn lyù caùc taäp tin môû. Treân DOS laø file
handle, döôùi UNIX laø file description. Caùc chöông trình ñoïc/ ghi taäp tin söû duïng file handle hay
file description ñeå baùo vôùi heä ñieàu haønh caùc taäp tin söû duïng. Taát caû caùc chöông trình khi chaïy ñeàu
coù 3 taäp tin ñaõ môû saün : nhaäp chuaån (0), xuaát chuaån (1), vaø taäp tin sai (2).
Trang 7/43
HEÄ ÑIEÀU HAØNH UNIX
Caû 2 heä ñieàu haønh UNIX vaø DOS ñeàu cung caáp khaû naêng ñoåi höôùng. Coù nghóa laø khaû naêng thay
ñoåi caùc thieát bò xuaát nhaäp chuaån. Öu ñieåm cuûa ñoåi höôùng laø chöông trình trôû thaønh ñoäc laäp thieát bò.
Caû DOS vaø UNIX ñeàu cung caáp cô cheá ñöôøng oáng (xuaát cuûa 1 chöông trình trôû thaønh nhaäp cuûa
chöông trình khaùc). Tuy nhieân vì MS-DOS khoâng phaûi laø moät heä thoáng ña chöông neân khoâng theå
thöïc hieän 2 chöông trình cuøng moät luùc, noù chöùa toaøn boä döõ lieäu xuaát cuûa chöông trình ñaàu vaøo moät
taäp tin taïm maø sau ñoù seõ ñöôïc ñoïc bôûi chöông trình thöù hai. UNIX ngöôïc laïi, noù coù khaû naêng thöïc
hieän 2 chöông trình ñoàng thôøi, do ñoù döõ lieäu xuaát cuûa chöông trình ñaàu coù theå tröïc tieáp ñöa vaøo
chöông trình thöù hai khoâng qua taäp tin taïm.
Ngöõ phaùp cuûa ñoåi höôùng laø gioáng nhau ôû caû hai heä thoáng: ñoåi höôùng xuaát. Caû
UNIX vaø DOS cuøng moät ngöõ phaùp cho ñöôøng oáng (kyù hieäu | ).
Ví duï:
Trong DOS:
DIR | SORT > PRN
Trong UNIX:
ls | sort > /dev/lp
Taùc ñoäng naïp heä thoáng
Khi naïp MS-DOS, noù laáy tham soá caáu hình töø moät taäp tin goïi laø CONFIG.SYS vaø sau ñoù thöïc hieän
caùc leänh trong AUTOEXEC.BAT. Khi naïp UNIX noù laáy tham soá caáu hình trong taäp tin /etc/inittab
(xaùc ñònh caùc chöông trình seõ chaïy ôû caùc cheá ñoä khaùc nhau hoaït ñoäng ñôn hay ña chöông. Chöùc
naêng cô baûn cuûa /etc/inittab laø ñònh nghóa caùc coång coù terminal noái vaøo vaø khôûi ñoäng caùc terminal
naøy), sau ñoù thöïc hieän caùc leänh trong taäp tin /etc/rc (ñaây laø moät taäp tin shell script nhaèm muïc ñích
khôûi ñoäng heä thoáng töï ñoäng). Ngoaøi ra trong UNIX ñeå khôûi ñoäng moâi tröôøng cho moãi ngöôøi söû
duïng noù coøn naïp vaøo taäp tin /etc/.profile
Caáu truùc taäp tin
UNIX vaø DOS caû hai ñeàu coù heä thoáng taäp tin phaân caáp. Moät söï khaùc bieät quan troïng giöõa hai heä
thoáng laø thö muïc cuûa UNIX chæ chöùa teân taäp tin vaø con troû ñeán döõ lieäu cuûa taäp tin. Do ñoù UNIX
cho pheùp moät taäp tin coù theå coù bí danh. Do ñoù neáu ôû DOS baïn phaûi giöõ 2 -> 3 baûn sao thì ôû UNIX
chæ giöõ caùc con troû ñeán taäp tin. Moät söï khaùc bieät khaùc giöõa hai heä thoáng laø ñöôøng daãn cuûa DOS chæ
höôùng ñeán thö muïc, taäp tin treân ñóa, trong khi ñoù ñöôøng daãn cuûa UNIX coù theå höôùng ñeán thö muïc,
taäp tin, thieát bò hay ñöôøng oáng.
MS-DOS phaân bieät caùc oå ñóa - thöïc söï hay luaän lyù - moãi oå ñóa coù moät thö muïc goác. Trong khi ñoù
UNIX chæ cho pheùp 1 thö muïc goác cho toaøn boä heä thoáng. Ñeå noái keát caùc thö muïc treân caùc oå ñóa
khaùc nhau, UNIX söû duïng mount. Ví duï:
OÅ 1 OÅ 2
/--bin mount /--bin /--bin
---lib ----> ---lib ==> ---lib
---usr ---spool ---usr ---bin
---lib
---spool
Vôùi caùch thöùc naøy thaäm chí ta coù theå mount caû caùc thö muïc ôû maùy töø xa.
Trang 8/43
HEÄ ÑIEÀU HAØNH UNIX
Caùc boä ñieàu khieån coù khaû naêng naïp vaø noái keát
Caû hai UNIX vaø DOS cung caáp khaû naêng theâm caùc thieát bò môùi baèng caùch cung caáp caùc boä ñieàu
khieån thieát bò ñieàu khieån caùc yeâu caàu xuaát/ nhaäp ñeán thieát bò. UNIX ñònh nghóa taát caû caùc boä ñieàu
khieån thieát bò trong thö muïc /dev. UNIX höôùng ñeán caùc thieát bò nhö 1 taäp tin ñaëc bieät.
Caùc thuoäc tính taäp tin
UNIX coù taát caû caùc thuoäc tính taäp tin nhö DOS. Thuoäc tính taäp tin trong UNIX goïi laø file mode maø
coù theå thay ñoåi bôûi leänh chmod. Cheá ñoä cuûa taäp tin bao goàm nhöõng bit cho pheùp chia laøm 3 nhoùm,
moãi nhoùm 3 bit maø cung caáp caùc chuû quyeàn ñoïc, ghi, thöïc hieän cho 3 lôùp ngöôøi söû duïng: sôû höõu,
nhoùm, chung.
TSR vaø Daemon
DOS cung caáp loaïi quaù trình neàn goïi laø caùc chöông trình thöôøng truù. Caùc chöông trình thöôøng truù
khoâng phaûi laø moät quaù trình ñoäc laäp nhö caùc quaù trình trong UNIX. Trong UNIX baïn coù theå thöïc
hieän ñoàng thôøi hai hay nhieàu quaù trình. Ñeå thöïc hieän moät quaù trình neàn baïn coù theå chaïy moät leänh
theo sau bôûi kyù hieäu &. Coù nghóa laø sau khi leänh baét ñaàu chaïy, shell seõ trôû laïi ngay daáu nhaéc, sau
ñoù baïn coù theå thöïc hieän leänh keá, khi ñoù caû hai leänh neàn vaø leänh môùi thöïc hieän ñoàng thôøi. Neáu
leänh neàn taùch rôøi khoûi terminal cuûa baïn thì leänh neàn trôû thaønh deamon.
5.2/ Caùc ñaëc ñieåm cuûa UNIX maø DOS khoâng coù
Hoaït ñoäng nhieàu ngöôøi söû duïng
UNIX laø moät heä ñieàu haønh ña chöông. Noù cung caáp söï phaân bieät giöõa ngöôøi söû duïng naøy vôùi
ngöôøi söû duïng khaùc. Moãi ngöôøi söû duïng ñöôïc ñònh danh bôûi teân vaø chæ soá. Heä thoáng seõ yeâu caàu
baïn ñöa teân moãi khi baïn thaâm nhaäp vaøo heä thoáng. Taát caû caùc quaù trình maø baïn khôûi ñoäng, taát caû
caùc taäp tin maø baïn taïo laø ñöôïc ñaùnh daáu vôùi chæ soá cuûa baïn. UNIX cung caáp moät heä thoáng chuû
quyeàn taäp tin ñeå baûo veä caùc taäp tin ñöôïc taïo bôûi ngöôøi söû duïng vôùi caùc möùc truy xuaát khaùc nhau.
UNIX cung caáp moãi ngöôøi söû duïng 1 taäp hôïp caùc thö muïc, nhö vaäy baïn coù theå taïo vaø quaûn lyù caùc
taäp tin maø khoâng aûnh höôûng ñeán nhöõng ngöôøi söû duïng khaùc. Caùc ñaëc ñieåm naøy khoâng coù trong
DOS bôûi vì DOS laø heä ñieàu haønh höôùng ñeán 1 ngöôøi söû duïng.
Ña chöông
UNIX laø moät heä ñieàu haønh ña chöông. Baát cöù ngöôøi söû duïng naøo cuõng coù theå chaïy nhieàu chöông
trình ñoàng thôøi bôûi söû duïng ñaëc ñieåm leänh neàn. Moät chöông trình coù theå taïo moät quaù trình môùi
ñieàu khieån, thoâng tin vaø ñôïi ñeå chuùng hoaøn thaønh tröôùc khi tieáp tuïc.
Ña chöông ñöôïc caøi ñaët beân trong nhaân cuûa UNIX. Taát caû caùc quaù trình ñöôïc quaûn lyù bôûi boä ñònh
thôøi bieåu quaù trình theo ñoä öu tieân. UNIX cung caáp moät vaøi daïng thoâng tin giöõa caùc quaù trình. Noù
cho pheùp taïo, kieåm soaùt vaø huûy boû quaù trình.
UNIX caøi ñaët thuû tuïc “swap” maø cho pheùp caùc quaù trình coù ñoä öu tieân thaáp coù theå loaïi boû taïm
khoûi boä nhôù sau ñoù ñöôïc ñöa trôû laïi sau khi caùc quaù trình coù ñoä öu tieân cao hôn ñaõ ñöôïc thöïc hieän.
Moät vuøng treân ñóa ñöôïc daønh rieâng ñeå “swap”. Caùc quaù trình trong UNIX ñöôïc quaûn lyù theo cô
cheá phaân caáp. Quaù trình goác goïi laø quaù trình init, quaù trình naøy chaïy töï ñoäng khi khôûi ñoäng heä
ñieàu haønh, vaø coù traùch nhieäm taïo taát caû caùc quaù trình theâm vaøo. Quan heä cha - con toàn taïi giöõa 1
quaù trình vôùi baát cöù quaù trình naøo taïo noù. Ñöôøng oáng coù theå söû duïng ñeå quaù trình lieân laïc vôùi caùc
quaù trình cha hay con cuûa noù. Khi caùc quaù trình keát thuùc, noù seõ thoâng baùo cho quaù trình cha, moät
quaù trình con thöøa keá caùc bieán moâi tröôøng vaø caùc taäp tin môû cuûa quaù trình cha. Caùc quaù trình
UNIX coù theå chia xeû maõ, khi nhieàu ngöôøi söû duïng chaïy cuøng moät chöông trình ôû cuøng moät thôøi
gian, chæ moät baûn sao cuûa chöông trình laø ñöôïc ñöa vaøo boä nhôù.
Trang 9/43
HEÄ ÑIEÀU HAØNH UNIX
Caùc ñaëc ñieåm naøy khoâng ñöôïc cung caáp bôûi DOS. Bôûi vì DOS laø 1 heä ñieàu haønh ñôn chöông.
Baûo veä
UNIX cung caáp cô caáu baûo veä trong moät vaøi lónh vöïc. Chuû quyeàn taäp tin, kieåm soaùt söï truy xuaát
taäp tin, thö muïc, thieát bò. Sô ñoà maät khaåu ngaên ngöøa nhöõng ngöôøi khoâng chuû quyeàn thaâm nhaäp heä
thoáng. Ngoaøi ra noù cho pheùp maõ hoaù vaø giaûi maõ caùc taäp tin hay caùc khoái döõ lieäu.
Caùc noái keát
UNIX cung caáp ñaëc ñieåm goïi laø noái keát, coù nghóa laø 1 taäp tin coù theå ñöôïc theå hieän bôûi moät vaøi
ñieåm vaøo trong thö muïc. Ñaëc ñieåm naøy khoâng ñöôïc cung caáp trong DOS.
Ñoäc laäp thieát bò
DOS chæ cung caáp cho hoï Intel, UNIX coù theå caøi ñaët cho raát nhieàu heä phaàn cöùng khaùc nhau töø maùy
tính lôùn ñeán caùc maùy tính caù nhaân, bôûi vì UNIX ñöôïc vieát baèng ngoân ngöõ caáp cao (C).
5.3/ Caùc leänh töông quan giöõa DOS vaø UNIX
leänh DOS taùc vuï leänh UNIX löu yù
cd ñoåi thö muïc cd
md taïo thö muïc mkdir
rd xoaù thö muïc rmdir
copy sao cheùp taäp tin cp
copy
tar
sao cheùp taäp tin
sao cheùp thö muïc
sao cheùp taäp tin hay thö
muïc leân ñóa meàm
ren ñoåi teân taäp tin mv
type lieät keâ noäi dung taäp tin cat
more
xcopy sao cheùp thö muïc copy
del xoaù taäp tin rm
dir lieät keâ danh saùch taäp tin vaø
thö muïc
ls
edit soaïn thaûo vaên baûn vi
find tìm moät ñoaïn vaên trong taäp
tin
grep
print in taäp tin lp, copy lp teân taäp tin &
Chuù yù: khi ñöa vaøo leänh UNIX phaân bieät giöõa chöõ lôùn vaø chöõ nhoû.
Trang 10/43
HEÄ ÑIEÀU HAØNH UNIX
II/ Thaâm nhaäp heä thoáng:
Baét ñaàu vaø keát thuùc phieân laøm vieäc:
Khi baét ñaàu laøm vieäc treân heä thoáng baïn phaûi login. Vieäc login baùo cho heä thoáng bieát baïn laø ai vaø
caùc chuû quyeàn laøm vieäc cuûa baïn, khi keát thuùc baïn phaûi logout. Khi ñoù khoâng coù moät ai khaùc coù
theå truy xuaát taäp tin cuûa baïn neáu khoâng ñöôïc pheùp. Trong moät heä thoáng coù nhieàu ngöôøi söû duïng,
moãi ngöôøi coù moät teân vaø moät maät khaåu duy nhaát.
login
Khi heä thoáng ñaõ saün saøng hoaït ñoäng ta seõ thaáy treân maøn hình hieän leân:
login:
Baïn phaûi ñöa vaøo teân cuûa baïn vaø nhaán Enter. Keá ñoù laø:
password:
Baïn haõy ñöa vaøo maät khaåu cuûa baïn. Maät khaåu phaûi daøi ít nhaát 6 kyù töï vaø toái ña 13 kyù töï, coù theå
thay ñoåi bôûi leänh passwd. Sau ñoù seõ hieän leân daáu $ luùc naøy baïn coù theå thöïc hieän leänh ñöôïc.
logout
Coù theå keát thuùc phieân laøm vieäc bôûi leänh
exit (C-Shell)
logout (Bourne-Shell)
III/ Heä thoáng taäp tin
1. Khaùi nieäm cô baûn
UNIX coù hai daïng toå chöùc taäp tin. Thöù nhaát laø daïng vaät lyù (taäp tin ñöôïc tìm thaáy treân ñóa cöùng).
Thöù hai laø luaän lyù (taäp tin thuoäc sôû höõu cuûa ai). Vôùi toå chöùc vaät lyù, UNIX söû duïng moät taäp hôïp caùc
baûng goïi laø “i-nodes” (caùc nuùt thoâng tin). Vôùi toå chöùc luaän lyù noù söû duïng heä thoáng thö muïc caây
phaân caáp (trong UNIX moät thö muïc laø moät taäp tin chöùa danh saùch cuûa taát caû caùc taäp tin vaø thö muïc
con cuûa thö muïc ñoù). Caùc phaàn töû cuûa thö muïc coù daïng:
idnode teân taäp tin
Moãi idnode chöùa caùc thoâng tin lieân quan ñeán moät taäp tin bao goàm:
i-node loaï
i
chuû quyeàn noái keát UID GID Thôøi gian Kích thöôùc Ñòa chæ khoái
döõ lieäu ñaàu
Loaïi : chæ thò loaïi taäp tin coù theå laø thö muïc, taäp tin, taäp tin ñaëc bieät.
Chuû quyeàn : bao goàm 3 nhoùm, moãi nhoùm 3 bit ñeå kieåm soaùt quyeàn truy xuaát vaø
thöïc thi cuûa ngöôøi sôû höõu, nhoùm, chung.
Noái keát : trong UNIX, moät taäp tin vaät lyù (inode) coù theå ñöôïc noái keát vôùi moät
hay nhieàu taäp tin luaän lyù (teân taäp tin). Noái keát chæ ra soá taäp tin luaän
lyù noái keát vôùi taäp tin vaät lyù.
Trang 11/43
HEÄ ÑIEÀU HAØNH UNIX
UID (user identification) : ñònh danh cuûa ngöôøi sôû höõu
GID (group identification) : ñònh danh cuûa nhoùm sôû höõu
UNIX toå chöùc heä thoáng taäp tin bao goàm chæ moät thö muïc goác (/) maø töø ñoù caùc thö muïc con cuûa noù
ñöôïc gaén vaøo moät caùch tröïc tieáp hay giaùn tieáp. Coù moät vaøi thö muïc con chuaån /bin, /usr, /etc, v.v...
Moãi thö muïc naøy laïi chöùa caùc taäp tin hay thö muïc con.
Baïn coù theå söû duïng ñöôøng daãn ñaày ñuû ñeå xaùc ñònh moät taäp tin, ví duï: /usr/NVA/chuong1. Baïn
cuõng coù theå söû duïng chæ teân taäp tin neáu taäp tin ñöôïc chöùa trong thö muïc hieän haønh. Thöôøng khi
baïn login, thö muïc hieän haønh seõ ñöôïc ñaët ñeán thö muïc “home”. Ñaây laø thö muïc ñöôïc thieát laäp bôûi
ngöôøi quaûn trò heä thoáng daønh cho baïn, noù thöôøng laø truøng vôùi teân login cuûa baïn.
Nhöõng ngöôøi söû duïng khi truy xuaát caùc taäp tin trong UNIX phaûi bò kieåm soaùt bôûi “chuû quyeàn”
(vuøng chuû quyeàn trong inode). UNIX ñoaùn nhaän 3 lôùp chuû quyeàn, chuû quyeàn ñoïc (r), chuû quyeàn
ghi (w), chuû quyeàn thöïc hieän (x). Neáu taäp tin laø thö muïc thì caùc chuû quyeàn trôû thaønh chuû quyeàn
trình baøy noäi dung cuûa thö muïc (r), theâm hay loaïi boû taäp tin khoûi thö muïc (w), vaø tìm taäp tin hay
thö muïc con trong thö muïc (x).
UNIX cuõng ñoaùn nhaän 3 lôùp ngöôøi söû duïng döïa treân ñònh danh (ID) lieân heä vôùi moãi taäp tin. Moãi
taäp tin coù ñònh danh ngöôøi söû duïng vaø ñònh danh nhoùm ngöôøi söû duïng. Maëc ñònh, ngöôøi taïo taäp tin
laø ngöôøi sôû höõu vaø nhoùm sôû höõu laø nhoùm cuûa ngöôøi taïo taäp tin. Dó nhieân ta coù theå thay ñoåi bôûi
leänh chown vaø chgrp.
Ba chuû quyeàn ñoái vôùi taäp tin vaø ba chuû quyeàn ñoái vôùi ngöôøi söû duïng taïo neân 9 chuû quyeàn ñoái vôùi
moät taäp tin. Söû duïng leänh ls -l seõ hieån thò caùc chuû quyeàn naøy cho töøng taäp tin. Ví duï:
-rwxr-xr--
drwxr-xr--
Kyù töï ñaàu xaùc ñònh loaïi taäp tin (d: thö muïc) 3 kyù töï keá xaùc ñònh chuû quyeàn cuûa ngöôøi sôû höõu, 3 kyù
töï keá xaùc ñònh chuû quyeàn cuûa nhoùm, 3 kyù töï cuoái laø chuû quyeàn cuûa moät ngöôøi söû duïng baát kyø. Daáu
- chæ thò laø khoâng coù chuû quyeàn.
Baïn cuõng coù theå söû duïng soá baùt phaân ñeå theå hieän chuû quyeàn.
Soá YÙ nghóa
04 chuû quyeàn ñoïc
02 chuû quyeàn ghi
01 chuû quyeàn thöïc hieän
Ví duï: cho pheùp ñoïc ghi seõ coù soá baùt phaân laø 06
UNIX söû duïng leänh mount ñeå nhaän heä thoáng taäp tin. “Mount” laø quaù trình thaâm nhaäp moät heä
thoáng taäp tin hay moät thö muïc phaân caáp cuûa moät heä thoáng taäp tin töø ñóa hay baêng. Ñaëc bieät ñoái vôùi
heä ñieàu haønh Sun Solaris baïn coøn coù theå truy xuaát heä thoáng taäp tin hay thö muïc cuûa maùy töø xa
thoâng qua moâi tröôøng maïng.
Khi maùy tính khôûi ñoäng noù töï ñoäng chaïy chöông trình mount vaø gaøi nhöõng taäp tin caàn thieát ñeå hoaït
ñoäng hoaëc cuïc boä hoaëc töø xa. Baïn coù theå söû duïng leänh mount ñeå truy xuaát theâm caùc taäp tin hay thö
Trang 12/43
HEÄ ÑIEÀU HAØNH UNIX
muïc. Khi maùy tính caøi moät thö muïc phaân caáp noù caøi thö muïc vaøo moät ñieåm mount. Ñieåm mount
ñöôïc caáp phaùt ôû heä thoáng taäp tin cuïc boä. Thöôøng ñieåm mount laø moät thö muïc roãng. Ví duï:
Heä thoáng taäp tin treân ñóa cuûa baïn:
Ñieåm mount ==>
töø ñóa hay maùy töø xa:
Sau khi mount heä thoáng taäp tin trôû thaønh
2. Caùc leänh thao taùc treân thö muïc
Söû duïng leänh cd [thö muïc] ñeå thay ñoåi thö muïc laøm vieäc hieän haønh.
Ví duï:
- chuyeån ñeán thö muïc /usr/include
$cd /usr/include
- chuyeån trôû laïi thö muïc “home”
$cd
- chuyeån ñeán moät thö muïc con cuûa thö muïc hieän haønh
$cd ccs
- chuyeån ñeán thö muïc cha
$cd..
Söû duïng leänh ls ñeå trình baøy noäi dung cuûa thö muïc
ls [choïn löïa] [thö muïc]
Ví duï:
- danh saùch caùc taäp tin trong thö muïc hieän haønh
$ls
passwd
hosts
- danh saùch caùc taäp tin saép theo thöù töï trong caùc leänh
$ls -c
Trang 13/43
HEÄ ÑIEÀU HAØNH UNIX
hosts passwd
inittab
- danh saùch taäp tin vôùi loaïi
$ls -CF
bin/ chmod*
etv/ temp
/ chæ thò bin laø thö muïc, * chæ thò chmod laø taäp tin thöïc thi.
- danh saùch caùc taäp tin ôû thö muïc khaùc
$ls /bin
- danh saùch moät soá taäp tin trong thö muïc
$ls -x [pP]*
prigfoot
Pasks
- danh saùch taäp tin vôùi kích thöôùc
$ls -s
total 28
4 passwd
1 hosts
- danh saùch taäp tin vôùi caùc thoâng tin chi tieát
total 28
drwxr-xr-x 2 NVA adm 98 Sep 13 10:04 NVAS
chuû quyeàn noái keát teân ngöôøi sôû höõu teân nhoùm sôû höõu kích thöôùc thôøi gian teân taäp tin
Thöôøng neáu thö muïc coù quaù nhieàu taäp tin ta coù theå söû duïng ñöôøng oáng ñeå coù theå trình baøy danh
saùch taäp tin theo töøng trang maøn hình. Ví duï:
$ls -C | more
Söû duïng mkdir ñeå taïo thö muïc
mkdir [mp] [thö muïc]
-m mode: ñaët chuû quyeàn cuûa thö muïc theo soá baùt phaân
-p : taïo caùc thö muïc giaùn tieáp neáu teân thö muïc giaùn tieáp trong ñöôøng daãn laø khoâng toàn taïi
Ví duï:
- taïo thö muïc con trong thö muïc hieän haønh
mkdir tam1
- taïo thö muïc con söû duïng ñöôøng daãn töông ñoái
mkdir tam1/chung
- taïo thö muïc söû duïng ñöôøng daãn ñaày ñuû
mkdir /usr/tam1/dung
- taïo caùc thö muïc giaùn tieáp
mkdir -p /usr/tam2/duc
thö muïc tam2 khoâng toàn taïi do ñoù taïo caû thö muïc tam2 vaø duc.
Trang 14/43
HEÄ ÑIEÀU HAØNH UNIX
Söû duïng leänh pwd trình baøy teân cuûa thö muïc hieän haønh
$pwd
/usr/tam1/dung
Söû duïng rmdir ñeå xoaù thö muïc
rmdir [-ps] thö muïc
-p : trình baøy laàn löôït caùc thö muïc bò xoaù
-s : xoaù thoâng baùo ñöôïc taïo bôûi -p
Ví duï:
- xoaù 1 thö muïc roãng: rmdir dung
- xoaù 1 thö muïc khoâng roãng: rmdir tam2/*
3. Caùc thao taùc vôùi taäp tin
Teân taäp tin trong UNIX coù theå daøi 256 kyù töï, ngoaïi tröø caùc kyù töï ñaëc bieät sau: ! “ ‘ ; / $ ( ) [ ] .
{ }. Ngoaøi ra ta cuõng coù theå söû duïng caùc kyù töï sau:
* ñaïi dieän cho moät, nhieàu hoaëc khoâng kyù töï naøo.
? ñaïi dieän cho moät kyù töï ñôn
[...] ñaïi dieän cho moät daõy kyù töï coù thöù töï trong baûng Alphabet. Ví duï: lieät keâ taát caû caùc thö muïc
baét ñaàu baèng chöõ c, d, e: lc [cde]*
Lieät keâ taäp tin
ls [choïn löïa] thö muïc
- Lieät keâ danh saùch caùc taäp tin
ls /thö muïc
- Hieån thò caùc taäp tin aån
ls -a
lc -a
- Lieät keâ thoâng tin veà taäp tin
ls -l
Xem noäi dung 1 taäp tin vaø noái keát caùc taäp tin
cat [choïn löïa] [taäp tin]
- Xem
cat hosts
195.127.50.1 sunfibi
- Toå hôïp hai taäp tin thaønh moät
cat part1 part2 > report
Ta cuõng coù theå söû duïng leänh cat ñeå taïo 1 taäp tin töø baøn phím.
Ví duï:
cat > thu
ñöa vaøo noäi dung taäp tin copy con treân DOS
Trang 15/43
HEÄ ÑIEÀU HAØNH UNIX
^d
hay coù theå söû duïng more hoaëc pg ñeå xem töøng trang maøn hình:
more [teân taäp tin]
Vd: more thu
Ñoåi teân taäp tin
mv teân_cuõ teân_môùi
mv teân thö_muïc
chuyeån taäp tin coù teân vaøo thö_muïc
Ví duï:
- Thay ñoåi teân cuûa taäp tin ôû thö muïc hieän haønh:
$mv a.out test
- Chuyeån taäp tin sang thö muïc tam1
mv test tam1
taäp tin môùi seõ laø tam1/test
- Chuyeån moät vaøi taäp tin sang thö muïc khaùc
mv test1 test2 tam2
Söû duïng leänh ln ñeå gaùn theâm 1 teân môùi cho 1 taäp tin
ln teân1 teân2
ln teân thö_muïc
Ví duï:
- Taïo teân thöù hai cho 1 taäp tin
$ln test thu
$ls -I t*
3271 test
3271 thu --> caû hai taäp tin naøy coù cuøng 1 i-nodes
$pwd
/usr/dung
$ln /usr/phan/*.c
taát caû caùc taäp tin trong thö muïc /usr/phan maø thích öùng vôùi *.c seõ ñöôïc noái vôùi thö muïc hieän haønh.
Xoaù taäp tin
rm [-fri] taäp tin
-f : xoaù caùc taäp tin maø khoâng hoûi, thaäm chí chuû quyeàn ghi laø khoâng cho pheùp
-r : chaáp nhaän thö muïc nhö ñoái soá. Toaøn boä noäi dung cuûa thö muïc bò xoaù (keå caû caùc thö muïc con)
sau ñoù baûn thaân thö muïc cuõng bò xoaù.
-i : tröôùc khi xoaù taäp tin seõ hoûi
Ví duï:
- Xoaù taäp tin thu:
$rm thu
Trang 16/43
HEÄ ÑIEÀU HAØNH UNIX
- Xoaù taäp tin coù hoûi
$rm -i t*
test : ? y
thu : ? n
$rm -r tam
---> xoaù taát caû caùc thö muïc con cuûa thö muïc tam vaø baûn thaân thö muïc tam.
Sao cheùp taäp tin
cp taäp_tin_nguoàn taäp_tin_ñích
ví duï:
cp /etc/passwd /usr/dung/passwdold
Tìm kieám 1 taäp tin
find ñöôøng_daãn bieåu_thöùc_tìm_kieám
* Bieåu thöùc tìm kieám :
- name : teân taäp tin --> tìm theo teân taäp tin
- user : teân user --> tìm theo teân ngöôøi söû duïng
- print : neáu tìm khoâng thaáy thì trình baøy ñöôøng daãn
v.v...
Ví duï:
- Tìm taäp tin thu :
$find -name thu -print
/usr/tam/thu
Tìm kieám chuoãi vaên baûn beân trong taäp tin
Söû duïng leänh grep ñeå tìm kieám moät chuoãi vaên baûn beân trong caùc taäp tin ñöôïc chæ ñònh
grep vaên_baûn caùc_taäp_tin
neáu chuoãi vaên baûn daøi hôn 1 kyù töï thì phaûi ñeå trong hai daáu nhaùy.
Ví duï:
- Tìm chuoãi kyù töï "ngan hang" trong taäp tin thu
$grep "ngan hang" thu
ngan hang cong thuong
4. Baûo veä taäp tin vaø thö muïc
Thay ñoåi nhoùm truy xuaát cuûa taäp tin
chgrp nhoùm_caùc_taäp_tin
chæ coù superuser hay ngöôøi sôû höõu môùi ñöôïc quyeàn thay ñoåi
Ví duï:
$ls -a test
-rwx--x--x 1 bin bin 13023 Jun 21 94 test
$chgrp data test
Trang 17/43
HEÄ ÑIEÀU HAØNH UNIX
$ls -a test
-rwx--x--x 1 bin data 13023 Jun 21 94 test
Thay ñoåi ngöôøi sôû höõu taäp tin
chown teân_ ngöôøi_söû_duïng caùc_taäp_tin
chæ coù superuser hay ngöôøi sôû höõu môùi ñöôïc quyeàn thay ñoåi
Ví duï:
$chown dung test
$ls -a test
-rwx--x--x 1 dung data 13023 Jun 21 94 test
Ñaëc quyeàn truy xuaát ngaàm ñònh
umask chuû_quyeàn (3 soá baùt phaân)
Sau khi ñaët umask taát caû caùc taäp tin vaø thö muïc taïo seõ nhaän chuû quyeàn.
Ví duï:
$umask 177
$cat test
...
^D
$ls -l test
-rw------ 1 dung adm 1 Mar 11 10:11 test
Thay ñoåi chuû quyeàn cuûa taäp tin
Neáu baïn laø ngöôøi sôû höõu hay superuser, baïn coù theå söû duïng leänh chmode ñeå thay ñoåi chuû quyeàn
cuûa taäp tin. Coù hai caùch:
chmode chuû quyeàn taäp tin
- Chuû quyeàn tuyeät ñoái: söû duïng caùc soá baùt phaân, moãi soá ñaïi dieän cho chuû quyeàn cuûa moät lôùp ngöôøi
söû duïng:
2 cho pheùp ñoïc
4 cho pheùp ghi
1 cho pheùp thöïc hieän
Ví duï:
$chmode 754 test
$ls -l test
-rwxr-xr--
- Duøng kyù hieäu töôïng tröng:
chmode loaïi toaùn_töû [quyeàn] teân_taäp_tin
Loaïi :
u : ngöôøi söû duïng
g : nhoùm
o : chung
Trang 18/43
HEÄ ÑIEÀU HAØNH UNIX
a : taát caû
Toaùn töû :
+ : theâm quyeàn
- : bôùt quyeàn
= : gaùn giaù trò khaùc
Quyeàn :
r : ñoïc
w : ghi
x : thöïc hieän
s : ñaët UID hay GID
Ví duï:
$chmode g +w test
$ls -l test
-rwxrwxr-- ............ .............. test
5. Soaïn thaûo taäp tin söû duïng vi
vi laø moät chöông trình soaïn thaûo vaên baûn chuaån trong UNIX. vi coù hai cheá ñoä:
- Cheá ñoä leänh: cho pheùp cheøn, xoaù, thay theá.
- Cheá ñoä soaïn thaûo: cho pheùp soaïn thaûo vaêb baûn
Ñeå vaøo trình soaïn thaûo vi ta ñaùnh:
vi teân_taäp_tin
Khôûi ñaàu vi ñaët ôû cheá ñoä leänh; ñeå vaøo cheá ñoä soaïn thaûo ñaùnh , thoaùt khoûi cheá ñoä naøy ñaùnh
ESC.
Thoaùt khoûi vi nhaán: X
Moät soá haøm leänh cuûa vi
vi taäp tin --> baét ñaàu doøng 1
vi +n taäp tin --> baét ñaàu ôû doøng n
vi +/pattern --> baét ñaàu ôû pattern
vi -r taäp tin --> phuïc hoài taäp tin sau khi heä thoáng treo
Di chuyeån con troû
h sang traùi moät khoaûng traéng
e sang phaûi moät khoaûng traéng
- nt -
w sang phaûi 1 töø
b sang traùi 1 töø
k leân moät doøng
j xuoáng moät doøng
- nt -
Trang 19/43
HEÄ ÑIEÀU HAØNH UNIX
) cuoái caâu
( ñaàu caâu
} ñaàu ñoaïn vaên
{ cuoái ñoaïn vaên
^-w ñeán kyù töï ñaàu tieân cheøn vaøo
^-u cuoán leân 1/2 maøn hình
^-d keùo xuoáng 1/2 maøn hình
^-z keùo xuoáng 1 maøn hình
^-b keùo leân 1 maøn hình
Cheøn vaên baûn
i tröôùc daáu con troû
I tröôùc kyù töï ñaàu tieân treân doøng
a sau daáu con troû
A sau kyù töï ñaàu tieân treân doøng
o döôùi doøng hieän taïi
O treân doøng hieän taïi
r thay theá 1 kyù töï hieän haønh
R thay theá cho ñeán khi nhaán
Leänh xoaù
dw 1 töø
do ñeán ñaàu doøng
d$ cuoái doøng
3dw 3 töø
dd doøng hieän haønh
5dd 5 doøng
X 1 kyù töï
Leänh thay theá
cw thay theá 1 töø
3cw thay theá 3 töø
cc doøng hieän haønh
5cc 5 doøng
Leänh tìm kieám
*/and töø keá tieáp cuûa and
*?and töø keát thuùc laø and
*/nThe tìm doøng keá baét ñaàu baèng The
n laëp laïi laàn doø tìm sau cuøng
Trang 20/43
HEÄ ÑIEÀU HAØNH UNIX
Leänh tìm kieám vaø thay theá
:s/text1/text2/g thay text1 bôûi text2
:1,$s/taäp tin/thö muïc thay taäp tin baèng thö muïc töø haøng 1 ñeán cuoái
:g/one/s//1/g thay theá one baèng 1
Thoaùt khoûi chöông trình vi
:w ghi taäp tin
:x ghi vaø thoaùt
:g thoaùt khoâng ghi
:g! duø taäp tin coù thay ñoåi thoaùt vaãn khoâng ghi.
IV/ Xuaát nhaäp chuaån, ñoåi höôùng vaø ñöôøng oáng
Caùc chöông trình nhaän döõ lieäu nhaäp vaø taïo xuaát phaûi coù caùc keânh lieân laïc ñeå chuyeån caùc thoâng tin
ñoù. Ñoâi khi coâng vieäc naøy ñöôïc thöïc hieän töôøng minh bôûi chöông trình "môû" moät taäp tin cuï theå. Ví
duï: giaû söû baïn ñaùnh leänh.
sort tam
Vieäc naøy gaây ra chöông trình sort môû taäp tin tam nhö vaäy laø sort coù theå ñoïc taäp tin ñeå nhaäp döõ
lieäu.
Ña soá caùc leänh UNIX (cat, grep, wc,...) töï ñoäng môû 3 taäp tin ñöôïc goïi "nhaäp chuaån", "xuaát chuaån"
vaø "sai chuaån" ñeå nhaäp, xuaát, nhaän thoâng baùo sai töông öùng. Trong UNIX thieát bò ñöôïc xöû lyù nhö
taäp tin, nhö vaäy ba taäp tin chuaån coù theå laø caùc thieát bò. Nhaäp chuaån laø baøn phím, xuaát chuaån vaø sai
chuaån laø maøn hình. Dó nhieân baïn coù theå söû duïng "ñoåi höôùng" ñeå thay ñoåi caùc thieát bò xuaát nhaäp
chuaån.
Ñoåi höôùng
Maëc duø moät vaøi leänh nhö sort ñaõ coù saün choïn löïa ñeå xaùc ñònh taäp tin xuaát vaø nhieàu leänh cho pheùp
baïn xaùc ñònh taäp tin nhaäp treân doøng leänh. UNIX cung caáp moät cô caáu toång quaùt hôn vaø raát maïnh:
"ñoåi höôùng" - cho pheùp gaùn laïi caùc taäp tin chuaån. Chöông trình vaãn noái keát ñeán ba taäp tin xuaát/
nhaäp chuaån nhöng ñònh danh cuûa taäp tin coù theå bò thay ñoåi. Ví duï leänh cat (söû duïng xuaát chuaån)
chuùng ta coù theå söû duïng > ñeå taïo xuaát chuaån laø moät taäp tin.
cat tam1 tam2 > baocao
noái caùc taäp tin tam1 vaø tam2 göûi keát quaû ñeán xuaát chuaån. Kyù hieäu > baocao ... laø taäp tin xuaát
chuaån seõ laø taäp tin baocao thay vì maøn hình.
Chuù yù: ñoåi höôùng xuaát chuaån taïo taäp tin xuaát ñeán taäp tin xuaát ñaõ toàn taïi noù seõ bò xoaù tröôùc khi söû
duïng.
Ñoåi höôùng nhaäp cuõng gioáng nhö xuaát ngoaïi tröø laø kyù hieäu < ñöôïc söû duïng ñeå gaùn laïi nhaäp chuaån.
Ví duï:
sort < tam
leänh sort seõ laáy döõ lieäu nhaäp trong taäp tin tam thay vì töø baøn phím.
Caùi gì laø söï khaùc bieät giöõa :
sort tam vaø sort < tam
Trang 21/43
HEÄ ÑIEÀU HAØNH UNIX
Trong sort tam, leänh sort môû thöïc söï taäp tin tam, nhö vaäy noù coù theå söû duïng tam thay cho nhaäp
chuaån. Nhö vaäy 2 taäp tin nhaäp ñeàu ñöôïc môû: tam vaø nhaäp chuaån.
Vôùi ñoåi höôùng dó nhieân taäp tin tam laø nhaäp chuaån vaø chæ 1 taäp tin nhaäp laø ñöôïc môû. Hôn nöõa vôùi
ñoåi höôùng, heä ñieàu haønh môû taäp tin tam thay vì leänh sort môû.
Ñoåi höôùng xuaát chuaån khoâng aûnh höôûng ñeán sai chuaån. Vaø thoâng baùo sai vaãn göûi ra maøn hình, giaû
söû taäp tin tam2 khoâng toàn taïi, ta ñaùnh leänh:
cat tam tam2 > baocao
tam2 : No such file or directory
Chæ moät taäp tin coù theå söû duïng ñeå ñoåi höôùng xuaát hay nhaäp chuaån, bôûi vì moãi leänh chæ noái vôùi 1
xuaát vaø 1 nhaäp.
Ña ñoåi höôùng
Ta coù theå söû duïng caû ñoåi höôùng xuaát vaø nhaäp cho moät leänh.
Ví duï:
tr "[a-z]" "[A-Z]" bigact1
Laáy döõ lieäu nhaäp töø taäp tin act1 göûi noù vaøo leänh tr vaø xuaát ñeán taäp tin bigact1. Cuï theå laø leänh tr
ñoåi taát kyù töï chöõ nhoû trong taäp tin act1 thaønh chöõ lôùn vaø xuaát vaøo taäp tin bigact1.
Thöù töï ñöa vaøo chæ thò ñoåi höôùng laø khoâng quan troïng, ví duï:
tr "[a-z]" "[A-Z]" > bigact1 < act1
Ñöôøng oáng
Ñoåi höôùng noái keát leänh vôùi taäp tin. Ñaëc ñieåm ñöôøng oáng cuûa UNIX noái keát 1 leänh vôùi 1 leänh khaùc.
Ñaëc bieät hôn noù taïo xuaát chuaån cuûa 1 leänh thaønh nhaäp chuaån cuûa 1 leänh khaùc. Kyù hieäu ñöôøng oáng
(|) ñöôïc söû duïng ñeå thieát laäp ñöôøng oáng. Ví duï:
wc baocao* | sort -n
nhaän xuaát cuûa wc (trong tröôøng hôïp naøy laø toång soá töø vaø kyù töï cuûa caùc taäp tin coù teân baét ñaàu laø
baocao) vaø göûi noù ñeán leänh sort ñeå saép thöù töï soá. Keát quaû cuoái cuøng laø caùc toång soá töø saép theo thöù
töï taêng daàn hieån thò treân maøn hình.
Ñöôøng oáng coù theå keát hôïp vôùi ñoåi höôùng. Ví duï:
wc baocao* | sort -n > rep-count
keát quaû seõ ñöa ra taäp tin rep-count.
Toå hôïp caùc taäp tin vôùi nhaäp chuaån
Nhieàu leänh UNIX coù theå söû duïng nhaäp chuaån nhö moät danh saùch caùc taäp tin nhaäp. Xem 3 ví duï
sau:
lp tam leänh môû taäp tin tam
lp < tam leänh söû duïng nhaäp chuaån
cat tam | lp leänh söû duïng ..................
Taát caû ñeàu in taäp tin tam nhöng noù laøm vieäc khaùc nhau. Leänh ñaàu môû tam vaø boû qua nhaäp chuaån.
Leänh thöù hai gaây ra shell môû tam vaø coi noù laø nhaäp chuaån. Leänh thöù ba coi xuaát chuaån cuûa cat laø
nhaäp chuaån cuûa leänh lp.
Trang 22/43
HEÄ ÑIEÀU HAØNH UNIX
Moät vaøi leänh UNIX cho pheùp baïn söû duïng moät danh saùch caùc taäp tin nhaäp baèng caùch söû duïng kyù
hieäu (-) ñeå theå hieän nhaäp chuaån nhö 1 danh saùch caùc taäp tin. Ví duï:
sort tam | lp tam1 - tam2
lp seõ in ñaàu tieân laø tam1 keá ñoù laø keát quaû saép thöù töï cuûa taäp tin tam, cuoái cuøng laø taäp tin tam2.
Caùc daïng khaùc cuûa ñoåi höôùng
Ñoåi höôùng theâm vaøo: >>
Söû duïng khi baïn muoán theâm döõ lieäu vaøo cuoái cuûa moät taäp tin ñaõ toàn taïi.
Ví duï:
cat baocao2 baocao3 >> baocao
theâm noäi dung cuûa baocao2 vaø baocao3 vaøo cuoái cuûa taäp tin baocao.
Neáu taäp tin ñích khoâng toàn taïi thì noù seõ ñöôïc taïo.
Ñoåi höôùng “ Taäp tin ôû ñaây ” : <<
Giaû söû baïn coù thoâng baùo chuaån baïn coù mail töø ngöôøi söû duïng khaùc, baïn coù theå thieát laäp 1 shell
script:
mail $* < message
message laø teân taäp tin chöùa thoâng baùo chuaån. $* theå hieän caùc ñoái soá cuûa shell script.
Vaán ñeà vôùi script naøy laø leänh vaø vaên baûn thoâng baùo laø hai taäp tin rieâng reõ. Dó nhieân baïn coù theå
traùnh vaán ñeà naøy bôûi söû duïng << laáy choã cuûa vaên baûn trong cuøng taäp tin leänh. Vaên baûn nhö vaäy
ñöôïc goïi laø “Taøi lieäu ôû ñaây”.
script môùi coù daïng:
mail $* << stop
Please remember to pay your monthly file insurance
--Big Jake
stop
echo $* reminded on ‘date’ >> $HOME/fi.log
Caùc boä moâ taû taäp tin vaø ñoåi höôùng sai chuaån: 2>
Ñoâi khi chuùng ta muoán ñoåi höôùng thoâng baùo sai. Ví duï khi chaïy leänh ôû cheá ñoä neàn &.
Ví duï:
spell baocao &
Chaïy ôû cheá ñoä neàn (giaûi phoùng ñaàu cuoái cho coâng vieäc khaùc) vaãn xuaát caùc töø sai chính taû ra maøn
hình. Ñieàu naøy gaây roái cho caùc coâng vieäc khaùc.
Ñeå traùnh vieäc naøy, baïn phaûi söû duïng ñoåi höôùng sai chuaån vôùi boä moâ taû taäp tin (0: nhaäp chuaån, 1:
xuaát chuaån, 2: sai chuaån).
Ví duï:
spell baocao > baocaodung 2> baocaosai &
caùc töø sai seõ ñöôïc ñöa ra taäp tin baocaosai.
Trang 23/43
HEÄ ÑIEÀU HAØNH UNIX
Toå hôïp xuaát: 2>&1
Ñoâi khi baïn muoán ñoåi höôùng caû hai xuaát chuaån vaø xuaát sai ñeán cuøng moät taäp tin. Vieäc naøy coù theå
laøm vôùi toå hôïp 2>&1.
Ví duï:
spell baocao > baocaodung 2>&1 &
baocaodung seõ chöùa caû xuaát vaø caùc thoâng baùo sai.
Leänh tee
Hoaït ñoäng ñoåi höôùng vaø ñöôøng oáng laø ñaëc ñieåm cuûa heä ñieàu haønh UNIX. Tuy nhieân ta cuõng coù
theå söû duïng 1 leänh cuûa UNIX ñeå laøm vieäc naøy. Ñoù laø leänh tee, noù seõ giaûm bôùt caùc keát quaû giaùn
tieáp cuûa chuoãi ñöôøng oáng.
Ví duï:
sort baocao | tee baocaostt | lp
Ñaàu tieân leänh tee göûi nhaäp chuaån cuûa noù ñeán xuaát chuaån cuûa noù, trong tröôøng hôïp naøy göûi xuaát
cuûa sort ñeán nhaäp cuûa lp. Thöù hai tee laáy choã 1 baûn sao cuûa nhaäp chuaån vaøo teân taäp tin baocaostt.
V Thö ñieän töû
Thö ñieän töû (mail) laø moät tieän ích do UNIX cung caáp ñeå göûi vaø nhaän thoâng baùo. Coù hai leänh
mail vaø mailx.
1. mail
$mail
Thö ñieän töû cung caáp caùc khaû naêng cô baûn ñeå göûi vaø nhaän thoâng baùo.Mail seõ hieån thò thoâng baùo
theo thöù töï vaøo tröôùc ra sau.Sau khi hieån thò moãi thoâng baùo mail seõ hieän leân daáu ? ñeå chôø leänh cuûa
ngöôøi söû duïng. Coù theå coù caùc leänh sau :
- newline Hieån thò thoâng baùo keá, neáu khoâng coøn thì thoaùt khoûi mail.
- + Gioáng nhö newline
- p In thoâng baùo
- s [taäp tin] Caát thoâng baùo vaøo taäp tin hoaëc mbox
- w[taäp tin] Gioáng nhö s nhöng khoâng caát ñaàu thoâng baùo
- d Xoùa thoâng baùo
- q Thoaùt khoûi mail
- x Thoaùt khoûi mail maø khoâng thay ñoåi thoâng baùo
- ! leänh Thöïc hieän leänh Unix
Gôûi thö : Ñöa vaøo leänh mail vôùi ñòa chæ cuûa ngöôøi söû duïng. Ví duï :
$ mail dungø@fibi.hcm.vn.com
^-D
Trang 24/43
HEÄ ÑIEÀU HAØNH UNIX
Thoâng baùo seõ ñöôïc göûi cho ngöôøi söû duïng coù teân laø dung ôû coâng ty fibi vuøng hcm.vn.com. Coù theå
cuøng moät luùc göûi moät thoâng baùo cho nhieàu ngöôøi :
$ mail dung@fibi.hcm.vn.com trung@fibi,hanoi.vn.com
Nhaän thö : Khi login vaøo heä thoáng neáu coù thö heä thoáng seõ thoâng baùo “ You have mail” khi ñoù coù
theå ñaùnh $mail ñeå xöû lí mail.
2. mailx
$mailx
Mailx bao goàm caùc leänh ñeå truyeàn vaø nhaän thö. Leänh coù daïng :
Leânh [danh saùch thoâng baùo] [caùc ñoái soá]
[danh saùch thoâng baùo] coù theå laø :
n Thoâng baùo soá n
$ Thoâng baùo cuoái cuøng
* Taát caû thoâng baùo
n-m Töø thoâng baùo n ñeán m
:d Xoùa taát caû thoâng baùo
:n Thoâng baùo môùi
:r Thoâng baùo chæ ñoïc
:u Thoâng baùo chöa ñoïc
:o Thoâng baùo cuõ
Leânh
help Hieån thò cuù phaùp cuûa leänh
ignore Boû qua ñaàu taäp tin
print Hieån thò thoâng baùo
Print In thoâng baùo
top Hieån thò moät vaøi doøng ñaàu cuûa thoâng baùo
repond Traû lôøi moät thoâng baùo
copy Cheùp thoâng baùo leân taäp tin
list Hieån thi danh saùch leänh
save Caát thoâng baùo leân taäp tin
quit Thoaùt khoûi mailx
VI. UNIX Shell
Unix shell bao goàm boä bieân dòch leänh vaø ngoân ngöõ laäp trình. Coù ba loaïi shell :
Bourne shell cuûa Steven Bourne ñôn giaûn vaø hieäu quaû. Noù laø maëc ñònh trong ña soá caùc heä UNIX
(hoaëc coù theå goïi bôûi sh).
Trang 25/43
HEÄ ÑIEÀU HAØNH UNIX
C shell cuûa Bill Joy ôû tröôøng ñaïi hoïc Berkeley gioáng nhö Bourne shell nhöng boå sung theâm caùc
ñaëc ñieåm nhö bí danh, history vvv. Noù coù theå goïi bôûi csh
Korn shell cuûa David F. Korn keát hôïp Bourne shell vaø C shell nhöng boå sung theâm caùc ñaëc ñieåm
rieâng. Noù coù theå goïi bôûi ksh.
Phaàn naøy seõ trình baøy caû ba loaïi shell. Vôùi Korn shell seõ coù chuù thích rieâng.
1. Caùc khaùi nieäm cô baûn
Caùc leänh
Leänh ñôn giaûn:
Laø moät chuoãi töø ñöôïc phaân caùch bôûi khoaûng traéng. Töø ñaàu laø leänh Unix hoaëc leänh shell noäi taïi.
Caùc töø khaùc hoaëc laø teân taäp tin xöû lí hoaëc laø caùc ñoái soá laøm thay ñoåi haønh vi cuûa leänh.
Leänh trong moâi tröôøng Unix thöôøng xuyeân traû laïi moät giaù trò soá goïi laø traïng thaùi thoaùt khi shell keát
thuùc. Neáu leänh hoaøn thaønh traïng thaùi thoaùt baèng khoâng. Neáu traïng thaùi thoaùt khaùc khoâng coù nghóa
laø leänh gaëp dieàu kieän khoâng bình thöôøng hoaëc laø keát thuùc baát thöôøng. Vôùi phaùt bieåu if giaù trò 0
töông öùng vôùi dieàu kieän ñuùng.
Khi leänh keát thuùc baát thöôøng noù traû veà giaù trò 128 + traïng thaùi, vôùi traïng thaùi laø giaù trò gaây ra keát
thuùc baát bình thöôøng. Ví duï neáu nhaán Del ñeå keát thuùc leänh giaù trò traû veà laø 130 (128+02).
Ñöôøng oáng:
Bao goàm moät hay nhieàu leänh ñôn giaûn döôïc phaân caùch bôûi kí hieäu (|). Xuaát cuûa moãi leänh ñöôïc göûi
ñeán nhaäp cuûa leänh keá. Moãi leänh ñöôïc thöïc hieän nhö moät quaù trình rieâng reõ. Traïng thaùi thoaùt cuûa
ñöôøng oáng laø traïng thaùi thoaùt cuûa leänh cuoái.
Chuoãi leänh:
Bao goàm moät hoaëc nhieàu leänh ñôn giaûn ( hay ñöôøng oáng) ñöôïc phaân caùch bôûi (;), (&), (&&), (||).
Trong moät danh saùch leänh caùc daáu phaân caùch ñöôïc xöû lí töø traùi sang phaûi vôùi ñoä öu tieân:
&& vaø ||
; vaø &
Daáu (;) gaây ra thöïc hieän tuaàn töï caùc leänh trong danh saùch leänh. Shell ñôïi moãi leänh hoaøn thaønh
tröôùc khi thöïc hieän leänh keá.
Daáu (&) gaây ra thöïc hieän baát ñoàng boä caùc leänh trong danh saùch leänh. Shell thöïc hieän leänh maø
khoâng ñôïi leänh tröôùc hoaøn thaønh.
Daáu (&&) gaây ra leänh sau ñöôïc thöïc hieän chæ khi leänh tröôùc traû veà giaù trò 0. Ví duï :
mail -s && echo You have mail
Seõ trình baøy thoâng baùo You have mail chæ khi leänh mail -s traû veà giaù trò khoâng.
Daáu (||) gaây ra leänh sau ñöôïc thöïc hieän chæ khi leänh tröôùc traû veà giaù trò khaùc khoâng Ví duï :
mail -s || echo No mail
Seõ trình baøy thoâng baùo No mail chæ khi leänh mail -s traû veà giaù trò khaùc khoâng.
Nhoùm leänh
Coù theå nhoùm moät chuoãi leänh trong (). Nhaäp vaø xuaát chuaån coù theå ñoåi höôùng cho toaøn nhoùm. Ví duï
:
Trang 26/43
HEÄ ÑIEÀU HAØNH UNIX
trong leänh $ ls; who; date > status chæ coù xuaát cuûa leänh date laø ñöôïc göûi tôùi taäp tin status.
trong leänh $ (ls; who; date) > status xuaát cuûa caû ba leänh laø ñöôïc göûi tôùi taäp tin status.
trong leänh $ (ls; who; date) > status & caû ba leänhñeàu chaïy ôû cheá doä neàn.
Söï thay theá leänh
Xuaát cuûa moät leänh coù theå söû duïng nhö nhaäp cuûa leänh khaùc hay gaùn bieán vôùi söï thay theá leänh. Khi
shell gaëp leänh naèm trong ‘ ‘, leänh seõ ñöôïc thöïc hieän, xuaát cuûa noù trôû thaønh nhaäp cuûa leänh khaùc
hay gaùn cho bieán. Ví duï :
$ here=‘pwd’ thöïc hieän leänh pwd tröôùc sau ñoù gaùn cho bieán here.
Chuù thích: söû duïng daáu #
Bieân dòch khoaûng traéng:
Söû duïng bieán phaân caùch vuøng IFS ñeå thay ñoåi kí hieäu phaân caùch khoaûng traéng. Ví duï :
$ IFS=:
$ ls:-l
Daáu nhaùy ñôn
Shell khoâng dieãn dòch caùc doøng kí töï giöõa hai daáu nhaùy ñôn. Ví duï :
$ echo `$TERM`
$TERM
Daáu nhaùy ñoâi
Shell khoâng dieãn dòch caùc doøng kí töï giöõa hai daáu nhaùy ñoâi ngoaïi tröø caùc daáu ($,\,’). Ví duï :
$ name= “Ng Van A”
$ echo $name
Ng Van A
$ echo “$name
Ng Van A
Daáu \ ngaên ngöøa shell dieãn dòch kí töï tröïc tieáp sau noù.
Teân taäp tin :
Coù theå laø teân ñaày ñuû hay teân wild card. Tröôùc khi thöïc hieän leänh shell queùt teân wild card. Coù caùc
wild card sau:
kí töï yù nghóa
* töông öùng vôùi moïi kí töï
? töông öùng vôùi moâtï kí töï
[xyz] töông öùng vôùi ba kí töï x,y,z
[a-z] töông öùng vôùi caùc kí töï töø a ñeán z
[!a-z] töông öùng vôùi caùc kí töï khaùc a ñeán z
Daáu nhaéc
Söû duïng bieán PS1 ñeå thay ñoåi daáu nhaéc.
Trang 27/43
HEÄ ÑIEÀU HAØNH UNIX
Söï thöïc thi:
Shell thöïc hieän leänh nhö sau :
Giaûi quyeát caùc teân taäp tin, daáu nhaùy, söï thay theá leänh, söï thay theá bieán, vaø ñoåi höôùng xuaát
nhaäp.
Thöïc hieän caùc leänh noäi taïi.
Teân leänh ñöôïc so saùnh vôùi teân cuûa caùc haøm ñaõ ñöôïc ñònh nghóa. Neáu töông öùng caùc haøm seõ
ñöôïc thöïc hieän
Neáu leänh khoâng phaûi laø leänh noäi taïi hay haøm moät quaù trình môùi ñöôïc taïo vaø shell seõ thöïc
hieän leänh bôûi goïi haøm exec.
Shell söû duïng bieán PATH ñeå tìm leänh. Giaù trò maëc ñònh laø thö muïc hieän haønh keá ñoù laø thö muïc
/bin sau ñoù laø /usr/bin.
Quaù trình neàn :
Shell coù theå chaïy ôû cheá dñä neàn hay töông taùc. Khi leänh chaïy ôû cheá ñoä neàn shell trôû laïi daáu nhaéc
ngay laäp töùc. Ngöôøi söû duïng coù theå ñöa vaøo leänh khaùc. Ví duï :
$ sort large_file >file_out &
1222
Khi leänh neàn chaïy ID-quaù trình cuûa noù seõ döôïc trình baøy. Cuõng coù theå söû duïng leänh ps deå trình
baøy ID-quaù trình. Söû duïng leänh kill deå huûy boû quaù trình. Ví duï :
$ kill -2 1222
Neáu muoán leänh chaïy neàn boû qua tín hieäu hang up thì coù theå söû duïng
$ nohupsort database >db.out &
1245
Coù theå söû duïng leänh wait ñeå ñôïi quaù trình neàn vaø nhaän giaù trò traû veà cuûa noù. Ví duï :
$ wait 1245
Ngoaøi ra ñoái vôùi ksh coøn coù cô caáu kieåm soaùt coâng vieäc :
$ sort large > sort.out &
[1] 1923
[1] laø chæ soá coâng vieäc.
Goïi laïi leänh:
Khi ksh thöïc hieän leänh noù ñöa vaên baûn leänh vaøo taäp tin $HOME/.history. Coù theå ñoåi teân taäp tin bôûi
bieán HISTFILE. soá leänh coù theå chöùa laø ôû bieán HISTSIZE maëc ñònh laø 128. Coù theà söû duïng leänh fc
deå trình baøy HISTFILE. Ví duï :
$ fc -l 2 12
danh saùch caùc leänh töø 2 deán 12
2. Xöû lí quaù trình
Heä thoáng Unix duøng caùc quaù trình nhö laø phöông tieän ñeå chaïy caùc chöông trình.Moãi leänh maø
ngöôøi duøng nhaäp vaøo laøm taïo ra moät quaù trình.Moät quaù trình laø moät chöông trình ñang chaïy.Ngoaøi
ra, quaù trình coøn keát hôïp caû thoâng tin veà ngöôøi duøng vaø moâi tröôøng heä thoáng.Moãi quaù trình coù moät
Trang 28/43
HEÄ ÑIEÀU HAØNH UNIX
maõ soá nhaän daïng ( ID ) rieâng lieân keát vôùi noù vaø heä ñieàu haønh seõ duøng maõ soá naøy ñeå phaân bieät caùc
quaù trình.
Quaù trình taïo ra moät quaù trình khaùc ñöïc goïi laø quaù trình cha.Caùc quaù trình ñöôïc taïo ra bôûi caùc quaù
trình cha ñöôïc goïi laø caùc quaù trình con.Quaù trình con nhaän bieát cha noù qua ID cuûa quaù trình cha.
Moãi quaù trình cuõng coù moät ID nhoùm quaù trình lieän keát vôùi noù.Moät nhoùm quaù trình bao goàm taát caû
caùc quaù trình coù cuøng ID nhoùm quaù trình.Moãi voû ñaêng kyù moãi luùc chæ coù theå coù moät ID nhoùm quaù
trình lieân keát vôùi noù.Quaù trình naøy goïi laø quaù trình .Neáu moät quaù trình cuûa ngöôøi söû duïng khoâng
naèm trong ID cuûa nhoùm quaù trình lieân keát vôùi voû ñaêng kyù cuûa ngöôøi söû duïng thì quaù trình ñoù laø
moät quaù trình neàn.
Cuøng ñöôïc lieân keát vôùi moãi quaù trình laø ID cuûa ngöôøi söû duïng thöïc vaø hieäu quaû cuõng nhö ID cuûa
nhoùm thöïc vaø hieäu quaû.Caùc ID cuûa ngöôøi söû duïng thöïc vaø quaù trình thöïc ñöôïc thieát laäp bôûi quaù
trình ñaêng kyù vaø ñöôïc taát caû caùc quaù trình maø ngöôøi söû duïng taïo ra thöøa höôûng.ID cuûa ngöôøi söû
duïng hieäu quaû thöôøng thì gioáng vôùi ID cuûa ngöôøi söû duïng thöïc nhöng coù theå ñöôïc thay ñoåi bôûi caùc
chöông trình coù theå thieát laäp ID ngöôøi söû duïng ( ñoù laø su ).Cuõng vaäy, caùc ID cuûa nhoùm thöïc vaø
hieäu quaû thöôøng cuõng gioáng nhau nhöng ID cuûa nhoùm hieäu quaû coù theå ñöôïc thay ñoåi bôûi caùc
chöông trình coù theå thieát laäp ID nhoùm ( ví duï, mail ).Caùc ID cuûa nhoùm hieäu quaû vaø ngöôøi söû duïng
hieäu quaû cuûa moät quaù trình ñöôïc duøng ñeå xaùc ñònh quyeàn truy nhaäp taäp tin vaø thö muïc cuûa moät
quaù trình ( ñoïc, ghi, thöïc hieän hay tìm kieám ).
Caùc quaù trình taïo bôûi leänh goïi heä thoáng fork hay exec ( moät leänh goïi heä thoáng laø moät lôøi goïi cuûa
chöông trình göûi ñeán heä ñieàu haønh ñeå yeâu caàu caùc phuïc vuï heä thoáng ).
Leänh goïi heä thoáng fork :
Quaù trình cha taïo ra moät quaù trình con baèng moät leänh goïi heä thoáng fork.
hinh 1
Leänh fork taïo ra moät baûn sao cuûa quaù trình goác gioáng nhö quaù trình cha ngoaïi tröø giaù trò ID-quaù
trình cuûa noù. Quaù trình cha coù theå taïm ngöng söï thöïc hieän cuûa noù cho ñeán khi quaù trình con keát
thuùc. Thoâng thöôøng shell thöïc thi leänh baèng caùch taïo quaù trình con sau ñoù ñôïi quaù trình con hoaøn
thaønh tröôùc khi taïo daáu nhaéc keá. Quaù trình con thöøa keá caùc thoâng tin moâi tröôøng sau töø cha:
ID-quaù trình cha
ID nhoùm-quaù trình
Caùc taäp tin môû
Thö muïc laøm vieäc
Maët naï taïo taäp tin (umask)
ID-user chaïy
ID-nhoùm chaïy
Giôùi haïn kích thöôùc taäp tin taïo
Giôùi haïn boä nhôù toái ña
Caùc taùc ñoäng ñaët signal
Caùc bieán
Khi quaù trình hoaøn thaønh, kieåm soaùt trôû laïi quaù trình cha. Caùc taøi nguyeân ñöôïc caáp phaùt seõ ñöôïc
giaûi phoùng.
Trang 29/43
HEÄ ÑIEÀU HAØNH UNIX
Goïi heä thoáng exec
Goïi heä thoáng exec naïp chöông trình vaøo vuøng boä nhôù cuûa quaù trình hieän haønh. Khoâng gioáng nhö
fork, exec khoâng taïo quaù trình môùi.
hinh 2
Quaù trình login
Caùc söï kieän xaûy ra khi login seõ moâ taû caùch thöùc laøm vieäc cuûa fork vaø exec. Quaù trình /etc/init (PID
1) chaïy khi khôûi ñoäng heä thoáng vaø seõ tieáp tuïc chaïy cho ñeán khi ngöng. Quaù trình /etc/init laø moät
quaù trình deamon.
/etc/init xem xeùt /etc/inittab taäp tin naøy chöùa caùc doøng leänh phaûi thöïc hieän vôùi caùc möùc heä thoáng
khaùc nhau. Ví duï nhö xuaát login : hoaëc ñaët cheá ñoä cho terminal
11:234:respawn:/etc/getty tty11 9600
respawn chæ thò laø moãi khi getty cheát noù seõ ñöôïc khôûi ñoäng laïi bôûi /etc/init
hinh 3
Thöïc hieän leänh ñôn giaûn:
Khi ñöa vaøo leänh ñôn giaûn shell fork moät shell khaùc vaø sau ñoù exec leänh. Shell cha ñôïi cho ñeán
khi quaù trình con hoaøn thaønh
hinh 4
Thöïc hieän chuoãi leänh:
Khi ñöa vaøo chuoãi leänh shell fork moät shell con vaø sau ñoù goïi exec ñeå thöïc hieän leänh ñaàu tieân.
Khi leänh ñaàu hoaøn thaønh shell fork shell khaùc vaø sau ñoù goïi leänh exec ñeå thöïc hieän leänh thöù hai
v.v...
hinh 5
Thöïc hieän nhoùm leänh:
Khi ñöa vaøo nhoùm leänh shell fork moät shell con ñeå thöïc hieän caùc leänh. Shell con naøy goïi exec ñeå
thöïc hieän leänh ñaàu tieân. Khi leänh ñaàu hoaøn thaønh shell fork shell khaùc vaø sau ñoù goïi leänh exec ñeå
thöïc hieän leänh thöù hai vvv.
hình 6
Thöïc hieän leänh ñöôøng oáng:
Khi ñoaùn nhaän ñöôøng oáng (|) shell khôûi ñoäng moãi quaù trình trong doøng leänh vaø thieát laäp lieân laïc
giöõa chuùng thoâng qua moät taäp tin ñöôøng oáng ñaëc bieät. Caùc leänh trong ñöôøng oáng ñöôïc thöïc hieän töø
phaûi sang traùi.
hình 7
Trang 30/43
HEÄ ÑIEÀU HAØNH UNIX
Thöïc hieän leänh neàn:
Khi ñöa vaøo leänh neàn shell fork shell con ø sau ñoù goïi leänh exec ñeå thöïc hieän leänh. Kieåm soaùt traû
laïi quaù trình cha ngay. Shell khi ñoù coù theå thöïc hieän caùc leänh khaùc.
hình 8
3. Leänh noäi taïi
Caùc leänh noäi taïi laø moät phaàn cuûa shell. Coù caùc leänh sau :
. taäp tin
Shell hieän haønh ñoïc vaø bieân dòch leänh trong taäp tin
alias [teân[=giaù trò]...] (ksh)
Leänh alias cho pheùp ñoåi teân caùc leänh trong shell. Ví duï :
$ alias dir=“ls “
$ alias opt=“-CF”
$dir opt
bin/ unit01.n unit02.n
status *
bg %chæ soà coâng vieäc ñaët coâng vieäc ôû cheá ñoä neàn
break Thoaùt khoûi caùc caáu truùc for,while ...
cd [thö muïc ] Chuyeån thö muïc
continue Laëp caùc caáu truùc
echo [ñoái soá] Hieån thò noäi dung ñoái soá
exec [leänh] Goïi leänh thöïc hieän
exit Keát thuùc shell
export Ñöa caùc bieán moâi tröôøng thaønh caùc bieán chung
fc Hieån thò taäp tin history
fg %chæ soá coâng vieäc Ñaët coâng vieäc ôû cheá ñoä töông taùc
kill ID-quaù trình Xoùa ñi moät quaù trình
newgrp [nhoùm] Ñoåi nhoùm cuûa ngöôøi söû duïng
read bieán Ñoïc döõ lieäu töø baøn phím
pwd Hieån thò thö muïc hieän haønh
return Traû veà haøm goïi
set Ñaët bieán moâi tröôøng
test [bieåu thöùc] Kieåm tra bieåu thöùc. Ví duï :
-r taäp tin Ñuùng neáu taäp tin toàn taïi vaø coù theå ñoïc vvv.
ulimit [kích thöôùc] Ñònh kích thöôùc toái ña taäp tin taïo
unalias teân Xoùa alias moät teân
Trang 31/43
HEÄ ÑIEÀU HAØNH UNIX
umask [maët naï] Ñònh maët naï chuû quyeàn taäp tin
Giaù trò maët naï Chuû quyeàn taäp tin Chuû quyeàn thö muïc
000 -rw-rw-rw- drwxrwxrwx
002 -rw-rw-r-- drwxrwxr-x
007 -rw-rw---- drwxrwx---
022 -rw-r--r-- drwxr-x---
027 -rw-r----- drwxr-x---
077 -rw------- drwx------
uset Xoùa caùc bieán moâi tröôøng
wait [PID] Ñôïi quaù trình PID hoaøn thaønh sau ñoù baùo caùo traïng thaùi keát thuùc cuûa noù.
4. Bieán vaø tham soá shell
Caùc tham soá shell ñöôïc söû duïng chöùa caùc giaù trò cuûa shell hieän haønh hay caùc shell con ñeå söû duïng
sau ñoù. Coù caùc loaïi tham soá sau:
Tham soá vò trí
Tham soá ñaëc bieät
Tham soá ñöôïc ñaët teân (bieán)
4.1 Tham soá vò trí
Tham soá vò trí laø caùc giaù trò truyeàn qua khi shell hay shell con ñöôïc goïi. Coù theå ñaët caùc tham soá vò
trí nhö caùc ñoái soá cuûa shell script vaø caùc tham soá naøy ñöôïc ñaùnh soá 1,2 vvv. Teân cuûa leänh hieän
haønh ñöôïc tham chieáu bôûi $0. Caùc tham soá khaùc seõ laø $1, $2 vvv.
4.2 Tham soá ñaëc bieät
Tham soá ñaëc bieät ñöôïc ñaët töï ñoäng khi shell ñöôïc goïi.Chuùng coù moät yù nghóa ñaëc bieät khoâng theå
thay ñoåi.
Bieán yù nghóa
$@ Tham soá vò trí nhö “$1 $2 $3 $4...”
$@ Tham soá vò trí nhö “$1”, “ $2”, “ $3”, “ $4” vvv.
$# Chæ soá cuûa tham soá vò trí truyeàn ñeán shell
$? Maõ thoaùt cuûa leänh ñoàng boä cuoái cuøng
$$ Chæ soá quaù trình cuûa shell hieän haønh
$! Chæ soá cuûa leänh neàn cuoái cuøng ñöôïc keùo bôûi shell hieän haønh
4.3 Tham soá ñöôïc ñaët teân
Tham soá ñöôïc ñaët teân ñöôïc goïi laø bieán shell vaø phaûi baét ñaàu vôùi moät chöõ sau ñoù coù theå laø chöõ hay
soá. Ñeå ñaët bieán söû duïng daáu =. Ví duï :
$ ten = “ Ng Van A”
$ echo $ten
Trang 32/43
HEÄ ÑIEÀU HAØNH UNIX
Ng Van A
Daáu {} phaûi ñöôïc söû duïng vôùi teân bieán theo sau bôûi chöõ hay soá maø khoâng phaûi laø moät phaàn cuûa
teân bieán. Ví duï :
$ filename=chapt
$ echo ${filename}0
chapt0
Caùc bieán ñöôïc ñaët bôûi shell(ksh) ;
ERRNO giaù trò sai cuûa laàn goïi heä thoáng cuoái
LINENO Chæ soá doøng hieän haønh trong shell script
OLDPWD Giöõ thö muïc hieän haønh cuõ ñöôïc ñaët bôûi leänh cd
PPD Chæ soá quaù trình cuûa shell cha
PWD Thö muïc hieän haønh
Caùc bieán ñöôïc söû duïng bôûi shell(ksh) ; Caùc bieá naøy thöôøng ñöôïc ñaët bôûi quaûn trò heä thoáng trong
taäp tin /etc/profile hay bôûi ngöôøi söû duïng trong taäp tin .profile
CDPATH Ñöôøng daãn ñeå tìm leänh cd
HOME Thö muïc “home”
PATH Ñöôøng daãn ñeå tìm leänh
PS1 Daáu nhaéc thöùø nhaát maëc ñònh “$ “
PS2 Daáu nhaéc thöù hai maëc ñònh “> “
TERM Loaïi Terminal
5. Caáu truùc laäp trình
+ for
for bieán in töø
do
danh saùch leänh
done
for bieán
do
danh saùch leänh
done
Ví duï :
$ ls unit??.n
unit01.n unit02.n unit04.n unit12.n
$ for i in unit??.n
> do
> spell $i > ${i}_sp
> done
$ ls unit??*
Trang 33/43
HEÄ ÑIEÀU HAØNH UNIX
. unit01.n unit02.n unit04.n unit12.n
unit01.n_sp unit02.n_sp unit04.n_sp unit12.n_sp
Hay ta coù theå thu thaäp caùc taäp tin xuaát vaøo moät taäp tin
for i in unit??.n
do
echo “$i:”
spell $i
echo “\n”
done > spell.out
+ while
while leänh
do
danh saùch leänh
done
Thöïc hieän danh saùch leänh chöøng naøo traïng thaùi thoaùt cuûa leänh khaùc khoâng. Neáu ngay laàn ñaàu leänh
ñaõ traû veà giaù trò khaùc khoâng thì danh saùch leänh seõ khoâng ñöôïc thöïc hieän. Ví duï :
while who | grep NVA > /dev/null
do
sleep 10
done
echo “NVA daõ log off “ > /etc/w_NVA
+ until
until leänh
do
danh saùch leänh
done
Thöïc hieän danh saùch leänh chöøng naøo traïng thaùi thoaùt cuûa leänh baèng khoâng. Neáu ngay laàn ñaàu leänh
ñaõ traû veà giaù trò baèng khoâng thì danh saùch leänh seõ khoâng ñöôïc thöïc hieän. Ví duï :
until who | grep NVA > /dev/null
do
sleep 10
done
echo “NVA daõ log on”
+ if
if leänh
then
danh saùch leänh
fi
Trang 34/43
HEÄ ÑIEÀU HAØNH UNIX
if leänh
then
danh saùch leänh
else
danh saùch leänh
fi
if leänh
then
danh saùch leänh
elif leänh
then
danh saùch leänh
fi
Neáu leänh trôû laïi giaù trò khoâng danh saùch leänh sau then seõ ñöôïc thöïc hieän.
if who | grep NVA > /dev/null
then
echo “NVA ñaõ ø log on”
fi
if [ -f status ]
then
echo “ status laø taäp tin thöôøng”
else
echo “ status khoâng phaûi laø taäp tin thöôøng”
fi
if [ -f status ]
then
echo “ status laø taäp tin thöôøng”
elif [ -d status ]
then
echo “ status laø thö muïc”
fi
+ case
case töø in
pattern1)
danh saùch leänh
;;
pattern2)
danh saùch leänh
;;
Trang 35/43
HEÄ ÑIEÀU HAØNH UNIX
esac
Leänh case seõ thöïc hieân danh saùch leänh lieän heä vôùi pattern ñaàu tieân thích öùng vôùi töø. Moãi pattern
ñöôïc keát thuùc bôûi (;;). Ví duï :
echo “ Ñöa vaøo leänh : \c”
read cmd
case $cmd in
ls)
/bin/ls ;;
who)
/bin/who;;
date)
/bin/date;;
*)
echo “ Leänh sai”;;
esac
+ Haøm
teân()
{
caùc leänh
}
function
{
caùc leänh
}
Caùc haøm ñöôïc ñoïc vaøo shell hieän haønh. Ñeå goïi haøm chæ caàn goïi baèng teân ( chuù yù teân haøm phaûi
khaùc vôùi teân cuûa caùc leänh unix ñaõ toàn taïi. Shell thöïc hieän caùc leänh trong { } khi haøm ñöôïc
goïi.Haøm coù theå truy xuaát taäp hôïp bieán cuûa shell hieän haønh. Ví duï :
dir()
{
/bin/ls -C
}
6. Shell script
Shell script laø moät taäp tin chöùa caùc leänh noäi taïi,haøm vaø leänh unix. Shell script thöôøng söû duïng khi
moät chuoãi leänh phaûi thöïc hieän nhieàu hôn moät laàn. Ñeå taïo shell script söû duïng moät chöông trình
hieäu ñính ñeå ñöa caùc leänh muoán thöïc hieän vaøo taäp tin.
Ñeå thöïc hieän shell script coù theå laøm nhö sau :
Thay ñoåi chuû quyeàn taäp tin ñeán cheá ñoä thöïc hieän ñöôïc. Sau ñoù chaïy shell script nhö moät leänh
bình thöôøng.
hoaëc söû duïng leänh sh $ sh myprog
Trang 36/43
HEÄ ÑIEÀU HAØNH UNIX
Teân cuûa shell script khoâng neân truøng vôùi caùc leänh UNIX,leänh noäi taïi, haøm. Ví shell script thöïc
hieän ñaàu tieân.
Ñeå gôõ roái shell script söû duïng $ sôû höõu -x myprog
Coù theå söû duïng leänh chaám (.) thöïc hieän chöông trình tröïc tieáp shell script trong moâi tröôøng cuûa noù.
Ví duï :
$ . .profile
Ñoïc vaø thöïc hieän caùc leänh trong taäp tin .profile
VII Söû duïng openwin
VIII Maïng UNIX
Maïng cho pheùp ngöôøi söû duïng truy xuaát vaø chia seû taøi nguyeân cuûa caùc maùy caùch xa nhau. Caùc
maùy tính noái keát treân maïng ñöôïc goïi laø “host”. Maùy taïi choã goïi laø maùy chuû cuïc boä (local host).
Taát caû caùc maùy khaùc goïi laø maùy chuû töø xa (remote host). Maïng cuïc boä (LAN) laø taäp hôïp cuûa caùc
maùy gaàn nhau (trong phaïm vi 2km). Maïng roäng (WAN) laø taäp hôïp cuûa caùc maùy coù khoaûng caùch
ñòa lí xa nhau (coù theå haøng ngaøn caây soá). UNIX cung caáp caû hai khaû naêng noái keát maïng LAN vaø
WAN, vôùi hai giao thöùc :
UUCP (Unix-to Unix CoPy) - Noái keát giöõa hai heä UNIX vôùi nhau.
TCP/IP (Transmission Control Protocol/ Internet Protocol) - Noái keát giöõa caùc heä maùy chuû khaùc
nhau. Ñaëc bieät noù laø moät giao thöùc chuaân ñöôïc söû duïng trong maïng Internet - Maïng WAN phoå
bieán nhaát theá giôùi.
1. Giao thöùc TCP/IP
Giao thöùc TCP/IP ñöôïc thieát laäp bôûi toå chöùc Internet. TCP/IP laø moät taäp caùc giao thöùc
(FTP,SMTP,Telnet vvv) maø ñònh nghóa chuaån cho caùc loaïi truyeàn thoâng khaùc nhau (Truyeàn taäp
tin, thö ñieän töû, moâ phoûng terminal vvv). Hieän nay TCP/IP laø giao thöùc ñöôïc söû duïng phoå bieán
nhaát.
Caùc giao thöùc TCP/IP ñöôïc caøi ñaët nhö caùc öùng duïng Client/Server. Moät “client” söû duïng ñeå yeâu
caàu söï thöïc hieän moät taùc ñoäng bôûi maùy “server” töø xa. Maùy “server” coù traùch nhieäm xöû lí yeâu
caàu cuûa maùy “client”. Döõ lieäu truyeàn qua LAN vaø WAN theo töøng khoái (packets). Coù raát nhieàu
loaïi LAN vaø WAN khaùc nhau tuøy theo caùch thöùc chuùng truyeàn packets. LAN phoå bieán nhaát laø
Ethernet.
Moät host maø coù phaàn cöùng cho caû LAN vaø WAN ñöôïc goïi laø “gateway” vì chuùng coù khaû naêng
phaân ñuôøng giöõa LAN vaø WAN. Ñeå cho caùc maùy PC söû duïng caùc phaàn cöùng LAN,WAN caùc boä
ñieàu khieån thieát bò phaûi ñöôïc caùi ñaëi, Caùc boä ñieàu khieån cho LAN coù theå laø NDIS, ODI,ASI,PDS.
Caùc boä ñieàu khieån cho WAN coù theå laø X.25,PPP vaø SLIP.
1.1 Caùc thaønh phaàn cuûa TCP/IP
Trang 37/43
HEÄ ÑIEÀU HAØNH UNIX
quaù trình cuûa ngöôøi söû duïng quaù trình cuûa ngöôøi söû duïng
TCP UDP
ICMP IP ARP RARP
giao tieáp phaàn cöùng
TCP ( Transmission Control Protocol) Giao thöù höôùng ñeán noái keát : tin caäy, hai chieàu, kieåm soaùt
söï truyeàn nhaän caùc doøng döõ lieäu. Ña soá caùc öùng duïng söû duïng TCP.
UDP (User Datagram Protocol) Giao thöùc khoâng noái keát : khoâng tin caäy, doøng döõ lieäu truyeàn
khoâng caàn ù kieåm tra nhaän ñöôc hay khoâng.
ICMP (Internet Control Message Protocol) Giao thöùc ñieàu khieån sai vaø kieåm soaùt thoâng tin giöõa
“gateway” vaø caùc maùy chuû.
IP (Internet Protocol) Giao thöùc cung caáp caùc dòch vuï chuyeån goùi (packet) ñeå ch TCP, UDP vaø
ICMP.
ARP Address Resolution Protocol Giao thöùc aùnh xaï ñòa chì Internet vaøo ñòa chæ phaàn cöùng.
RARP Revese Address Resolution Protocol Giao thöùc aùnh xaï ñòa chæ phaàn cöùng vaøo ñòa chæ
Internet.
1.2 Caùc khaùi nieäm cô baûn
Ñòa chæ IP (IP Address) : Chæ soá duy nhaát ñeå ñònh danh moãi maùy trong maïng. Coù daïng sau :
Chæ soá maïng Chæ soá maïng con Chæ soá maùy
Ví duï : 192.127. 50. 1
Chæ soá maïng : Nhaän töø Network Information Center(NIC), Khoâng theå thay ñoåi
Chæ soá maïng con : Tuøy choïn, chæ soá maïng con maø maùy noái vaøo.
Chæ soá maùy : Xaùc ñònh duy nhaát cho moãi maùy treân maïng. Do ngöôøi quaûn trò heä thoáng ñaët khi taïo
maïng hay theâm maùy.
Ñòa chæ IP ñöôïc bieåu dieãn baèng 4 byte : 3 byte ñaàu daønh cho chæ soá maïng vaø maïng con. Byte cuoái
daønh cho ñòa chæ maùy. Moãi byte caùch nhau bôûi (.). Ví duï : 195.127.50.1
Maët naï maïng con ( subnet mask) :Soá söû duïng bôûi phaàn meàm ñeå phaân caùch ñòa chæ maïng con vaø
phaàn coøn laïi cuûa ñòa chæ IP. Ví duï : 255.255.255.0 ba byte ñaàu bieåu dieãn chæ soá maïng vaø maïng con.
Ñòa chæ chung (Broadcast Address): Ñöôïc söû duïng ñeå lan truyeàn thoâng baùo ñeán taát caû caùc maùy
trong maïng. Ví duï : 195.127.50.255. Khi söû duïng ñòa chæ naøy ñeå göûi thoâng baùo thì taát caû caùc maùy
trong maïng 195.127.50 seõ nhaän ñöôïc thoâng baùo.
Teân vuøng (domain name) : Teân daøng cho moät nhoùm maùy ñöôïc quaûn trò ñoáng thôøi. Teân vuøng coù
tính phaân caáp, caùc thaønh phaàn ñöôïc phaân caùch bôûi daáu chaám (.). Möùc vuøng ñöôïc tính töø phaûi sang
traùi. Möùc vuøng cao nhaát coù theå laø :
.COM laõnh vöïc thöông maïi
.EDU laõnh vöïc giaùo duïc
.GOV laõnh vöïc chính phuû
Trang 38/43
HEÄ ÑIEÀU HAØNH UNIX
Teân vuøng ñaày ñuû phaûi duy nhaát treân toaøn theá giôùi. Ví duï: hcm.vn.com
Dòch vuï teân vuøng (Domain Name Service) : dòch vuï teân cuûa hoï TCP/IP, cung caáp caùc thoâng tin
veà caùc maùy cuïc boä cuõng nhö töø xa.
Teân maùy (host name): Coù theå laø ñòa chæ IP hay moät chuoãi kí töï maø laø teân hình thöùc cuûa maùy.
Ñöôïc ñònh nghóa trong taäp tin /etc/host. Ví duï : trong taäp tin /etc/host coù doøng
195.127.50.1 sunfibi
thì sunfibi laø teân maùy.
1.3 Caùc öùng duïng
Döïa treân TCP/IP coù raát nhieàu öùng duïng khaùc nhau :
Telnet : cho pheùp caùc terminal lieân laïc vôùi nhau theo töøng kí töï. Noù cuõng cho pheùp moâ phoûng PC
hnö moät terminal cuûa maùy chuû.
Ftp (File Transfer Protocol): Cho pheùp truyeàn taäp tin giöõa caùc maùy (maïng) caùch xa nhau.
Dòch vuï teân vuøng (DNS) : cung caáp caùc aùnh xaï Teân-Ñòa chæ.
Ngoaøi ra coøn coù caùc leänh nhö rcp,rsh vvv. Duøng ñeå thöïc hieän töø xa hay sao cheùp caùc taäp tin ôû caùc
maùy töø xa.
Caùc leänh cô baûn treân (DOS,UNIX):
+ Kieåm soaùt ñöôøng truyeàn :
ping [time out]
timeout thôøi gian coà gaéng noái keát. Ví duï :
$ping sunfibi
Ping göûi moät ICMP tôùi hostname. Neáu host coù ñaùp öùng thì seõ coù thoâng baùo : sunfibi is alive. Neáu
khoâng : No answer from sunfibi.
+ Moâ phoûng terminal :
Cho pheùp terminal noái keát vôùi maùy chuû töø xa. Coù hai loaïi terminal coù theå moâ phoûng VT100 hay
IBM3270. Ví duï :
$rlogin sunfibi
login:
password:
+ Truyeàn taäp tin :
Cho pheùp truyeàn vaø nhaän taäp tin vôùi maùy töø xa. Ví duï :
$ftp sunfibi
login:
password:
>
Taïi daáu nhaéc naøy coù theå ñöa vaøo caùc leänh hay söû duïng leänh help ñeå lieät keâ caùc leänh coù theå söû
duïng. Coù moät vaøi leänh cô baûn nhö :
Trang 39/43
HEÄ ÑIEÀU HAØNH UNIX
dir Hieån thò caùc thö muïc cuûa maùy login
get path/filename (cuïc boä) path/filename (töø xa) Truyeàn taäp tin ñeán maùy töø xa
put path/filename (töø xa) path/filename(cuïc boä) Nhaän taäp tin töø maùy töø xa
exit Thoaùt khoûi ftp
+ Sao cheùp taäp tin töø xa :
Sao cheùp taäp tin giöõa caùc maùy.Coù daïng
rcp [choïn löïa] nguoàn ñích
choïn löïa : -p sao cheùp caû thôøi gian vaø chuû quyeàn cuûa taäp tin nguoàn
-r sao cheùp caû caùc thö muïc con.
nguoàn vaø ñích coù daïng hostname:pathname. hostname coù theå boû qua ôû maùy cuïc boä. Ví duï :
$rcp test sunfibi:/usr/dung hoaëc
$rcp sunfibi:/usr/dung/test /usr/tan/thu
+ Thöïc hieän leänh töø xa:
Noái keát vôùi host vaø thöïc hieän leänh. Daïng :
rsh host [choïn löïa] [leänh]
choïn löïa : -lusername noái keát host vôùi username.
-n höôùng nhaäp ñeán /dev/null
Ví duï :
$rsh sunfibi -lroot cat /test > /thu
cheùp taäp tin /test ôû maùy sunfibi sang maùy cuïc boä.
+ In taäp tin :
In noäi dung taäp tin ra maùy in töø xa. Daïng :
lpr hostname filename
hostname laø teân maùy coù gaén maùy in.Ví duï :
$lpr sunfibi test
Ngoaøi ra trong PC/TCP coøn coù caùc chöông trình chaïy trong WINDOW maø cho pheùp söû duïng caùc
giao thöùc TCP/IP ôû cheá ñoä ñoà hoïa.
Ñeå coù theå thöïc hieän ñöôïc caùc öøng duïng cuûa XWINDOW phaûi söû duïng chöông trình moâ phoûng X
terminal (eXceed 4). Caùc böôùc thöïc hieän nhö sau :
- Nhaán hai laàn con chuoät treân icon eXceed trong Window ñeå khôûi ñoäng eXceed.
- Nhaán hai laàn con chuoät treân icon Telnet coù dialog sau:
Connect
OK
Host : sunfibi Cancel
Help
Ñöa vaøo ñòa chæ IP hay teân host chöùa XWINDOW server.Sau khi noái keát thaøng coâng ñöa vaøo
login:
password:
Trang 40/43
HEÄ ÑIEÀU HAØNH UNIX
Keá ñoù laø khôûi ñoäng X WINDOW client:
$[path/]xterm -ls -displays client1:0 &
2. Giao thöùc UUCP
Maïng ñaõ ñöôïc ñöa vaøo UNIX naêm 1975 vôùi UUCP döôùi daïng “ñieåm - ñieåm” giöõa hai heä thoáng
UNIX keát noái qua ñöôùng daây ñieän thoaïi. UUCP ñöôïc söû duïng roäng raõi, ngaøy nay noù cung caáp caû
khaû naêng treân maïng cuïc boä. Giao thöùc UUCP coù theå söû duïng ñeå truyeàn taäp tin, thöïc hieän töø xa, göûi
thö tín ñieän töû. Leänh UUCP ñaõ ñöôïc naâng cao, caùc taäp tin truyeàn bò ngaét seõ ñöôïc truyeàn laïi töø choã
truyeàn sai chöù khoâng phaûi töø ñaàu taäp tin. Phaàn cöùng cuûa UUCP coù ba loaïi khaùc nhau :
Direct links: ñöôùng daây tröïc tieáp toái ña laø 50 feet toác ñoä coù theå ñaït ñöôïc 19200 baud
Telephone line: Söû duïng Automatic Call Unit (ACU) töï ñoäng quay soá theo yeâu caàu cuûa
UUCP.
Networking: söû duïng moâi tröôøng maïng cuïc boä
2.1 Caùc thaønh phaàn cuûa UUCP:.
user mail news
UUCP UUX
work file data file executes file
UUCICO
|
Kernel
|
|
Kernel
|
UUCI
CO
uucico coâng cuï noái keát caùc maùy tính xa cho pheùp truye nà taäp tin hay
thöïc hieän leänh
uucp sao cheùp moät taäp tin töø moät maùy ñeán maùy khaùc, UUCP taïo
taäp tin döõ lieäu vaø taäp tin laøm vieäc, xeáp haøng caùc coâng vieäc ñeå
truye nà vaø goïi uucico daemon å noái keát vôùi maùy töø xa.
uux taïo caùc taäp tin laøm vieäc(C.xxx) , döõ lieäu(D.xxx) vaø thöïc
hieän(X.xxx) ca nà thieát ñeå thöïc hieän leänh treân moät maùy töø xa.Taäp
tin laøm vieäc chöùa cuøng moät thoâng tin nhö taäp tin laøm vieäc taïo bôûi
uucp vaø uuto. Taäp tin thöïc hieän chöùa doøng leänh seõ ñöôïc thöïc hieän
treân maùy töø xa vaø danh saùch caùc taäp tin döõ lieäu. Caùc taäp tin döõ
lieäu laø caùc taäp tin ñöôïc ñoøi hoûi ñeå thöïc hieän leänh.
Trang 41/43
HEÄ ÑIEÀU HAØNH UNIX
2.2 Caùc leänh UUCP
Goïi UNIX (cu) :
Cho pheùp noái keát vôùi moät heä UNIX töø xa. Sau khi noái keát coù theå thöïc hieän caùc leänh töø xa. Leänh coù
daïng nhö sau :
cu [-s toác ñoä][-l ñöôøng] [-h][-o][-e] hostname
cu [-s toác ñoä][-l ñöôøng] [-t][-h][-o[-e] telnum
trong ñoù :
-s toác ñoä : ñònh nghóa toác ñoä truyeàn
-l ñöôøng : choïn coång
-h :truyeàn theo cheá ñoä half-duplex
-d : Hieån thò töøng böôùc thöïc hieän
-o : kieåm tra chaün
-e: kieåm tra leû
-t : quaûn lí terminal ôû cheá ñoä töï ñoäng
hostname: teân heä thoáng töø xa
telnum: soá ñieân thoaïi cuûa maùy töø xa
Sau khi noái ñöôùng thaønh coâng,cu seõ truyeàn thoâng tin ñoïc töø thieát bò nhaäp chuaån cho heä xa, nhaän
caùc thoâng tin cuûa maùy xa chuyeån ra xuaát chuaån. Coù theå söû duïng caùc leänh sau :
. keát thuùc ñoái thoaïi
! trôû veà heä cuïc boä
! cmd thöïc hieän leänh taïi choã
$ cmd thöïc hieän leänh taïi choã vaø göûi cho maùy töø xa
%cd chuyeån thö muïc treân maùy cuïc boä
%take taäp tin töø xa taäp tin cuïc boä sao cheùp taäp tin töø maùy töø xa
%put taäp tin cuïc boä taäp tin töø xa sao cheùp taäp tin ñeán maùy töø xa
%debug Cheá ñoä gôõ roái
Ví duï :
cu -s 2400 -l tty01 sunfibihn hoaëc
cu -s 2400 -l tty01 014234567
connect
Wellcome to Sun Solaris
login:
password:
sunfibihn$~%
sunfibihn$[sunfibi]%cd /usr/dung
+uucp : sao cheùp taäp tin giöõa caùc heä unix.
Daïng leänh :
Trang 42/43
HEÄ ÑIEÀU HAØNH UNIX
uucp [choïn löïa][nguoàn!]taäp tin nguoàn [ñích!] taäp tin ñích
nguoàn vaø ñích coù theå laø caùc heä töø xa, taäp tin ñích coù theå laø thö muïc. Choïn löïa :
-C cheùp caùc taäp tin vaøo thö muïc spool cuûa maùy ôû xa
-c khoâng cheùp caùc taäp tin vaøo thö muïc spool cuûa maùy ôû xa
-d taïo caùc thö muïc neáu caùc thö muïc khoâng toàn taïi
-f khoâng taïo caùc thö muïc neáu caùc thö muïc khoân toàn taïi
-m Göûi mail cho user khi sao cheùp hoaøn thaønh
-n user göûi mail cho user baùo caùc taäp tin ñaõ ñöôïc göûi
Ví duï :
$uucp -m test sunfibihn!~/test
+ uux (unix to unix execution): Cho pheùp thöïc hieän leänh treân moät heä vaø göûi keát quaû
ñeán heä khaùc.
Daïng leänh :
uux [choïn löïa][sys!]leänh
choïn löïa :
8 - nhaäp chuaån
-L khôûi ñoâng uucico
-C cheùp caùc taäp tin cuïc boä vaøo thö muïc spool ñeå truyeàn
-c khoâng cheùp caùc taäp tin vaøo thö muïc spoolñeå truyeàn
Ví duï :
$uux sunfibihn!ls > sunfibí!test
+ uustat : Thoâng baùo traïng thaùi uucp.
Daïng leänh :
uustat [choïn löïa]
choïn löïa : -a Hieån thò taát caû traïng thaùi
-u user Hieån thò traïng thaùi user
-s sys Hieån thò traïng thaùi cuûa heä
Trang 43/43
Các file đính kèm theo tài liệu này:
- tailieu.pdf