You are on page 1of 39

1

H IU HNH LINUX
(H thng tp tin & thit b)
Phm Nguyn Khang, Thanh Ngh
Email: pnkhang,dtnghi@cit.ctu.edu.vn

Ni dung
2

H thng tp tin
Thit b ngoi vi
Tr gip
Cc lnh thao tc trn file v th mc

H thng tp tin
3

Cu trc cy
ng dn
Cc h thng tp tin trn linux
H thng tp tin EXT2
Quyn truy cp

H thng tp tin
4

Cu trc cy
Nt: th mc (directory, folder)
L: tp tin (file)
im bt u: gc (root), k hiu /

H thng tp tin
5

ng dn (path)
Dng ch nh mt phn t (nt) trn cy th mc: th mc hoc tp
tin
ng dn tuyt i: bt u t gc (/) i qua cc nt trung gian v sau
cng n phn t quan tm (s dng du / phn cch cc nt trn
ng dn)
V d: /home/pnkhang/cours/linux/chuong1.ppt

ng dn tng ti: bt u t th mc hin hnh i n phn t quan


tm (c th i ngc ln th mc cha)
V d: gi s th mc hin hnh l /home/pnkhang, ta c th s dng
ng dn tng i: cours/linux/chuong1.ppt

Ch : / c 2 ngha
ng u ng dn tuyt i: gc, hay th mc gc
Xut hin ch khc: phn cch cc th mc

H thng tp tin
6

Mt s th mc chun:
/bin, /sbin: cha cc lnh cn thit cho h thng
/dev: tp tin thit b hoc cc file c bit
/etc: cha cc file cu hnh ca Linux
/lib: kernel modules, th vin chia s cho cc lnh nm trong /bin, /sbin
/mnt, /media: (mount point) dng nh x cc phn vng a
/proc: nhng thng s ca kernel
/boot: Linux kernel, system map cho bc 2 ca bootloader
/home: th mc ngi dng
/root: th mc ca root (admin, ngi qun tr)
/tmp: th mc tm
/usr: ti nguyn (tnh, chia s) cho ngi dng
/usr/local, /opt: phn mm, th vin chia s
/var: d liu thay i, th mc spool (my in), tp tin nht k (logs), th mc chia s
v khng chia s

Cc kiu h thng tp tin


7

ext2 (Linux native)


ext3 = ext2 + nht k
Khi phc nhanh h thng file khi c s c

ext4:
K tha t ext3, ra i t phin bn 2.6.28 ca nhn Linux
(25/12/2008 )
Kch thc file ti a ln n 16TB, kch thc a ti a n
1 EB (exabytes, 1018B)

swap: h thng file dng lm vng m cho b nh


chnh

Cng c to h thng file


8

Cng c to h thng file: mkfs, mke2fs


C php: mkfs -t <kiu h thng file> /dev/<tn file thit
b>
V d: mkfs -t ext2 /dev/hda1

C php: mke2fs /dev/<tn file thit b>


V d: mke2fs /dev/hda1 (mkfs -t ext2 /dev/hda1)

Ch :
c th s dng c lnh, ta phi m mt terminal v
g lnh tng ng (xem phn hng dn ci t)

Tnh nht qun ca h thng file


9

H thng file b li
Do cp in, tt my bt bnh thng khng s dng
shutdown

Kim tra v khi phc li tnh nht qun ca


h thng file
S dng: fsck -t <kiu h thng file> /dev/<tn file
thit b>
V d: fsck t ext2 /dev/hda1

Cc kiu h thng tp tin


10

H thng file ext2 (Linux native)


Chia thnh Blocks c kch thc 1KB (2KB, 4KB hoc 8KB ty h thng) v
nhm li thnh block group
Super Block: cha thng tin v kch thc 1 block, cc inodes rng, thi im
mount va qua, etc.

H thng Ext2
11
File system

File Size Limit

File system Size Limit

ext2 with 1 KB blocksize

16448 MB (~ 16 GB)

2048 GB (= 2 TB)

ext2 with 2 KB blocksize

256 GB

8192 GB (= 8 TB)

ext2 with 4 KB blocksize

2048 GB (= 2 TB)

16384 GB (= 16 TB)

ext2 with 8 KB blocksize

65568 GB (~ 64 TB)

32768 GB (= 32 TB)

H thng Ext2
12

H thng file ext2 qun l 3 loi phn t


