Giáo trình UNIX

Muïc luïc:  
PHAÀN 1:  
UNIX CÔ SÔÛ  
Baøi 1. Khôûi ñoäng UNIX  
1.1  
1.2  
1.3  
Baét ñaàu phieân laøm vieäc  
Keát thuùc phieân laøm vieäc  
Caùch duøng leänh cuûa UNIX  
Baøi 2. Laøm vieäc vôùi file.  
2.1  
2.2  
2.3  
2.4  
Toå chöùc file  
Di chuyeån giöaõ caùc thö muïc  
Caùc thao taùc cô sôû vôùi caùc thö muïc  
Caùc thao taùc cô sôû vôùi file thöôøng  
Baøi 3. Baoû veä caùc file cuûa ngöôøi söû duïng  
3.1  
3.2  
3.3  
Moâ taû ngöôøi söû duïng  
Moâ taû nhoùm ngöôøi söû duïng  
Baûo veä caùc file vaø caùc thö muïc  
Baøi 4. Sao, chuyeån, lieân keát vaø tìm kieám file  
4.1  
4.2  
4.3  
4.4  
Sao cheùp file  
Chuyeån vaø ñoåi teân file  
Taïo lieân keát vôùi file  
Tìm kieám file  
Baøi 5. Thonâ g tin gõa nhöõng ngöôøi söû duïng  
5.1  
5.2  
Thoâng tin banè g leänh mail  
Thoâng tin banè g leänh write  
Baøi 6. Söû duïng chöông trình soaïn thaûo vi  
6.1  
6.2  
Khôûi ñoäng vi  
Soaïn thaoû vaên baûn  
Baøi 7. Shell script  
7.1  
7.2  
7.3  
Quaûn lyù tieán trình  
Laäp caùch thöùc cho shell script  
Caùc shell UNIX  
Baøi 8. Ñoåi höônù g (redirection)  
8.1  
8.2  
Vaøo/ra chuan  
Chuyeån ñoåi döõ lieuä giöõa cacù tieán trình  
1
8.3  
Ñoåi höôùng kepù ñaàu ra chuaån  
Baøi 9. Cô cheá thay theá cuûa Shell  
9.1  
9.2  
9.3  
9.4  
9.5  
Truyeàn tham soá  
Caùc bieán Shell  
Caùc kí töï ñaëc bieät  
Laáy keát quaû cuûa moät leänh  
Caùc qui taéc thay theá cuûa Shell  
Baøi 10. Moâi tröôøng cuûa Shell  
10.1 Moâi tröôøng  
10.2 Caùc bieán ñònh nghóa tröôùc  
10.3 Caùc bieán chung  
Baøi 11. Laäp trình möùc cô sôû döôùi UNIX  
11.1 Caùc pheùp thöû trong Shell  
11.2 Laäp trình moät caáu truùc coù ñieàu kieän  
11.3 Laäp trình moät chu trình  
Baøi 12. Tín hieäu vaø ñoàng boä  
12.1 Quaûn lyù caùc tín hieäu  
12.2 Quaûn lyù caùc tieán trình  
12.3 Ñeä qui  
PHAÀN 2  
LAÄP TRÌNH C DÖÔIÙ UNIX  
Baøi 1. Giôiù thieäu chung  
1.1  
1.2  
1.3  
1.4  
Caùc lôøi goiï heä thoáng  
Chuû thöïc vaø chuû thöïc quyeàn cuûa tieán trình  
Ñònh nghóa caùc tham bieán chöông trình  
Moät soá ñònh nghóa khaùc  
Baøi 2. Quaûn lyù tieán trình  
2.1  
2.2  
2.3  
2.4  
2.5  
2.6  
2.7  
2.8  
Nhaän bieát tieán trình  
Nhaän bieát chuû tieán trình  
Thay ñoåi chuû vaø nhoùm chuû  
Taïo moät tieán trình  
Caùc haøm goïi moät tieán trình thay theá  
Ñoàng boä tieán trình  
ùc öu tieân cuûa tieán trình  
Nhoùm caùc tieán trình  
2
Baøi 3. Quaûn lyù file  
3.1  
3.2  
3.3  
3.4  
3.5  
3.6  
3.7  
3.8  
3.9  
Môû moät file  
Taïo moät file  
Ñoùng file  
Ñaët maët naï caùc quyeàn thaâm nhaäp file  
Ñoïc file  
Ghi file  
Di chuyeån con troû file  
Caáu truùc moät inode  
Taïo moät inode  
3.10 Thay ñoåi quyeàn thaâm nhaäp  
3.11 Thay ñoåi chuû sôû höõu hoaëc nhoùm  
3.12 Thay ñoåi thö muïc laøm vieäc  
3
PHAÀN 1: UNIX CÔ SÔÛ  
Baøi 1. Khôûi ñoäng UNIX  
Noäi dung: Laøm quen vôùi heä ñieàu haønh UNIX. Baét ñaàu, keát thuùc phieân laøm vieäc, chaïy  
moät soá leänh ñaëc tröng.  
1.1 Baét ñaàu phieân laøm vieäc:  
Baät coâng taéc nguoàn cuûa terminal (trong heä thoná g cuûa NLC laø Xterm sau khi duøng  
Exceed keát noái vôùi UNIX server), khoaûng moät giaây sau treân maøn hình hieän doøng thoâng  
baùo:  
Login:  
Haõy nhapä vaøo tenâ (user name) khi keát thuùc baèng phím Enter. Neuá ngöôøi söû duïng coù  
duøng maät khauå (passwor), treân maøn hình seõ hieän doøng:  
Password:  
Haõy vaøo maät khaåu cuûa mình vaø keát thuùc baèng phím Enter.  
Neáu teân (vaø maät khauå neáu coù) ñöôïc vaøo ñuùng, terminal ñoù seõ ñöôïc noái vôùi maùy chuû vaø  
treân maøn hình seõ hieän kyù töï:  
$
ñoù laø daáu nhaéc cuûa Shell.  
Maät khauå ñaûm baoû an toaøn cho moãi phieân laøm vieäc. Ta coù theå thay ñoåi maät khaåu baèng  
leänh passwd. Maät khauå phaûi daøi ít nhaát 6 kyù töï, ít nhatá phaûi coù 2 kyù töï alphabet, phaûi  
khaùc vôùi teân (user name) ít nhatá 3 kyù töï, daøi toái ña 13 kyù töï.  
1.2 Keát thuùc phieân laøm vieäc:  
AÁn CTRL + D (giöõ phím CTRL vaø goõ phím D) hoaëc goõ leänh  
$exit  
ñeå keát thuùc phieân laøm vieäc.  
1.4 Caùch duøng leänh cuûa UNIX:  
-
Cuù phaùp cô baûn ñeå chaïy moät leänh cuaû UNIX nhö sau:  
$teânleänh [-tuyø choïn][ñoái soá 1]…[ñoái soá n]  
Thí duï:  
wc laø leänh ñeám vaø hieån thò soá doøng, töø vaø kyù töï cuûa moät file. Ta coù theå chaïy leänh wc  
nhö sau  
$wc /etc/passwd  
32  
37  
1139 etc/passwd  
$wc -l /etc/passwd  
32 etc/passwd  
4
$wc -ld /etc/passwd /etc/group  
32  
15  
47  
1139 etc/passwd  
337 etc/group  
1476 total  
-
Caùc thoâng baùo loãi khi goïi leänh:  
Neáu leänh khoâng toàn taiï hoaëc khonâ g tìm thayá :  
$data  
data not found  
Neáu cuù phaùp cuûa leänh bò goõ sai:  
$wc -m  
/etc/group  
usage: wc  
[-clw][name…]  
Baøi taäp:  
Chuù yù: Kyù hieäu <CR> töôïng tröng cho vieäc goõ phím Enter.  
1.  
2.  
Haõy baét ñaàu phieân laøm vieäc vôùi teân (username) cuûa baïn.  
Ñôïi khi daáu nhaéc cuûa heä thoáng xuaát hieän (daáu $), goõ vaøo  
date<CR>  
3.  
4.  
5.  
Gaùn maät khaåu cho teân:  
passwd<CR>  
Lieät keâ teân nhöõng ngöôøi ñang söû duïng heä  
who<CR>  
Xem ai laø ngöôøi ñang laøm vieäc taiï terminal:  
who am I<CR>  
whoami<CR>  
Xem teân terminal maø ta ñang laøm vieäc treân ñoù:  
tty<CR>  
Hieån thò caùc thoâng baùo leân maøn hình:  
echo Xin chao” <CR>  
6.  
7.  
echo Chao” <CR>  
echo Dau nhac ket thuc boi $ xuat hien sau Chao” <CR>  
echo Hom nay la ngay:”;date<CR>  
echo Hai lenh tren 1 dong cach nhau boi dau ;” <CR>  
Duøng leänh cal (lòch):  
8.  
9.  
cal  
cal  
cal  
cal  
01  
01<CR>  
1900<CR>  
1900 | more<CR>  
1900<CR>  
Moät vaøi leänh khaùc:  
logname<CR>  
5
uname<CR>  
who | wc<CR>  
Keát thuùc phieân laøm vieäc:  
10.  
Ctrl  
D (giöõ phím Ctrl vaø goõ D) hoacë exit<CR>  
6
Baøi 2. Laøm vieäc vôùi file  
Noäi dung: Caùc khaùi nieäm cô banû veà file cuûa UNIX, toå chöùc cuûa caùc file treân ñóa, caùc  
thao taùc vôùi file.  
2.1 Toå chöùc file:  
2.1.1 Caùc kieåu file  
UNIX coù 3 kieåu file:  
-File bình thöôøng (ordinary file): laø moät taäp hôïp thoâng tin (ASCII text hoacë binary).  
-File thö muïc (directory file): chöùa danh sacù h caùc tenâ coù theå truy nhaäp tôùi thí duï nhö  
caùc file bình thöôøng, caùc file ñaëc bieät hoaëc caùc thö muïc con.  
-File ñaëc bieät (special file): laø caùc file lieân quan tôùi caùc thieát bò ngoaïi vi cöùng vaø/hoaëc  
cô cheá truyeàn tin.  
Thí duï:  
Baøn phím laø moät file ñaàu vaøo(input file).  
Maøn hình laø moät file ñaàu ra (output file).  
Maùy in laø motä file ñaàu ra.  
2.1.2 Toå chöùc cuûa caùc file  
Caùc file cuûa UNIX ñöôïc toå chöùc theo danï g caây (tree). Thö muïc goác (root) cuûa caây  
ñöôïc bieåu dienã baèng kyù töï /.  
Caáu truùc cayâ cô sôû cuûa heä UNIX ñöôïc boá trí nhö sau:  
Kyù hieäu file bình thöôøng  
Kyù hieäu file thö muïc  
Kyù hieäu file ñaëc bieät  
/
bin  
etc  
dev  
users  
usr  
unix  
user1  
user2  
Hình 1: Caáu truùc caây cô sôû cuûa UNIX  
2.2 Di chuyeån giöõa caùc thö muïc:  
Ñeå di chuyeån giöõa caùc thö muïc trong caây cuûa UNIX, ta duøng 2 leänh sau ñayâ :  
7
cd  
chuyeån ñená thö muïc canà ñeán (change directory)  
pwd hieån thò teân thö muïc ñang laøm vieäc (print working directory)  
Taïi thôøi ñieåm baét ñaàu phieân laøm vieäc, ta ôû trong thö muïc tieáp nhaän (HOME directory).  
Muoán xem tenâ thö muïc tieáp nhaän naøy, ta duøng leänh pwd.  
Thí duï: user1 coù thö muïc tieáp nhaän laø /users/user1  
$pwd  
/users/user1  
Ñeå di chuyeån giöõa caùc thö muïc ta duøng leänh cd iù teân thö muïc caàn chuyeån ñeán.  
$cd  
/usr/bin  
$pwd  
/usr/bin  
$cd ..  
$pwd  
/usr  
Ñeå veà thö mucï tieáp nhaän khi ta ñang ôû batá kyø ñaâu, goõ:  
$cd  
$pwd  
/users/user1  
2.3 Caùc thao taùc cô sôû vôùi thö muïc:  
2.3.1 Xem noiä dung thö muïc:  
-
-
-
Xem noäi dung thö muïc hieän ñang laøm vieäc:  
$ls  
Xem noäi dung thö muïc khacù , chaúng hanï thö muïc /bin:  
$ls  
/bin  
Xem theâm thoâng tin cuûa caùc file trong thö muïc:  
$ls  
-l  
hoaëc $ll  
-
Xem teân caùc file trong thö muïc theo coät:  
$lc  
Khi duøng leänh ls l ta coù theå phanâ bieät caùc kieåu file baèng caùch xem kyù töï ñauà cuûa doøng  
hieån thò, neáu laø:  
d
-
: file thö muïc.  
: file bình thöôøng  
: file ñaëc bieät  
c hoaëc b  
2.3.2 Taïo thö muïc:  
Ñeå taïo moät thö muïc môùi, ta duøng leänh mkdir (make directory):  
$mkdir  
$cd  
index  
index  
8
$ls  
.
-a  
. .  
Leänh mkdir taïo moät thö muïc vôùi 2 ñauà vaøo (entry)  
-
-
-
baûn thaân thö muïc coù teân ñaõ cho.  
thö muïc . lieân heä vôùi thö muïc ñöôïc taïo ôû treân  
thö muïc . . lieân heä vôí thö muïc cha.  
2.3.3 Xoùa thö muïc:  
Ñeå xoaù moät thö muïc ta duøng leänh rmdir (remove directory):  
$rmdir  
Neáu muoán xoaù thö muïc khoâng roãng, phaûi duøng leänh rm ùi tuyø choïn r  
$rm -ri thumuc  
index  
2.4 Caùc thao taùc cô sôû vôùi file thöôøng:  
2.4.1 Nhaän bieát moät file thöôøng:  
Leänh file phaân tích noät dung cuûa moät file vaø hieån thò tính chaát cuaû thoâng tin chöùa trong  
file:  
$file /etc/passwd  
/etc/passwd: ascii text  
$file /bin/ls  
/bin/ls: 680x0 executable 32 bits page aligned striped  
2.4.2 Xem noäi dung moät file thöôøng ASCII:  
Coù theå duøng moät trong caùc leänh sau:  
cat  
duøng ñeå xem noäi dung caùc file nhoû.  
xem noäi dung caùc file lôùn theo trang.  
pg hoaëc more  
$cat teân file  
$pg  
teân file  
$more teân file  
2.4.3 Taïo moät file thöôøng ASCII  
Taïi Shell cuûa UNIX ta coù theå deã daøng taïo moät file thöôøng ASCII text baèng caùch duøng  
leänh cat  
$cat >text_file  
abcdef  
123456  
<Ctrl + D>  
$
9
-
Kyù töï ‘>’ ñoåi höôùng, thay vì ñeán ñauà ra chuanå (standard output) ‘ ‘ ñeán file  
ñöôïc quy ñònh ngay sau ‘>’. ÔÛ ñaây caùc kyù töï goõ vaøo ñöôïc ghi vaøo file  
text_file.  
-
-
Leänh cat, neáu khoâng coù ñoái soá (argument), seõ coi baøn phím laø ñaàu vaøo chuaån.  
Goõ <Ctrl + D> taïi doøng troáng cuoái cuøng keát thuùc vieäc vaøo soá lieäu.  
<
(1) >  
Stdin KEYBOARD  
cat  
FILE stdout  
CONSOLE  
2>  
stderr  
Hình 2 : ñoåi höôùng ñaàu vaøo/ra chuaån  
Caùch vieát teân file khi taïo file:  
-
-
ñoä daøi  
+ teân file cuûa UNIX sys V daøi toái ña 14 kyù töï  
+ teân file cuûa BERKELEY, baét ñaàu töø version BSD 4.2. coù theå daøi ñeán 256 kyù  
ï.  
khoâng coù söï haïn cheá duøng kyù töï naøo khi vieát teân file, song ta caàn chuù yù vaøi  
ñieåm sau:  
+ khoâng duøng caùc kyù töï ñaëc bieät (tröø daáu chaám .hoaëc daáu gaïch döôùi ‘_’) vì  
phaàn lôùn caùc kyù töï ñoù ñöôïc dunø g trong cuù phaùp cuûa leänh Shell.  
+ file coù teân baét ñaàu baèng dauá chaám .laø file aån (hidden).  
+ kyù töï vieát thöôøng khaùc vôùi vieát hoa.  
Vieát teân file baèng caùch duøng caùc metacharacter (? Vaø *)  
-
kyù töï ‘*’ thay theá moät xaâu kyù töï  
kyù töï ‘?’ thay theá moät kyù töï  
-
Thí duï:  
$ll  
$ll  
/bin/c*  
/bin/c?  
2.4.4 Xoaù moät file thöôøng:  
Leänh : rm  
Coù theå dunø g leänh rm vôùi caùc tuyø choïn sau:  
-i  
coù hoûi ñaùp ñeå khaúng ñònh  
-f  
khoâng coù hoûi ñapù . Tuyø choïn naøy ratá nguy hieåm, chæ nhöõng ngöôøi söû duïng  
coù kinh nghieäm vaø canå thaän môùi neân duøng.  
$rm text_file  
$rm -i  
text_file  
10  
Baøi taäp:  
1. Xem teân thö muïc ñang laøm vieäc:  
pwd<CR>  
2. Xem noäi dung cuûa thö muïc ñang laøm vieäc:  
ls l<CR>  
3. Taïo file vanê baûn tintin:  
cat > tintin<CR>  
blabla<CR>  
BLABLA<CR>  
end<CR>  
CTRL + D (giöõ phím Ctrl vaø goõ phím D)  
4. Xem noäi dung file tintin:  
cat tintin<CR>  
5. Xem noäi dung caùc thö muïc /bin  
ll /bin<CR> hoaëc  
/usr/bin  
/dev  
ls -C /bin hoaëc ll /bin | pg  
6. Taïo 2 thö muïc d1 vaø d2  
mkdir d1 d2<CR>  
7. Chuyeån thö muïc laøm vieäc ñeán d1  
8. Taïo moät file trong thö muïc d1  
9. Trôû veà thö muïc tieáp nhaän (HOME directory)  
cd<CR>  
10. Xem noäi dung thö muïc ñang laøm vieäc:  
ls  
ls  
ll  
-l hoaëc  
ll  
-R (xem noäi dung caû caùc thö muïc con)  
lc  
11. Xoaù thö muïc d1:  
rm  
d1/*  
rmdir d1  
Hoaëc  
rm  
-ri  
d1  
11  
Baøi 3. Baûo veä caùc file cuûa ngöôøi söû duïng:  
Noäi dung : moâ taû cô cheá baûo veä file cuûa UNIX : ngöôøi söû duïng, nhoùm ngöôiø söû duïng,  
caùc quyeàn thaâm nhaäp file  
3.1 Moâ taû ngöôøi söû duïng:  
3.1.1 Khaùi nieäm:  
Moät ngöôøi söû duïng ñöôïc moâ taû baèng caùc thoâng tin sau:  
-
-
-
-
-
-
-
teân  
[maät khauå (neáu coù]  
soá nhaän daïng (uid : user identify number)  
soá cuûa nhoùm (gid : group identify number)  
[chuù thích]  
thö muïc tieáp nhanä (HOME directory)  
[teân chöông trình cho chaïy luùc baét ñaàu teân laøm vieäc]  
Caùc thoâng tin treân ñöôïc chöùa trong file /etc/passwd  
3.1.2 Leänh defuser:  
Leänh naøy ôû trong danh muïc /etc, noù cho pheùp:  
-
hieån thò danh saùch nõng ngöôøi söû duïng.  
-
theâm ngöôøi söû duïng môùi (chæ nhöõng ngöôøi quaûn trò heä thoáng coù quyeàn)  
$cat  
/etc/passwd | pg  
root : RKgSspHwm.PB.:0:3:0000-Admin000,,,:/:  
date::18:1::/:/bin/date  
tty::19:1::/:/bin/tty  
user1::3000:300::/users/user1:  
user2::3001:300::/users/user2:  
$/etc/defuser | pg  
USER  
root  
UID  
0
GID  
3
HOMEDIR  
/
SHELL  
daemon  
bin  
sys  
1
2
3
12  
2
3
/
/bin  
/usr  
adm  
4
4
/usr/adm  
date  
tty  
sync  
securadm  
lp  
18  
19  
20  
11  
71  
3000  
1
1
1
11  
2
/
/
/
/bin/date  
/bin/tty  
/bin/sync  
/etc/secure/bin  
/usr/spool/lp  
/users/user1  
user1  
300  
/bin/ksh  
12  
user2  
3001  
300  
/users/user2  
/bin/ksh  
3.2 Moâ taû nhoùm ngöôøi söû duïng  
3.2.1 Khaùi nieäm:  
Moät nhoùm ngöôøi söû duïng laø tapä ïp cuûa moät soá ngöôøi söû duïng coù theå duøng chung caùc  
file cuûa nhau.  
Moät nhoùm ngöôøi söû duïng ñöôcï moâ taû baèng cacù thoâng tin sau:  
-
-
-
-
teân cuûa nhoùm  
[maät khaåu]  
soá cuûa nhoùm (gid : group identify number)  
[danh sacù h nhöõng ngöôøi khacù h (guest)]  
Caùc thoâng tin treân ñöôïc chöùa trong file /etc/group  
3.2.2 Leänh defgrp:  
Leänh naøy ôû trong thö muïc /etc, noù cho pheùp:  
-
hieån thò danh saùch cacù nhoùm ngöôøi söû duïng.  
-
theâm nhoùm môùi (chæ ngöôøi quanû trò heä thoáng môùi coù quyeàn).  
$cat  
/etc/group  
public :: 100 : invite  
animator :: 200 :  
stagiaires :: 300 :  
$/etc/defgrp  
GRP  
root  
GID  
0
1
USERS  
root  
date  
sync  
shut  
other  
bin  
sys  
2
3
root  
bin  
daemon  
lp  
root  
bin  
sys  
adm  
root  
adm  
daemon  
uucp  
daemon  
adm  
4
5
uucp  
13  
nuucp  
root  
mail  
6
3.3 Baûo veä caùc file vaø caùc thö muïc  
3.3.1 Caùc quyeàn thaâm nhaäp file:  
Khi file ñöôïc taoï laäp, caùc thoâng tin sau ñaây ñoàng thôøi ñöôïc ghi laïi:  
-
-
-
uid cuûa ngöôøi taïo file  
gid cuûa ngöôøi taïo file  
caùc quyeàn thaâm nhaäp file  
File ñöôïc baûo veä bôûi moät taäp hôïpc caùc bit ñònh nghóa quyeàn thaâm nhaäp:  
r w x  
suid  
owner  
r w x  
sgid  
group  
r w x  
other  
Trong ñoù:  
r
w
quyeàn ñoïc  
quyeàn ghi  
x
suid  
quyeàn chayï (executing)  
set user-id  
sgid  
set group-id  
Ñoái vôùi thö muïc:  
r
w
x
quyeàn ñoïc noäi dung thö muïc  
quyeàn taïo vaø xoaù file trong thö muïc  
quyeàn qua laïi (crossing) thö muïc  
Ghi chuù: caùc quyeàn vôùi thö mucï chæ coù hieuä ïc taïi moät möùc nhaát ñònh, thö muïc con coù  
theå ñöôïc baûo veä trong khi thö muïc cha thì khoâng.  
3.3.2 Leänh ls -l  
Leänh nayø lieät keâ danh saùch cacù file vaø caùc thuoäc tính cuûa chunù g trong moät thö muïc,  
qua ñoù ta coù theå phatù hieän loaiï file, caùch baûo veä, ngöôøi sôû höõu, vaø kích thöôùc cuûa  
chuùng…  
Thí duï:  
Caùc file thöôøng (ordinary files):  
$ls  
-l  
/bin  
1
3
1
1
2
1
3
-rwxrwxr-x  
-rwxrwxr-x  
-rwxrwxr-x  
-rwxrwxr-x  
-rwxrwxr-x  
-rwxrwxr-x  
-rwxrwxr-x  
bin  
root bin  
bin  
bin  
bin  
bin  
bin  
16336 Mar  
16124 Mar  
18760 Mar  
13320 Mar  
33896 Mar  
28928 Mar  
16124 Mar  
8
8
8
8
8
8
8
1988 cat  
1988 cp  
1988 cat  
1988 echo  
1988 ed  
1988 file  
1988 ln  
bin  
bin  
bin  
bin  
root bin  
14  
-rwxrwxr-x  
-rwxr-sr-x  
-rwxrwxr-x  
-rwxr-xr-x  
8
1
1
1
bin  
bin  
bin  
bin  
60152 Mar  
8
1988 ls  
mail 63264 April 2  
bin  
1988 mail  
1988 mesg  
1988 mkdir  
15276 Mar  
13180 Mar  
8
8
root bin  
Trong ñoù:  
Coät 1 : loaïi file vaø quyeàn thamâ nhaäp (-rwxrwxr-x, rwxr-xr-x)  
Daáu tröø -ôû ñauà coù nghóa file laø file thöôøng (khoâng phaûi thö muïc).  
Daáu tröø ôû trong daõy bit coù nghóa laø khoâng coù quyeàn töông öùng bit ñoù.  
Ñeå tieát kieäm choã, ngöôøi ta ñaët bit s vaøo cuøng moät nôi vôiù bit x vaø kyù hieäu:  
-
s neáu x toàn taïi  
-
S neáu X khoâng toàn taïi.  
(bit s : set uid hoaëc set gid khi chaïy file)  
Coät 2 : soá lieân keát (link number)  
Coät 3 : teân ngöôøi sôû höõu file (owner)  
Coät 4 : teân nhoùm sôû höõu file (group)  
Coät 5 : kích thöôùc file.  
Coät 6,7,8 : ngaøy söûa ñoåi gaàn nhaát  
Coät 9 : teân file.  
Caùc file ñaëc bieät (Special files):  
$ll  
/dev  
crw-------  
crw-rw-rw-  
brw-r-----  
.
1
2
3
lp  
bin  
8.97 May  
3,2 Apr  
6
3
3
1988 lp1  
09:08 null  
08:54 pd300  
root sys  
root sys  
0,96 Apr  
4,012 May  
1,17 Mar  
.
crw-rw-rw-  
.
.
4
2
root sys  
6
2
1988 rflop  
07:57 tty11  
crw--w--w-  
root other  
Trong ñoù:  
Coät 1: Kyù töï ñaàu tieân laø c hoaëc b coù nghóa laø file ñöôïc ñoïc hoaëc ghi theo töøng  
kyù töï (c) hoaëc ghi theo töøng khoái (b).  
Coät 5: Bieåu dieãn majo vaø minor cuûa thieát bò (major: loaïi thieát bò, minor: ñòa chæ  
cuûa thieát bò)  
Caùc file thö muïc (directory files):  
$ll  
/users  
drwxr-xr-x  
2
user1 stagiair  
240  
Mar 31  
10:16 user1  
15  
drwxr-xr-x  
drwxr-xr-x  
drwxr-xr-x  
2
2
2
user2 stagiair  
user3 stagiair  
user4 stagiair  
32  
24  
32  
Mar 31  
Mar 31  
Mar 31  
11:16 user1  
10:16 user1  
11:16 user1  
trong ñoù:  
Coät 1: Kyù töï ñaàu tieân d coù nghóa laø file thö muïc.  
Coät 2: Soá cacù thö muïc con  
3.3.3 Thay ñoåi quyeàn thaâm nhaäp file:  
Leänh chmod cho pheùp thay ñoåi quyeàn thaâm nhaäp caùc file vaø thö muïc. Coù theå chaïy leänh  
theo 2 caùch:  
-
cho thoâng soá tuyeät ñoái:  
chmod  
mode teân_file  
trong ñoù thoâng soá mode laø moät soá cô soá 8 (octal)  
r w x  
1 1 1  
r - x  
1 0 1  
5
754  
r - -  
1 0 0  
4
7
$chmod  
teân_file  
-
duøng caùc kyù hieäu töôïng tröng:  
chmod who [operation]  
trong ñoù:  
who  
[right]  
filename  
:
u
g
o
a
coù nghóa  
user  
group  
other  
all  
operation:  
right:  
+
-
=
theâm quyeàn  
ùt quyeàn  
gaùn giaù trò khaùc  
r
reading  
w
x
s
writing  
execution  
ñaët suid hoaëc guid  
Thí duï:  
$chmod  
g-w, o = r  
toto  
3.3.4 Ñaët quyeàn thaâm nhaäp ngaàm ñònh:  
Caùc quyenà thaâm nhapä ñöôïc ganù baèng maët naï quyeàn thamâ nhaäp cuûa töøng ngöôøi söû duïng.  
Leänh umask cho pheùp ta ñaët maët naï naøy. Cuù phaùp cuûa leänh nhö sau:  
umask nnn  
trong ñoù: nnn laø soá buø 7 cuûa giaù trò caùc quyeàn thaâm nhaäp.  
Thí duï:  
$umask  
177  
16  
$>  
$ll  
titi  
titi  
-rw-------  
$umask  
$>toto  
1
333  
user1 other 0  
user1 other 0  
Mar 11  
Mar 11  
10:11 titi  
$ll  
toto  
-r--r--r--  
1
20:11 toto  
3.3.5 Thay ñoåi ngöôøi hoaëc nhoùm sôû höõu file:  
Leänh chown cho pheùp thay ñoåi ngöôøi sôû höõu.  
Leänh chgrp cho pheùp thay ñoåi nhoùm sôû höõu.  
$echo Hello >file1  
$chmod 700 file1  
$ls -l file1  
-rwx------  
$cat file1  
Hello  
1
user1 stagiair  
6
Apr  
5
14:06 file1  
$chgrp animator file1  
$ls -l file1  
-rwx------  
$chown user2 file1  
$ls -l file1  
1
user1 animator  
6
6
Apr  
Apr  
5
5
14:06 file1  
14:06 file1  
-rwx------  
1
user2 animator  
$cat file1  
cat: cannot open file1  
Baøi taäp:  
1. Haõy taïo chöông trình sau trong thö muïc tieáp nhaän:  
-
chöông trình hello:  
$cat  
>
hello  
print Hello”  
print How are you ?”  
^D  
-
chöông trình reply:  
$cat  
>
reply  
print Hello”  
print “Fine. And you ?”  
^D  
2. Xem quyenà thaâm nhapä vaøo caùc file treân:  
ll -R  
3. Chaïy 2 chöông trình treân.  
17  
Ñaët quyeàn chaïy ñöôïc (executable) cho 2 files treân.  
Chaïy laïi 2 chöông trình treân.  
$hello  
$chmod +x hello  
$hello  
4. Boû caùc quyeàn thamâ nhaäp tôiù hello vaø reply cuûa nhöõng ngöôøi cuøng nhoùm (group)  
vaø cuûa nhöõng ngöôøi khaùc (other)  
chmod go = teân file  
Coù theå duøng leänh chmod theo caùch khacù ñöôïc khoâng ? Haõy thöû vôùi caû caùc file  
khaùc (g-rwx, o-rwx, 700 )  
5. Thay ñoåi quyeàn thaâm nhaäp sao cho nhöõng ngöôøi cuøng nhoùm coù khaû nanê g ñoïc vaø  
chaïy caùc file hello vaø reply  
6. Haõy thöû thay ñoåi ngöôøi hoaëc nhoùm sôû höuõ cuûa moät file:  
chown userY file  
Khi ñoù file seõ thuoäc sôû höõu cuûa ngöôøi khaùc. Coù theå xoaù ñöôïc khoâng ?  
7. Haõy laøm theo höôùng daãn sau:  
cat  
>
rm  
echo Hello  
^D  
ñeå taïo file rm, sau ñoù söûa quyeàn thaâm nhaäp ñeå file coù theå chaïy ñöôïc:  
chmod +x rm  
thöû chaïy file rm ñeå xoaù moät file naøo ñoù ñang toàn taïi:  
rm file  
Ñieàu gì seõ xaûy ra?  
KHOÂNG BAO GIÔØ ÑÖÔÏC ÑAËT TEÂN FILE TRUØNG VÔÙI TEÂN LEÄNH HEÄ THOÅNG.  
(CHUÙ YÙ: test cuõng laø moät leänh cuûa heä thoáng)  
18  
Baøi 4: Sao cheùp, chuyeån, lieân keát vaø tìm kieám file.  
Noäi dung: cacù thao taùc, cacù leänh thöônø g duøng vôùi file  
4.1 Sao cheùp file  
Leänh cp (copy) cho pheùp ta sao cheùp moät hoacë nhieàu file:  
-
-
-
sao cheùp moät file:  
$cp file_nguoàn  
sao cheùp nhieàu file vaøo moät thö muïc:  
$cp file1 file2thö_muïc  
sao taát caû caùc file vaøo motä thö muïc:  
file_ñích  
$cp  
*
thö_muïc  
Thí duï:  
$pwd  
/users/user2  
$ls  
total  
-l  
2
drwxrwxr-x  
drwxrwxr-x  
2
2
user2 stagiair  
user2 stagiair  
32  
96  
Apr  
Apr  
5
5
16:31 copie  
16:31 source  
$cd  
source  
$ls  
total  
-l  
3
-rw-rw-r-- 1 user2 stagiair  
-rw-rw-r-- 1 user2 stagiair  
-rw-rw-r-- 1 user2 stagiair  
16  
17  
18  
Apr  
Apr  
Apr  
5
5
5
16:25 original1  
16:26 original2  
16:27 original3  
$ls  
total  
-l  
0
../copie  
$cp  
original1  
../copie/original1.copie  
$ls  
total  
-l  
1
../copie  
-rw-rw-r-- 1 user2 stagiair 16  
Apr  
5
16:25 original1.copie  
$cp ../copie  
*
19  
$cd  
../copie  
$ls  
total  
-l  
4
-rw-rw-r-- 1 user2 stagiair 16  
-rw-rw-r-- 1 user2 stagiair 16  
-rw-rw-r-- 1 user2 stagiair 17  
-rw-rw-r-- 1 user2 stagiair 18  
Apr  
Apr  
Apr  
Apr  
5
5
5
5
16:25 original1  
16:25 original1.copie  
16:26 original2  
16:27 original3  
4.2 Chuyeån vaø ñoåi teân file:  
Leänh mv cho pheùp chuyeån vaø ñoåi teân file:  
-
chuyeån moät file:  
$mv file_nguoàn  
chuyeån nhieàu file:  
$mv file1 file2  
$mv thö_muïc  
chuyeån thö muïc:  
$mv thö_muïc1  
(caùc thö muïc phaûi coù cuøng thö muïc con)  
file_ñích  
-
thö_muïc  
*
-
thö_muïc2  
Thí duï:  
$pwd  
/users/user2/source  
$ls  
total  
-l  
3
-rw-rw-r-- 1 user2 stagiair  
-rw-rw-r-- 1 user2 stagiair  
-rw-rw-r-- 1 user2 stagiair  
16  
17  
18  
Apr  
Apr  
Apr  
5
5
5
16:25 original1  
16:26 original2  
16:27 original3  
$mv original1  
original1.bis  
$ls  
total  
-l  
3
-rw-rw-r-- 1 user2 stagiair  
-rw-rw-r-- 1 user2 stagiair  
-rw-rw-r-- 1 user2 stagiair  
16  
17  
18  
Apr  
Apr  
Apr  
5
5
5
16:25 original1.bis  
16:26 original2  
16:27 original3  
$cd  
..  
20  
Tải về để xem bản đầy đủ
pdf 64 trang baolam 09/05/2022 4800
Bạn đang xem 20 trang mẫu của tài liệu "Giáo trình UNIX", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdfgiao_trinh_unix.pdf