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 giöõ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
Möù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 vô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 vôù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ù
töï.
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 nhöõ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ä hôï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ä löï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
bôù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 file2… thö_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 đủ
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:
- giao_trinh_unix.pdf