Th mc
Tp tin bnh thng
Chui tun t bytes

Tp tin c bit
Thit b ngoi vi v cc cng c giao tip

Tt c u c qun l bng inode


C php, lnh,quyn truy cp u c qun l ging nhau

Inode
13

Inode
Khi c bn
Mi file hay th mc c m t
bng mt v ch mt inode.

Cc inodes ca mi Block
Group c lu trong bng
inode cng vi s s
dng inode (inode bitmap,
cho bit inode s dng,
inode no cha)
Hnh bn m t cu trc ca
mt inode

Inode
14

Mode
Cho bit inode ny biu din g: tp tin, th mc, lin kt mm, thit b khi, thit
b k t hoc thit b FIFO
Quyn truy cp

Owner Information

Ngi dng v nhm ngi dng ca file hay th mc ny

Size
Kch thc ca tp tin (tnh bng bytes),

Timestamps
Lu tr thng tin v thi gian ca inode: thi gian to ra, ln cui cng thay i,

Datablocks
Cc con tr tr n cc khi d liu m inode ny m t
12 con tr u tin tr n cc khi vt l cha d liu tht s
3 con tr k tip mi con tr n mt khi gin tip bc 1, bc 2 v bc 3.
Mi khi gin tip cha B/4 con tr

Inode
15

Ch :
inode c th m t cc tp tin thit b. y khng phi
l cc tp tin tht s m l cc th bi chng trnh
thng qua n truy cp cc thit b.
Tt c cc tp tin trong /dev cho php chng trnh truy
xut cc thit b ca Linux. V d chng trnh mount
c mt tham s l mt tp tin thit b m t thit b ta
cn nh x.

Th mc
16

Danh mc cc tp tin v th mc
con
To ra bng lnh mkdir <tn
th mc>
C th xem nh th mc l mt
file c bit cha danh sch cc
mc (record)
Mi th mc cha t nht 2 mc:
Bn thn th mc ny
.
Th mc cha
..
Cc mc cn li (nu c) cha cc tp
tin v th mc con ca th mc ny

Mi mc ca th mc c cu trc
nh hnh bn

inode 1568

147 .
83 ..
1568 example
Th mc
Ni dung ca
file example

Lin kt (link)
17

Lin kt cng
ng dn truy cp n mt tp tin
To mt lin kt

S dng lnh ln <file> <tn lin kt>


Thm mt mc vo th mc

Mc ch: to ra mt tn cc b
(hoc b dnh) ngn cho mt mt tp
tin
Xa mt tp tin = xa mt lin kt =
gim s lin kt ca inode biu din
tp tin tht s, khi s tham chiu = 0
xa tht s file ny

Ch : khng th to lin kt
cng cho mt th mc

inode 1568

147 .
83 ..
1568 example
Th mc D1

59 .
5 ..
1568 link
Th mc D2

Lin kt (link)
18

Lin kt mm (symbolic link)

file c ni dung l tn ca mt file khc


hoc mt th mc
To lin kt mm
ln s file <tn lin kt>

Xa mt lin kt mm khng nh
hng g n file m n tr n
Xa file hoc th mc m mt lin kt
mm tr n s lm cho lin kt khng
cn hp l na

147 .
83 ..
1568 example
inode 1568
Th mc D1

inode 2529

Cha ng dn n file example, vd:


/home/D1/example

59 .
5 ..
2529 link
Th mc D2

Thit b ngoi vi
19

Thit b ngoi vi
xem nh mt file
cha trong th mc /dev
c cc quyn truy cp ging nh file v th mc

Tuy nhin, x l bn trong s khc nhau


Hm ca h thng file i vi cc file bnh thng
Trnh iu khin thit b (drivers) i vi cc thit b

Thit b hot ng hai ch


Khi (block)
K t (character)

Ch khi
20

Cc thit b hot ng ch khi c 4 tnh cht:


Khi: n v thng tin (d liu) c kch thc c nh (512B, 1KB, 4K, )
Truy xut ngu nhin (random access) vo mt khi n i bt k
S dng vng nh m cp nhn (kernel level)
C th to mt h thng file trn thit b ny
Cc thit b hot ng ch khi c xem nh mt di cc khi t 0
n N 1.
V d: a, bng t,

Truy xut thng tin t cc thit b gm 2 bc:


c:

Chuyn khi d liu t thit b sang b nh h thng (caching)


Sao chp khi d liu t b nh h thng sang b nh chng trnh

