UNIX (giáo trình)
Làm quen với hệ điều hành Unix
Copyright(c) by Galaxy CD – http://www.galaxycd.com
Muïc luïc:
PHAÀN 1: UNIX CÔ SÔÛ
Baøi 1. Khôûi ñoäng UNIX
1.1 Baét ñaàu phieân laøm vieäc
1.2 Keát thuùc phieân laøm vieäc
1.3 Caùch duøng leänh cuûa UNIX
Baøi 2. Laøm vieäc vôùi file.
2.1 Toå chöùc file
2.2 Di chuyeån giöõa caùc thö muïc
2.3 Caùc thao taùc cô sôû vôùi caùc thö muïc
2.4 Caùc thao taùc cô sôû vôùi file thöôøng
Baøi 3. Baûo veä caùc file cuûa ngöôøi söû duïng
3.1 Moâ taû ngöôøi söû duïng
3.2 Moâ taû nhoùm ngöôøi söû duïng
3.3 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 Sao cheùp file
4.2 Chuyeån vaø ñoåi teân file
4.3 Taïo lieân keát vôùi file
4.4 Tìm kieám file
Baøi 5. Thoâng tin giöõa nhöõng ngöôøi söû duïng
5.1 Thoâng tin baèng leänh mail
5.2 Thoâng tin baèng leänh write
Baøi 6. Söû duïng chöông trình soaïn thaûo vi
6.1 Khôûi ñoäng vi
6.2 Soaïn thaûo vaên baûn
Baøi 7. Shell script
7.1 Quaûn lyù tieán trình
7.2 Laäp caùch thöùc cho shell script
7.3 Caùc shell UNIX
Baøi 8. Ñoåi höôùng (redirection)
8.1 Vaøo/ra chuan
8.2 Chuyeån ñoåi döõ lieäu giöõa caùc tieán trình
1
Copyright(c) by Galaxy CD – http://www.galaxycd.com
8.3 Ñoåi höôùng keùp ñaàu ra chuaån
Baøi 9. Cô cheá thay theá cuûa Shell
9.1 Truyeàn tham soá
9.2 Caùc bieán Shell
9.3 Caùc kí töï ñaëc bieät
9.4 Laáy keát quaû cuûa moät leänh
9.5 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 Caùc lôøi goïi heä thoáng
1.2 Chuû thöïc vaø chuû thöïc quyeàn cuûa tieán trình
1.3 Ñònh nghóa caùc tham bieán chöông trình
1.4 Moät soá ñònh nghóa khaùc
Baøi 2. Quaûn lyù tieán trình
2.1 Nhaän bieát tieán trình
2.2 Nhaän bieát chuû tieán trình
2.3 Thay ñoåi chuû vaø nhoùm chuû
2.4 Taïo moät tieán trình
2.5 Caùc haøm goïi moät tieán trình thay theá
2.6 Ñoàng boä tieán trình
2.7 Möùc öu tieân cuûa tieán trình
2.8 Nhoùm caùc tieán trình
2
Copyright(c) by Galaxy CD – http://www.galaxycd.com
Baøi 3. Quaûn lyù file
3.1 Môû moät file
3.2 Taïo moät file
3.3 Ñoùng file
3.4 Ñaët maët naï caùc quyeàn thaâm nhaäp file
3.5 Ñoïc file
3.6 Ghi file
3.7 Di chuyeån con troû file
3.8 Caáu truùc moät inode
3.9 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
Copyright(c) by Galaxy CD – http://www.galaxycd.com
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ä thoáng 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 nhaäp vaøo teân (user name) khi keát thuùc baèng phím Enter. Neáu ngöôøi söû duïng coù
duøng maät khaåu (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 khaåu 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 khaåu ñaûm baûo 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 khaåu phaûi daøi ít nhaát 6 kyù töï, ít nhaát phaûi coù 2 kyù töï alphabet, phaûi
khaùc vôùi teân (user name) ít nhaát 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 cuûa 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
Copyright(c) by Galaxy CD – http://www.galaxycd.com
$wc -ld /etc/passwd /etc/group
32 1139 etc/passwd
15 337 etc/group
47 1476 total
- Caùc thoâng baùo loãi khi goïi leänh:
Neáu leänh khoâng toàn taïi hoaëc khoâng tìm thaáy:
$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 töôïng tröng cho vieäc goõ phím Enter.
1. Haõy baét ñaàu phieân laøm vieäc vôùi teân (username) cuûa baïn.
2. Ñôïi khi daáu nhaéc cuûa heä thoáng xuaát hieän (daáu $), goõ vaøo
date
3. Gaùn maät khaåu cho teân:
passwd
4. Lieät keâ teân nhöõng ngöôøi ñang söû duïng heä
who
5. Xem ai laø ngöôøi ñang laøm vieäc taïi terminal:
who am I
whoami
6. Xem teân terminal maø ta ñang laøm vieäc treân ñoù:
tty
7. Hieån thò caùc thoâng baùo leân maøn hình:
echo “Xin chao”
echo “Chao”
echo “Dau nhac ket thuc boi $ xuat hien sau Chao”
echo “Hom nay la ngay:”;date
echo “Hai lenh tren 1 dong cach nhau boi dau ;”
8. Duøng leänh cal (lòch):
cal 01 1900
cal 01
cal 1900
cal 1900 | more
9. Moät vaøi leänh khaùc:
logname
5
Copyright(c) by Galaxy CD – http://www.galaxycd.com
uname
who | wc
10. Keát thuùc phieân laøm vieäc:
Ctrl D (giöõ phím Ctrl vaø goõ D) hoaëc exit
6
Copyright(c) by Galaxy CD – http://www.galaxycd.com
Baøi 2. Laøm vieäc vôùi file
Noäi dung: Caùc khaùi nieäm cô baûn 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 hoaëc binary).
-File thö muïc (directory file): chöùa danh saùch caùc teâncoù 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ø moät 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 daïng caây (tree). Thö muïc goác (root) cuûa caây
ñöôïc bieåu dieãn baèng kyù töï /.
Caáu truùc caây 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
/
unix bin etc dev users usr
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 ñaây:
7
Copyright(c) by Galaxy CD – http://www.galaxycd.com
cd chuyeån ñeán thö muïc caàn ñ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 teân 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ö muïc tieáp nhaän khi ta ñang ôû baát 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 noäi 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 khaùc, chaúng haïn 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å phaân bieät caùc kieåu file baèng caùch xem kyù töï ñaàu cuûa doøng
hieån thò, neáu laø:
d : file thö muïc.
- : file bình thöôøng
c hoaëc b : file ñaëc bieät
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 index
$cd index
8
Copyright(c) by Galaxy CD – http://www.galaxycd.com
$ls -a
.
..
Leänh mkdir taïo moät thö muïc vôùi 2 ñaàu 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 index
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
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 cuûa 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û.
pg hoaëc more xem noäi dung caùc file lôùn theo trang.
$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
$
9
Copyright(c) by Galaxy CD – http://www.galaxycd.com
- Kyù töï ‘>’ ñoåi höôùng, thay vì ñeán ñaàu ra chuaån (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õ 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 stderr
2>
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 duøng trong cuù phaùp cuûa leänh Shell.
+ file coù teân baét ñaàu baèng daáu 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 /bin/c*
$ll /bin/c?
2.4.4 Xoaù moät file thöôøng:
Leänh : rm
Coù theå duøng 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 ñaùp. Tuyø choïn naøy raát nguy hieåm, chæ nhöõng ngöôøi söû duïng
coù kinh nghieäm vaø caån thaän môùi neân duøng.
$rm text_file
$rm -i text_file
10
Copyright(c) by Galaxy CD – http://www.galaxycd.com
Baøi taäp:
1. Xem teân thö muïc ñang laøm vieäc:
pwd
2. Xem noäi dung cuûa thö muïc ñang laøm vieäc:
ls –l
3. Taïo file vaên baûn tintin:
cat > tintin
blabla
BLABLA
end
CTRL + D (giöõ phím Ctrl vaø goõ phím D)
4. Xem noäi dung file tintin:
cat tintin
5. Xem noäi dung caùc thö muïc /bin /usr/bin /dev
ll /bin hoaëc
ls -C /bin hoaëc ll /bin | pg
6. Taïo 2 thö muïc d1 vaø d2
mkdir d1 d2
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
10. Xem noäi dung thö muïc ñang laøm vieäc:
ls -l hoaëc ll
ls
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
Copyright(c) by Galaxy CD – http://www.galaxycd.com
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 khaåu (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 nhaän (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 UID GID HOMEDIR SHELL
root 0 3 /
daemon 1 12 /
bin 2 2 /bin
sys 3 3 /usr
adm 4 4 /usr/adm
date 18 1 / /bin/date
tty 19 1 / /bin/tty
sync 20 1 / /bin/sync
securadm 11 11 /etc/secure/bin
lp 71 2 /usr/spool/lp
user1 3000 300 /users/user1 /bin/ksh
12
Copyright(c) by Galaxy CD – http://www.galaxycd.com
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ø taäp 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 caùc thoâng tin sau:
- teân cuûa nhoùm
- [maät khaåu]
- soá cuûa nhoùm (gid : group identify number)
- [danh saùch nhöõng ngöôøi khaùch (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 caùc nhoùm ngöôøi söû duïng.
- theâm nhoùm môùi (chæ ngöôøi quaûn trò heä thoáng môùi coù quyeàn).
$cat /etc/group
public :: 100 : invite
animator :: 200 :
stagiaires :: 300 :
$/etc/defgrp
GRP GID USERS
root 0 root
other 1 date
sync
shut
bin 2 root
bin
daemon
lp
sys 3 root
bin
sys
adm
adm 4 root
adm
daemon
uucp 5 uucp
daemon
13
Copyright(c) by Galaxy CD – http://www.galaxycd.com
nuucp
mail 6 root
…
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 taïo 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 r w x r w x
suid sgid
owner group other
Trong ñoù:
r quyeàn ñoïc
w quyeàn ghi
x quyeàn chaïy (executing)
suid set user-id
sgid set group-id
Ñoái vôùi thö muïc:
r quyeàn ñoïc noäi dung thö muïc
w quyeàn taïo vaø xoaù file trong thö muïc
x quyeàn qua laïi (crossing) thö muïc
Ghi chuù: caùc quyeàn vôùi thö muïc chæ coù hieäu 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 naøy lieät keâ danh saùch caùc file vaø caùc thuoäc tính cuûa chuùng trong moät thö muïc,
qua ñoù ta coù theå phaùt hieän loaïi 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
-rwxrwxr-x 1 bin bin 16336 Mar 8 1988 cat
-rwxrwxr-x 3 root bin 16124 Mar 8 1988 cp
-rwxrwxr-x 1 bin bin 18760 Mar 8 1988 cat
-rwxrwxr-x 1 bin bin 13320 Mar 8 1988 echo
-rwxrwxr-x 2 bin bin 33896 Mar 8 1988 ed
-rwxrwxr-x 1 bin bin 28928 Mar 8 1988 file
-rwxrwxr-x 3 root bin 16124 Mar 8 1988 ln
14
Copyright(c) by Galaxy CD – http://www.galaxycd.com
-rwxrwxr-x 8 bin bin 60152 Mar 8 1988 ls
-rwxr-sr-x 1 bin mail 63264 April 2 1988 mail
-rwxrwxr-x 1 bin bin 15276 Mar 8 1988 mesg
-rwxr-xr-x 1 root bin 13180 Mar 8 1988 mkdir
…
Trong ñoù:
Coät 1 : loaïi file vaø quyeàn thaâm nhaäp (-rwxrwxr-x, rwxr-xr-x…)
Daáu tröø ‘-‘ ôû ñaàu 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------- 1 lp bin 8.97 May 6 1988 lp1
crw-rw-rw- 2 root sys 3,2 Apr 3 09:08 null
brw-r----- 3 root sys 0,96 Apr 3 08:54 pd300
.
.
crw-rw-rw- 4 root sys 4,012 May 6 1988 rflop
.
.
crw--w--w- 2 root other 1,17 Mar 2 07:57 tty11
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
Copyright(c) by Galaxy CD – http://www.galaxycd.com
drwxr-xr-x 2 user2 stagiair 32 Mar 31 11:16 user1
drwxr-xr-x 2 user3 stagiair 24 Mar 31 10:16 user1
drwxr-xr-x 2 user4 stagiair 32 Mar 31 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á caùc 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 r - x r - -
1 1 1 1 0 1 1 0 0
7 5 4
$chmod 754 teân_file
- duøng caùc kyù hieäu töôïng tröng:
chmod who [operation] [right] filename
trong ñoù:
who : u coù nghóa user
g group
o other
a all
operation:
+ theâm quyeàn
- bôùt quyeàn
= gaùn giaù trò khaùc
right:
r reading
w writing
x execution
s ñ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 quyeàn thaâm nhaäp ñöôïc gaùn baèng maët naï quyeàn thaâm 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
Copyright(c) by Galaxy CD – http://www.galaxycd.com
$> titi
$ll titi
-rw------- 1 user1 other 0 Mar 11 10:11 titi
$umask 333
$>toto
$ll toto
-r--r--r-- 1 user1 other 0 Mar 11 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------ 1 user1 stagiair 6 Apr 5 14:06 file1
$cat file1
Hello
$chgrp animator file1
$ls -l file1
-rwx------ 1 user1 animator 6 Apr 5 14:06 file1
$chown user2 file1
$ls -l file1
-rwx------ 1 user2 animator 6 Apr 5 14:06 file1
$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 quyeàn thaâm nhaäp vaøo caùc file treân:
ll -R
3. Chaïy 2 chöông trình treân.
17
Copyright(c) by Galaxy CD – http://www.galaxycd.com
Ñ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 thaâm 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 khaùc ñöôï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û naêng ñ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
Copyright(c) by Galaxy CD – http://www.galaxycd.com
Baøi 4: Sao cheùp, chuyeån, lieân keát vaø tìm kieám file.
Noäi dung: caùc thao taùc, caùc leänh thöôøng duøng vôùi file
4.1 Sao cheùp file
Leänh cp (copy) cho pheùp ta sao cheùp moät hoaëc nhieàu file:
- sao cheùp moät file:
$cp file_nguoàn file_ñích
- 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 moät thö muïc:
$cp * thö_muïc
Thí duï:
$pwd
/users/user2
$ls -l
total 2
drwxrwxr-x 2 user2 stagiair 32 Apr 5 16:31 copie
drwxrwxr-x 2 user2 stagiair 96 Apr 5 16:31 source
$cd source
$ls -l
total 3
-rw-rw-r-- 1 user2 stagiair 16 Apr 5 16:25 original1
-rw-rw-r-- 1 user2 stagiair 17 Apr 5 16:26 original2
-rw-rw-r-- 1 user2 stagiair 18 Apr 5 16:27 original3
$ls -l ../copie
total 0
$cp original1 ../copie/original1.copie
$ls -l ../copie
total 1
-rw-rw-r-- 1 user2 stagiair 16 Apr 5 16:25 original1.copie
$cp * ../copie
19
Copyright(c) by Galaxy CD – http://www.galaxycd.com
$cd ../copie
$ls -l
total 4
-rw-rw-r-- 1 user2 stagiair 16 Apr 5 16:25 original1
-rw-rw-r-- 1 user2 stagiair 16 Apr 5 16:25 original1.copie
-rw-rw-r-- 1 user2 stagiair 17 Apr 5 16:26 original2
-rw-rw-r-- 1 user2 stagiair 18 Apr 5 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 file_ñích
- chuyeån nhieàu file:
$mv file1 file2 … thö_muïc
$mv * thö_muïc
- chuyeån thö muïc:
$mv thö_muïc1 thö_muïc2
(caùc thö muïc phaûi coù cuøng thö muïc con)
Thí duï:
$pwd
/users/user2/source
$ls -l
total 3
-rw-rw-r-- 1 user2 stagiair 16 Apr 5 16:25 original1
-rw-rw-r-- 1 user2 stagiair 17 Apr 5 16:26 original2
-rw-rw-r-- 1 user2 stagiair 18 Apr 5 16:27 original3
$mv original1 original1.bis
$ls -l
total 3
-rw-rw-r-- 1 user2 stagiair 16 Apr 5 16:25 original1.bis
-rw-rw-r-- 1 user2 stagiair 17 Apr 5 16:26 original2
-rw-rw-r-- 1 user2 stagiair 18 Apr 5 16:27 original3
$cd ..
20