Ghi:
Tng t nh c, i khi km theo cc c ch ng b ha

Ch k t
21

Cc thit khng hot ng ch khi


Trao i bt k lng thng tin no
Truy xut tun t
Khng s dng b nh m
Khng c h thng file trn thit b

V d:
Thit b u cui (terminal), my in, socket,

Truy xut gn nh truy xut file bnh thng


Hai ch c:
Theo dng (line): d liu s c truyn i khi mt k t c bit c
pht ra (v d; k t xung dng)
Cho php iu khin lung d liu, ngt

Tng k t (raw): c tng k t mt

Trnh iu khin thit b


22

Trnh iu khin thit b (driver)


iu khin mt loi thit b no
Tp hp cc hm nh ngha sn (open, read, write, close,
)

Cc hm c nhm li trong 2 bng


bdevsw (ch khi)
cdevsw (ch k t)

Inode ca mt thit b c 2 mc
S hiu chnh (major number): ch s trong bng bdevsw
hoc cdevsw
S hiu ph (minor number): m t mt n v c th no
ca loi thit b

Thit b gi lp
23

Pseudo devices
c qun l nh mt thit b nhng khng gn kt vi
mt thit b vt l no

Bao gm:
Thit b o:
Terminal: ca s, ni kt mng
Phn vng a

/dev/null: thng rc, ghi g vo y cng mt ht


/dev/tty: terminal gn kt vi chng trnh
/dev/mem: nh b nh ca tin trnh

Tr gip
24

Ti liu hng dn s dng c


chia thanh 8 phn
Chng trnh thc thi hoc lnh ca
Shell
Gi h thng (hm do nhn cung cp)
Gi th vin (hm do cc th vin
chng trnh cung cp)
Cc files c bit (trong /dev)
nh dng file v cc quy c
Games
Khc
Lnh qun tr h thng (dnh ring cho
root)
Hm ca nhn

S dng lnh
Man [section] <lnh>
V d: man ls
Hoc: man 1 ls

thot khi trang hng dn


g phm q

Tr gip
25

Mi trang hng dn (kt qu ca lnh man) gm nhiu phn


NAME
SYNOPSIS
DESCRIPTION
EXAMPLES
OPTIONS
FILES
VERSION
EXIT STATUS
RETURN VALUE
NOTES
BUGS
AUTHORS
SEE ALSO

Tn lnh
C php
M t
V d minh ha
Cc ty chn
Cc files c lin quan
Phin bn
Trng thi kt thc
Kt qu tr v ca lnh
Ghi ch
Li
Tc gi
Xem thm

Tr gip
26

Lnh man ch hin th tr gip khi ta g ng tn lnh


Nu khng nh chnh xc tn lnh ta c th s dng
lnh tm kim thng tin
apropos <t kha>
V d:
apropos editor
apropos lock

Cc lnh trn file v th mc


27

ls: lit k th mc
cd: i th mc hin hnh
pwd: in ng dn ca th mc hin hnh
mkdir: to th mc
rm: xa file, th mc
cp: copy file hoc th mc
mv: i tn hoc di chuyn file/th mc
ln: to lin kt (cng v mm)
touch: to v thay i thuc tnh file
find: tm kim file/th mc
which, whereis v locate: tm file trong c s d liu

Cc lnh trn file v th mc


28

Lnh lit k th mc: ls


C php: ls [options] <Path>
Options
-i: lit k inode
-h: in ra kch thc d c
-l: lit k mi mc trn mt dng
-n: lit k c UID v GID
-p: hin th c cc k hiu m t (/, =, @)
-R: recursive lit k c nhng th mc con
-S: sp xp kt qu theo kch thc
-t (-c): sp xp kt qu theo thi gian cp nht
-u: hin th thi gian ca ln truy cp sau cng

Xem thm cc options khc: man ls

Cc lnh trn file v th mc


29

Lnh chuyn i th mc hin hnh (cd)


C php: cd <thmc>
V d:
cd /home/pnkhang/toto
cd ../dtnghi/toto

Lnh in ra v tr th mc hin hnh (pwd)


V d:
pwd

Cc lnh trn file v th mc


30

Nhm lnh to/xa th mc: mkdir, rm


C php ca lnh to th mc: mkdir <DirName>
V d: mkdir data

C php ca lnh xo th mc: rm -r <DirName>


V d: rm -r data

Lnh xo file: rm <FileName>


V d: rm data/toto

Option ca lnh rm:


-f: xa khng cn hi, v d: rm -f data/toto
-r, hoc -R: xa quy (dng xa th mc)

Cc lnh trn file v th mc


31

Lnh sao chp


C php: cp [OPTIONS] <ngun1> <ngun 2> <ch>
V d: cp data/toto data/tata

Options:
-r, hoc -R: quy (dng copy c th mc)
-d: b qua cc lin kt khi s dng R
-f: p buc phi lm (force)
-I: hin du nhc khi ghi
-p: duy tr thuc tnh file

V d:
cp log.txt log.dat
cp log.txt /home/user1
cp -f log.txt /home/user1

Cc lnh trn file v th mc


32

Di chuyn hoc i tn
C php: mv [options] <OldName> <NewName>
mv [options] <Source> <Dest>
mv [options] <Source> <DestDir>

Options
-f: p buc phi lm (force)
-I: hin du nhc khi ghi

V d:
mv log.txt log.dat
mv log.txt /home/user1
mv f log.txt /home/user1

Cc lnh trn file v th mc


33

Lnh to lin kt: ln


C php: ln [option] <Source> <DestSym>
Option -s: lin kt mm (soft link), c th <Source> v
<DestSym> nm trn h thng file khc nhau
Mc nh l lin kt cng, <Source> v <DestSym> phi
nm trn cng h thng file

V d:
ln -s lilo.conf lilo.sym

S tham kho v kch thc ca 2 kiu lin kt l


khc nhau

Cc lnh trn file v th mc


34

Lnh to v thay i file: touch


C php: touch {options} <Files>
Options
-a: thay i thi gian truy cp file
-m: thay i thi gian cp nht file
-r: ly thuc tnh thi gian t file khc

V d:
touch test1.txt test2.txt testk.txt
touch mytest.txt r /etc/fstab

Cc lnh trn file v th mc


35

Nhm lnh tm kim: find, which, whereis v locate


C php: find <Th mc> <Criteria> [-exec <CMD> {} \;]
V d: find /usr -name pgsql
Tm file pgsql bt u t th mc /usr

V d: find /home -user 501


Tm tt c cc file ca ch s hu l ngi dng c s hiu UID l 501 bt u t
th mc /home

V d: find /home/user1 name log.txt exec rm {} \;


Tm tt c cc file tn log.txt bt u t th mc /home/user1 v xa cc file ny

Lnh xargs: chuyn hng ra ca chtrnh1 n hng vo


chtrnh2
V d: find /home/user1 name log.txt | xargs rm
C chc nng tng t lnh trn

Cc lnh trn file v th mc


36

Nhm lnh: which, whereis v locate


C php: Command <FileName>
Lnh which: tm tr v ng dn y ca file t cc ng dn nh
ngha trong bin PATH
V d: which xcalc

Lnh whereis: tm tr v ng dn y ca cc file t cc ng dn


nh ngha trong bin PATH
V d: whereis xcalc

Lnh locate: tm tr v ng dn y ca cc file c cha chui


FileName t cc ng dn nh ngha trong c s d liu /var/lib/slocate

Dng lnh updatedb cp nht c s d liu /var/lib/slocate


V d: locate xcalc

K t i din
37

?: thay th bt k k t no
*: 0 hay nhiu k t
[abc]: a hoc b hoc c
[^abc]: bt k k t no tr a, b, c
[a-z]: a, b, c, ..., z
[0-5]: 0, 1, 2, 3, 4, 5
[a-c3-8]: a, b, c, 3, 4, 5, 6, 7, 8
~: th mc ngi dng
~pnkhang: th mc ca ngi dng pnkhang

38

To th mc tn data trong th mc user


mkdir data

i n th mc data
cd data

To th mc du_lieu trong user


mkdir ../du_lieu

To link cng n file hello.txt c tn h_link t trong


th mc data
ln ../hello.txt h_link

To mt link mm n file hello.txt tn s_link t trong


th mc du_lieu
ln -s ../hello.txt ../du_lieu/s_link

39

To th mc tn data trong th mc th
mkdir data

Lit k ni dung th mc user


ls ../user

i n th mc data
cd data
To th mc tn du_lieu trong th mc th
mkdir ../du_lieu
To mt file tn hello.txt trong th mc th
touch ../hello.txt
To mt lin kt cng n file hello.txt c tn h_link

You might also like