You are on page 1of 161

http://vietjack.com/unix/index.

jsp

Copyright vietjack.com

Bi hng dn v Unix/Linux
Unix l mt h iu hnh my tnh m c kh nng thc hin nhiu hot ng bi nhiu ngi
trong cng mt thi gian.
Unix c ra i nm 1969 bi Ken Thompson v Dennis Ritche ti phng th nghim AT&T Bell
Labs. Phn hng dn ny cung cp cc kin thc v Unix.
Lot bi hng dn ca chng ti da trn ngun ti liu ca: Tutorialspoint

i vi c gi
Phn hng dn ny c chun b cho ngi mi bt u hc v Unix, t gip h hiu c
cc kin thc c bn v cc lnh, Shell Scripts v cc tin ch khc ca Unix.

iu kin tin
Chng ti gi s rng bn c mt cht kin thc v H iu hnh v cc chc nng ca n. Mt
kin thc c bn v cc khi nim my tnh s cng gip bn trong vic hiu cc bi thc hnh a
dng trong phn hng dn ny.

Tng quan v Unix/Linux


Unix/Linux l g?
H iu hnh Unix l tp hp cc chng trnh m thc hin vai tr nh mt ng link gia my
tnh v ngi s dng.
Cc chng trnh my tnh phn cp cc ngun h thng v phi hp tt c cc phn bn trong
ca my tnh c gi l H iu hnh hoc kernel (ht nhn).
Nhng ngi s dng giao tip vi kernel thng qua mt chng trnh m c bit nh l shell.
Shell l mt b bin dch dng lnh, n bin dch cc lnh c nhp bi ngi s dng v
chuyn i chng thnh mt ngn ng m kernel c th hiu.

Unix/Linux c pht trin ln u tin bi mt nhm cc nhn vin AT&T ti phng th


nghim Bell Labs, gm c Ken Thompson, Dennis Ritchie, Douglas Mclloy v Joe
Ossanna.

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 1

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

C rt nhiu phin bn Unix khc nhau trn th trng. Solaris Unix, AIX, HP Unix v BSD
l mt s v d. Linux cng l mt phin bn ca Unix m l min ph.

Nhiu ngi c th s dng mt my tnh Unix cng mt lc; v th Unix c gi l h


thng a ngi dng.

Mt ngi s dng c th chy nhiu chng trnh cng mt lc; v th Unix c gi l a


nhim.

Cu trc Unix/Linux:
S di l cu trc ca mt h thng Unix:

Khi nim chnh m c thng nht trong tt c cc phin bn Unix gm 4 c s sau:

Kernel: Kernel l tri tim ca h iu hnh. N tng tc vi phn cng v hu ht nhim


v nh qun l b nh, qun l file, ln chng trnh nhim v.

Shell: Shell l mt tin ch m x l cc yu cu ca bn. Khi bn g mt lnh ti terminal


ca bn, shell phin dch lnh v gi chng trnh m bn mun. Shell s dng c php

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 2

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

chun cho tt c cc lnh. C Shell, Bourne Shell v Korn Shell l nhng shell c bit n
nhiu nht v c sn trong hu ht cc phin bn Unix.

Cc lnh v cc tin ch: C rt nhiu lnh v tin ch m bn c th s dng trong cng


vic hng ngy. cp, mv, cat v grep l mt s v d ca lnh v tin ch. C trn 250
lnh tiu chun cng vi mt s lnh khc c cung cp bi phn mm th 3. Tt c cc
lnh ny i cng vi cc ty chn (chc nng) ca n.

Files v th mc: Tt c d liu trong Unix c t chc trong cc file. Tt c cc file


c t chc vo trong cc th mc. Nhng th mc ny c t chc trong mt cu trc
dng cy c gi nh l h thng file.

Khi ng h thng trong Unix/Linux


Nu bn c mt my tnh m ci t h iu hnh Unix trn , th sau n gin bn ch cn
bt khi ng h thng.
Ngay sau khi bn bt h thng, h thng bt u khi ng v cui cng n nhc bn ng nhp
vo trong h thng, m hnh ng ng nhp ny c s dng cho cc hot ng thng ngy.

ng nhp Unix/Linux
Khi bn ln u kt ni vi mt h thng Unix, bn thng nhn thy mt dng nhc nh sau:
login:

ng nhp h thng Unix/Linux:


1. Chun b sn sng ID s dng v mt khu. Lin h vi ngi qun l nu bn cha c n.
2. Nhp ID ti dng nhc ng nhp, sau nhn Enter. ID ca bn l phn bit ch hoathng, v th chc chn rng bn nhp chnh xc nh ngi qun l ch dn.
3. Nhp mt khu vo mt khu v nhn Enter. Mt khu ca bn cng phn bit kiu ch.
4. Nu bn cung cp ID v mt khu chnh xc th sau bn s c cho php vo h
thng. Bn c qua thng tin v cc thng bo m hin trn mn hnh nh hnh di y:
login : amrood
amrood's password:
Last login: Sun Jun 14 09:32:32 2009 from 62.61.164.73

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 3

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

Bn s c cung cp vi mt lnh nhc (i khi c gi l lnh $) m ti bn s nhp tt c


cc lnh ca bn. V d kim tra lch, bn cn nhp lnh cal nh sau:
$ cal
June 2009
Su Mo Tu We Th Fr Sa

9 10 11 12 13

14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30

Thay i mt khu trong Unix/Linux


Tt c cc h iu hnh Unix u yu cu mt khu m bo cho cc d liu v file ca bn v
cng m bo an ton cho chnh h thng chng li s thm nhp ca hacker hoc cracker. Di
y l cc bc thay i mt khu:
1. bt u, son passwd ti dng nhc lnh nh hnh di.
2. Nhp mt khu c
3. Nhp mt khu mi m bn mun i. Lun lun gi cho mt khu cng phc tp cng tt
m khng ai c th on c n. Nhng chc chn rng bn nh n.
4. Bn cn xc nhn li mt khu bng cch nhp n thm ln na
$ passwd
Changing password for amrood
(current) Unix password:******
New UNIX password:*******
Retype new UNIX password:*******
passwd: all authentication tokens updated

successfully

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 4

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

Ghi ch: Ti t du * vo v tr ch cho bn a im bn cn nhp mt khu c v mi. Ngoi


ra ti h thng ca bn, n s khng hin th bt c k t no khi bn g mt khu vo.

Lit k th mc v file trong Unix/Linux:


Tt c d liu trong Unix c t chc vo trong cc file. Tt c cc file c t chc vo trong
cc th mc. Nhng th mc ny c t chc vo trong mt cu trc cy c gi l h thng
file.
Bn c th s dng lnh ls lit k tt c cc file hoc th mc c trong mt th mc. Di y
l v d v cch s dng lnh ls vi ty chn -l.
$ ls -l
total 19621
drwxrwxr-x

2 amrood amrood

4096 Dec 25 09:59 uml

-rw-rw-r--

1 amrood amrood

5341 Dec 25 08:38 uml.jpg

drwxr-xr-x

2 amrood amrood

4096 Feb 15

2006 univ

drwxr-xr-x

2 root

root

4096 Dec

2007 urlspedia

-rw-r--r--

1 root

root

276480 Dec

2007 urlspedia.tar

drwxr-xr-x

8 root

root

4096 Nov 25

2007 usr

-rwxr-xr-x

1 root

root

3192 Nov 25

2007 webthumb.php

-rw-rw-r--

1 amrood amrood

20480 Nov 25

2007 webthumb.tar

-rw-rw-r--

1 amrood amrood

5654 Aug

2007 yourfile.mid

-rw-rw-r--

1 amrood amrood

166255 Aug

2007 yourfile.swf

y phn nhp bt u vi d biu din cc th mc. V d nh uml, univ v urlspedia l cc


th mc v phn cn li l file.

Bn l ai trong Unix/Linux?
Trong khi bn ng nhp vo h thng, bn c th sn lng bit : Who am I?
Cch n gin nht l tm kim bn l ai l nhp lnh whoami :

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 5

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

$ whoami
amrood

Hy th n trn h thng ca mnh. Lnh ny lit k cc tn ti khon lin kt vi s ng nhp


hin ti. Bn c th th lnh whoami cng nhn thng tin v chnh mnh.

Ai ng nhp trong Unix/Linux?


i khi bn c th mun bit ai ng nhp vo my tnh trong cng thi gian.
C 3 lnh c sn gip bn nhn c thng tin ny, da trn c s bn mun bit bao nhiu v
nhng ngi s dng khc: users, who v w.
$ users
amrood bablu qadir

$ who
amrood ttyp0 Oct 8 14:10 (limbo)
bablu

ttyp2 Oct 4 09:08 (calliope)

qadir

ttyp4 Oct 8 12:09 (dent)

Bn hy th lnh w trn h thng ca bn kim tra kt qu u ra. Lnh ny s lit k mt s


thng tin lin quan ti ngi ng nhp vo trong h thng.

Thot khi chng trnh trong Unix/Linux


Khi bn kt thc phin lm vic ca mnh, bn cn thot khi chng trnh m bo rng
khng ai c th truy cp vo cc file ca bn khi h gi trang bn.

thot khi chng trnh:


1. Bn ch cn g lnh logout ti dng lnh nhc, v h thng s v sinh mi th v ngt kt
ni.

ng h thng trong Unix/Linux


http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 6

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

Cch ph hp nht ng h thng Unix l thng qua s dng mt trong cc lnh sau:

Lnh

Miu t

halt

ng h thng ngay lp tc.


ng h thng s dng script c xc nh trc ng b v v sinh

init 0

h thng trc khi shutdown.


Khi ng li h thng bng cch ng h thng ngay lp tc v sau

init 6

bt u li nh lc trc khi ng

poweroff

ng h thng ch poweroff

reboot

Khi ng li h thng

shutdown

ng h thng

Bn phi l ngi s dng chnh c th c quyn ng h thng, nhng i khi ngi i din
cng c th thc hin iu ny.

Qun l File trong Unix


Tt c d liu trong Unix c t chc trong cc file. Tt c cc file c t chc trong cc th
mc. Nhng th mc ny c t chc trong mt cu trc cy m c gi l h thng file.
Khi bn lm vic vi Unix, bng cch ny hay cch khc, bn dnh hu ht thi gian lm vic vi
cc file. Chng ny s hng dn bn cch to v di chuyn cc file, sao chp v t li tn cho
chng, to lin kt cho chng.
Trong Unix, c 3 kiu file c bn:
1. Ordinary File: File thng, l mt file trn h thng m lu tr d liu, vn bn, hoc ch
dn chng trnh. Trong chng ny, bn s c hng dn cch lm vic vi nhng
file ny.

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 7

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

2. Directory: Th mc, lu gi c cc file thng v c bit. Tng t vi cc th mc


trong Windown, Mac OS, th mc trong Unix l cc folder.
3. Special File: File c bit, mt s file c bit cung cp quyn truy cp vo phn cng nh
cc cng, CD-ROM, modem v cc u c Ethernet. Mt s file c bit khc l tng
t nh cc phm tt v khin bn c th truy cp vo mt file ring no bng cch s
dng cc tn khc nhau.

Lit k cc file trong Unix/Linux


lit k cc file v cc th mc lu gi trong th mc hin ti, bn s dng lnh sau:
$ls

Di y l v d v kt qu ca lnh trn.
$ls

bin

hosts

lib

res.03

ch07

hw1

pub

test_results

ch07.bak

hw2

res.01

users

docs

hw3

res.02

work

Lnh ls h tr ty chn -l gip bn nhn c nhiu thng tin hn v cc file c lit k.


$ls -l
total 1962188

drwxrwxr-x

2 amrood amrood

4096 Dec 25 09:59 uml

-rw-rw-r--

1 amrood amrood

5341 Dec 25 08:38 uml.jpg

drwxr-xr-x

2 amrood amrood

4096 Feb 15

2006 univ

drwxr-xr-x

2 root

root

4096 Dec

2007 urlspedia

-rw-r--r--

1 root

root

276480 Dec

2007 urlspedia.tar

drwxr-xr-x

8 root

root

drwxr-xr-x

-rwxr-xr-x

1 root

-rw-rw-r--

1 amrood amrood

200

300
root

4096 Nov 25

2007 usr

4096 Nov 25

2007 webthumb-1.01

3192 Nov 25

2007 webthumb.php

20480 Nov 25

2007 webthumb.tar

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 8

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

-rw-rw-r--

1 amrood amrood

5654 Aug

2007 yourfile.mid

-rw-rw-r--

1 amrood amrood

166255 Aug

2007 yourfile.swf

drwxr-xr-x 11 amrood amrood

4096 May 29

2007 zlib-1.2.3

Di y l cc thng tin v tt c cc ct c lit k:


1. Ct u tin: biu din kiu file v s cho php c cung cp cho file. phn bn di l
miu t ca cc kiu file.
2. Ct 2: biu din lng b nh m file hoc th mc chim dng.
3. Ct 3: biu din s s hu ca file. l ngi s dng Unix to ra file ny.
4. Ct 4: biu din nhm s hu. Mi ngi s dng Unix c mt nhm lin kt.
5. Ct 5: biu din dung lng bng byte ca file.
6. Ct 6: biu din ngy thng m file c to hay chnh sa ln cui.
7. Ct 7: biu din tn file hoc th mc.
Trong v d v ls-l, mi dng file bt u vi mt k t d, -, hoc l. Nhng k t ny ch kiu ca file
c lit k.

Tin t

Miu t
File thng chng hn nh mt file vn bn ASCII, nh phn hoc ng link
cng.
Nhm file c bit. nhm file thit b u vo/u ra v d nh mt a cng
vt l.
File k t c bit. File thit b u vo/u ra th v d nh mt a cng vt
l.
File th mc m cha mt danh sch cc file v th mc khc.

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 9

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

File lin kt k t. Kt ni trn bt k mt file thng no.

Pipe c t tn. Mt c cu giao tip lin tin trnh.

Socket c s dng cho giao tip lin tin trnh.

Cc siu k t trong Unix/Linux


Cc siu k t c ngha quan trng trong Unix. V d * v ? l siu k t. Chng ta s dng*
kt ni 0 hoc nhiu k t, s dng ? kt ni vi mt k t n.
V d:
$ls ch*.doc

Hin th tt c cc file m tn bt u vi cp k t ch v kt thc vi .doc.


ch01-1.doc

ch010.doc

ch02.doc

ch03-2.doc

ch04-1.doc

ch040.doc

ch05.doc

ch06-2.doc

ch01-2.doc ch02-1.doc c

Di y k t * thc hin kt ni vi bt k k t no. Nu bn mun hin th tt c cc file kt


thc vi .doc, th khi bn s dng lnh sau:
$ls *.doc

Cc file n trong Unix/Linux


Mt file khng nhn thy l mt file m cc k t u tin ca n l du chm (.). Cc chng trnh
Unix (bao gm shell) s dng hu ht nhng file ny gi cc thng tin cu hnh.
Mt vi v d v cc file n bao gm:

.profile: l script khi to Bourne shell (sh)

.kshrc: l script khi to Korn shell (ksh)

.cshrc: l script khi to C shell (csh)

.rhosts: l file nh hnh shell iu khin t xa.

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 10

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

lit k cc file nhn khng nhn thy (b n), xc nh ty chn -a cho lnh ls:
$ ls -a

.profile

docs

lib

test_results

..

.rhosts

hosts

pub

users

.emacs

bin

hw1

res.01

work

.exrc

ch07

hw2

res.02

.kshrc

ch07.bak

hw3

res.03

Du chm n (.): i din cho th mc hin ti

Du chm kp (..): i din cho th mc gc.

To cc file trong Unix/Linux


Bn c th s dng vi editor to ra cc file thng trn h thng Unix. Bn ch cn n gin s
dng lnh sau:
$ vi filename

Lnh trn s m mt file vi tn cung cp. Bn s cn nhn phm i tin vo ch chnh


sa. Mt khi bn trong ch chnh sa, bn c th bt u vit ni dung vo file nh hnh di:
This is unix file....I created it for the first time.....
I'm going to save this content in this file.

Khi thc hin xong, bn lm theo cc bc sau:

Nhn phm esc thot khi ch ny

Nhn t hp phm Shift+ZZ thot khi file hon ton.

By gi bn s c mt file c to vi filename trong th mc hin ti.


$ vi filename
$

Chnh sa cc file trong Unix/Linux


http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 11

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

Bn c th chnh sa cc file hin ti bng cch s dng b son vi. Chng ta s i vo chi tit
tng phn trong mt chng hng dn c th. Nhng rt gn y, bn c th m mt file ang
tn ti nh sau:
$ vi filename

Mt khi file ny c m, bn c th tin vo ch chnh sa bng cch nhn phm i v sau


bn c th chnh sa ni dung nh bn thch. Nu bn mun di chuyn ti ni ny hoc ni khc
bn trong file, khi u tin bn cn thot khi ch chnh sa bng cch nhn phm esc, sau
bn c th s dng cc phm sau di chuyn bn trong mt file:

Phm l di chuyn sang pha bn phi;

Phm h di chuyn sang bn tri;

Phm k di chuyn ln pha trn trong mt file;

Phm j di chuyn xung pha di trong mt file

Do bng cch s dng cc phm trn, bn c th t con tr bt c v tr no bn mun chnh


sa. Mt khi bn xc nh v tr, sau bn c th s dng phm i tin vo ch chnh sa.
Sau khi bn thc hin xong, nhn esc v cui cng nhn t hp phmShift+ZZ thot khi file
hon ton.

Hin th ni dung ca mt file trong Unix/Linux


Bn c th s dng lnh cat quan st ni dung ca mt file. Di y l v d n gin quan
st ni dung ca mt file c to.
$ cat filename
This is unix file....I created it for the first time.....
I'm going to save this content in this file.
$

Bn c th hin th s lng dng bng cch s dng ty chn -b cng vi lnh cat nh sau:
$ cat -b filename
1

This is unix file....I created it for the first time.....

I'm going to save this content in this file.

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 12

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

Tnh ton s lng t trong mt file trong Unix/Linux


Bn c th s dng lnh wc nhn c s dng, s lng t v s lng cc k t c trong
mt file. Di y l mt v d n gin quan st thng tin v file c to trn.
$ wc filename
2

19 103 filename

Di y l chi tit trong 4 ct:


1. Ct 1: i din cho tng s dng trong file ;
2. Ct 2: i din cho tng s t trong file ;
3. Ct 3: i din cho tng dung lng byte m file chim. y l kch thc thc ca file.
4. Ct 4: i din cho tn file.
Bn c th ng thi nhn c thng tin v nhiu file trong cng mt lc bng c php n gin
sau:
$ wc filename1 filename2 filename3

Sao chp cc file trong Unix/Linux


to mt bn sao ca mt file, bn s dng lnh cp. C php n gin ca lnh ny l:
$ cp source_file destination_file

Di y l v d to mt bn sao ca filename ang tn ti:


$ cp filename copyfile
$

By gi bn s tm thy mt copyfile trong th mc hin ti ca bn. File ny s ging hon


ton filename.

t li tn file
http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 13

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

thay i tn ca mt file, bn s dng lnh mv. C php n gin ca lnh ny l:


$ mv old_file new_file

Di y l mt v d m t li filename ang tn ti thnh newfile:


$ mv filename newfile
$

Lnh mv s di chuyn tt c file ang tn ti vo trong file mi. V th trong tnh hung ny bn s
ch tm thy mt newfile duy nht trong th mc hin ti.

Xa file
xa mt file ang tn ti, bn s dng lnh rm. C php n gin ca n l:
$ rm filename

Ch : C th rt nguy him khi xa mt file bi v n cha thng tin hu ch. V th bn cn phi


cn thn trong khi thc hin lnh ny. N ngh ty chn -i song song vi lnh rm.
Di y l v d m g b hon ton filename ang tn ti:
$ rm filename
$

Bn c th g b nhiu file ti cng mt lp nh sau:


$ rm filename1 filename2 filename3
$

Cc Unix Stream tiu chun trong Unix/Linux


Cc chi tit trong chng trnh Unix c 3 stream (hoc file) c m cho n khi n bt u:
1. stdin: N nh l mt u vo tiu chun (standard input) v phn t m t file lin kt l 0.
N cng c biu din nh l STDIN. Chng trnh Unix s c u vo mc nh t
STDIN.

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 14

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

2. stdout: N nh l mt u ra tiu chun (standard output) v phn t m t file lin kt l 1.


N cng c biu din nh l STDOUT. Chng trnh Unix s vit u ra mc nh ti
STDOUT.
3. stderr: N nh l mt li tiu chun (standard error) v phn t m t file lin kt l 2. N
cng c biu din nh l STDERR. Chng trnh Unix s vit ton b thng tin li ti
STDERR.

Qun l th mc trong Unix


Mt th mc l mt file m nhim v duy nht ca n l lu gi tn v cc thng tin lin quan v
file. Tt c cc file, c th l file thng, c bit hoc th mc c gi trong cc th mc.
UNIX s dng mt cu trc th bc t chc cc file v th mc. Cu trc ny thng c
nhc n nh l mt cy th mc. Cy ny c mt im root node, mt k t gch cho (/) v tt
c cc th mc c cha di n.

Th mc gc (Home) trong Unix/Linux


Th mc m bn thy ngay khi bn ln u tin ng nhp vo l th mc chnh.
Bn s lm nhiu vic trong th mc chnh v cc th mc ph ni bn to ra t chc cc file
ca bn.
Bn c th tin vo th mc chnh bt c khi no bng cch s dng lnh sau:
$cd ~
$

Ti y biu tng ~ ch th mc chnh. Nu bn mun vo th mc chnh ca bt c ngi s


dng no khc, bn s dng lnh sau:
$cd ~username
$

vo th mc cui cng, bn c th s dng lnh sau:


$cd $

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 15

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

Pathname tuyt i/quan h trong Unix/Linux


Cc th mc c sp xp trong mt h thng cp bc vi gc (/) trn cng. V tr ca bt k file
no trong h thng ny c miu t bi pathname ca n.
Cc phn t ca pathname l tch ring nhau bi mt du (/). Mt pathname l gi tr tuyt i nu
n c miu t trong mi lin quan vi gc, v th pathname tuyt i thng bt u vi mt
du (/).
Di y l v d v cc filename tuyt i.
/etc/passwd
/users/sjones/chem/notes
/dev/rdsk/Os3

Mt pathname c th trong mi quan h ti th mc lm vic hin ti ca bn. Cc pathname


tng i khng bao gi bt u vi (/). Lin quan n th mc chnh amrood, c mt s
pathname trng ging nh sau:
chem/notes
personal/res

xc nh ni bn ang trong h thng phn cp file vo bt k lc no, bn nhp lnhpwd


in th mc lm vic hin ti.
$pwd
/user0/home/amrood

Lit k cc th mc trong Unix/Linux


lit k danh sch cc th mc, bn c th s dng c php sau:
$ls dirname

Di y l v d lit k tt c file c cha trong th mc /usr/local.


$ls /usr/local

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 16

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

X11

bin

gimp

jikes

sbin

ace

doc

include

lib

share

atalk

etc

info

man

ami

To cc th mc trong Unix/Linux
Cc th mc c to ra bng lnh sau:
$mkdir dirname

Ti y, th mc l pathname tuyt i hoc quan h m bn mun to ra. V d, lnh sau:


$mkdir mydir
$

To th mc mkdir trong th mc hin ti. Di y l v d:


$mkdir /tmp/test-dir
$

Lnh ny to th mc test-dir trong th mc /tmp. Lnh mkdir khng to u ra nu n thnh cng


to th mc yu cu.
Nu bn cung cp nhiu hn mt th mc trn dng lnh th mkdir to ra mi trong cc th mc.
V d:
$mkdir docs pub
$

N to ra th mc docs v pub di th mc hin ti.

To cc th mc cha (parent) trong Unix/Linux


i khi bn mun to mt th mc, th mc chnh hoc cc th mc ca n khng tn ti. Trong
trng hp ny, lnh mkdir a ra mt thng bo li nh sau:
$mkdir /tmp/amrood/test
mkdir: Failed to make directory "/tmp/amrood/test";
No such file or directory
$

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 17

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

Trong trng hp trn, bn c th ch nh ty chn -p ti lnh mkdir. N to tt c cc th mc


cn thit cho bn. V d:
$mkdir -p /tmp/amrood/test
$

Lnh trn to tt c cc th mc chnh cn thit.

D b cc th mc trong Unix/Linux
Cc th mc c th c xa bng cch s dng lnh rmdir nh sau:
$rmdir dirname
$

Ghi ch: d b mt th mc, bn nn chc chn n khng cn cha d liu quan trng no,
ngha l khng c bt k file hoc th mc ph bn trong th mc ny.
Bn c th d b nhiu th mc ti cng thi im nh sau:
$rmdir dirname1 dirname2 dirname3
$

Lnh trn d b cc th mc dirname1, dirname2 v dirname3 nu chng l trng. Lnh rmdir


khng to ra u ra nu n thc hin thnh cng.

Thay i cc th mc trong Unix/Linux


Bn c th s dng lnh cd to nhiu thay i ti th mc home. Bn c th s dng n
thay i bt k th mc no bng cch xc nh path tuyt i v quan h hp l. C php nh
sau:
$cd dirname
$

Ti y, dirname l tn ca th mc m bn mun to cc thay i. V d, lnh:


$cd /usr/local/bin
$

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 18

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

To thay i ti th mc /usr/local/bin. T th mc ny bn c th cd th mc /usr/home/amrood


bng cch s dng path quan h sau:
$cd ../../home/amrood
$

t li tn cc th mc trong Unix/Linux
Lnh mv c th c s dng t li tn mt th mc. C php nh sau:
$mv olddir newdir
$

Bn c th t li tn mt th mc mydir thnh yourdir nh sau:


$mv mydir yourdir
$

Cc th mc .(dot) v .. (dot dot) trong Unix/Linux


Tn file l .(dot) biu din th mc lm vic hin ti; v tn file l .. (dot dot) biu din th mc
lp trn th mc lm vic hin ti, thng l th mc chnh.
Nu chng ta nhp lnh ny ch mt danh snh cc th mc lm vic hin ti v s dng ty
chn -a lit k tt c cc file v ty chn -l cung cp kiu danh sch di, iu ny s cho ra kt
qu sau:
$ls -la
drwxrwxr-x

teacher

drwxr-xr-x

60

root

----------

teacher

-rwxr-xr-x

teacher

class

2048

Jul 16 17.56 .

1536

Jul 13 14:18 ..

class

4210

May 1 08:27 .profile

class

1948

May 12 13:42 memo

Quyn hn/Ch truy cp file trong Unix


Quyn s hu file l mt thnh phn quan trng ca Unix m cung cp phng thc bo mt
lu gi file. Mi file trong Unix c cc thuc tnh sau th hin quyn hn truy cp ti n (File
Permission):

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 19

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

Quyn hn truy cp ca ngi s hu: Quyn hn truy cp ca ch nhn quyt nh


nhng hnh ng g m ngi s hu c th thc hin trn file.

Quyn hn truy cp nhm: Quyn hn truy cp ca nhm quyt nh hnh ng g m


ngi s dng, thnh vin ca nhm m s hu file, c th thc hin trn file.

Cc quyn hn truy cp khc: Ch hnh ng no m tt c nhng ngi s dng c th


thc hin trn file.

Cc du hiu v quyn hn truy cp


Trong khi s dng lnh ls -l, n hin th cc thng tin a dng lin quan n quyn hn truy cp
trn file nh sau:
$ls -l /home/amrood
-rwxr-xr--

1 amrood

users 1024

Nov 2 00:10

myfile

drwxr-xr--- 1 amrood

users 1024

Nov 2 00:10

mydir

Ti y, ct u tin i din cho cc ch truy cp khc nhau, v d nh quyn hn truy cp lin


kt vi mt file hoc th mc.
Cc quyn hn truy cp c chia thnh ba nhm, m mi v tr trong nhm biu hin mt quyn
hn truy cp c th, theo th t: c (r), vit (w) v thc thi (x):

Cc k t u tin t 1 n 3 (2-4 trong dy k c du -) i din quyn hn truy cp cho


ngi s hu file. V d -rwxr-xr-- biu din rng ngi s hu c cho php c (r), vit
(w), v chy chng trnh (x).

Nhm 3 k t tip theo t 5-7 i din cho quyn hn truy cp nhm ti nhng file s hu.
V d -rwxr-xr-- i din rng nhm c cho php c (r) v thc thi (x), nhng khng cho
php vit (w)

Nhm 3 k t cui cng t 8-10 i din quyn hn truy cp khc. V d -rwxr-xr--i din
rng ai trn th gii ch cho php c (r).

Ch truy cp vo file trong Unix/Linux


Quyn hn truy cp ca mt file l dng u tin ca s bo v trong h thng Unix. Cc khi xy
dng c bn trong quyn hn truy cp Unix l cc quyn hn truy cp c, vit v thc thi c
miu t di y:

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 20

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

1. c:
Cho php c ni dung ca file.

2. Vit:
Cho php chnh sa hoc g b ni dung ca file.

3. Thc thi:
Ngi s dng vi quyn hn truy cp thc thi c th chy mt file nh l mt chng trnh.

Ch truy cp vo th mc
Cc ch truy cp vo th mc c lit k v t chc trong cng mt cch nh trong bt k mt
file no. C mt vi im khc nhau m bn cn ch :

1. c:
Truy cp vo mt th mc vi ngha l ngi s dng c th c cc ni dung. Ngi s dng c
th xem tn cc file bn trong mt th mc.

2. Vit
Cho php ngi s dng c th thm hoc xa file ni dung ca th mc.

3. Thc thi:
Chy mt th mc khng thc s mang nhiu ngha, v th bn ch coi l giy php ngang
qua.
Mt ngi s dng phi c quyn truy cp thc thi ti th mc bin chy lnh ls hoc cd chng
hn.

Thay i cc quyn hn truy cp trong Unix/Linux


thay i quyn hn truy cp ca file hoc th mc, bn s dng lnh chmod (vit tt ca
change mode). C hai cch s dng chmod l: ch tng trng (Symbolic Mode) v ch
tuyt i (Absolute Mode).

S dng chmode trong ch tng trng


http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 21

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

Cch d nht cho ngi mi bt u chnh sa quyn hn truy cp file hoc th mc l s


dng ch tng trng. Vi ch ny bn c th thm, xa hoc xc nh tp hp cc cho
php m bn mun bng cch s dng cc ton t sau:

Ton t chmod

Miu t

Thm quyn hn truy cp c ch nh ti mt file hoc tp


G b quyn hn truy cp c ch nh t mt file hoc

th mc
Thit lp cc quyn hn truy cp c ch nh.

Di y l mt v d bng cch s dng lnh testfile. Chy ls -1 trn testfile ch rng quyn hn
truy cp ca file l nh sau:
$ls -l testfile
-rwxrwxr--

1 amrood

users 1024

Nov 2 00:10

testfile

Sau mi v d lnh chmod t bng trc c chy trn testfile, theo sau bi ls -l v th bn c
th quan st cc thay i ca quyn hn truy cp.
$chmod o+wx testfile
$ls -l testfile
-rwxrwxrwx

1 amrood

users 1024

Nov 2 00:10

testfile

users 1024

Nov 2 00:10

testfile

users 1024

Nov 2 00:10

testfile

$chmod u-x testfile


$ls -l testfile
-rw-rwxrwx

1 amrood

$chmod g=rx testfile


$ls -l testfile
-rw-r-xrwx

1 amrood

Ti y l cch bn c th kt ni nhng lnh ny trn mt dng n:


$chmod o+wx,u-x,g=rx testfile
$ls -l testfile

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 22

http://vietjack.com/unix/index.jsp
-rw-r-xrwx

1 amrood

users 1024

Nov 2 00:10

Copyright vietjack.com
testfile

S dng chmod vi quyn hn truy cp tuyt i trong


Unix/Linux
Cch th hai chnh sa quyn hn truy cp vi lnh chmod l s dng s xc nh cc
quyn hn truy cp cho file.
Mi quyn hn truy cp c n nh bng mt gi tr, nh trong bng di, v tng ca mi
quyn hn truy cp cung cp mt s cho tp hp thit lp .

i din cho quyn hn truy cp trong h c s 8

Tham chiu

Khng cho php

---

Cho php thc thi

--x

Cho php vit

-w-

Cho php thc thi v vit: 1 (thc thi) + 2 (vit) = 3

-wx

Cho php c

r--

Cho php c v thc thi: 4(c) + 1 (thc thi) = 5

r-x

Cho php c v vit: 4 (c) + 2 (vit) = 6

rw-

Cho php tt c: 4 (c) + 2 (vit) + 1 (thc thi) = 7

rwx

Ti y l mt v d s dng testfile. Chy ls -1 trn testfile ch rng cc quyn hn truy cp ca file


l nh sau:
$ls -l testfile
-rwxrwxr--

1 amrood

users 1024

Nov 2 00:10

testfile

Mi v d lnh chmod t bng trc c chy trn testfile, theo sau bi ls -l v th bn c th


quan st cc thay i ca quyn hn truy cp:

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 23

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

$ chmod 755 testfile


$ls -l testfile
-rwxr-xr-x

1 amrood

users 1024

Nov 2 00:10

testfile

users 1024

Nov 2 00:10

testfile

users 1024

Nov 2 00:10

testfile

$chmod 743 testfile


$ls -l testfile
-rwxr---wx

1 amrood

$chmod 043 testfile


$ls -l testfile
----r---wx

1 amrood

Thay i ngi s hu v nhm trong Unix/Linux


Trong khi to mt ti khon trn Unix, n gn mt ID ngi s hu v mt ID s hu nhm cho
mi ngi s dng. Tt c cc quyn hn truy cp cp trn l cng c gn da trn ngi
s hu v nhm.
Hai lnh c sn thay i s hu c nhn v s hu nhm ca file l:
1. chown: Lnh ny i din cho thay i s hu c nhn (change owner).
2. chgrp: Lnh ny i din cho thay i s hu nhm (change group).

Thay i quyn s hu trong Unix/Linux


Lnh chown thay i quyn s hu ca mt file. C php c bn l:
$ chown user filelist

Gi tr ca user c th l tn hoc ID ca ngi s dng trn h thng. V d:


V d:
$ chown amrood testfile
$

Thay i ngi s hu ca file cho ti ngi s hu amrood.


Ghi ch: Ngi s hu gc c quyn khng b hn ch thay i quyn s hu ca bt k file
no nhng ngi s hu thng thng ch c th thay i quyn s hu ca nhng file m h s
hu.

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 24

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

Thay i quyn s hu nhm trong Unix/Linux


Lnh chrgp thay i s hu nhm ca file. C php n gin l:
$ chgrp group filelist

Gi tr ca group c th l tn hoc ID ca nhm trn h thng. V d:


V d:
$ chgrp special testfile
$

Thay i s hu nhm chn ti nhm special.

Quyn hn truy cp SUID v SGID (thit lp ID c


nhn v nhm) trong Unix/Linux
Thng thng khi mt lnh c chy, n s phi chy cng vi cc c quyn c bit thc
hin nhim v ca n.
Nh mt v d, khi bn thay i mt khu vi lnh passwd, mt khu mi c gi trong tp
/etc/shadow.
Khi l mt ngi s dng thng, bn khng c c quyn truy cp c hoc vit ti file ny
do cc l do bo mt, nhng khi bn thay i mt khu, bn cn c quyn vit ti file ny. iu ny
c ngha l chng trnh passwd phi cung cp cho bn cc quyn thm bn c th vit
etc/shadow.
Cc quyn thm vo c cung cp ti chng trnh thng qua mt k thut c bit n
l Thit lp ID ngi s dng (Set User ID SUID bit) v Thit lp ID nhm (Set Group ID SGID
bit).
Khi bn chy mt chng trnh m c quyn hn truy cp SUID, bn s dng n thay i s
hu ca chng trnh . Cc chng trnh m khng thit lp SUID th ang chy vi quyn hn
truy cp ca ngi s dng m khi ng chng trnh.
iu ny l ng vi SGID. Cc chng trnh thng thng chy vi quyn hn truy cp nhm,
nhng thay vo , n ch thay i s hu nhm cho chng trnh ang chy ch khng thay i
cho chng trnh khc ca nhm.

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 25

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

Cc bit SUID bit v SGID bit s xut hin bng k t s nu quyn hn truy cp l c sn. SUID s
bit s c t trong cc permission bit, ni m ngi s hu thc thi s c thm quyn. V d,
lnh sau:
$ ls -l /usr/bin/passwd
-r-sr-xr-x

root

bin

19031 Feb 7 13:47

/usr/bin/passwd*

iu ny ch rng SUID bit c thit lp v lnh c s hu bi s hu gc. K t vit hoa S


trong v tr thc thi thay cho ch thng s ch rng bit ca thc thi khng c thit lp.
Nu sticky bit c cho php trn th mc, cc file ch c th c g b nu bn l mt trong
nhng ngi s dng sau:

Ngi s hu ca th mc sticky;

Ngi s hu ca cc file b g b;

Ngi s hu gc

thit lp cc SUID bit v SGID bit cho bt k th mc, bn th c php sau:


$ chmod ug+s dirname
$ ls -l
drwsr-sr-x 2 root root

4096 Jun 19 06:45 dirname

Ci t mi trng Unix/Linux
Mt khi nim Unix quan trng l environment, m c nh ngha bi cc bin mi trng. Mt
s c thit lp bi h thng, s khc c thit lp bi bn, bi shell hoc bt k chng trnh
m bn ti v.
Mt bin l mt chui k t m chng ta gn mt gi tr. Gi tr c ch nh c th l mt s, vn
bn, tn file, thit b hoc bt k kiu d liu khc.
V d, u tin chng ta thit lp mt bin TEST v sau chng ta truy cp gi tr ca n bng
cch s dng lnh echo.

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 26

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

$TEST="Unix Programming"
$echo $TEST
Unix Programming

Ghi ch rng cc bin mi trng c thit lp m khng s dng k hiu $ nhng trong khi truy
cp chng, chng ta s dng k hiu $ nh l mt tin t. Nhng bin ny gi gi tr ca chng
cho n khi chng ta thot khi shell.
Khi bn ng nhp vo h thng, Shell di ch khi to thit lp mi trng bin. iu
ny thng l tin trnh 2 bc m bao gm Shell c cc file sau:

/etc/profile

profile

Tin trnh nh sau:


1. Kim tra shell thy /etc/profile c tn ti hay khng..
2. Nu n tn ti, Shell c n. Nu khng th, file ny b b qua. Khng c thng bo li hin
th.
3. Shell kim tra file .profile c tn ti hay khng trong th mc chnh ca bn. Th mc chnh
l th mc m bt u khi bn ng nhp thnh cng vo h thng.
4. Nu n tn ti, Shell c n; nu khng th, Shell b qua. S khng c thng bo li c
hin th.
Ngay sau khi c hai file trn c c, Shell hin th mt dng nhc:
$

y l dng nhc m ti bn c th nhp lnh thc thi chng.


Ghi ch - Tin trnh khi to Shel c lit k chi tit y p dng cho tt c Shell kiuBourne,
nhng mt vi file c thm vo c s dng bi bash v ksh.

.profile File trong Unix/Linux:


File /etc/profile c duy tr bi ngi qun l h thng v cha ng thng tin khi to Shell
c yu cu bi tt c ngi s dng trn h thng.

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 27

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

File .profile l di quyn kim sot ca bn. Bn c th nhp thm thng tin Shell ty theo bn
mun ti file ny. Thng tin t nht m bn cn thit lp bao gm:

Kiu terminal m bn ang s dng

Danh sch cc th mc m trong t v tr cc lnh

Danh sch cc bin ca kiu terminal ca bn.

Bn c th kim tra .profile trong th mc chnh. M n bng cch s dng b son vi v kim tra
tt c cc bin thit lp cho mi trng ca bn.

Thit lp kiu terminal trong Unix/Linux


Thng th kiu terminal bn ang s dng l c nh hnh t ng bng chng
trnhlogin hoc getty. i khi, tin trnh nh hnh t ng ny d on kiu terminal ca bn
khng chnh xc.
Nu kiu terminal khng c thit lp chnh xc, kt qu ca lnh c th trng kh l, hoc bn
khng th tng tc vi Shell mt cch chnh xc.
m bo khng xy ra trng hp ny, hu ht ngi s dng thit lp kiu terminal ca h ti
dng mu s chung thp nht nh sau:
$TERM=vt100
$

Thit lp PATH trong Unix/Linux:


Khi bn g bt k lnh no trn dng nhc lnh, Shell phi xc nh v tr lnh trc khi n c th
c thc thi.
Bin PATH xc nh v tr trong Shell s tm kim cc lnh. Thng th n c thit lp nh
sau:
$PATH=/bin:/usr/bin
$

Ti y mi cng vo (entry) c thit lp ring r bi du hai chm : l cc th mc. Nu bn


yu cu Shell thc thi mt lnh v n khng th tm kim lnh trong bt k th mc c
cung cp bin PATH, mt thng tin tng t nh sau xut hin:

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 28

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

$hello
hello: not found
$

Cc bin PS1 v PS2 c bn lun trong mc k tip.

Cc bin PS1 v PS2 trong Unix/Linux


Cc k t m Shell hin th khi dng nhc lnh c gi trong bin PS1. Bn c th thay i bin
ny ti bt k ci g bn mun. Ngay sau khi bn thay i n, n s c s dng bi shell t thi
im .
V d, nu bn thng bo lnh:
$PS1='=>'
=>
=>
=>

Dng nhc c th tr thnh =>. thit lp gi tr ca PS1 n ch th mc lm vic, thng bo


lnh sau:
=>PS1="[\u@\h \w]\$"
[root@ip-72-167-112-17 /var/www/tutorialspoint/unix]$
[root@ip-72-167-112-17 /var/www/tutorialspoint/unix]$

Kt qu ca lnh ny l dng nhc lnh hin th tn s dng ca ngi dng, tn hostname, v th


mc lm vic.
C mt vi dy thot (escape) c s dng lm tham s gi tr cho PS1, v th c gng gii hn
chnh bn dng nhc khng ln t thng tin.

Dy escape

Miu t

\t

Thi gian hin ti, din t dng HH:MM:SS

\d

Ngy hin ti, din t dng Ngy trong tun Thng Ngy

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 29

http://vietjack.com/unix/index.jsp

\n

Dng mi

\s

Mi trng Shell hin ti

\W

Th mc lm vic

\w

ng Path y ca th mc lm vic

\u

Tn s hu hin ti ca ngi s dng

\h

Hostname ca thit b hin ti

\#

\$

Copyright vietjack.com

S lng lnh ca lnh hin ti. Tng mi khi c mt lnh mi c


nhp
Nu UID hiu qu l 0 ( l, nu bn c ng nhp nh l root),
kt thc dng nhc vi k t #; nu khng th, s dng $.

Bn c th to s thay i bi chnh bn mi khi bn ng nhp vo, hoc bn c th c thay i


c to mt cch t ng trong PS1 bng cch thm n ti file .profile.
Khi bn thng bo mt lnh m cha hon thin, Shell s hin th mt dng nhc lnh th hai v
i bn hon thin lnh v nhp li.
Dng nhc lnh mc nh th hai l k hiu ln hn >, nhng c th c thay i bng cch nh
ngha li bin PS2.
Di y l v d v cch s dng dng nhc lnh th hai:
$ echo "this is a
> test"
this is a
test
$

Tip theo l v d m nh ngha li PS2 vi mt dng nhc c ty chnh theo ban:

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 30

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

$ PS2="secondary prompt->"
$ echo "this is a
secondary prompt->test"
this is a
test
$

Cc bin mi trng trong Unix/Linux


Di y l mt danh sch cc b ca cc bin mi trng quan trng. Nhng bin ny s c
thit lp v truy cp nh cp phn trn.

Bin

DISPLAY

HOME

IFS

Miu t
Cha ng b nhn din cho s hin th m cc chng trnh X11 nn
s dng bi mc nh.
Ch dn th mc chnh ca ngi s dng hin ti: tham s mc nh
cho lnh cd c sn.
Ch dn Internal Field Separator m c s dng bi s phn tch t
ang tch sau s m rng.
LANG m rng Locale h thng mc nh; LC_ALL c th c s

LANG

dng vit ln (c quyn u tin cao hn) iu ny. V d, nu gi


tr ca n l pt_BR, th sau ngn ng c thit lp l (Brazilian)
Portuguese v min a phng l Brazil.
Trn nhiu h thng Unix vi mt Dynamic Linker, cha mt danh sch

LD_LIBRARY_PATH

du hai chm ring r ca cc th mc m Dynamic Linker tm kim


cc i tng c chia s khi xy dng mt hnh nh tin trnh sau
khi thc thi, trc khi tm kim bt k th mc khc.

PATH

Ch dn tm kim path cho cc lnh. N l mt danh sch du hai chm


ring r ca cc th mc m trong Shell tm kim cho cc lnh.

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 31

http://vietjack.com/unix/index.jsp

PWD

RANDOM

SHLVL

TERM

TZ

UID

Copyright vietjack.com

Ch dn th mc lm vic hin ti khi thit lp bi lnh cd.


To mt s nguyn ngu nhin gia 0 v 32767 mi khi n c nhc
n.
Lng gia bi mi khi bash c bt u. Bin ny hu dng khi xc
nh c hay khng lnh exit c sn kt thc mc hin ti.
Lin quan kiu hin th.
Lin quan min thi gian (time zone). N c th nhn cc gi tr nh
GMT, AST.
M rng ID s dng dng s ca ngi s dng hin ti, khi to khi
Shell bt u.

Di y l v d minh ha mt vi bin mi trng:


$ echo $HOME
/root
]$ echo $DISPLAY

$ echo $TERM
xterm
$ echo $PATH
/usr/local/bin:/bin:/usr/bin:/home/amrood/bin:/usr/local/bin
$

Cc tin ch c bn: in, email trong Unix


n chng ny, bn c mt vi nhn thc c bn v h thng Unix v mt s lnh c bn ca
n. Chng ny s s qua v mt s tin ch c bn nhng quan trng trong cc tin ch ca Unix
m bn s s dng chng trong hot ng thng nht.

In cc file trong Unix/Linux


http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 32

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

Trc khi bn in mt file trn h thng Unix, bn c th mun nh dng li n ty chnh cc l,


nh du mt vi t,. Hu ht cc file c th c in m khng cn nh dng li, nhng bn in
th nh vy thng trng khng c p cho lm.
Rt nhiu phin bn ca Unix bao gm hai trnh nh dng vn bn rt tin ch: nroff vtroff.
Chng khng c tm hiu trong chng ny nhng bn c th tm hiu tin ch ca chng thng
qua mng.

Lnh pr trong Unix/Linux


Lnh pr phn nh qu trnh nh dng file trn mn hnh terminal hoc cho mt my in. V d, nu
bn c mt danh sch tn di ca mt file, bn c th nh dng n trn mn hnh vo hai hay
nhiu ct.
Di y l c php lnh pr:
pr option(s) filename(s)

Lnh pr thay i nh dng ca file ch trn mn hnh hoc trn bn in, n khng chnh sa file ban
u. Bng di y lit k mt vi ty chn ca lnh pr:

Chc nng

Miu t

-k

To ra k ct u ra.

-d

Khong trng kp u ra (khng phi trn tt c phin bn pr).

-h "header"

Lm cho mc mi tr thnh nh mt u ca bn bo co.

-t

Kh l khi in u v cc l trn/di.

-l PAGE_LENGTH

Thit lp di trang ti PAGE_LENGTH (66) dng. S t mc nh


ca cc dng l 56.

-o MARGIN

In pxet mi dng vi khong cch l l 0.

-w PAGE_WIDTH

Thit lp rng ti PAGE_WIDTH (72) k t ch cho u ra dng

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 33

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

nhiu ct.
Trc khi s dng pr, di y l cc ni dung ca mt file mu: food.
$cat food
Sweet Tooth
Bangkok Wok
Mandalay
Afghani Cuisine
Isle of Java
Big Apple Deli
Sushi and Sashimi
Tio Pepe's Peppers
........
$

By gi chng ta s dng lnh pr to mt bn bo co c 2 ct vi u l Restaurents:


$pr -2 -h "Restaurants" food
Nov

9:58 1997

Restaurants

Page 1

Sweet Tooth

Isle of Java

Bangkok Wok

Big Apple Deli

Mandalay

Sushi and Sashimi

Afghani Cuisine

Tio Pepe's Peppers

........
$

Cc lnh Ip v Ipr trong Unix/Linux


Lnh Ip hoc Ipr in mt file trn giy t mn hnh hin th. Mt khi bn nh dng file s dng
lnh pr v sn sng in, bn c th s dng bt c lnh no trong 2 lnh ny in file ca bn
trn my in kt ni c vi my tnh ca bn.
Qun l h thng c th thit lp my in mc nh ti site ca bn. in mt file c tn l food
trn my in mc nh, bn s dng lnh lp hoc lpr nh trong v d sau:

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 34

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

$lp food
request id is laserp-525

(1 file)

Lnh Ip ch mt ID m bn c th s dng dng cng vic in hoc kim tra trng thi ca n.

Nu bn s dng lnh Ip, bn c th s dng chc nng -nNum in s lng bn sao l


Num. Cng vi lnh Ipr, bn c th s dng ty chn -Num thc hin vic tng t.

Nu c nhiu my in kt ni vi my tnh ca bn, th khi bn c th chn mt my in


bng cch s dng ty chn dprinter vi lnh Ip v s dng ty chn -Pprinter vi lnh
Ipr cho mc ch tng t. Ti y, printer l tn my in.

Cc lnh Ipstat v Ipq trong Unix/Linux


Lnh Ipstat ch nhng g trong hng my in: ID yu cu, c file, khi cc cng vic c gi cho
mc ch in, v cc trng thi ca cc yu cu.
S dng Ipstat -o nu bn mun quan st ton b cc yu cu u ra ch khng phi ch cc yu
cu ca ring bn. Cc yu cu c trnh by theo th t chng c in:
$lpstat -o
laserp-573

john

128865

Nov 7

11:27

laserp-574

grace

82744

Nov 7

11:28

laserp-575

john

23347

Nov 7

11:35

on laserp

Lnh Ipq cung cp thng tin hi khc vi lnh Ipstat -o:


$lpq
laserp is ready and printing
Rank

Owner

Job

Files

Total Size

active john

573

report.ps

128865 bytes

1st

grace

574

ch03.ps ch04.ps

82744 bytes

2nd

john

575

standard input

23347 bytes

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 35

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

y dng u tin hin th trng thi my in. Nu my in khng hot ng hoc ang ht giy,
bn c th quan st cc thng tin khc trn dng u tin.

Cc lnh cancel v Iprm trong Unix/Linux


Lnh cancel kt thc yu cu in t lnh Ip. Lnh Iprm kt thc cc yu cu ca Ipr. Bn c th xc
nh hoc ID ca yu cu (hin th bi lnh Ip hoc Ipq) hoc tn ca my in.
$cancel laserp-575
request "laserp-575" cancelled
$

dng cc yu cu hin ti ang in, bt chp ID ca n, n gin bn nhn cancel v tn my


in:
$cancel laserp
request "laserp-573" cancelled
$

Lnh Iprm s dng cng vic ang thc hin nu lnh do bn ra. Nu khng th, bn c th
cung cp cc tn cng vic nh l tham s hoc s dng mt du gch ngang (-) g b tt c
cng vic ca bn:
$lprm 575
dfA575diamond dequeued
cfA575diamond dequeued
$

Lnh Iprm ni cho bn v cc tn file thc s b d b t hng in.

Gi Email trong Unix/Linux


Bn s dng lnh mail gi v nhn mail. Di y l c php gi mt Email:
$mail [-s subject] [-c cc-addr] [-b bcc-addr] to-addr

Bng di lit k cc chc nng quan trng lin quan n lnh mail:

Chc nng

Miu t

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 36

http://vietjack.com/unix/index.jsp

-s

-c

-b

Copyright vietjack.com

Xc nh subject trn dng lnh.


Gi cc bn sao carbon ti danh sch ca cc ngi s dng. Danh
sch c th l mt bn danh sch tn phn bit bng du phy.
Gi cc bn sao blind carbon ti danh sch. Danh sch c th l mt
bn danh sch tn phn bit bng du phy.

Di y l v d gi mt Test message ti a ch admin@yahoo.com.


$mail -s "Test Message" admin@yahoo.com

Bn sau c mong i g vn bn vo thng bo ca bn, theo sau bi mt control-D ti


phn bt u ca mt dng. dng vic g vn bn ny, n gin bn g du chm (.) nh sau:
Hi,

This is a test
.
Cc:

Bn c th gi mt file y bng cch s dng mt ton t iu hng li < nh sau::


$mail -s "Report 05/06/07" admin@yahoo.com < demo.txt

kim tra cc th n trong h thng Unix ca mnh, bn g lnh email nh sau:


$mail
no email

Filter v Pipe trong Unix


Bn c th kt ni hai lnh vi nhau m u ra ca mt chng trnh l u vo ca chng
trnh tip theo. Hai hoc nhiu lnh c kt ni trong cch ny to thnh mtpipe.
to mt pipe, t mt thanh dc (|) trn dng lnh gia hai lnh.
Khi mt chng trnh nhn u vo t mt chng trnh khc, thc hin mt vi hot ng trn
u vo , v vit kt qu cho u ra, n c cp nh l mt filter.

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 37

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

Lnh grep trong Unix/Linux


Chng trnh grep tm mt file hoc cc file cho cc dng m c mt mu no . C php ca n
l:
$grep pattern file(s)

Tn grep bt ngun t lnh ed (UNIX line editor), g/re/p c ngha l globally search for a regular
expression and print all lines containing it (tm kim ton cu cho mt regular expression v in tt
c dng cha n)."
Mt regular expression l hoc mt vi on thun vn bn hoc cc k t c bit s dng cho
cc kt ni mu.
Cch s dng n gin nht ca grep l tm kim mt mu cha mt t n. N c th th c
s dng trong mt pipe m ch trong nhng dng ny ca cc file u vo cha mt chui
cho c gi ti u ra tiu chun. Nu bn khng cung cp cho grep mt tn file c, n c
u vo tiu chun, y l cch m tt c cc filter lm vic.
$ls -l | grep "Aug"
-rw-rw-rw-

1 john

doc

11008 Aug

6 14:10 ch02

-rw-rw-rw-

1 john

doc

8515 Aug

6 15:30 ch07

-rw-rw-r--

1 john

doc

2488 Aug 15 10:51 intro

-rw-rw-r--

1 carol doc

1605 Aug 23 07:35 macros

C cc chc nng khc nhau m bn c th s dng song song vi lnh grep:

Chc nng

Miu t

-v

In tt c cc dng m khng kt ni vi mu cho.

-n

In cc dng kt ni v s dng ca n.

-l

Ch in tn file vi cc dng kt ni.

-c

Ch in s lng cc dng kt ni.

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 38

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

Kt ni hoc vi ch hoa hoc ch thng.

-i

By gi, chng ta s dng mt regular expression m ni cho lnh grep tm cc dng vi


carol, theo sau bi khng hoc nhiu k t khc c tm tt trong mt regular expression nh
l du sao *, sau theo sau bi Aug.
y chng ta ang s dng chc nng -i c s tm kim phn bit ch hoa vi ch thng:
$ls -l | grep -i "carol.*aug"
-rw-rw-r--

1 carol doc

1605 Aug 23 07:35 macros

Lnh sort trong Unix/Linux


Lnh sort sp xp cc dng ca vn bn theo th t ch ci hoc th t s. V d bn di xp
hng cc dng trong mt food file.
$sort food
Afghani Cuisine
Bangkok Wok
Big Apple Deli
Isle of Java
Mandalay
Sushi and Sashimi
Sweet Tooth
Tio Pepe's Peppers
$

Lnh sort, theo mc nh, sp xp cc dng ca vn bn theo th t ch ci. C rt nhiu chc


nng m iu khin vic sp hng ny:

Chc nng

Miu t

-n

Sp xp theo th t s, b qua cc khong trng v cc tab.

-r

Nghch o th t ca s sp xp.

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 39

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

-f

Sp xp ch hoa v ch thng cng vi nhau.

+x

B qua cc x trng u tin khi sp xp.

C th c nhiu hn hai lnh c kt ni trong mt pipe. V d v pipe trn s dng grep, chng
ta c th sp xp cc file theo cch khc l bng cch chnh sa theo th t kch c trong August.
Pipe sau cha cc lnh: ls, grep, v sort:
$ls -l | grep "Aug" | sort +4n
-rw-rw-r--

1 carol doc

1605 Aug 23 07:35 macros

-rw-rw-r--

1 john

doc

2488 Aug 15 10:51 intro

-rw-rw-rw-

1 john

doc

8515 Aug

6 15:30 ch07

-rw-rw-rw-

1 john

doc

11008 Aug

6 14:10 ch02

Pipe ny sp xp tt c cc file trong th mc ca bn c chnh sa theo th t kch c trong


August v in chng ti mn hnh terminal. Chc nng +4n b qua 4 trng (cc trng m phn
bit bi khong trng), sau sp xp cc dng theo th t s.

Cc lnh pg v more trong Unix/Linux


Mt u ra di thng lm trn mn hnh, nhng nu bn chy vn bn thng
qua morehoc pg nh l mt filter th mn hnh hin th s dng sau mi khi mn hnh y vn
bn.
Chng ta gi s rng bn c mt danh sch th mc di. lm cho n d dng hn khi c danh
sch c sp xp ny, dn output thng qua lnh more nh sau:
$ls -l | grep "Aug" | sort +4n | more
-rw-rw-r--

1 carol doc

1605 Aug 23 07:35 macros

-rw-rw-r--

1 john

doc

2488 Aug 15 10:51 intro

-rw-rw-rw-

1 john

doc

8515 Aug

6 15:30 ch07

-rw-rw-r--

1 john

doc

14827 Aug

9 12:40 ch03

.
.
.

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 40

http://vietjack.com/unix/index.jsp
-rw-rw-rw-

1 john

doc

16867 Aug

Copyright vietjack.com
6 15:56 ch05

--More--(74%)

Mn hnh s c ph y bi cc vn bn cha trong cc dng c sp xp theo th t kch


c. Ti v tr cui cng ca mn hnh, ti dng nhc lnh more bn c th g mt lnh di chuyn
qua phn vn bn c sp xp.
Khi bn lm vic vi mn hnh ny, bn c th s dng bt k lnh trong s cc lnh c lit k
trong chng trnh.

Qun l tin trnh trong Unix


Khi bn chy mt chng trnh trn h thng Unix, h thng to mt mi trng c bit cho
chng trnh . Mi trng ny cha mi th cn thit cho h thng chy chng trnh nu nh
khng c chng trnh khc ang chy trn h thng.
Bt c khi no bn thng bo mt lnh trong Unix, n to hoc bt u mt tin trnh mi. Khi bn
c gng thc hin mt lnh ls lit k ni dung th mc, bn bt u mt tin trnh. Mt tin
trnh, hiu theo cch n gin, l mt v d ca mt chng trnh ang chy.
H iu hnh theo di cc tin trnh thng qua mt ID c 5 k s m c bit nh l ID pidhoc
Process ID. Mi tin trnh trong h thng c mt pid duy nht.
Pid thng lp li bi v tt c cc s c th c s dng v pid k tip lp li. Ti bt k lc
no, khng th c hai tin trnh vi hai pid ging nhau cng tn ti trong h thng bi v n l pid
m Unix s dng theo di mi tin trnh.

Bt u mt tin trnh trong Unix/Linux


Khi bn bt u mt tin trnh (chy mt lnh), c 2 cch bn chy n:

Foreground Process

Background Process

Tin trnh Foreground trong Unix/Linux


Theo mc nh, mi tin trnh m bn bt u chy l Foreground Process. N nhn input t bn
phm v gi output ti mn hnh.

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 41

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

Bn c th quan st iu ny xy ra vi lnh ls. Nu bn mun lit k tt c cc file trong th mc


hin ti, bn c th s dng lnh sau:
$ls ch*.doc

N s hin th tt c file m tn bt u vi ch v kt thc vi .doc.


ch01-1.doc

ch010.doc

ch02.doc

ch03-2.doc

ch04-1.doc

ch040.doc

ch05.doc

ch06-2.doc

ch01-2.doc

ch02-1.doc

Tin trnh chy trong Foreground, kt qu ca n c hng trc tip trn mn hnh ca ti v
nu lnh ls mun bt k u vo no, n i t bn phm.
Trong khi mt chng trnh ang chy trong Foreground v cn mt khong thi gian di, chng ta
khng th chy bt k lnh khc (bt u mt tin trnh khc) bi v dng nhc khng c sn ti khi
chng trnh ang chy kt thc tin trnh v thot ra.

Tin trnh Background trong Unix/Linux


Background Process chy m khng c kt ni vi bn phm ca bn. Nu tin trnh
Background yu cu bt c u vo t bn phm, n i.
Li th ca chy mt chng trnh trong Background l bn c th chy cc lnh khc; bn khng
phi i ti khi n kt thc bt u mt tin trnh mi!
Cch n gin nht bt u mt tin trnh Background l thm du v (&) ti phn cui ca
lnh.
$ls ch*.doc &

iu ny cng hin th tt c cc file m tn bt u vi ch v kt thc vi .doc:


ch01-1.doc

ch010.doc

ch02.doc

ch03-2.doc

ch04-1.doc

ch040.doc

ch05.doc

ch06-2.doc

ch01-2.doc

ch02-1.doc

Ti y, nu lnh ls mun bt k u vo no (m n khng), n tin vo trng thi dng ti khi


bn di chuyn n vo trong Foreground v cung cp cho n d liu t bn phm.

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 42

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

Dng u tin cha cc thng tin v Background Process - s cng vic (job number) v Process
ID. Bn cn bit v Job number thao tc n gia Background v Foreground.
Nu bn nhn phm Enter by gi, bn nhn thy nh sau:
[1]

Done

ls ch*.doc &

Dng u tin ni cho bn rng lnh ls trong Background Process hon thnh mt cch thnh
cng. Dng th hai l mt dng nhc cho mt lnh khc.

Lit k cc tin trnh ang chy trong Unix/Linux


N l d dng quan st cc tin trnh ca bn bng cch chy lnh ps (vit tt ca process
status) nh sau:
$ps
PID

TTY

TIME

CMD

18358

ttyp3

00:00:00

sh

18361

ttyp3

00:01:31

abiword

18789

ttyp3

00:00:00

ps

Mt trong nhng flag c s dng cho ps l -f (vit tt ca full), m cung cp nhiu thng tin nh
v d di y:
$ps -f
UID

PID

PPID C STIME

TTY

TIME CMD

amrood

6738 3662 0 10:23:03 pts/6 0:00 first_one

amrood

6739 3662 0 10:22:54 pts/6 0:00 second_one

amrood

3662 3657 0 08:10:53 pts/6 0:00 -ksh

amrood

6892 3662 4 10:51:50 pts/6 0:00 ps -f

Di y l s miu t ca tt c cc file c hin th bi lnh ps -f.

Ct

Miu t

UID

ID ngi s dng m tin trnh ny thuc s hu (ngi chy n).

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 43

http://vietjack.com/unix/index.jsp

PID

Process ID.

PPID

Process ID gc (ID ca tin trnh m bt u n).

CPU s dng ca tin trnh.

STIME

Thi gian bt u tin trnh.

TTY

Kiu terminal lin kt vi tin trnh.

TIME

Thi gian CPU b s dng bi tin trnh.

CMD

Lnh m bt u tin trnh ny.

Copyright vietjack.com

C nhng chc nng khc m c th c s dng song song vi lnh ps:

Chc nng

Miu t

-a

Ch thng tin v tt c ngi s dng.

-x

Ch thng tin v cc tin trnh m khng c terminal.

-u

Ch thng tin thm vo nh chc nng -f.

-e

Hin th thng tin c m rng.

Dng tin trnh trong Unix/Linux


Kt thc mt tin trnh c th c thc hin theo vi cch khc nhau. Thng thng, t mt lnh
console-based, gi CTRL + C bng g phm (mc nh l k t ngt) s hy lnh. N lm vic khi
tin trnh ang chy trong ch Foreground.
Nu mt tin trnh ang chy trong ch Background, th u tin bn cn nhn ID cng vic (job
ID) bng cch s dng lnh ps v sau bn c th s dng lnh kill kh tin trnh nh sau:
$ps -f

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 44

http://vietjack.com/unix/index.jsp
PPID C STIME

TTY

Copyright vietjack.com

UID

PID

TIME CMD

amrood

6738 3662 0 10:23:03 pts/6 0:00 first_one

amrood

6739 3662 0 10:22:54 pts/6 0:00 second_one

amrood

3662 3657 0 08:10:53 pts/6 0:00 -ksh

amrood

6892 3662 4 10:51:50 pts/6 0:00 ps -f

$kill 6738
Terminated

y lnh kill s kt thc tin trnh first_one. Nu mt tin trnh thng b qua mt lnh kill, bn
c th s dng kill -9 theo sau bi Process ID nh sau:
$kill -9 6738
Terminated

Tin trnh m v tin trnh con trong Unix/Linux


Mi mt tin trnh Unix c hai ID c gn cho n: Process ID (pid) v Parent Process ID (ppid).
Mi tin trnh trong h thng c mt Parent Process (gc).
Hu ht cc lnh m bn chy c Shell nh l m ca n. Kim tra v d ps -f m ti y lnh ny
lit k c Process ID v Process ID gc.

Tin trnh Zombie v Orphan


Thng thng, khi mt tin trnh con b kh, Parent Process c thng bo thng qua k hiu
SIGCHLD. Sau , tin trnh gc c th thc hin mt vi cng vic khc hoc bt u li tin trnh
con nu cn thit. Tuy nhin, i khi Parent Process b kh trc khi tin trnh con ca n b kh.
Trong trng hp ny, Parent Process ca tt c cc tin trnh, tin trnhinit, tr thnh PPID mi
(Process ID m). i khi nhng tin trnh ny c gi l tin trnh Orphan.
Khi mt tin trnh b kh, danh sch lit k ps c th vn ch tin trnh vi trng thi Z. y l trng
thi Zombie, hoc tin trnh khng tn ti. Tin trnh ny b kh v khng c s dng. Nhng
tin trnh ny khc vi tin trnh orphan. N l nhng tin trnh m chy hon thnh nhng vn
c mt cng vo trong bng tin trnh.

Tin trnh Daemon trong Unix/Linux


Daemon l cc Background Process lin quan ti h thng m thng chy vi quyn hn truy
cp ca root v cc dch v yu cu t tin trnh khc.

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 45

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

Mt tin trnh deamon khng c terminal iu khin. N khng th m /dev/tty. Nu bn thc hin
mt ps-ef v quan st vo trng tty, tt c deamon s c mt du ? cho tty.
r hn, mt deamon ch l mt tin trnh m chy trong Background, thng i cho ci g
xy ra m n c kh nng lm vic vi, ging nh my in deamon ang i cc lnh in.
Nu bn c mt chng trnh m cn thc hin mt tin trnh di, th sau gi tr ca n to
mt deamon v chy n trong Background.

Lnh top trong Unix/Linux


Lnh top l mt cng c rt hu ch cho vic hin th nhanh cc tin trnh c sp xp bi cc
tiu chun a dng.
N l mt cng c chn on tng tc m cp nht thng xuyn v hin th thng tin v b nh
vt l v b nh o, s s dng CPU, .
Di y l c php n gin chy lnh top v quan st kt qu thng k ca s s dng CPU
bng cc tin trnh khc nhau:
$top

Job ID vi Process ID trong Unix/Linux


Tin trnh Background v Foreground thng c thao tc thng qua Job ID. S ny khc vi
Process ID v c s dng bi v n ngn hn.
Ngoi ra, mt cng vic c th bao gm nhiu tin trnh ang chy trong seri hoc ti cng mt thi
gian, song song, v th s dng Job ID l d dng hn theo di cc tin trnh ring l.

Cc tin ch giao tip mng trong Unix


Khi bn lm vic trong mi trng phn phi th khi bn cn giao tip vi nhng ngi s dng
t xa v bn cng cn truy cp vo cc thit b Unix t xa.
C mt vi tin ch Unix m c bit hu ch cho ngi s dng giao tip trong mt mi trng
phn phi, kt ni mng. Chng ny lit k vi tin ch trong s chng.

Tin ch ping trong Unix/Linux


http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 46

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

Lnh ping gi mt yu cu echo ti mt host c sn trn mng. S dng lnh ny bn c th kim


tra nu host t xa ca bn ang phn hi tt hoc khng.
Lnh ping hu ch v:

Theo di v phn tch tnh n lp phn cng v cc vn v phn mm.

Xc nh trng thi ca mng v cc host ngoi a dng khc.

Kim tra, nh gi v qun l mng.

C php trong Unix/Linux


Sau y l c php n gin s dng lnh ping:
$ping hostname hoc ip-address

Lnh trn s bt u in mt phn hi sau mi giy. thot khi lnh ny bn c th kt thc n


bng cch nhn t hp phm CTRL + C.

V d trong Unix/Linux:
Di y l v d kim tra tnh sn sng ca mt host c trn mng:
$ping google.com
PING google.com (74.125.67.100) 56(84) bytes of data.
64 bytes from 74.125.67.100: icmp_seq=1 ttl=54 time=39.4 ms
64 bytes from 74.125.67.100: icmp_seq=2 ttl=54 time=39.9 ms
64 bytes from 74.125.67.100: icmp_seq=3 ttl=54 time=39.3 ms
64 bytes from 74.125.67.100: icmp_seq=4 ttl=54 time=39.1 ms
64 bytes from 74.125.67.100: icmp_seq=5 ttl=54 time=38.8 ms
--- google.com ping statistics --22 packets transmitted, 22 received, 0% packet loss, time 21017ms
rtt min/avg/max/mdev = 38.867/39.334/39.900/0.396 ms
$

Nu mt host khng tn ti th khi n s chy mt ci g ging nh sau:


$ping giiiiiigle.com
ping: unknown host giiiiigle.com

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 47

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

Tin ch ftp trong Unix/Linux


y ftp l vit tt ca File Transfer Protocol. Tin ch ny gip bn ti ln v ti v (upload v
download) file ca bn t mt my tnh sang mt my tnh khc.
Tin ch ftp c b thit lp ring ca n trong Unix nh cc lnh m cho php bn thc hin cc
cng vic nh:

Kt ni v ng nhp ti mt host t xa.

iu hng cc th mc;

Lit k ni dung th mc;

t v nhn cc file;

Truyn ti cc file dng ASCII, EBCDIC hoc nh phn.

C php trong Unix/Linux


Di y l c php n gin s dng lnh ftp:
$ftp hostname hoc ip-address

Lnh trn s nhc bn nhp ID ng nhp v mt khu. Mt khi bn xc nhn xong, bn c th


truy cp trn th mc chnh ca ti khon ng nhp v bn c th thc hin cc lnh khc nhau.
Mt s lnh hu ch c lit k sau y:

Lnh

Miu t

put filename

Ti mt filename ln t thit b ni b ln thit b t xa

get filename

Ti mt filename xung t thit b t xa xung thit b ni b

mput file list

Ti nhiu hn mt file t thit b ni b ln thit b t xa.

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 48

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

Ti xung nhiu hn mt file t thit b t xa xung thit b ni b.

mget file list

Tt dng nhc lnh, theo mc nh bn s c nhc ti ln hoc ti

prompt off

xung cc movie bng cch s dng lnh mput hoc mget.

prompt on

Bt dng lnh nhc.

dir

Lit k tt c cc file c trong th mc hin ti ca thit b t xa.

cd dirname

Thay i th mc ti dirname trn thit b t xa.

lcd dirname

Thay i th mc ti dirname trn thit b ni b.

quit

Thot ra t s ng nhp hin ti .

N nn c ghi ch rng cc file s c download hoc upload ti hoc t cc th mc hin ti.


Nu bn mun upload cc file ca bn trong mt th mc ring bit th khi u tin bn thay i
ti th mc v sau ti file c yu cu ln.

V d trong Unix/Linux:
Di y l v d minh ha v mt s lnh:
$ftp amrood.com
Connected to amrood.com.
220 amrood.com FTP server (Ver 4.9 Thu Sep 2 20:35:07 CDT 2009)
Name (amrood.com:amrood): amrood
331 Password required for amrood.
Password:
230 User amrood logged in.
ftp> dir
200 PORT command successful.
150 Opening data connection for /bin/ls.
total 1464
drwxr-sr-x

3 amrood

group

1024 Mar 11 20:04 Mail

drwxr-sr-x

2 amrood

group

1536 Mar

3 18:07 Misc

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 49

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

drwxr-sr-x

5 amrood

group

512 Dec

7 10:59 OldStuff

drwxr-sr-x

2 amrood

group

1024 Mar 11 15:24 bin

drwxr-sr-x

5 amrood

group

3072 Mar 13 16:10 mpl

-rw-r--r--

1 amrood

group

drwxr-sr-x

3 amrood

group

512 Jan

drwxr-sr-x

3 amrood

group

512 Feb 10 10:17 pvm3

209671 Mar 15 10:57 myfile.out


5 13:32 public

226 Transfer complete.


ftp> cd mpl
250 CWD command successful.
ftp> dir
200 PORT command successful.
150 Opening data connection for /bin/ls.
total 7320
-rw-r--r--

1 amrood

group

1630 Aug

8 1994

dboard.f

-rw-r-----

1 amrood

group

4340 Jul 17 1994

vttest.c

-rwxr-xr-x

1 amrood

group

-rw-r--r--

1 amrood

group

1648 Aug

-rwxr-xr-x

1 amrood

group

4019 Feb 14 16:26 fix.c

525574 Feb 15 11:52 wave_shift


5 1994

wide.list

226 Transfer complete.


ftp> get wave_shift
200 PORT command successful.
150 Opening data connection for wave_shift (525574 bytes).
226 Transfer complete.
528454 bytes received in 1.296 seconds (398.1 Kbytes/s)
ftp> quit
221 Goodbye.
$

Tin ch telnet trong Unix/Linux


Nhiu khi bn s cn kt ni ti mt thit b Unix t xa v lm vic trn thit b vi ch iu
khin t xa. Telnet l mt tin ch m cho php mt ngi s dng my tnh ti mt site to mt s
kt ni, ng nhp v sau thc hin cng vic trn my tnh ti mt site khc.

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 50

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

Mt khi bn ng nhp bng cch s dng telnet, bn c th thc hin tt c cc hot ng trn
thit b kt ni t xa. Di y l v d v telnet:
C:>telnet amrood.com
Trying...
Connected to amrood.com.
Escape character is '^]'.

login: amrood
amrood's Password:
*****************************************************
*

WELCOME TO AMROOD.COM

*****************************************************

Last unsuccessful login: Fri Mar


Last login: Wed Mar

3 12:01:09 IST 2009

8 18:33:27 IST 2009 on pts/10

do your work }

$ logout
Connection closed.
C:>

Tin ch finger trong Unix/Linux


Lnh finger hin th thng tin v nhng ngi s dng trn mt host cho. Host c th l ni b
hoc t xa.
Finger c th bt lc trn h thng khc v l do bo mt.
Di y l c php n gin s dng lnh finger:

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 51

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

Kim tra tt c cc ngi s dng ng nhp trn thit b ni b nh sau:


$ finger
Login

Name

Tty

amrood

Idle

pts/0

Login Time

Office

Jun 25 08:03 (62.61.164.115)

Nhn thng tin v mt ngi s dng ring bit c trn thit b ni b:


$ finger amrood
Login: amrood

Name: (null)

Directory: /home/amrood

Shell: /bin/bash

On since Thu Jun 25 08:03 (MST) on pts/0 from 62.61.164.115


No mail.
No Plan.

Kim tra tt c ngi s dng ng nhp trn thit b t xa nh sau:


$ finger @avtar.com
Login

Name

amrood

Tty
pts/0

Idle

Login Time

Office

Jun 25 08:03 (62.61.164.115)

Nhn thng tin v mt ngi s dng ring bit c trn thit b t xa nh sau:
$ finger amrood@avtar.com
Login: amrood

Name: (null)

Directory: /home/amrood

Shell: /bin/bash

On since Thu Jun 25 08:03 (MST) on pts/0 from 62.61.164.115


No mail.
No Plan.

Trnh son tho vi trong Unix


C rt nhiu cch chnh sa cc file trong Unix v i vi ti, mt trong nhng cch tt nht l
s dng B (Trnh) son tho hng mn hnh vi. B son tho ny cho bn c th chnh sa cc
dng trong ni dung vi cc dng khc trong file.
Ngy nay bn s tm thy mt phin bn c nng cp ca B son tho vi m c gi lVIM.
VIM l vit tt ca Vi Improved.

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 52

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

B son tho vi thng c cn nhc l tiu chun thc quyn trong B son tho Unix bi v:

N thng c sn trn tt c cc phin bn ca h thng Unix;

Trnh thc hin ca n tng t nh bng;

N yu cu rt t ngun cho n;

N thn thin hn cc B son tho khc nh ed hoc ex.

Bn c th s dng B son tho vi chnh sa mt file ang hin hu hoc to mt file mi t


scratch. Bn cng c th s dng B son tho ny ch c mt file vn bn.

Bt u chy B son tho vi trong Unix/Linux


C nhng cch sau m bn c th s dng bt u chy B son tho vi:

Lnh

vi filename

Miu t
To mt file mi nu n khng tn ti, nu khng th m mt file
ang tn ti.

vi -R filename

M mt file ang tn ti trong ch ch c.

view filename

M mt file ang tn ti trong ch ch c.

Di y l v d to mt file mi testfile nu n khng tn ti trong th mc lm vic hin


ti:
$vi testfile

Bn c th quan st kt qu ging nh sau trn mn hnh:


|
~
~
~
~
~

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 53

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

~
~
~
~
~
~
~
"testfile" [New File]

Bn s ch mt du ng (~) trn mi dng con tr. Du ng ny i din cho mt dng cha


c s dng. Nu mt dng khng bt u vi du ng v xut hin khong trng, c th l mt
khong trng, tab, dng mi hoc mt vi k t khng nhn thy.
V th by gi bn m mt file bt u n. Trc khi thc hin cc tin trnh xa hn, chng
ta cng tm hiu mt vi khi nim quan trng c gii thch bn di.

Cc ch hot ng trong Unix/Linux:


Trong khi lm vic vi b son vi, bn s tnh c theo hai ch sau:
1. Ch lnh (Command mode): Ch ny cho bn c th thc hin cc nhim v hnh
chnh nh lu file, chy lnh, di chuyn con tr, ct v dn cc dng hoc t, v tm kim
v i v tr. Trong ch ny, bt c ci g bn g vo c h thng bin dch (hiu) nh
mt lnh.
2. Ch chn (Insert mode): Ch ny cho bn c th chn vn bn vo trong file. Mi
th m c g vo trong ch ny c h thng hiu nh l mt u vo v cui cng
n t vo trong file.
B son tho vi thng bt u vi ch lnh. nhp vn bn, bn phi trong ch chn.
vo ch chn, n gin bn ch cn g i. thot khi ch chn, nhn phmEsc, m s t
bn quay tr li ch lnh.
Gi : Nu bn khng chc chn v ch m bn ang trong, nhn phm Esc hai ln, v sau
bn s trong ch lnh. Bn m mt file bng cch s dng B son tho vi v bt u g
mt vi k t, sau bn vo ch lnh thy s khc nhau.

Thot khi vi trong Unix/Linux


http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 54

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

Lnh thot khi B son tho vi l :q. Mt khi ang trong ch lnh, g du hai chm v q v
du ! theo sau. Nu file ca bn c chnh sa theo cch no , B son tho s cnh bo
bn v iu ny v khng cho bn thot khi n. b qua thng bo ny, lnh thot khi vi
m khng lu cc chnh sa l :q!. Lnh ny gip bn thot khi vi m khng lu bt c s thay
i no m bn to ra ti file.
Lnh lu ni dung ca B son tho vi l :w. Bn c th kt ni lnh trn vi lnh quit, hoc :wq
v du quay li !.
Cch d nht lu cc thay i v thot khi vi l lnh ZZ. Khi bn ang trong ch lnh, g ZZ
v n s lm vic tng t nh lnh :wq.
Bn c th xc nh tn cc file khc nhau lu bng cch xc nh tn file sau :w. V d, nu
bn mun lu file bn ang lm vic thnh mt file khc c tn l filename2, bn s g :wfilename2
v du !. Bn t mnh th nh.

Di chuyn trong mt file trong Unix/Linux


di chuyn xung quanh trong mt file m khng nh hng n vn bn, bn phi trong ch
lnh (nhn phm Esc hai ln). Ti y c mt vi lnh m bn c th s dng di chuyn xung
quanh mt k t ti cng mt thi gian.

Lnh

Miu t

Di chuyn con tr ln trn mt dng.

Di chuyn con tr xung mt dng.

Di chuyn con tr sang tri mt k t.

Di chuyn con tr sang phi mt k t.

C hai im quan trng m bn cn ghi nh:

B son tho vi l phn bit ch hoa v thng, v th bn cn ch khi vit ch hoa trong
khi s dng lnh.

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 55

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

Hu ht cc lnh trong vi c th c m u bng s ln bn mun hnh ng xy ra. V


d, 2j l di chuyn con tr xung 2 dng.

C nhiu cch khc di chuyn trong mt file trong vi. Nh rng bn phi trong ch lnh (nhn
Esc hai ln). Di y l mt bng lit k cc lnh khc m bn c th s dng di chuyn xung
quanh file:

Lnh

Miu t

0 or |

t v tr con tr ti u dng.

t v tr con tr cui dng.

t v tr con tr t tip theo.

t v tr con tr t trc.

t v tr con tr u cu vn hin ti.

t v tr con tr u cu vn k tip.

Di chuyn ti phn cui ca t c gii hn khong trng.

Di chuyn ti on vn sau.

Di chuyn v on vn trc.

[[

Di chuyn ti khu vc sau.

]]

Di chuyn v khu vc trc.

n|

Di chuyn ti ct n trong dng hin ti.

1G

Di chuyn ti dng u tin ca file.

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 56

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

Di chuyn ti dng cui cng ca file.

nG

Di chuyn ti dng th n ca file.

:n

Di chuyn ti dng th n ca file.

fc

Di chuyn thun tin ti c

Fc

Di chuyn ngc li ti c

Di chuyn ti u ca mn hnh.

nH

Di chuyn ti dng th n tnh t u ca mn hnh.

Di chuyn ti gia mn hnh.

Di chuyn ti cui cng mn hnh.

nL

Di chuyn ti dng th n tnh t cui cng ca mn hnh.

:x

Du hai chm theo sau bi mt s s t v tr ca con tr trn dng


s x

Cc lnh iu khin trong Unix/Linux


Cc lnh di y hu dng m bn c th s dng song song vi phm control:

Lnh

Miu t

CTRL+d

Di chuyn tin ti 1/2 mn hnh.

CTRL+d

Di chuyn tin ti 1/2 mn hnh.

CTRL+f

Di chuyn tin ti mt mn hnh y .

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 57

http://vietjack.com/unix/index.jsp

CTRL+u

Di chuyn ngc v sau 1/2 mn hnh.

CTRL+b

Di chuyn ngc v sau mt mn hnh.

CTRL+e

Di chuyn mn hnh ln mt dng.

CTRL+y

Di chyn mn hnh xung mt dng.

CTRL+u

Di chuyn mn hnh ln 1/2 trang.

CTRL+d

Di chuyn mn hnh xung 1/2 trang.

CTRL+b

Di chuyn mn hnh ln mt trang.

CTRL+f

Di chuyn mn hnh xung mt trang.

CTRL+I

Ko mn hnh ngc li.

Copyright vietjack.com

Chnh sa file trong Unix/Linux


chnh sa file, bn cn trong ch chn. C nhiu cch vo ch chn t ch lnh.

Lnh

Miu t

Chn vn bn trc v tr con tr hin ti.

Chn vn bn phn u dng hin ti.

Chn vn bn sau v tr con tr hin ti.

Chn vn bn ti phn cui ca dng hin ti.

To mt dng mi nhp vn bn di v tr con tr hin ti.

To mt dng mi nhp vn bn trn v tr con tr hin ti.

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 58

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

Xa cc k t trong Unix/Linux
Di y lit k cc lnh quan trng m c th c s dng xa cc k t v cc dng trong
mt file m:

Lnh

Miu t

Xa mt k t di v tr con tr hin ti.

Xa mt k t trc v tr con tr hin ti.

dw

Xa t v tr con tr hin ti ti t k tip.

d^

Xa t v tr con tr hin ti ti phn bt u ca dng.

d$

Xa t v tr con tr hin ti ti phn cui ca dng.

Xa t v tr con tr hin ti ti phn cui ca dng hin ti.

dd

Xa dng m con tr hin ti ang trn.

Nh cp trn, hu ht cc lnh trong vi c th c t trc bi s ln bn mun hnh


ng xy ra. V d, 2x s xa 2 k t di v tr con tr hin ti v 2dd s xa 2 dng m con tr
ang trn hin ti.
Chng ti ngh bn thc hnh cc lnh trn nhiu ln trc khi thc hin cc tin trnh phc tp
hn.

Cc lnh thay i trong Unix/Linux


Bn cng c kh nng thay i cc k t, cc t,, hoc dng trong vi m khng cn xa chng.
Di y l cc lnh lin quan:

Lnh

Miu t

cc

G b ni dung ca dng, lm cho bn ri khi ch chn.

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 59

http://vietjack.com/unix/index.jsp

cw

Copyright vietjack.com

Thay i t m con tr ang ti , t v tr con tr ti v tr ch w thng


cui cng ca t.
i v tr ca k t di v tr con tr. Vi tr li ch lnh sau khi s i v tr
ny c thc hin xong.
Vit nhiu k t bt u vi k t hin ti di con tr. Bn phi s dng
phm Esc dng vic vit ny.
i v tr ca k t hin ti vi k t m bn g vo. Sau , bn b ri khi ch
chn.
Xa dng m con tr ang trn v thay i bng mt on vn bn mi. Sau
khi vn bn mi c nhp, vi vn gi nguyn ch chn.

Cc lnh sao chp v dn trong Unix/Linux


Bn c th sao chp cc dng hoc cc t t mt v tr v sau bn dn chng ti v tr khc
bng cch s dng cc lnh sau:

Lnh

Miu t

yy

Sao chp dng hin ti.

yw

Sao chp t hin ti t k t ch thng w con tr trn ti phn cui


ca t.

Dn bn sao sau v tr con tr.

Dn bn sao trc v tr con tr.

Cc lnh nng cao trong Unix/Linux


Di y lit k mt s lnh nng cao m lm n gin ha vic chnh sa thng ngy v mang
li nhiu hiu qu hn trong vic s dng vi:

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 60

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

Lnh

Miu t

Nhp dng hin ti vi dng k tip.

<<

Di chuyn dng hin ti sang tri mt rng shift.

>>

Di chuyn dng hin ti sang phi mt rng shift.

Chuyn kiu ca k t di v tr con tr (VD: ch hoa thnh ch thng ).

^G

Nhn Ctrl+G cng mt lc ch trng thi v tn file hin ti.

Hi phc dng hin ti tr v trng thi trc khi con tr vo dng .

Undo cc thay i va thc hin vi file. Nhp u ln na s redo s thay


i.

Nhp dng hin ti vi dng k tip.

:f

Hin th v tr hin ti ca file trong % v tn file, tng s file.

:f filename

t li tn hin ti ca file.

:w filename

Vit tn file

:e filename

M mt file khc vi tn ca n.

:cd dirname

Thay i th mc lm vic hin ti ti th mc dirname.

:e #

S dng chuyn i gia hai file m.

:n

Trong trng hp bn m nhiu file s dng vi, bn s dng :n ti file


k tip trong seri cc file .

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 61

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

Trong trng hp bn m nhiu file s dng vi, bn s dng :p ti file

:p

pha trc trong seri file .


Trong trng hp bn m nhiu file s dng vi, bn s dng :N ti file

:N

pha trc trong seri file .

:r file

c file v chn n sau dng hin ti.

:nr file

c file v chn n sau dng th n.

Tm kim t v k t trong Unix/Linux


B son tho vi c hai loi tm kim: chui v k t. tm kim chui, lnh / v ? c s dng.
Khi bn bt u nhng lnh ny, lnh va c nhp vo s c ch cui cng ca dng, ti
bn nhp mt chui c th m bn mun tm tm kim n.
Hai lnh ny ch khc nhau phng din ni m n din ra:

Lnh / tm kim theo chiu thun v pha trc trong mt file.

Lnh ? tm kim theo chiu ngc li v pha sau trong mt file.

Cc lnh n v N tng ng lp li lnh tm trc theo cng cch tm hoc theo hng ngc li.
Mt vi k t c ngha quan trng trong khi s dng lnh tm kim v c t trc bi mt du
\ tr thnh mt phn ca biu thc cn tm.

K t

Miu t
Tm ti u ca dng. (S dng ti phn bt u ca mt biu thc tm
kim.)

Kt ni vi mt k t n.

Kt ni vi 0 hoc nhiu k t trc.

Cui ca dng. (s dng ti phn cui ca biu thc tm kim.)

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 62

http://vietjack.com/unix/index.jsp

<

>

Copyright vietjack.com

Bt u mt thit lp ca biu thc kt ni hoc khng kt ni.


t biu thc tm kim tch khi du cho ngc \ tm phn cui hoc
phn u ca t.
t biu thc tm kim tch khi du cho ngc \ tm phn cui hoc
phn u ca t.

Hot ng tm kim k t tm kim trong mt dng tm mt k t c nhp sau lnh. Lnh f v


F ch tm kim cho mt k t trn dng hin ti. Lnh f tm kim thun v pha trc v F tm kim
ngc v pha sau v con tr di chuyn ti v tr ca k t c tm thy.
Lnh t v T ch tm kim mt k t trn dng hin ti, nhng vi t, con tr di chuyn ti v tr trc
k t, v T tm kim dng v pha ngc li ti v tr sau k t.

Cc lnh set trong Unix/Linux


Bn c th to thay i mn hnh hin th ca vi bng cch s dng lnh :set. s dng nhng
lnh ny, bn phi vo ch lnh sau g :set theo sau bi mt trong cc chc nng sau:

Lnh

Miu t

:set ic

B qua kiu ch (ch hoa, thng) khi tm kim.

:set ai

Thit lp ch tht vo u dng t ng.

:set noai

khng t ch tht vo u dng t ng.

:set nu

Hin th cc dng vi s dng trn cnh tri.

:set sw

:set ws

Thit lp rng ca im dng tab ca mt phn mm. V d bn c th thit


lp mt rng shift l 4 vi lnh ny :set sw=4
Nu wrapscan c thit lp, nu t khng c tm thy ti phn cui cng
ca file, n s c gng tm kim ti phn bt u.

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 63

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

Nu chc nng ny c mt gi tr ln hn 0, B son tho s t ng bao l k


:set wm

t (word wrap). V d, thit lp l bao ti hai k t, bn s g th ny :set


wm=2

:set ro

Thay i kiu file thnh ch c (read only)

:set term

In kiu terminal.

:set bf

B qua vic iu khin k t t u vo.

Chy cc lnh trong Unix/Linux


B son tho vi c kh nng chy cc lnh t trong B son tho. chy mt lnh, bn ch cn
tin vo ch lnh v nhp lnh :!.
V d, nu bn mun kim tra mt file c tn ti khng trc khi bn c gng lu file vi tn
cho, bn c th nhp :! ls v bn s thy kt qu ca lnh ls trn mn hnh.
Khi bn nhn bt k phm no, bn c quay tr li khu vc vi ca bn.

Thay th vn bn trong Unix/Linux


Lnh thay th (:s/) cho bn c th nhanh chng i cc t hoc nhm t trong file ca bn. Di
y l c php n gin:
:s/search/replace/g

K t g i din cho ton cu (globally). Kt qu ca lnh ny l tt c cc s kin din ra trn


dng m con tr ti c thay i.

Cc im quan trng trong Unix/Linux:


Di y l cc im quan trng gip bn thnh cng khi s dng vi:

Bn phi trong ch lnh s dng cc lnh. (Nhn phm Esc hai ln vo bt c lc no


m bo bn trong ch lnh).

Bn phi cn thn s dng cc kiu ch (hoa v thng) cho tt c cc lnh.

Bn phi trong ch chn nhp vn bn.

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 64

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

Shell l g?
Shell cung cp cho bn mt giao din vi h thng Unix. N thu thp input t bn v chy cc
chng trnh trn c s u vo . Khi mt chng trnh hon thnh, n hin th kt qu (output)
ca chng trnh .
Mt Shell l mt mi trng trong chng ta c th chy cc lnh, cc chng trnh v Shell
script. C cc phin bn khc nhau ca Shell, m ch khc nhau t phin bn ca h iu hnh.
Mi phin bn ca Shell c b thit lp cc lnh v hm c tha nhn ring ca n.

Dng nhc lnh Shell trong Unix/Linux


Dng nhc lnh, $, c thng bo bi Shell. Trong khi dng nhc c hin th, bn c th nhp
mt lnh.
Shell c u vo bn nhp sau khi bn nhn Enter. N xc nh lnh m bn mun chy bi nhn
vo t u tin trong phn nhp ca bn. Mt t l mt tp hp khng gin on ca cc k t.
Cc khong trng v tab phn cch cc t.
Di y l mt v d n gin ca lnh date m hin th ngy v thi gian hin ti:
$date
Thu Jun 25 08:30:19 MST 2009

Bn c th ty chnh dng nhc lnh ca mnh bng cch s dng bin mi trng PS1 c gii
thch trong chng Mi trng lm vic.

Cc kiu Shell trong Unix/Linux


Trong Unix c hai kiu Shell chnh:
1. Kiu Bourne Shell. Nu bn ang s dng mt Bourne Shell, dng nhc lnh mc nh l k
t $.
2. Kiu C Shell. Nu bn ang s dng kiu C Shell, dng nhc mc nh l k t %.
Trong kiu Bourne Shell li c cc kiu ph khc nh sau:

Bourne Shell (sh)

Korn Shell (ksh)

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 65

http://vietjack.com/unix/index.jsp

Bourne Again Shell ( bash)

POSIX Shell ( sh)

Copyright vietjack.com

Trong kiu C Shell c cc kiu ph khc:

C Shell (csh)

TENEX/TOPS C Shell ( tcsh)

Cc Unix Shell u tin c vit vo gia thp k 1970 bi Stephen R. Bourne trong khi ng ta
ang lm vic ti phng th nghim AT&T Bell Labs New Jersey.
Bourne Shell l Shell u tin xut hin trn h thng Unix, v th n c cp n nh l the
Shell.
Bourne Shell thng c ci t nh l /bin/sh trn hu ht cc phin bn Unix. V l do ny, n
l Shell c chn vit script d dng trn cc phin bn khc nhau ca Unix.
Trong chng ny, chng ta cp n hu ht cc khi nim Shell trn c s Bourne Shell.

Shell Scripts trong Unix/Linux


Khi nim c bn ca mt Shell script l mt danh sch cc lnh, m c lit k theo th t thi
hnh. Mt Shell script tt s c cc li bnh (comment), ng trc bi du #, miu t cc bc.
C cc kim tra iu kin, nh gi tr A ln hn gi tr B, cc loop cho php chng ta x l mt
lng ln d liu, cc file c v lu gi d liu v cc bin c v lu gi liu, v script c
th bao gm cc hm.
Shell script v cc hm u c thng dch. iu ny c ngha l chng khng c bin dch.
Chng ta chun b vit nhiu script trong cc phn hng dn tip theo. N c th l mt file vn
bn n gin trong chng ta t tt c cc lnh v mt s cu trc cn thit m ni cho mi
trng Shell v ci g c lm v khi no c thc hin.

V d v script trong Unix/Linux


Gi s chng ta to mt test.sh. Ghi nh rng tt c cc script nn c ui m rng .sh. Trc khi
bn thm bt k ci g ti script ca bn, bn cn bo h thng rng mt Shell script chun b c
bt u. Vic ny c thc hin bng cch s dng cu trc shebang. V d:

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 66

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

#!/bin/sh

Lnh ny ni cho h thng rng cc lnh theo sau c chy bi Bourne Shell. N c gi l mt
shebang bi v k hiu # c gi l mt hash v k hiu ! c gi l mt bang.
to mt script cha cc lnh ny, u tin bn t dng shebang v sau thm cc lnh:
#!/bin/bash
pwd
ls

Cc li bnh Shell trong Unix/Linux


Bn c th t cc Shell Comment trong script nh sau:
#!/bin/bash

# Author : Zara Ali


# Copyright (c) Tutorialspoint.com
# Script follows here:
pwd
ls

By gi bn lu ni dung trn v lm cho script ny chy nh sau:


$chmod +x test.sh

By gi bn c mt Shell script ca mnh sn sng chy nh sau:


$./test.sh

iu ny to ra kt qu sau:
/home/amrood
index.jsp

unix-basic_utilities.jsp

unix-directories.jsp

test.sh

unix-communication.jsp

unix-environment.jsp

Ghi ch: chy bt c chng trnh no ca bn c trong th mc hin ti, bn nn chy bng
cch s dng ./program_name

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 67

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

Shell script m rng trong Unix/Linux


Shell script c mt vi cu trc c yu cu m ni cho mi trng Shell v iu g lm v khi
no thc hin n. Tt nhin, hu ht script y phc tp hn nhng script gii thiu trn.
Shell l mt ngn ng chng trnh thc s, y vi cc bin, cc cu trc iu khin v . D
n c phc tp bao nhiu, th tuy nhin, n vn ch l mt danh sch lnh c thc thi mt cch
lin tc.
Cc script sau s dng lnh read m nhn u vo t bn phm v gn gi tr cho n vi bin
PERSON v cui cng in n trn bin STDOUT.
#!/bin/sh

# Author : Zara Ali


# Copyright (c) Tutorialspoint.com
# Script follows here:

echo "What is your name?"


read PERSON
echo "Hello, $PERSON"

Di y l chy mu ca script trn:


$./test.sh
What is your name?
Zara Ali
Hello, Zara Ali
$

S dng cc bin trong Shell


Mt bin l mt chui k t t chng ta gn mt gi tr. Gi tr c gn c th l mt s, vn
bn, tn file, thit b hoc bt k kiu no khc ca d liu.
Mt bin l khng g khc ngoi mt con tr tr ti d liu thc. Shell cho php bn to, gn, v
xa cc bin.

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 68

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

Cc tn bin trong Unix/Linux


Tn ca mt bin c th ch cha cc k t (a ti z hoc t A ti Z), cc s (t 0 ti 9), hoc k
hiu gch di ( _).
Theo quy c, cc bin Unix shell s c tn ca chng trong ch in hoa.
V d di y v mt tn bin hp l.
_ALI
TOKEN_A
VAR_1
VAR_2

Sau y l v d v cc tn bin khng hp l:


2_VAR
-VARIABLE
VAR1-VAR2
VAR_A!

L do l bn khng th s dng cc k t khc nh !, *, hoc - , bi v cc k t ny c ngha c


bit i vi shell.

nh ngha cc bin trong Unix/Linux


Cc bin c nh ngha nh sau:
variable_name=variable_value

V d:
NAME="Zara Ali"

V d trn nh ngha bin Name v gn gi tr Zara Ali cho n. Cc bin theo kiu ny c gi l
cc bin v hng (scala). Mt bin v hng ch c th gi mt gi tr ti mt thi im.
Shell cho php bn gi bt k gi tr no bn mun trong mt bin. V d:
VAR1="Zara Ali"

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 69

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

VAR2=100

Truy cp cc gi tr trong Unix/Linux


truy cp cc gi tr c gi trong mt bin, t trc tn bin vi k hiu ( $):
V d, script sau s truy cp vo gi tr ca bin NAME c nh ngha v s in n trn
STDOUT:
#!/bin/sh

NAME="Zara Ali"
echo $NAME

N s to ra kt qu sau:
Zara Ali

Cc bin ch c (read-only) trong Unix/Linux


Shell cung cp mt cch nh du cc bin nh read-only bng cch s dng lnhreadonly.
Sau khi mt bin c nh du read-only, gi tr ca n khng th thay i.
V d, script sau s li trong khi c gng thay i gi tr ca bin NAME.
#!/bin/sh

NAME="Zara Ali"
readonly NAME
NAME="Qadiri"

N s to kt qu sau:
/bin/sh: NAME: This variable is read only.

Xa mt bin trong Unix/Linux


Xa mt bin ni cho shell g b bin t danh sch cc bin m n theo di. Mt khi bn
xa mt bin, bn s khng th truy cp vo gi tr lu gi trong bin .
Di y l c php xa mt bin c nh ngha bng cch s dng lnh unset:

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 70

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

unset variable_name

Lnh trn s xa gi tr ca mt bin c nh ngha. Di y l mt v d n gin:


#!/bin/sh

NAME="Zara Ali"
unset NAME
echo $NAME

Lnh trn s khng in bt c th g. Bn khng th s dng lnh unset xa cc bin m c


nh du read-only.

Cc kiu bin trong Unix/Linux


Khi mt Shell ang chy, c 3 kiu bin tn ti:

Cc bin ni b (Local Variables): Mt bin ni b l mt bin m tn ti trong trong qu


trnh thc thi ca shell. N khng c sn trong cc chng trnh m c bt u bi
Shell. Chng c thit lp ti dng nhc lnh.

Cc bin mi trng (Environment Variables): Mt bin mi trng l mt bin c sn


trong bt k tin trnh con no ca shell. Mt vi chng trnh cn cc bin mi trng
thc thi cc hm mt cch chnh xc. Thng thng mt Shell script ch nh ngha cc
bin mi trng m n cn bi cc chng trnh khi n chy.

Cc bin shell (Shell Variables): Mt bin shell l mt bin c bit m c thit lp bi


Shell v c yu cu bi Shell thc thi cc hm mt cch chnh xc. Mt s bin ny
l bin mi trng, trong khi s khc l bin ni b.

Cc bin c bit trong Unix


Chng hng dn trc cnh bo v s dng cc k t c bit trong tn bin ca bn. iu
ny bi v nhng k t ny c s dng trong tn cc bin c bit trong Unix. Nhng bin ny
c gi cho cc chc nng c bit.
V d, k t $ i din cho s Process ID, hoc PID ca shell hin ti.
$echo $$

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 71

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

Lnh trn s vit Process ID ca shell hin ti:


29949

Di y l bng lit k cc bin c bit m bn c th s dng trong Shell script:

Bin

Miu t

$0

Tn file ca script hin ti.


Nhng bin ny tng ng vi cc tham s m mt script c gi. Ti y n l s

$n

thp phn nguyn dng tng ng vi v tr ca mt tham s (tham s u tin l


$1, tham s th hai l $2).

$#

$*

$@

$?

$$

$!

S cc tham s cung cp cho mt script.


Tt c cc tham s c trch dn kp. Nu mt script nhn hai tham s, $* l tng
ng vi $1 $2.
Tt c cc tham s c trch dn kp ring r. Nu mt script nhn 2 tham s, $@
l tng ng vi $1 $2.
Trng thi thot ra ca lnh trc c chy.
S tin trnh ca shell hin ti. i vi Shell script, y l s Process ID m chng
ang chy.
S tin trnh ca lnh background trc.

Cc tham s dng lnh (command-line) trong


Unix/Linux
Cc bin dng lnh $1, $2, $3, , $9 l cc tham s v tr, vi $0 ch ti lnh, chng trnh, Shell
script hoc chc nng thc s v $1, $2, $3, , $9 l cc tham s ca lnh .
Script di y s dng cc bin c bit lin quan ti dng lnh:

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 72

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

#!/bin/sh

echo "File Name: $0"


echo "First Parameter : $1"
echo "Second Parameter : $2"
echo "Quoted Values: $@"
echo "Quoted Values: $*"
echo "Total Number of Parameters : $#"

Ti y l mt ln chy mu cho script trn:


$./test.sh Zara Ali
File Name : ./test.sh
First Parameter : Zara
Second Parameter : Ali
Quoted Values: Zara Ali
Quoted Values: Zara Ali
Total Number of Parameters : 2

Cc tham s c bit $* v $@ trong Unix/Linux


C nhng tham s c bit m cho php truy cp v tt c cc tham s ca cc dng lnh cng
mt lc. C $* v $@ s hot ng tng t tr khi chng c bao quanh bi trch dn ().
C hai tham s xc nh tt c cc tham s ca dng lnh, nhng $* nhn ton b danh sch lm
tham s vi cc khong cch trng gia v $@ nhn ton b danh sch lm tham s v phn
bit chng thnh cc tham s ring r.
Chng ta c th vit Shell script nh di x l mt s khng bit cc tham s dng lnh vi
hoc tham s c bit $* hoc $@.
#!/bin/sh

for TOKEN in $*
do
echo $TOKEN

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 73

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

done

Chng ta chy mu cho script trn:


$./test.sh Zara Ali 10 Years Old
Zara
Ali
10
Years
Old

Ghi ch: Ti y do...done l mt dng ca loop m chng ta s bn lun trong chng hng
dn sau.

Trng thi thot (Exit) trong Unix/Linux


Bin $? i din cho trng thi thot ca lnh trc.
Trng thi thot l mt gi tr s tr v bi mi lnh khi n hon tt. Theo quy nh, hu ht cc
lnh tr v mt trng thi thot l 0 nu chng thc hin thnh cng v 1 nu chng khng thnh
cng.
Mt vi lnh tr v cc trng thi thot vi phn thm vo khc v cc l do ring. V d, mt s
lnh phn bit gia cc loi li v s tr v cc gi tr thot a dng ph thuc vo kiu ca li.
Di y l cc v d v lnh thc hin thnh cng:
$./test.sh Zara Ali
File Name : ./test.sh
First Parameter : Zara
Second Parameter : Ali
Quoted Values: Zara Ali
Quoted Values: Zara Ali
Total Number of Parameters : 2
$echo $?
0
$

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 74

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

S dng mng trong Shell


Mt bin shell l c kh nng gi mt gi tr n. Kiu ny ca cc bin c gi l cc bin
scalar.
Shell h tr cc kiu khc nhau ca bin c gi l mt bin mng m c th gi nhiu gi tr ti
cng mt thi im. Mng cung cp mt phng thc to nhm mt tp hp cc bin. Thay v to
mt tn mi cho mi bin c yu cu, bn c th s dng mt bin mng lu tt c cc bin
khc.
Tt c cc quy tc v tn c bn lun trong chng Cc bin shell s c p dng trong khi
t tn mng.

nh ngha cc gi tr mng trong Unix/Linux


im khc nhau gia mt bin mng v mt bin scalar c th c gii thch nh sau:
Khi bn ang c gng biu din tn ca cc sinh vin khc nhau nh mt tp hp ca bin. Mi
bin n l mt bin scalar nh sau:
NAME01="Zara"
NAME02="Qadir"
NAME03="Mahnaz"
NAME04="Ayan"
NAME05="Daisy"

Chng ta s dng mt mng n gi tt c cc tn c cp trn. Sau y l mt


phng thc n gin cho vic to mt bin mng gn mt gi tr cho mt trong s chng. iu
ny c din t nh sau:
array_name[index]=value

Ti y array_name l tn ca mng, index l ch mc ca cc item trong mng m bn mun thit


lp v value l gi tr m bn mun thit lp cho mc .
Di y l v d, cc lnh sau:
NAME[0]="Zara"
NAME[1]="Qadir"

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 75

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

NAME[2]="Mahnaz"
NAME[3]="Ayan"
NAME[4]="Daisy"

Nu bn ang s dng ksh shell th ti y c php ca mng l:


set -A array_name value1 value2 ... valuen

Nu bn ang s dng bash shell th ti y c php ca mng l:


array_name=(value1 ... valuen)

Truy cp vo cc gi tr mng trong Unix/Linux


Sau khi bn thit lp bt k gi tr mng no, bn c th truy cp vo n nh sau:

Ti y array_name l tn mng, v index l ch mc ca cc gi tr c truy cp. Di y l v


d n gin:
#!/bin/sh

NAME[0]="Zara"
NAME[1]="Qadir"
NAME[2]="Mahnaz"
NAME[3]="Ayan"
NAME[4]="Daisy"
echo "First Index: "
echo "Second Index: "

N s to ra kt qu sau:
$./test.sh
First Index: Zara
Second Index: Qadir

Bn c th truy cp vo tt c cc item trong mt mng theo mt trong cc cch sau:

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 76

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

$ {array_name[*]}
$ {array_name[@]}

Ti y array_name l tn mng bn ang quan tm n. Di y l v d n gin:


#!/bin/sh

NAME[0]="Zara"
NAME[1]="Qadir"
NAME[2]="Mahnaz"
NAME[3]="Ayan"
NAME[4]="Daisy"
echo "First Method:$ {NAME[*]}"
echo "Second Method:$ {NAME[@]}"

N s to ra kt qu sau:
$./test.sh
First Method: Zara Qadir Mahnaz Ayan Daisy
Second Method: Zara Qadir Mahnaz Ayan Daisy

Unix - Cc ton t Shell c bn


rt nhiu ton t c h tr bi mi Shell. Phn hng dn ca chng ti da trn c s Shell
mc nh (Bourne) v th chng ta ang bn v cc ton t ca Bourne shell trong chng ny.
C cc ton t sau m chng ta cn quan tm:

Cc ton t s hc

Cc ton t quan h

Cc ton t logic

Cc ton t chui

Cc ton t kim tra file

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 77

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

Bourne shell lc u khng c bt c mt k thut no trnh by s hc n gin, nhng n s


dng chng trnh ngoi vi, hoc l awk hoc l chng trnh n gin hn expr.
Di y l v d n gin cng hai s:
#!/bin/sh

val=`expr 2 + 2`
echo "Total value : $val"

N s to ra kt qu sau:
Total value : 4

Nhng im m bn cn lu l:

Phi c mt khong trng gia hai ton t v 2 s din t, v d 2+2 l khng ng, n
nn c vit l 2 + 2.

S din t y nn c bao quanh bi ``, gi l du phy b nghch o.

Cc ton t s hc trong Unix/Linux


Cc ton t s hc sau c h tr bi Bourne shell.
Gi s bin a gi gi tr 10 v bin b gi gi tr 20, th khi :
V d:

Ton
t

Miu t

V d

`expr
$a +
+

Php cng thm gi tr mi bn vo ton t

$b`
kt
qu
l 30

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 78

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

`expr
$a -

Php tr tr gi tr bn phi ca ton t bn tri

$b`
kt
qu
l -10

`expr
$a \*
$b`
*

Php nhn nhn gi tr trn mi bn vi ton t.

kt
qu
l
200

`expr
$b /
/

Php chia chia gi tr bn phi cho gi tr bn tri

$a`
kt
qu
l 2

`expr
$b %
%

Ly s d ly phn cn li sau khi chia gi tr tri cho gi tr bn phi

$a`
kt
qu
l 0

a=$b
s
=

Php gn gn ton hng tri cho ton hng phi

gn
gi tr
ca b
cho a

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 79

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

[ $a
== $b
==

Php bng so snh hai s, nu c hai u ging nhau th kt qu tr v l


true.

] s
tr v
kt
qu
False.

[ $a
!= $b
!=

Php khng cn bng so snh hai s, nu c hai s khc nhau th gi tr tr


v l true.

] s
tr v
kt
qu
True.

N l rt quan trng ghi nh rng ti y tt c cc s din t c iu kin s c t trong


hai du ngoc m vung ([]) vi mt du cch trng quanh chng, v d [$a == $b ] l ng, v
[$a==$b] l khng ng.
Tt c cc ton t s hc c thc hin s dng cc s nguyn di.

Cc ton t quan h trong Unix/Linux


Bourne shell h tr cc ton t quan h sau m l ring vi cc gi tr s. Nhng ton t ny
khng lm vic cho chui tr khi gi tr ca n l s.
V d, cc ton t sau s kim tra mt quan h gia 10 v 20, cng l gia 10 v 20 nhng
khng gia ten v twenty.
Gi s bin a gi gi tr 10 v bin b gi gi tr 20 th khi :
V d

Ton
t

-eq

Miu t

V d

Kim tra gi tr ca hai ton hng l cn bng hoc khng, nu c th iu kin

[ $a -

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 80

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

tr ln ng.

eq $b
] l
khng
ng.

[ $a -ne

Kim tra gi tr ca hai ton hng l cn bng hoc khng, nu khng cn

ne $b

bng th iu kin tr ln ng.

] l
ng.

[ $a -gt

Kim tra nu gi tr ca ton hng tri ln hn gi tr ca ton hng phi, nu


ng th iu kin tr nn ng.

gt $b
] l
khng
ng.

[ $a -lt

Kim tra nu gi tr ca ton hng tri nh hn gi tr ca ton hng phi, nu

lt $b ]

ng th iu kin tr nn ng.

l
ng.

[ $a -ge

Kim tra nu gi tr ca ton hng tri ln hn hoc bng gi tr ca ton hng


phi, nu ng th iu kin tr nn ng.

ge $b
] l
khng
ng.

[ $a -le

Kim tra nu gi tr ca ton hng tri nh hn hoc bng gi tr ca ton hng le $b ]


phi, nu ng th iu kin tr nn ng.

l
ng.

N l rt quan trng ghi nh rng ti y tt c cc s din t c iu kin s c t trong


du ngoc m vung ([]) vi du cch trng quanh chng, v d [ $a <= $b ] l ng v [$a<=$b] l
khng ng.

Cc ton t logic trong Unix/Linux


http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 81

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

C cc ton t logic sau c h tr bi Bourne Shell


Gi s bin a gi gi tr 10 v bin b gi gi tr 20, th di y l v d s dng tt c cc ton t
logic.
V d

Ton
t

Miu t

V d

[!
!

Php ph nh. Nu iu kin ng th gi tr l sai v ngc li.

false ]
l
true.

[ $a lt 20 o $b -o

Php hoc. Nu mt trong cc ton hng l ng th iu kin l ng.

gt
100 ]
l
true.

[ $a lt 20 a $b -a

Php v. Nu c hai ton hng u ng th iu kin l ng, ngoi ra l sai.. gt


100 ]
l
false.

Cc ton t chui trong Unix/Linux


Cc ton t chui sau c h tr bi Bourne Shell.
Gi s bin a gi gi tr abc v bin b gi gi tr efg:
V d

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 82

http://vietjack.com/unix/index.jsp

Ton
t

Copyright vietjack.com

Miu t

V d

[ $a =
=

Kim tra nu gi tr ca hai ton hng l cn bng hoc khng, nu c th iu

$b ] l

kin l ng.

khng
ng.

[ $a
!=

Kim tra nu gi tr ca hai ton hng c cn bng hoc khng, nu khng cn != $b


bng th iu kin l ng.

] l
ng.

[ -z
-z

Kim tra nu c ton hng chui cho l 0. Nu n c di l 0 th n tr

$a ] l

v l ng.

khng
ng.

[ -z
-n

Kim tra nu c ton hng chui cho l khc 0. Nu di khc 0 th n tr $a ] l


v l ng.

khng
ng.

[ $a ]
str

Kim tra nu str khng l chui trng. Nu l chui trng th n tr v l sai.

l
khng
sai.

Cc ton t kim tra file trong Unix/Linux


Cc ton t sau kim tra cc s hu c bn lin kt vi mt file Unix.
Gi s mt bin file gi mt tn file ang tn ti l test vi kch c l 100 byte v c cho php
c, vit v chy.
V d

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 83

http://vietjack.com/unix/index.jsp

Ton
t

Copyright vietjack.com

Miu t

V d

[ -b
-b file

Kim tra nu file l mt file khi c bit, nu ng th iu kin l ng.

$file ]
l sai.

[ -c
-c file

Kim tra nu file l mt file k t c bit, nu ng th iu kin l ng.

$file ]
l sai.

[ -d
$file ]
-d file

Kim tra nu file l mt th mc, nu ng th iu kin l ng.

l
khng
ng.

[ -f
-f file

Kim tra nu file l file thng nh tri ngc vi th mc hoc l file c bit, $file ]
nu ng th iu kin l ng.

l
ng.

[ -g
-g file

Kim tra nu file c ID nhm thit lp (SGID), nu ng th iu kin l ng.

$file ]
l sai.

[ -k
-k file

Kim tra nu file c thit lp sticky bit, nu ng th iu kin l ng.

$file ]
l sai.

[ -p
-p file

Kim tra nu file l mt pipe c t tn, nu ng th iu kin l ng.

$file ]
l sai.

-t file

Kim tra nu k hiu nhn din file c m v lin kt vi mt terminal,

[ -t

nu ng th iu kin l ng.

$file ]

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 84

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

l sai.

[ -u
-u file

Kim tra nu file c SUID, nu ng th iu kin l ng.

$file ]
l sai.

[ -r
-r file

Kim tra nu file l c c, nu ng th iu kin l ng.

$file ]
l
ng.

[ -w
-w file

Kim tra nu file l vit c, nu ng th iu kin l ng.

$file ]
l
ng.

[ -x
-x file

Kim tra nu file l chy c, nu ng th iu kin l ng.

$file ]
l
ng.

[ -s
-s file

Kim tra nu file l chy c, nu ng th iu kin l ng.

$file ]
l
ng.

[ -e
-e file

Kim tra nu file tn ti, vn ng ngay c khi file l mt th mc nhng tn

$file ]

ti.

l
ng.

Cc ton t C Shell trong Unix/Linux:


Sau y l ng link miu t ngn gn v cc ton t C Shell.
Cc ton t C Shell

Cc ton t Korn Shell trong Unix/Linux:


http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 85

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

Sau y l ng link miu t ngn gn v cc ton t Korn Shell.


Cc ton t Korn Shell

iu khin lung trong Shell


Trong khi vit mt Shell script, c th c mt tnh hung khi bn cn theo mt path ngoi 2 path
c cung cp. V th bn cn to cch s dng ca cc lnh c iu kin m cho php
chng trnh ca bn to cc quyt nh chnh xc v thc hin cc hnh ng ng.
Unix Shell h tr cc lnh c iu kin m c s dng thc hin cc hnh ng khc nhau
da trn cc iu kin a dng. Ti y chng ta s gii thch hai lnh iu khin lung:

Lnh if...else

Lnh case...esac

Lnh ifelse trong Unix/Linux


Lnh ny l mt lnh iu khin lung hu ch, c s dng la chn mt ty chn t mt tp
hp ty chn cho.
Unix Shell h tr cc mu lnh ifelse sau:

Lnh if...fi

Lnh if...else...fi

Lnh if...elif...else...fi

Hu ht cc lnh if kim tra mi quan h bng cch s dng cc ton t quan h c cp


trong chng trc.

Lnh case...esac trong Unix/Linux


Bn c th s dng nhiu lnh ifelif thc hin mt nhnh c nhiu la chn. Tuy nhin, y
khng l gii php tt nht, c bit khi tt c cc nhnh ph thuc vo gi tr ca mt bin n.
Unix shell h tr lnh case...esac m gii quyt chnh xc tnh hung ny, v n thc hin theo
cch hiu qu hn l lp li s dng nhiu lnh ifelif.

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 86

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

Ch c mt mu ca lnh caseesac m c lit k y:

Lnh case...esac

Lnh case...esac ca Unix Shell l tng t vi lnh switch...case m chng ta c trong cc


chng trnh C hoc C++ v PERL etc.

Vng lp trong Unix


Vng lp l cng c chng trnh c tnh nng mnh, cho php bn c th lp li mt tp hp cc
lnh. Trong chng ny, bn s tm hiu qua cc v d thc hnh v vng lp c trong cc chng
trnh shell.

Vng lp while

Vng lp for

Vng lp until

Vng lp select

Bn s s dng cc vng lp khc nhau trn c s cc tnh hung khc nhau. V d, vng lp
while s chy lnh cho ti khi iu kin cho vn cn ng, trong khi vng lp until s chy
ti khi iu kin cho tr nn ng.
Mt khi bn c cc bi thc hnh chng trnh tt, bn s bt u s dng vng lp thch hp trn
c s tnh hung cho. y, vng lp while v for l c sn trong hu ht cc ngn ng
chng trnh khc nh C, C++ v PERL etc.

Lng cc vng lp trong Unix/Linux


Tt c cc vng lp h tr khi nim lng, c ngha l bn c th t mt vng lp vo bn trong
mt vng lp tng t hoc cc vng lp khc. Vic lng ny c th khng gii hn s lng ti a
vng lp, n ph thuc vo yu cu ca bn.
Di y l v d ca lng vng lp while, v theo cch tng t, cc vng lp khc c th c
lng ty theo yu cu chng trnh.

Lng vng lp while trong Unix/Linux


N l c th s dng vng lp while nh l mt phn ca thn ca mt vng lp while khc.

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 87

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

C php:
while command1 ; # this is loop1, the outer loop
do
Statement(s) to be executed if command1 is true

while command2 ; # this is loop2, the inner loop


do
Statement(s) to be executed if command2 is true
done

Statement(s) to be executed if command1 is true


done

V d:
Sau y l v d n gin ca lng vng lp:
#!/bin/sh

a=0
while [ "$a" -lt 10 ]

# this is loop1

do
b="$a"
while [ "$b" -ge 0 ]

# this is loop2

do
echo -n "$b "
b=`expr $b - 1`
done
echo
a=`expr $a + 1`
done

N to ra kt qu sau. N l quan trng ghi nh cch echo -n lm vic y. Ti y ty chn n cho php echo trnh vic in mt dng k t mi.

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 88

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

0
1 0
2 1 0
3 2 1 0
4 3 2 1 0
5 4 3 2 1 0
6 5 4 3 2 1 0
7 6 5 4 3 2 1 0
8 7 6 5 4 3 2 1 0
9 8 7 6 5 4 3 2 1 0

iu khin vng lp trong Unix


Chng trc bn c hng dn cch to vng lp v lm vic vi chng thc hin cc
nhim v khc nhau. i khi bn cn dng mt vng lp hoc tip tc tin hnh qu trnh lp i lp
li ca chng.
Trong chng ny, bn s hc 2 lnh c s dng trong iu khin vng lp Shell:
1. Lnh break
2. Lnh continue

Vng lp v hn trong Unix/Linux


Tt c vng lp c mt vng i gii hn v chng kt thc khi iu kin l ng hoc sai ph
thuc vo vng lp.
Mt vng lp c th tip tc tin hnh vnh vin do cha kt ni ng vi iu kin yu cu. Mt
vng lp v hn l mt vng lp m chy vi s ln khng m c.

V d
Di y l v d n gin v s dng vng lp while hin th cc s t 0 n 9.
#!/bin/sh

a=10

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 89

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

while [ $a -ge 10 ]
do
echo $a
a=`expr $a + 1`
done

Vng lp ny l vng lp v hn bi v a lun lun ln hn hoc bng 10 v n s khng bao gi


nh hn 10.

Lnh break trong Unix/Linux


Lnh break c s dng kt thc tin trnh chy ca mt vng lp y , sau khi hon thnh
chy tt c cc dng trong code ti lnh break ny. N sau bc ra khi on code sau khi kt
thuc vng lp.

C php
Lnh break sau c s dng thot khi mt vng lp.
break

Lnh break c th c s dng thot khi mt vng lp s dng nh dng sau:


break n

Ti y n xc nh vng lp th n c bao quanh thot ra khi t :

V d
V d sau ch vng lp sau s kt thc ngay sau khi iu kin tr thnh 5:
#!/bin/sh

a=0

while [ $a -lt 10 ]
do
echo $a

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 90

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

if [ $a -eq 5 ]
then
break
fi
a=`expr $a + 1`
done

N s hin th kt qu sau:
0
1
2
3
4
5

Di y l mt v d n gin ca lng vng lp. Script thot ra khi c hai vng lp nu var1
bng 2 v var2 bng 0.
#!/bin/sh

for var1 in 1 2 3
do
for var2 in 0 5
do
if [ $var1 -eq 2 -a $var2 -eq 0 ]
then
break 2
else
echo "$var1 $var2"
fi
done
done

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 91

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

N s to kt qu sau. Trong vng lp bn trong bn c mt lnh break vi i s 2. N ch rng


nu iu kin c tha mn bn nn thot khi vng lp bn ngoi.
1 0
1 5

Lnh continue trong Unix/Linux


Lnh continue ny tng t nh lnh break, ngoi tr vic n gy ra s lp li hin ti ca cc
vng lp thot ra, ch khng phi ton b vng lp.
Lnh ny c s dng khi mt li xy ra v bn mun c chy s lp k tip ca vng lp.

C php:
continue

Ging vi lnh break, mt i s nguyn c th c cung cp cho lnh continue nhy qua
lnh ny t vng lp c lng.
continue n

y n xc nh vng lp c bao th n tip tc t .

V d
Vng lp sau s dng lnh continue m tr li t lnh continue v bt u tin trnh lnh k tip.
#!/bin/sh

NUMS="1 2 3 4 5 6 7"

for NUM in $NUMS


do
Q=`expr $NUM % 2`
if [ $Q -eq 0 ]
then
echo "Number is an even number!!"
continue

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 92

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

fi
echo "Found odd number"
done

N s to ra kt qu sau:
Found odd number
Number is an even number!!
Found odd number
Number is an even number!!
Found odd number
Number is an even number!!
Found odd number

Trnh thay th Shell


rnh thay th (Substitution) trong Unix/Linux l g?
Shell thc hin php th khi n gp mt biu thc m cha mt hoc nhiu k t c bit.

V d:
Di y l v d, trong khi in mt gi tr ca bin, n s c thay th bi gi tr ca bin. Cng
thi gian \n c thay th bi dng mi.
#!/bin/sh

a=10
echo -e "Value of a is $a \n"

N s to kt qu nh di y. Ti y, chc nng -e s cho php bin dch dy thot du cho


ngc.
Value of a is 10

Nu khng c chc nng -e th n to ra kt qu sau:


Value of a is 10\n

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 93

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

Di y l cc dy thot m c th c s dng bi lnh echo:

Dy thot

Miu t

\\

Du cho ngc

\a

Du hiu cnh bo (BEL)

\b

Phm li (backspace)

\c

Gch cho xung dng

\f

form feed

\n

Dng mi

\r

Quay tr li

\t

Tab ngang

\v

Tab dc

Bn c th s dng chc nng -E khng cho php bin dch du ngoc cho (mc nh).
Bn c th s dng chc nng -n khng cho php chn ca dng mi.

Trnh thay th lnh (Command Substitution) trong


Unix/Linux
Trnh thay th lnh l mt k thut m bi n Shell thc hin mt tp hp cc lnh cung cp v
sau thay th v tr kt qu ca cc lnh.

C php
Trnh thay th lnh c thc hin khi mt lnh c cung cp nh sau:
`command`

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 94

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

Khi thc hin trnh thay th lnh, m bo rng bn ang s dng 2 du trch dn n kiu (`), ch
khng phi l .

V d
Trnh thay th lnh thng thng c s dng gn u ra ca mt lnh ti mt bin. Mi mt
v d sau gii thch cch s dng trnh thay th lnh.
#!/bin/sh

DATE=`date`
echo "Date is $DATE"

USERS=`who | wc -l`
echo "Logged in user are $USERS"

UP=`date ; uptime`
echo "Uptime is $UP"

N s to ra kt qu sau:
Date is Thu Jul

2 03:59:57 MST 2009

Logged in user are 1


Uptime is Thu Jul

2 03:59:57 MST 2009

03:59:57 up 20 days, 14:03,

1 user,

load avg: 0.13, 0.07, 0.15

Trnh thay th bin (Variable Substitution) trong


Unix/Linux
S thay th bin cho php ngi lp trnh Shell thao tc gi tr ca bin da trn trng thi ca n.
Di y l bng cho tt c cc trnh thay th c th:

Mu

Miu t

$ {var}

Thay th gi tr ca var.

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 95

http://vietjack.com/unix/index.jsp

$ {var:-word}

$ {var:=word}

$ {var:?message}

$ {var:+word}

Copyright vietjack.com

Nu var l null hoc unset, th word c thay th cho var. Gi tr


ca var khng thay i.
Nu var l null hoc unset, var c thit lp l gi tr caword .
Nu var l null hoc unset, message c in l li. Lnh ny kim tra
xem cc bin c c thit lp ng khng.
Nu var c thit lp, word c thay th cho var. Gi tr
cavar khng thay i.

V d:
Di y l v d minh ha cc trng thi a dng ca trnh thay th trn:
#!/bin/sh

echo $ {var:-"Variable is not set"}


echo "1 - Value of var is $ {var}"

echo $ {var:="Variable is not set"}


echo "2 - Value of var is $ {var}"

unset var
echo $ {var:+"This is default value"}
echo "3 - Value of var is $ var"

var="Prefix"
echo $ {var:+"This is default value"}
echo "4 - Value of var is $ var"

echo $ {var:?"Print this message"}


echo "5 - Value of var is $ {var}"

N s to ra kt qu sau:

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 96

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

Variable is not set


1 - Value of var is
Variable is not set
2 - Value of var is Variable is not set

3 - Value of var is
This is default value
4 - Value of var is Prefix
Prefix
5 - Value of var is Prefix

Unix - Cc k thut trch dn


Cc siu k t trong Unix/Linux
Shell cung cp cc siu k t a dng m c ngha c bit trong khi s dng chng trong bt k
Shell script no v gy ra s gii hn ca mt t tr khi c trch dn.
V d: siu k t ? kt ni vi mt k t n trong khi lit k cc file trong mt th mc v siu k
t * s kt ni nhiu hn mt k t. Di y lit k mt danh sch ca hu ht cc k t c bit
trong shell (cng c gi l siu k t).
* ? [ ] ' " \ $ ; & ( ) | ^ < > new-line space tab

Mt k t c th c trch dn bng cch t trc n vi mt du \.

V d trong Unix/Linux:
Di y l v d ch cch in mt * hoc mt ?:
#!/bin/sh

echo Hello; Word

N s to ra kt qu sau:
Hello
./test.sh: line 2: Word: command not found

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 97

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

shell returned 127

By gi chng ta s dng mt k t c trch dn:


#!/bin/sh

echo Hello\; Word

N s to ra kt qu:
Hello; Word

K hiu $ l mt siu k t, v th n phi c trch dn trnh shell thc hin cc cng vic
c bit lin quan n n:
#!/bin/sh

echo "I have \$1200"

Code trn to ra kt qu sau:


I have $1200

C 4 kiu mu trch dn c chng ti lit k trong bng sau:

Trch dn

Trch dn n

Miu t
Tt c cc k t gia trch dn ny khng cn ngha c bit na vi
shell.
Hu ht cc k t gia trch dn ny khng cn ngha c bit, tr cc
k t sau:

Trch dn kp

\$

\'

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 98

http://vietjack.com/unix/index.jsp

\"

\\

Copyright vietjack.com

Du gch cho

Bt k k t no ng sau du cho ngc \ khng cn ngha c bit

ngc

ca n.

Trch dn ngc

Bt k k t no gia trch dn ngc c shell i x nh l mt

(``)

lnh v c chy.

Cc trch dn n trong Unix/Linux:


Chng ta xem xt mt lnh echo m cha nhiu k t c bit trong shell sau:
echo <-$1500.**>; (update?) [y|n]

t mt du cho ngc (\) trc mi k t c bit l mt vic gy chn ngt v lm cho code
kh c.
echo \<-\$1500.\*\*\>\; \(update\?\) \[y\|n\]

C mt cch d dng trch dn mt nhm ln cc k t. Chng ta t mt trch dn n (`)ti


phn u v cui ca chui:
echo '<-$1500.**>; (update?) [y|n]'

Bt k k t no trong trch dn n c trch dn tng t nh c mt du cho ngc trc


mi k t. V th, by gi mi lnh echo ny hin th mt cch chnh xc.
Nu mt trch dn n xut hin trong mt chui to kt qu u ra, bn khng nn t ton b
chui trong trch dn n, thay vo bn nn t trc chng mt du \ nh sau:
echo 'It\'s Shell Programming'

Trch dn kp trong Unix/Linux


Bn ang c gng chy Shell script sau. Script ny s dng trch dn n:

VAR=ZARA
echo '$VAR owes <-$1500.**>; [ as of (`date +%m/%d`) ]'

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 99

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

N s to ra kt qu sau:
$VAR owes <-$1500.**>; [ as of (`date +%m/%d`) ]

Nhng n khng phi th m bn mun hin th. Nh vy r rng l trch dn n ngn cn trnh
thay th bin. Nu bn mun thay th gi tr ca bin v thc hin cng vic sau du phy nh bn
mong i th khi bn cn t cc lnh ca bn trong trch dn kp nh sau:
VAR=ZARA
echo "$VAR owes <-\$1500.**>; [ as of (`date +%m/%d`) ]"

N s to ra kt qu sau:
ZARA owes <-$1500.**>; [ as of (07/02) ]

Trch dn kp loi b ngha c bit ca tt c k t c bit tr cc trng hp sau:

$ cho trnh thay th tham s

Trch dn ngc cho trnh thay th lnh

\$ th hin bng ch ca k hiu la

\` th hin bng ch ca k hiu trch dn ngc

\" cho php trch dn kp c nhng

\\ cho php k t du gch cho ngc c nhng

Tt c cc dng \k t khc c biu hin bng ngha ch ca n (khng phi c bit)

Bt k k t no trong trch dn n c trch dn nh l mt du cho ngc phn trc mi


k t. V th by gi lnh echo ny hin th chnh xc.
Nu mt trch dn n xut hin trong mt chui kt qu u ra, bn khng nn t ton b
chui trong trch dn n m thay vo bn nn t trc n mt du cho ngc nh sau:
echo 'It\'s Shell Programming'

Trch dn ngc trong Unix/Linux


t bt k lnh shell vo gia cc trch dn ngc th shell s thi hnh lnh .

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 100

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

C php
y l c php n gin t bt k lnh Shell no vo gia trch dn ngc:

V d:
var=`command`

V d:
Sau y chng ti s chy lnh date v gi kt qu trong bin DATA:
DATE=`date`

echo "Current Date: $DATE"

N to ra kt qu l:
Current Date: Thu Jul

2 05:28:45 MST 2009

iu hng IO trong Unix/Linux


Hu ht cc lnh h thng Unix nhn d liu input t terminal ca bn v gi output li cho
terminal ca bn. Mt lnh thng c input ca n t mt a im gi l input tiu chun
(standard input), m xy ra vi terminal ca bn theo mc nh. Theo cch tng t, mt lnh
thng vit output ti u ra tiu chun (standard output), m cng xy ra vi terminal ca bn
theo mc nh.

iu hng li output trong Unix/Linux


output t mt lnh thng c khuynh hng ch cho standard output c th d dng nh hng
ti mt file. Kh nng ny c bit n nh l s iu hng li u ra.
Nu cc k hiu > file c gn ti bt k lnh no th n thng vit u ra ca n ti standard
output, u ra ca lnh s c ghi vo file thay v terminal ca bn.
Chng ta cng kim tra lnh who m s iu hng li ton b u ra ca lnh trong tp users:
$ who > users

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 101

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

Ch rng, khng u ra no xut hin trn terminal. l bi v u ra c iu hng li


t thit b u ra tiu chun mc nh (terminal) vo trong mt file c th. Nu bn kim tra tp
users th khi file s c ni dung y :
$ cat users
oko

tty01

Sep 12 07:30

ai

tty15

Sep 12 13:32

ruth

tty21

Sep 12 10:10

pat

tty24

Sep 12 13:07

steve

tty25

Sep 12 13:03

Nu mt lnh c u ra c iu hng li ti mt file v file cha mt vi d liu, th d


liu s b tht lc. Xem xt v d sau:
$ echo line 1 > users
$ cat users
line 1
$

Bn c th s dng ton t >> gn u ra vo mt file ang tn ti nh sau:


$ echo line 2 >> users
$ cat users
line 1
line 2
$

S iu hng li input trong Unix/Linux


Tng t nh u ra ca lnh, input ca lnh cng c th iu hng li t mt file. Khi k t ln
hn > c s dng cho iu hng input, th k t nh hn < c s dng iu hng li
input ca lnh.
Cc lnh m thng nhn input ca n t input tiu chun c th c input t mt file theo thao tc
ca ngi s dng. V d, tnh ton s lng dng trong mt tp users trn, bn c th chy
lnh nh sau:

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 102

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

$ wc -l users
2 users
$

y n s to ra kt qu l 2 dng. Bn c th tnh ton s dng trong file bi iu hng li


input tiu chun ca lnh wc t tp users.
$ wc -l < users
2
$

Ghi nh rng, c mt s khc nhau trong output bi 2 mu ca lnh wc. Trong trng hp u
tin, tn ca tp users c lit k vi s dng, cn trong trng hp th hai th khng.
Trong trng hp u, wc bit rng n ang c input ca n t tp users. Trong trng hp th
hai, n ch bit rng n ang input ca n t input tiu chun v th n khng hin th tn file.

Here document trong Unix/Linux


Mt here document c s dng iu hng li input vo trong mt shell script hoc chng
trnh tng tc.
Chng ta c th chy mt chng trnh tng tc trong mt shell script m khng cn thao tc ca
ngi s dng cung cp input yu cu cho chng trnh hoc shell script tng tc.
Mu chung cho mt here document l:
command << delimiter
document
delimiter

y, shell phin dch ton t << nh l mt ch lnh c input ti khi n tm thy mt dng
cha gii hn xc nh. Tt c input m trn dng cha gii hn sau c cho tr thnh
input tiu chun ca lnh.
Gii hn ny ni cho shell rng here document thc hin xong. Khng c n, shell tip tc c
input mi mi. Gii hn phi l mt t n m khng cha cc du cch hoc tab.
Di y l input ca lnh wc -l tnh ton tng s dng.

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 103

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

$wc -l << EOF


This is a simple lookup program
for good (and bad) restaurants
in Cape Town.
EOF
3
$

Bn c th s dng here document in nhiu dng m s dng script ca bn nh sau:


#!/bin/sh

cat << EOF


This is a simple lookup program
for good (and bad) restaurants
in Cape Town.
EOF

Code ny s to ra kt qu sau:
This is a simple lookup program
for good (and bad) restaurants
in Cape Town.

Script sau chy mt khu vc vi B son vn bn vi v lu gi input vo trong tp test.txt.


#!/bin/sh

filename=test.txt
vi $filename <<EndOfCommands
i
This file was created automatically from
a shell script
^[
ZZ
EndOfCommands

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 104

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

Nu bn chy script ny vi vim m hot ng tng t vi, th sau bn s thy output ging nh
sau:
$ sh test.sh
Vim: Warning: Input is not from a terminal
$

Sau khi chy script, bn s thy u ra sau c thm vo file test.txt.


$ cat test.txt
This file was created automatically from
a shell script
$

Loi b output trong Unix/Linux


i khi bn s cn chy mt lnh, nhng bn khng mun output hin th trn mn hnh. Trong
nhng trng hp nh vy, bn c th loi b u ra bng iu hng li n vo trong tp
/dev/null:
$ command > /dev/null

y, command l tn ca lnh bn mun chy. Tp /dev/null l mt file c bit m t ng loi


b tt c input ca n.
loi b c u ra ca mt lnh v u ra b li ca lnh, bn s dng s iu hng li tiu
chun iu hng li STDERR ti STDOUT.
$ command > /dev/null 2>&1

y 2 i din cho STDERR v 1 i din cho STDOUT. Bn c th hin th mt thng bo trn


STDERR bng iu hng li STDIN thnh STDERR nh sau:
$ echo message 1>&2

Cc lnh iu hng li trong Unix/Linux


Di y l danh sch y cc lnh m bn c th s dng cho iu hng li:

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 105

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

Lnh

Miu t

pgm > file

u ra ca pgm c iu hng ti file.

pgm < file

Chng trnh pgm c input t file.

pgm >> file

u ra ca pgm c gn ti file.

n > file

u ra t stream vi du hiu n c iu hng ti file.

n >> file

u ra t stream vi du hiu n c gn ti file.

n >& m

Sp nhp u ra t stream n vi stream m.

n <& m

Sp nhp input t stream n vi stream m.

<< tag

input tiu chun xut pht t y qua th tip theo ti phn u ca dng.

Nhn u ra t mt chng trnh hoc mt tin trnh v gi n cho


chng trnh khc..

Ghi ch rng du hiu file 0 thng l input tiu chun (STDIN), 1 thng l u ra tiu chun
(STDOUT), v 2 thng l u ra li tiu chun (STAERR).

Cc hm Shell
Cc hm cho php bn tinh gin mt tnh nng tng th ca mt script vo mt phn nh v logic
hn m c th thc hin cng mt chc nng bt c khi no n c cn thng qua vic gi hm.
S dng cc hm thc hin cc cng vic mang tnh lp l mt cch thng minh to tnh s
dng li c ca code. Tnh s dng li ca code l mt phn quan trng ca cc quy tc
chng trnh hng i tng hin i.
Cc hm Shell l tng t nh cc chng trnh con, phng thc v cc hm ca cc chng
trnh khc.

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 106

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

To cc hm trong Unix/Linux
cng b mt hm, n gin bn s dng c php sau:
function_name () {
list of commands
}

Tn hm ca bn l function_name, v n l nhng g m bn s s dng gi n t bt c


u trong script ca bn. Tn hm phi c theo sau bi du ngoc n, m c theo sau bi
mt danh sch cc lnh bao quanh trong du ngoc m ({}).

V d:
Sau y l v d n gin ca vic s dng hm:
#!/bin/sh

# Define your function here


Hello () {
echo "Hello World"
}

# Invoke your function


Hello

Khi bn chy script trn, n s to ra kt qu sau:


$./test.sh
Hello World
$

Truyn cc tham s cho mt hm trong Unix/Linux


Bn c th nh ngha mt hm m s nhn cc tham s trong khi gi cc hm . Nhng tham s
ny s c th c i din bi $1, $2 v .
Di y l v d m chng ta truyn hai tham s Zara v Ali v sau chng ta bt v in cc
tham s ny trong hm.

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 107

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

#!/bin/sh

# Define your function here


Hello () {
echo "Hello World $1 $2"
}

# Invoke your function


Hello Zara Ali

Code ny s to ra kt qu sau:
$./test.sh
Hello World Zara Ali
$

Tr li cc gi tr t mt hm trong Unix/Linux
Nu bn chy mt lnh exit t bn trong mt hm, hiu qu ca n l khng ch kt thc s vn
hnh ca hm m cn ca chng trnh Shell.
Nu bn thay cho mun kt thc s vn hnh ca hm, th c cch thot khi mt hm nh
ngha.
Da trn tnh hung bn c th tr li bt c gi tr no t hm ca bn bng cch s dng
lnh return m c c php nh sau:
return code

y code c th l bt c ci g m bn chn, nhng r rng l bn nn chn mt ci g m


c ngha hoc hu ch trong bi cnh tng th script ca bn.

V d:
Hm di y tr li gi tr 1.
#!/bin/sh

# Define your function here

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 108

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

Hello () {
echo "Hello World $1 $2"
return 10
}

# Invoke your function


Hello Zara Ali

# Capture value returnd by last command


ret=$?

echo "Return value is $ret"

Code trn to ra kt qu sau:


$./test.sh
Hello World Zara Ali
Return value is 10
$

Cc hm c lng vo nhau trong Unix/Linux


Mt trong nhng c im ng quan tm ca cc hm l chng c th l chng c th gi chnh
hm hoc gi cc hm khc. Mt hm c th gi chnh n c bit n nh hm quy.
Di y l v d gii thch s lng vo nhau ca hai hm.
#!/bin/sh

# Calling one function from another


number_one () {
echo "This is the first function speaking..."
number_two
}

number_two () {

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 109

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

echo "This is now the second function speaking..."


}

# Calling function one.


number_one

N s to ra kt qu sau:
This is the first function speaking...
This is now the second function speaking...

Gi hm t dng nhc lnh trong Unix/Linux


Bn c th t nh ngha ca cc hm thng c s dng bn trong mt .profile ca bn
m chng c sn mi khi bn ng nhp v bn c th s dng chng bt c khi no ti dng
nhc lnh.
Bn cng c th chn cch to nhm cc nh ngha hm ny vo trong mt file, gi ltest.sh, v
sau chy file trn Shell hin ti bng cch g t bn phm.
$. test.sh

iu ny c th thc hin c khi cc hm trong file ny c th cho php c v n c xc


nh trong Shell hin ti nh sau:
$ number_one
This is the first function speaking...
This is now the second function speaking...
$

g b mt nh ngha hm t Shell hin ti, bn c th s dng lnh unset vi chc nng.f. N


ging vi lnh m bn s dng g b nh ngha mt bin t Shell.
$unset .f function_name

ManPage Help trong Unix


Tt c cc lnh Unix i km vi cc chc nng ty v bt buc. N l rt thng thng khi bn
qun c php y ca nhng lnh ny.

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 110

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

Bi v khng ai c th nh mi lnh Unix v tt c cc chc nng i km vi n, v gip bn


iu ny, Unix ngay t khi mi ra i c mt dch v trc tuyn sn sng gip bn.
Phin bn Unix ca cc file tr gip c gi l Man Pages. Nu bn bit bt c tn lnh no
nhng m bn khng bit cch s dng ca n, th Man Pages s lun sn sng gip bn n
tng chi tit.

C php trong Unix/Linux


Di y l c php n gin nhn c chi tit v bt c lnh no trong Unix trong khi ang
lm vic vi h thng ny.
$man command

V d
By gi bn tng tng bt c lnh no m bn mun nhn c s gip . Gi s bn mun
bit v lnh pwd, th sau n gin bn ch cn s dng lnh sau:
$man pwd

Lnh trn s m mt s tr gip cho bn m s cung cp cho bn cc thng tin y v


lnh pwd. Bn th thc hnh n ti dng nhc lnh nhn c nhiu chi tit hn v lnh ny.
Bn c th nhn c thng tin chi tit v lnh man bng cch s dng lnh sau:
$man man

Chi tit v Man Page trong Unix/Linux


Man Page thng c phn thnh cc khu vc, m thng thay i bi quyn ca tc gi Man
Page. Di y lit k mt s khu vc ph bin hn.

Khu vc

Miu t

NAME

Tn ca lnh

SYNOPSIS

Cch s dng chung ca cc tham s ca lnh

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 111

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

DESCRIPTION Miu t chung v lnh v nhng g n lm


Miu t tt c cc i s hoc chc nng i km ca lnh

OPTIONS

Lit k cc lnh khc m trc tip lin quan ti lnh trong Man Page hoc

SEE ALSO

ging vi tnh nng ca n.


Gii thch tt c cc vn c bit n hoc cc bug m tn ti vi lnh

BUGS

hoc u ra ca n.
Cc v d v cch s dng ph bin m cung cp cho ngi c gi v

EXAMPLES

cch m lnh c s dng.


Tc gi ca Man Page/lnh.

AUTHORS

Cui cng, chng ti mun ni rng, Man Page l mt ngun quan trng v l con ng u tin
bn chn khi tm kim thng tin v cc lnh hoc cc file trong h thng Unix.

Cc lnh shell hu ch trong Unix/Linux


By gi bn bit cch thc hnh, theo link di y l chng hng dn v Cc lnh
shell hu ch s cung cp cho bn mt danh sch cc lnh quan trng v thng c s dng
trong Unix shell.
Nu bn khng bit cch s dng bt c lnh no, bn s dng Manpage nhn c thng tin
chi tit v lnh .
y l danh sch Unix Shell - Cc lnh hu ch

Regular Expression trong Unix


Mt Regular Expression l mt chui m c th s dng din t cc dy khc nhau (cch sp
xp) ca cc k t. Regular Expression thng c s dng bi cc lnh Unix khc nhau, bao
gm ed, sed, awk, grep v min gii hn vi.
Chng ny s hng dn cc bn cch s dng Regular Expression cng vi sed.

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 112

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

y sed, l vit tt ca stream editor l mt b son iu hng chui m c to c quyn


cho cc script ring. V th tt c nhng d liu u vo m bn nhp n thng qua t STDOUT v
n khng thay i file u vo.

Gi sed trong Unix/Linux


Trc khi chng ta bt u, bo m rng bn c mt bn sao ni b ca tp /etc/passwd lm
vic vi sed.
Nh cp trc , sed c th c gi bng cch gi d liu thng qua mt pipe ti n nh
sau:
$ cat /etc/passwd | sed
Usage: sed [OPTION]... {script-other-script} [input-file]...

-n, --quiet, --silent


suppress automatic printing of pattern space
-e script, --expression=script
...............................

Lnh cat ni dung ca /etc/passwd ti sed thng qua pipe trong khng gian mu ca sed.
Khng gian mu l khu vc cng vic bn trong m c sed s dng thc hin cng vic ca
n.

C php chung ca sed trong Unix/Linux


Di y l c php chung cho sed:
/pattern/action

y, pattern l mt Regular Expression, m action l mt trong cc lnh c cung cp trong


bng sau. Nu pattern b b qua, th action c thc hin cho mi dng nh chng ta nhn
trn.
K t du gch cho m bao quanh pattern c yu cu bi v chng c s dng nh l du
gii hn.

Dy

Miu t

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 113

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

In dng

Xa dng

s/pattern1/pattern2/

Thay th s kin ca pattern 1 bng s kin trong pattern 2.

Xa tt c cc dng vi sed
Gi sed thm ln na, nhng ln ny ni cho sed s dng lnh chnh sa xa cc dng, biu
th bng k t n d:
$ cat /etc/passwd | sed 'd'
$

Thay v gi sed bng cch gi mt file ti n thng qua mt pipe, bn c th ch dn sed c d


liu t mt file, nh trong v d sau.
Lnh sau thc hin chnh xc cng vic tng t nh phn trn nhc n. Bn th thc hnh
n m khng s dng lnh cat.
$ sed -e 'd' /etc/passwd
$

S nh v SED trong Unix/Linux


Sed cng hiu mt s th g c gi l cc a ch. a ch hoc l v tr ring trong mt file
hoc mt dy m mt lnh chnh sa ring nn c p dng. Khi sed bt gp ci g khng
c nh v, n thc hin cc hot ng ca n trn mi dng trong file.
Lnh di y thm mt a ch c bn ti lnh sed m bn ang s dng:
$ cat /etc/passwd | sed '1d' |more
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/bin/sh
man:x:6:12:man:/var/cache/man:/bin/sh

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 114

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

mail:x:8:8:mail:/var/mail:/bin/sh
news:x:9:9:news:/var/spool/news:/bin/sh
backup:x:34:34:backup:/var/backups:/bin/sh
$

Bn ch rng number 1 c thm trc lnh chnh sa xa. iu ny ni cho sed thc hin
lnh chnh sa trn dng u tin ca file. Trong v d ny, sed s xa dng u tin ca
/etc/passwd v in phn cn li ca file.

Cc dy a ch ca sed trong Unix/Linux


Vy nu bn mun d b nhiu hn mt dng t mt file th nh th no? Bn c th xc nh mt
dy a ch vi sed nh sau:
$ cat /etc/passwd | sed '1, 5d' |more
games:x:5:60:games:/usr/games:/bin/sh
man:x:6:12:man:/var/cache/man:/bin/sh
mail:x:8:8:mail:/var/mail:/bin/sh
news:x:9:9:news:/var/spool/news:/bin/sh
backup:x:34:34:backup:/var/backups:/bin/sh
$

Lnh trn s p dng trn tt c cc dng t dng 1 n dng 5. V th n xa 5 dng u tin.


Bn th thc hnh theo cc dy c cung cp di y:

Dy

Miu t

'4,10d'

Dng bt u t 4 n 10 b xa.

'10,4d'

Ch dng th 10 b xa, bi v sed khng lm vic theo hng nghch li.

'4,+5d'

'2,5!d'

N s kt ni dng 4 trong file, xa dng , tip tc xa 5 dng tip theo, v sau


dng vic xa ny v in phn cn li ca file.
N s xa mi th tr t bt u dng 2 ti dng 5.

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 115

http://vietjack.com/unix/index.jsp

'1~3d'

'2~2d'

Copyright vietjack.com

N s xa dng u tin, bc qua 3 dng tip theo, v sau xa dng th 4.


Sed tip tc p dng mu xa ny ti cui cng ca file.
N ni cho sed xa dng th 2, bc qua dng tip theo, xa dng tip, v lp li
bc trn ti khi file c c ht.

'4,10p'

Bt u t dng th 4 n dng th 10 c in.

'4,d'

y l mt c php li.

',10d'

y l mt c php li.

Ghi ch: Trong khi s dng hnh ng p, bn nn s dng chc nng -n trnh lp li vic in
dng. Bn th kim tra s khc nhau gia hai lnh sau:
$ cat /etc/passwd | sed -n '1,3p'

Kim tra lnh trn m khng s dng chc nng -n nh sau:


$ cat /etc/passwd | sed '1,3p'

Lnh thay th (substitution command) trong Unix/Linux


Lnh thay th, c biu din bi s, s thay th bt k chui no m bn xc nh vi bt c chui
khc.
thay th mt chui ny vi chui khc, bn cn c mt vi cch ni cho sed ni chui u
tin ca bn kt thc v chui thay th bt u. iu ny theo truyn thng c thc hin bi
vic ngn cch 2 chui vi du gch cho.
Lnh sau thay th s kin u tin trn mt dng ca chui root vi chui amrood.
$ cat /etc/passwd | sed 's/root/amrood/'
amrood:x:0:0:root user:/root:/bin/sh
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
..........................

N l quan trng ghi nh rng sed ch thay th s kin u tin trn mt dng. Nu trn chui
root din ra nhiu hn mt dng th ch dng u tin s c thay th.

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 116

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

ni cho sed thc hin thay th ton b, thm k t g ti phn cui ca lnh nh sau:
$ cat /etc/passwd | sed 's/root/amrood/g'
amrood:x:0:0:amrood user:/amrood:/bin/sh
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
...........................

Cc c hiu thay th (Substitution Flag) trong


Unix/Linux
C mt s cch s dng Flag hu dng m c th c s dng thm vo du hiu g, v bn
c th xc nh n nhiu hn mt ln.

Flag

Miu t

Thay th tt c cc kt ni (chui thay th), khng ch vi kt ni u tin.

NUMBER

Thay th ch kt ni th NUMBER.

Nu s thay th c to ra, in khng gian mu.

w FILENAME Nu s thay th c to ra, vit kt qu ti FILENAME.


I hoc i

To s kt ni trong s phn bit gia kiu ch (ch hoa v thng).


Trong ch x l thng thng ca cc k t Regular Expression c bit ^

M hoc m

v $, c hiu ny lm cho ^ kt ni vi mt chui trng sau mt dng mi v $


kt ni vi mt chui trng trc mt dng mi.

S dng mt chui thay th trong Unix/Linux


Bn c th t tm thy rng phi thc hin mt s thay th trn mt chui m bao gm k t du
gch cho. Trong trng hp ny, bn c th xc nh mt ton t khc bng cch cung cp k t
ch nh sau ch ci s:

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 117

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

$ cat /etc/passwd | sed 's:/root:/amrood:g'


amrood:x:0:0:amrood user:/amrood:/bin/sh
daemon:x:1:1:daemon:/usr/sbin:/bin/sh

Trong v d trn chng ta s dng du hiu gii hn : as thay v du gch cho / bi v chng ta
ang c gng tm kim /root thay v mt root n.

i v tr vi khong trng rng trong Unix/Linux


S dng chui thay th trng xa chui root t tp /etc/passwd:
$ cat /etc/passwd | sed 's/root//g'
:x:0:0::/:/bin/sh
daemon:x:1:1:daemon:/usr/sbin:/bin/sh

nh v s thay th trong Unix/Linux


Nu bn mun thay th chui sh vi chui quiet ch trn dng th 10, bn c th xc nh n nh
sau:
$ cat /etc/passwd | sed '10s/sh/quiet/g'
root:x:0:0:root user:/root:/bin/sh
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/bin/sh
man:x:6:12:man:/var/cache/man:/bin/sh
mail:x:8:8:mail:/var/mail:/bin/sh
news:x:9:9:news:/var/spool/news:/bin/sh
backup:x:34:34:backup:/var/backups:/bin/quiet

Theo cch tng t, thay i mt dy a ch, bn c th thc hin cng vic ging nh sau:
$ cat /etc/passwd | sed '1,5s/sh/quiet/g'
root:x:0:0:root user:/root:/bin/quiet
daemon:x:1:1:daemon:/usr/sbin:/bin/quiet
bin:x:2:2:bin:/bin:/bin/quiet

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 118

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

sys:x:3:3:sys:/dev:/bin/quiet
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/bin/sh
man:x:6:12:man:/var/cache/man:/bin/sh
mail:x:8:8:mail:/var/mail:/bin/sh
news:x:9:9:news:/var/spool/news:/bin/sh
backup:x:34:34:backup:/var/backups:/bin/sh

Nh bn c th thy c t kt qu u ra, 5 dng u tin ca chui sh c thay i bng


chui quiet, nhng cc dng cn li th khng c ng chm n.

Lnh kt ni trong Unix/Linux


Bn s s dng chc nng p song song vi chc nng -n in tt c cc dng kt ni nh sau:
$ cat testing | sed -n '/root/p'
root:x:0:0:root user:/root:/bin/sh
[root@ip-72-167-112-17 amrood]# vi testing
root:x:0:0:root user:/root:/bin/sh
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/bin/sh
man:x:6:12:man:/var/cache/man:/bin/sh
mail:x:8:8:mail:/var/mail:/bin/sh
news:x:9:9:news:/var/spool/news:/bin/sh
backup:x:34:34:backup:/var/backups:/bin/sh

S dng Regular Expression trong Unix/Linux


Trong khi kt ni vi mu, bn c th s dng Regular Expression m cung cp nhiu tnh linh
ng hn cho bn.
Kim tra v d sau m kt ni tt c cc dng bt u vi daemon v sau xa chng:
$ cat testing | sed '/^daemon/d'

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 119

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

root:x:0:0:root user:/root:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/bin/sh
man:x:6:12:man:/var/cache/man:/bin/sh
mail:x:8:8:mail:/var/mail:/bin/sh
news:x:9:9:news:/var/spool/news:/bin/sh
backup:x:34:34:backup:/var/backups:/bin/sh

Theo sau l v d m s xa tt c cc dng kt thc vi sh:


$ cat testing | sed '/sh$/d'
sync:x:4:65534:sync:/bin:/bin/sync

Bng di lit k 4 k t c bit m rt hu ch trong cc Regular Expression:

K t

Miu t

Kt ni vi phn bt u ca cc dng.

Kt ni vi phn cui ca cc dng.

Kt ni vi bt k k t n no.

Kt ni vi 0 hoc nhiu hn s kin ca k t trc.

[chars]

Kt ni vi bt k k t no c cho trong chars (l mt cch b tr sp xp cc


k t). Bn c th s dng k t - ch mt dy ca k t.

Cc k t kt ni trong Unix/Linux
Bn nhn vo bng di lit k mt s Expression khc m gii thch cho cch s dng ca cc
siu k t. V d, cc mu sau:

Expression

Miu t

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 120

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

/a.c/

Kt ni cc dng m cha cc chui nh a+c, a-c, abc, match v a3c.

/a*c/

Kt ni vi cng cc chui ging vi chui cho nh ace, yacc, v arctic.

/[tT]he/

Kt ni vi chui The v the.

/^$/

Kt ni vi cc dng trng.

/^.*$/

Kt ni vi mt dng ton b bt k dng nh th no.

/ */

Kt ni vi mt hoc nhiu khong trng.

/^$/

Kt ni vi cc dng trng.

Di y l bng lit k mt s b b tr k t m thng c s dng:

Thit lp

Miu t

[a-z]

Kt ni vi mt ch ci n thng.

[A-Z]

Kt ni vi mt ch ci n hoa.

[a-zA-Z]

Kt ni vi mt ch ci n.

[0-9]

Kt ni vi mt s n.

[a-zA-Z0-9]

Kt ni vi mt s hoc mt ch ci n.

Cc t kha lp k t trong Unix/Linux


Mt s t kha c bit thng c sn cho cc Regular Expression, c bit cc tin ch GNU m
s dng cc Regular Expression. iu ny l rt hu dng cho cc Regular Expression Sed khi
chng n gin ha cc cng vic v nng cao kh nng c ca n.
V d, cc k t t a n z cng nh cc k t t A n Z y nhim mt lp k t l cc t kha
[[:alpha:]]

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 121

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

S dng t kha lp k t ch ci, lnh ny ch in nhng dng trong tp /etc/syslog.conf m bt


u vi mt k t ch ci.
$ cat /etc/syslog.conf | sed -n '/^[[:alpha:]]/p'
authpriv.*

/var/log/secure

mail.*

-/var/log/maillog

cron.*

/var/log/cron

uucp,news.crit

/var/log/spooler

local7.*

/var/log/boot.log

Bng sau l mt danh sch y ca cc t kha lp k t trong GNU sed.

Lp k t

Miu t

[[:alnum:]]

Thuc ch ci-s [a-z A-Z 0-9]

[[:alpha:]]

Bng ch ci [a-z A-Z]

[[:blank:]]

Cc k t khong trng (spaces hoc tabs)

[[:cntrl:]]

Cc k t iu khin

[[:digit:]]

Cc s [0-9]

[[:graph:]]

Bt k k t nhn thy no (tr cc khong trng trng)

[[:lower:]]

Cc k t vit thng [a-z]

[[:print:]]

Cc k t c th in c (cc k t khng phi k t iu khin)

[[:punct:]]

Cc k t du chm cu

[[:space:]]

Khong trng trng

[[:upper:]]

Cc k t vit hoa [A-Z]

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 122

http://vietjack.com/unix/index.jsp

[[:xdigit:]]

Copyright vietjack.com

Cc k s thp lc phn [0-9 a-f A-F]

Tham chiu & trong Unix/Linux


Siu k t & trong sed biu din ni dung ca mu m c kt ni. V d, gi s bn c mt tp
gi l phone.txt cha y cc s in thoi, nh sau:
5555551212
5555551213
5555551214
6665551215
6665551216
7775551217

Bn mun to mt code khu vc (3 k s u tin) c bao quanh bi du ngoc n d dng


hn khi c. thc hin iu ny, bn c th s dng k t thay th &, ging nh:
$ sed -e 's/^[[:digit:]][[:digit:]][[:digit:]]/(&)/g' phone.txt
(555)5551212
(555)5551213
(555)5551214
(666)5551215
(666)5551216
(777)5551217

y trong phn mu bn ang kt ni 3 k s u tin, v sau s dng & bn ang i ch


cho 3 k s ny vi du ngoc n bao quanh.

S dng nhiu lnh sed trong Unix/Linux


Bn c th s dng nhiu lnh sed trong mt lnh sed n nh sau:
$ sed -e 'command1' -e 'command2' ... -e 'commandN' files

Ti y, command1 ti commandN l cc kiu lnh sed c bn lun trn. Nhng lnh ny


c p dng ti mi dng trong mt danh sch cc file c cung cp bi cc file.
S dng k thut tng t, chng ta c th vit v d s in thoi trn nh sau:

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 123

http://vietjack.com/unix/index.jsp
$ sed -e 's/^[[:digit:]]\{3\}/(&)/g'

Copyright vietjack.com
\

-e 's/)[[:digit:]]\{3\}/&-/g' phone.txt
(555)555-1212
(555)555-1213
(555)555-1214
(666)555-1215
(666)555-1216
(777)555-1217

Ghi ch: Trong v d trn, thay v lp li cc t kha lp k t [[:digit:]] 3 ln, bn i n vi \{3\},


m c ngha l kt ni Regular Expression trc 3 ln. Ti y ti s dng \ xung dng,
bn nn g b n trc khi chy lnh ny.

Tham chiu ngc trong Unix/Linux


Siu k t & l hu ch, nhng hu ch hn l kh nng nh ngha cc khu vc c th trong mt
Regular Expression bn c th tham chiu chng trong cc chui i v tr. Bng vic nh ngha
cc phn c th ca mt Regular Expression, sau bn c th xem li nhng phn ny vi mt
k t tham chiu c bit.
tham chiu ngc, u tin bn phi nh ngha mt khu vc v sau xem li khu vc .
nh ngha mt khu vc, bn chn k t du ngoc n trong du cho ngc quanh mi khu vc
bn quan tm. Khu vc u tin m bn bao quanh vi du cho ngc sau c tham chiu
bi \1, khu vc th hai bi \2, v tip tc.
Gi s phone.txt c cc s liu sau:
(555)555-1212
(555)555-1213
(555)555-1214
(666)555-1215
(666)555-1216
(777)555-1217

By gi bn th lnh sau:
$ cat phone.txt | sed 's/\(.*)\)\(.*-\)\(.*$\)/Area \

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 124

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

code: \1 Second: \2 Third: \3/'


Area code: (555) Second: 555- Third: 1212
Area code: (555) Second: 555- Third: 1213
Area code: (555) Second: 555- Third: 1214
Area code: (666) Second: 555- Third: 1215
Area code: (666) Second: 555- Third: 1216
Area code: (777) Second: 555- Third: 1217

Ghi ch:Trong v d trn, mi Regular Expression bn trong du ngoc n s c tham chiu


ngc bi \1, \2, . Ti y, ti s dng \ xung dng, bn nn g b chng trc khi chy
lnh.

C bn v h thng File trong Unix


Mt h thng file l mt tp hp logic ca cc file trn mt vng phn hoch (partition) hoc mt
a. Mt vng phn hoch l mt ni cha thng tin v c th t hp thnh mt a cng nu
mun.
a cng ca bn c th c cc vng phn hoch a dng m thng ch cha mt h thng file,
nh mt h thng file /home.
Mt h thng file mt vng phn hoch cho php duy tr v qun l cc h thng file khc nhau mt
cch logic.
Mi th trong Unix c xem xt nh l mt file, bao gm cc thit b vt l nh DVD-ROMs, USB,
a mm, .

Cu trc th mc trong Unix/Linux


Unix s dng mt cu trc h thng file c th bc, m ging mt cu trc cy t trn xung di,
vi root (/) ti c s ca h thng file v tt c cc th mc khc tri ra t .
Mt h thng file l mt tp hp ca cc file v th mc m c cc c tnh sau:

N c mt th mc gc (/) m cha cc file v th mc khc.

Mi file v th mc c xc nh duy nht bi tn ca n, th mc m trong n c tr,


v mt s nhn din duy nht, c gi theo cch c trng l inode.

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 125

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

Theo quy c, th mc gc c s inode l 2 v th mc lost+found c s inode l 3. S


inode 0 v 1 khng c s dng. Cc s inode c th c gi bi trnh xc nh trong
chc nng -i ca lnh ls.

N c c tnh khc na l t cha. Khng c s ph thuc gia mt h thng file ny vi


mt h thng file khc.

Cc th mc c cc mc ch ring v thng gi cc kiu thng tin ging nhau vic t v tr


cc file d dng. Di y l cc th mc m tn ti trn cc phin bn ln ca Unix.

Th
mc

Miu t

N l th mc chnh m ch cha cc th mc cn thit cp cao nht trong cu


trc file.

/bin

V tr ny t cc file c th chy c. Chng c sn cho mi ngi dng.

/dev

y l cc thit b iu khin.
Cc lnh th mc Supervisors, cc file nh cu hnh, cc file nh cu hnh a,

/etc

danh sch ngi dng hp l, ethernet, host, l ni gi cc thng ip nghim


trng.

/lib

Cha cc file th vin c chia s v i khi cc tp lin quan n Kernel.

/boot

Cha cc file khi ng h thng (boot).

/home

Cha th mc chnh cho cc ngi s dng v cc ti khon khc.

/mnt

S dng gn kt (mount) cc h thng file tm thi, nh cdroom v a mm .

/proc

Cha tt c cc tin trnh c nh du nh mt file bi s tin trnh hoc thng


tin khc m l ng lc ca h thng.

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 126

http://vietjack.com/unix/index.jsp

/tmp

Copyright vietjack.com

Gi cc file tm thi c s dng gia qu trnh khi ng (boot) h thng.


c s dng cho cc mc ch hn hp, hoc c th c s dng bi nhiu

/usr

ngi s dng. Bao gm cc lnh v hnh chnh, cc file c chia s, cc file th


vin, v cc ci khc.

/var

/sbin

/kernel

Mt th mc c th, cha cc file bin di nh cc file ng nhp v in v bt k


kiu khc ca file m c th cha mt s lng bin ca d liu.
Cha cc file (c th chy) nh phn, thng cho qun l h thng. V d nh cc
tin ch fdisk v ifconfig.
Cha cc tp kernel.

iu hng h thng file trong Unix/Linux


By gi bn hiu cc c s ca h thng file, bn c th bt u iu hng file bn cn. Bng
di l cc lnh bn s s dng iu hng h thng.

Lnh

Miu t

cat filename

Hin th mt tn file.

cd dirname

Di chuyn bn ti th mc c xc nh.

cp file1 file2

Sao chp mt file/th mc ti v tr c xc nh.

file filename

Nhn din kiu file (nh phn, vn bn, ).

find filename dir

Tm mt file/th mc.

head filename

Ch phn bt u ca mt file.

less filename

Trnh duyt thng qua mt file t cui hoc t u.

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 127

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

ls dirname

Ch ni dung ca th mc c xc nh.

mkdir dirname

To mt th mc c nh trc.

more filename

Trnh duyt thng qua mt file t u ti cui.

mv file1 file2

Di chuyn v tr hoc t li tn ca mt file/th mc.

pwd

Ch th mc hin ti m ngi s dng hin ti ang .

rm filename

G b mt file.

rmdir dirname

G b mt th mc.

tail filename

Ch phn cui ca mt file.


To mt file trng hoc sa i cc thuc tnh ca mt file.s ang tn

touch filename

ti.

whereis filename

Ch v tr ca mt file.

which filename

Ch v tr ca mt file nu n trong PATH ca bn.

Bn c th s dng Trang tr gip (Manpage Help) kim tra c php y cho mi lnh
c cp y.

Lnh df trong Unix/Linux


Cch u tin qun l khng gian vng phn hoch l vi lnh df (vit tt ca disk free).
Lnh df -k hin th khng gian a s dng trong kilobyte, nh hin th di y:
$df -k
Filesystem

1K-blocks

Used

/dev/vzfs

10485760

7836644

2649116

/devices

Available Use% Mounted on


75% /
0% /devices

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 128

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

Mt s cc th mc, nh /devices, ch 0 kilobyte c s dng. Nhng file ny l nhng h thng


file c bit, v mc d chng c tr trn a di du gch cho, bi chnh chng khng chim
dng khng gian ca a.
output ca df -k thng ging trn tt c cc h thng Unix. Di y lit k nhng th m n bao
gm:

Ct

Miu t

Filesystem

Tn h thng file.

kbytes

Tng s kilo byte c sn trn phng tin lu tr

used

Tng s kilo byte c s dng (bi file).

avail

Tng s kilo byte c sn cho s dng (cn li cha c s dng).

capacity

Phn trm ca tng s khng gian c s dng bi cc file.

Mounted on

H thng file c gn kt trn ci g.

Bn c th s dng chc nng -h (vit tt ca human readable) hin th output trong mt nh


dng ch kch c bng li ch gii theo cch d hiu nht.

Lnh du trong Unix/Linux


Lnh du (vit tt ca disk usage) cho bn kh nng xc nh cc th mc ch s s dng
khng gian trn a trn mt th mc c th.
Lnh ny hu ch nu bn mun xc nh phn khng gian c s dng cho mt th mc c th.
Lnh sau s hin th s khi m mi th mc chim dng. Mt khi n c th l 512 byte hoc 1
kilo byte ph thuc vo h thng ca bn.
$du /etc
10

/etc/cron.d

126

/etc/default

/etc/dfs

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 129

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

...
$

Chc nng -h to output bn d dng hn nhn thc, l gii.


$du -h /etc
5k

/etc/cron.d

63k

/etc/default

3k

/etc/dfs

...
$

Gn kt (Mounting) h thng file trong Unix/Linux


Mt h thng file phi c gn kt c th c s dng bi h thng. quan st ci g hin
ti c gn kt (c sn s dng) trn h thng ca bn, s dng lnh sau:
$ mount
/dev/vzfs on / type reiserfs (rw,usrquota,grpquota)
proc on /proc type proc (rw,nodiratime)
devpts on /dev/pts type devpts (rw)
$

Th mc /mnt, theo quy c, l ni nhng s gn kt tm thi (nh cc a CD-ROM, cc a


mm) c t ti . Nu bn cn gn kt mt h thng file, bn c th s dng
lnh mount vi c php sau:
mount -t file_system_type device_to_mount directory_to_mount_to

V d, nu bn mun gn kt mt CD-ROM ti th mc /mnt/cdrom, bn c th nhp t bn phm


nh sau:
$ mount -t iso9660 /dev/cdrom /mnt/cdrom

iu ny gi s rng thit b CD-ROM ca bn c gi /dev/cdrom v bn mun kt ni n ti


/mnt/cdrom. Bn tham kho Man Page c thng tin c th hn hoc g mount -h t dng lnh
cho cc thng tin gip .

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 130

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

Sau khi gn kt, bn c th s dng lnh cd iu hng h thng file c mi nht thng qua
im kt ni m bn va mi to ra.

B gn kt (unmounting) h thng file trong Unix/Linux


b gn kt h thng file t h thng ca bn, s dng lnh unmount bng xc nh im kt
ni hoc thit b.
V d, g b cdrom, s dng lnh sau:
$ umount /dev/cdrom

Lnh mount cho bn kh nng truy cp vo h thng file, nhng trn cc h thng Unix hin i
nht, chc nng t ng kt ni thc hin ngm tin trnh ny cho ngi s dng v khng yu
cu s can thip no.

Cc hn ngch (quotas) ngi dng v nhm trong


Unix/Linux
Cc hn ngch ngi dng v nhm cung cp cc k thut m bi n lng khng gian c s
dng bi mt ngi dng n hoc tt c ngi dng trong mt nhm c th c th c gii hn
c xc nh bi ngi qun l.
Cc hn ngch hot ng thng qua 2 s gii hn m cho php ngi dng thc hin mt s hnh
ng trong lng khng gian hoc s lng khi ca a m ngi qun l xc nh gii hn
cho trc .

Gii hn mm (Soft Limit): Nu ngi dng s dng vt qu lng gii hn, yu cu


thm phn khng gian s dng, s c cp thm mt s khi na.

Gii hn cng (Hard Limit): Khi ngi dng s dng chm ti mc gii hn, yu cu
thm cho phn khng gian s dng na, s khng c khi no c thm.

Di y l cc lnh m c s dng qun l hn ngch:

Lnh

Miu t

quota

Hin th cch s dng a v gii hn cho mt ngi s dng trong nhm.

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 131

http://vietjack.com/unix/index.jsp

edquota

quotacheck

setquota

quotaon

quotaoff

repquota

Copyright vietjack.com

y l b son hn ngch. Hn ngch ngi dng hoc nhm c th


c chnh sa bng cch s dng lnh ny.
Qut h thng file v cch s dng a, to, kim tra v sa cha cc file
hn ngch.
N cng l mt lnh trong b son hn ngch.
iu ny tuyn b ti h thng m hn ngch a nn c cho php bt
trn mt hoc nhiu h thng file.
iu ny tuyn b ti h thng m hn ngch a nn c cho php tt
trn mt hoc nhiu h thng file
In cch s dng ca a v cc hn ngch cho h thng file c xc
nh.

Bn c th s dng Trang tr gip (Manpage Help) kim tra c php y cho mi lnh
c cp trn y.

Qun l ngi dng trong Unix


C 3 kiu ti khon trn mt h thng Unix:
1. Ti khon gc (Root account): N cn c gi l superuser v s c s iu khin
tuyt i ti h thng. Mt superuser c th chy bt c lnh no m khng b hn ch.
Ngi s dng ny c th c v nh ngi qun l h thng.
2. Cc ti khon h thng: Cc ti khon h thng c cn cho cc hot ng ring trong
h thng nh ti khon mail v cc ti khon sshd. Nhng ti khon ny thng c cn
cho mt s chc nng ring trn h thng ca bn, v bt c s chnh sa no ti chng
c th nh hng bt li ti h thng.
3. Cc ti khon ngi dng c nhn: Cc ti khon ny cung cp s truy cp mang tnh
tng tc ti h thng vi ngi dng v nhm s dng v thng b gii hn truy cp vo
nhng file v th mc c tnh cht quan trng.

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 132

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

Unix h tr mt khi nim l ti khon nhm Group Account m to nhm mt s ti khon mt


cch logic. Mi ti khon s l mt phn ca bt c ti khon nhm no. Nhm trong Unix ng vai
tr quan trng trong vic thc hin s qun l v tin trnh v cho php ti file.

Qun l ngi v nhm s dng trong Unix/Linux


C 4 file chnh qun l ngi s dng:
1. /etc/passwd: Gi ti khon ngi dng v thng tin mt khu. File ny gi cc thng tin
quan trng v cc ti khon trn h thng Unix.
2. /etc/shadow: Gi mt khu c bin thnh mt m ca ti khon tng ng. Khng phi
tt c cc h thng u h tr file ny.
3. /etc/group: File ny gi thng tin nhm cho mi ti khon.
4. /etc/gshadow: File ny gi cc thng tin ti khon nhm bo mt.
Bn c th kim tra tt c cc file trn vi lnh cat.
Di y l cc lnh c trong phn ln cc h thng Unix to v qun l cc ti khon c nhn
v nhm.

Lnh

Miu t

useradd

Thm cc ti khon c nhn ti h thng.

usermod

Chnh sa cc thuc tnh ca ti khon c nhn.

userdel

Xa cc ti khon c nhn t h thng.

groupadd

Thm cc ti khon nhm ti h thng.

groupmod

Chnh sa cc thuc tnh ca ti khon nhm.

groupdel

D b cc ti khon nhm khi h thng.

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 133

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

Bn c th s dng cc lnh trong Trang tr gip (Manpage Help) kim tra c php y
cho mi lnh c cp trn.

To mt nhm trong Unix/Linux


Bn c th s cn to cc nhm trc khi to bt k mt ti khon no, nu khng th bn phi s
dng cc nhm ang tn ti trn h thng ca bn. Bn s c tt c cc nhm c lit k trong
tp /etc/groups.
Tt c cc nhm mc nh s l cc nhm ti khon c th trn h thng v n khng c
ngh s dng chng cho cc ti khon thng thng. V th, di y l c php to mt
nhm ti khon mi.
groupadd [-g gid [-o]] [-r] [-f] groupname

Bng di lit k chi tit cc tham s:

Ty chn

Miu t

-g GID

Gi tr s ca ID nhm.

-o

Ty chn ny cho php thm nhm vi GID khng duy nht.

-r

Du hiu ny ch th s thm nhm ti ti khon h thng.


Ty chn ny khin cho n ch thot ra vi trng thi thnh cng nu nhm

-f

xc nh tn ti. Vi g, nu GID tn ti, th GID khc (duy nht)


c chn.

groupname

Tn nhm thc s c to.

Nu bn khng xc nh bt c tham s no th h thng s s dng cc gi tr mc nh.


V d sau s to mt nhm developers vi cc gi tr mc nh, m c chp thun bi hu ht
cc nh qun l.
$ groupadd developers

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 134

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

Chnh sa mt nhm trong Unix/Linux


chnh sa mt nhm, s dng c php lnh groupmod:
$ groupmod -n new_modified_group_name old_group_name

thay i tn nhm developers_2 thnh deverloper, bn g nh sau:


$ groupmod -n developer developer_2

Di y l cch thay i GID thnh 545:


$ groupmod -g 545 developer

Xa mt nhm trong Unix/Linux


xa mt nhm ang tn ti, tt c th bn cn lm l lnh groupdel v tn nhm . xa
nhm developer, lnh l:
$ groupdel developer

Lnh ny ch g b nhm, khng phi bt k file no lin quan ti nhm. Cc file l vn c th truy
cp c bi ngi s hu ca n.

To mt ti khon c nhn trong Unix/Linux


Hy cng chng ti xem cch to mt ti khon c nhn mi trn h thng Unix ca bn. Di y
l c php to mt ti khon c nhn:
useradd -d homedir -g groupname -m -s shell -u userid accountname

Bng di lit k chi tit cc tham s:

Ty chn

Miu t

-d homedir

Xc nh th mc chnh cho ti khon.

-g groupname

Xc nh mt ti khon nhm cho ti khon c nhn ny.

-m

To th mc chnh nu n khng tn ti.

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 135

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

-s shell

Xc nh shell mc nh cho ti khon c nhn ny.

-u userid

Bn c th xc nh ID c nhn cho ti khon ny.

accountname

Tn ti khon c nhn thc s c to ra.

Nu bn khng xc nh bt k tham s no th h thng s s dng cc gi tr mc nh. Lnh


useradd chnh sa cc tp /etc/passwd, /etc/shadow, /etc/group v to mt th mc chnh.
Di y l v d m s to mt ti khon mcmohd thit lp th mc chnh ca n ti
/home/mcmohd v nhm l developers. Ngi s dng ny l Kenny Chnh m c ch nh cho
n.
$ useradd -d /home/mcmohd -g developers -s /bin/ksh mcmohd

Trc khi thng bo lnh trn, bo m rng bn c nhm developers c to bng


lnh groupadd.
Khi mt ti khon c nhn c to, bn c th thit lp mt khu cho n bng cch s dng
lnh passwd nh sau:
$ passwd mcmohd20
Changing password for user mcmohd20.
New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfully.

Khi bn g passwd accountname, n cung cp cho bn ty chn thay i mt khu c cung


cp nu bn l superuser, nu khng th bn ch c th thay i mt khu s dng lnh tng t
nhng khng xc nh tn ti khon ca bn.

Chnh sa mt ti khon
Lnh usermod cho bn kh nng to cc thay i ti mt ti khon c nhn ang tn ti t
dng lnh. N s dng cc i s nh lnh useradd, cng vi i s -l, m cho php bn thay i
tn ti khon.

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 136

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

V d, thay i tn ti khon c nhn mcmohd thnh mcmohd20 v thay i th mc chnh, bn


s cn thng bo lnh sau:
$ usermod -d /home/mcmohd20 -m -l mcmohd mcmohd20

Xa mt ti khon trong Unix/Linux


Lnh userdel c th c s dng xa mt ti khon c nhn ang tn ti. Lnh ny l rt
nguy him nu khng c s dng vi s cn trng.
Ch c mt i s hoc mt ty chn c sn cho lnh: .r, g b th mc chnh v mail ca ti
khon.
V d, g b ti khon mcmohd20, bn cn thng bo lnh sau:
$ userdel -r mcmohd20

Nu bn mun gi th mc chnh cho cc mc sau, bn khng s dng ty chn .r. Bn c th g


b th mc chnh vo ln sau.

Hiu nng h thng trong Unix


Mc ch ca chng hng dn ny l gii thiu phn tch hiu nng bng cc cng c c sn
gim st v qun l hiu nng trn cc h thng Unix, v cung cp mt nguyn tc ch o
chung v cch pht hin v sa cc vn v hiu nng trong mi trng Unix.
Unix c cc kiu ngun chnh sau m cn c gim st kim tra v c bt ln:

CPU

B nh

Khng gian a

Cc dy dn giao tip

I/O Time

Thi gian mng

Cc chng trnh ng dng

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 137

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

Cc thnh phn hiu nng trong Unix/Linux


Di y lit k 5 thnh phn chnh:

Thnh phn

Trng thi CPU


ngi s dng

Miu t
Lng thi gian thc t m CPU dnh chy chng trnh ca ngi s
dng trong trng thi ngi dng. N bao gm thi gian dnh chy cc
triu hi th vin, nhng khng bao gm thi gian dnh trong Kernel.
Lng thi gian m CPU dnh cho chng trnh ny trong trng thi h

Trng thi CPU thng. Tt c chng trnh I/O yu cu cc s phc v Kernel. Ngi vit
h thng

chng trnh c th nh hng gi tr ny bng cch s dng kha kt ni


I/O.

Thi gian I/O


v mng h

Lng thi gian dnh cho di chuyn d liu v phc v cc yu cu I/O.

thng
Hiu nng b
nh o

N bao gm s chuyn mch v trao i bi cnh.

Chng trnh

Thi gian dnh cho chy cc chng trnh khc khi h thng khng phc

ng dng

v ng dng ny bi v ng dng khc hin ti ang c trong CPU.

Cc cng c hiu nng trong Unix/Linux


Unix cung cp cc cng c quan trng o lng v tinh chnh hiu nng h thng:

Lnh

Miu t

nice/renice

Chy mt chng trnh vi quyn u tin c sa i trc.

netstat

In cc kt ni mng h thng, bng nh tuyn, cc thng k giao din,


cc kt ni n danh v cc thnh vin multicast.

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 138

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

time

Lng thi gian mt lnh n hoc cung cp cch s dng ngun.

uptime

Trung bnh ti h thng (SLA System Load Average)

ps

Bo co mt nh chp nhanh (snapshot) ca cc tin trnh hin ti.

vmstat

Bo co cc thng k v b nh o.

gprof

Hin th gi th d liu profile.

prof

Tin trnh profile

top

Hin th cc nhim v ca h thng.

Bn c th truy cp vo Trang tr gip (Manpage Help) kim tra c php y cho mi lnh
c cp y.

H thng ghi log trong Unix


Cc h thng Unix c h thng ghi log rt mnh v linh ng, m cho bn kh nng ghi li hu
ht mi th bn c th tng tng v sau thao tc s ghi log ny truy xt thng tin bn yu
cu.
Rt nhiu phin bn ca Unix cung cp mt phng tin d dng ghi log vi mc ch chung gi l
syslog. Mi chng trnh cn thng tin ghi log c gi ti syslog.
syslog trong Unix l mt host c th nh hnh, l phng tin ghi log h thng ng dng. H
thng

dng

mt

tin

trnh

ghi

log

thng

trung

tm

chy

chng

trnh/etc/syslogd hoc /etc/syslog.


Hot ng ca h thng ghi log l khng phc tp. Cc chng trnh gi ca vo ghi log
tisyslogd, m tham vn t file nh cu hnh /etc/syslogd.conf hoc /etc/syslog v khi mt kt ni
c tm thy, n vit thng tin ghi log ti file ghi log yu cu.
Bng di lit k 4 mc syslog c bn m bn nn hiu:

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 139

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

Mc

Miu t

Facility

Du hiu nhn din c s dng miu t ng dng hoc tin trnh m

(phng tin)

trnh ti thng bo log. Cc v d l mail, kernel, v ftp.

Priority (quyn Mt ch dn quan trng ca thng bo. Cc mc c xc nh trong syslog


u tin)

nh mt guideline, t vic chnh li thng tin ti cc s kin quan trng.

Selector (b

Mt s kt ni ca mt hoc nhiu phng tin v mc . Khi mt s kin

chn)

mi n kt ni vi mt b chn, mt hnh ng c thc hin.


iu g xy ra khi mt thng tin mi n kt ni vi mt b chn. Cc hnh

Action (hnh

ng c th vit thng tin ti file ghi log, phn x thng tin ti mt bn iu

ng)

khin hoc thit b khc, vit thng bo ti h thng ghi log ca ngi s dng
hoc gi thng bo cng vi my ch syslog khc.

Cc phng tin syslog trong Unix/Linux


Di y l cc phng tin c sn cho b chn. Khng phi tt c cc phng tin c mt trn
tt c cc phin bn ca Unix.

Facility

auth

authpriv

console

Miu t
Cc hot ng lin quan n yu cu tn v mt khu (getty, su,
login)
Tng t nh auth nhng ghi log ti mt file m ch c th c
c bi nhng ngi dng c chn.
S dng bt cc thng bo m thng trc tip gi ti bn iu
khin h thng.

cron

Cc thng bo t ngi lp h thng cron.

daemon

H thng daemon nhn tt c.

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 140

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

ftp

Cc thng bo lin quan n h thng ftp deamon.

kern

Cc thng bo kernel.

local0.local7

Cc phng tin ni b c xc nh cho mi site.

lpr

Cc thng bo t dng h thng in.

mail

Cc thng bo lin quan ti h thng mail.

mark

news

Cc s kin gi c s dng to timestamp trong cc file h


thng.
Cc thng bo lin quan ti mng li giao thc tin tc (network
news protocol)

ntp

Cc thng bo lin quan n giao thc thi gian mng.

user

Cc tin trnh ngi dng thng thng.

uucp

H thng ph UUCP.

Cc quyn u tin syslog trong Unix/Linux


Cc quyn u tin syslog c tng hp di bng sau:

Quyn u tin

emerg

alert

crit

Miu t
Tnh trng khn cp, nh mt s ngng hot ng h thng sp xy ra,
thng c thng bo ti tt c ngi dng.
Tnh trng m nn c chnh li cho ng ngay lp tc, nh mt d
liu h thng b h hng.
Tnh trng nghim trng, nh li phn cng.

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 141

http://vietjack.com/unix/index.jsp

err

Cc li thng thng.

warning

Cnh bo.

notice

Copyright vietjack.com

Tnh trng m khng l li, nhng c l nn c thc hin theo mt


cch c bit.

info

Thng bo mang tnh thng tin.

debug

Cc thng bo m c s dng khi chnh li cc chng trnh.

none

Cc mc gi to c s dng xc nh khng log cc thng bo.

S kt ni ca cc phng tin v cc mc cho bn kh nng thy r v nhng g c ghi log


v ni m cc thng tin bt ngun.
Khi mi chng trnh gi cc thng bo ca n mt cch nghim tc ti h thng ghi log, trnh ghi
log to cc quyt nh v nhng g theo di n v nhng g loi b n cc mc c xc
nh trong b chn.
Khi bn xc nh mt mc, h thng s theo di mi th ti mc v cao hn.

Tp /etc/syslog.conf trong Unix/Linux


Tp ny iu khin ni cc thng bo c log. Mt tp syslog.conf c trng c th trng ging
nh th ny:
*.err;kern.debug;auth.notice /dev/console
daemon,auth.notice

/var/log/messages

lpr.info

/var/log/lpr.log

mail.*

/var/log/mail.log

ftp.*

/var/log/ftp.log

auth.*

@prep.ai.mit.edu

auth.*

root,amrood

netinfo.err

/var/log/netinfo.log

install.*

/var/log/install.log

*.emerg

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 142

http://vietjack.com/unix/index.jsp
*.alert

|program_name

mark.*

/dev/console

Copyright vietjack.com

Mi dng ca file cha hai phn:

Mt b chn thng bo m xc nh loi thng bo log. V d, tt c cc thng bo li


hoc tt c cc thng bo chnh li t kernel.

Mt trng hnh ng m ni nhng g nn c lm vi thng bo . V d, t n trong


mt file hoc gi thng bo ti terminal ca mt ngi dng.

Di y l cc im ng ch cho s nh cu hnh trn:

Cc b chn thng bo gm hai phn: mt phng thc v mt quyn u tin. V


d, kern.debug chn tt c cc thng bo debug (c Priority) c to bi kernel (c
Facility).

B chn thng bo kern.debug chn tt c cc quyn u tin m u tin hn chnh li.

Mt du sao * trong v tr hoc ca phng thc hoc quyn u tin m ch rng tt c. V


d, *.debug ngha l tt c cc thng bo chnh li, trong khi kern.* ngha l tt c cc thng
bo c to ra bi kernel.

Bn cng c th s dng cc du phy xc nh nhiu phng thc. Hai hoc nhiu b


chn c th c nhm li vi nhau bng cch s dng mt du chm phy (;).

Cc hnh ng ghi log trong Unix/Linux


Trng hnh ng xc nh mt trong 5 hnh ng sau:
1. Thng tin ghi log ti mt file hoc mt thit b. V d, /var/log/lpr.log hoc /dev/console.
2. Gi mt thng bo ti mt ngi s dng. Bn c th xc nh nhiu tn s dng bng vic
ngn cch chng bi du phy (v d root, amrood).
3. Gi mt thng bo ti tt c ngi dng. Trong trng hp ny, trng hnh ng bao
gm mt du *.
4. Gi mt thng bo thng qua pipe ti mt chng trnh. Trong trng hp ny, chng
trnh c xc nh sau k hiu pipe (|).

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 143

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

5. Gi thng bo ti syslog trn mt host khc. Trong trng hp ny, trng hnh ng bao
gm mt tn host, c t trc bi mt du hiu (v d: @tutorialspoint.com)

Lnh logger trong Unix/Linux


Unix cung cp lnh logger, m l mt lnh thc s hu ch gii quyt h thng ghi log. Lnh
logger gi cc thng bo ghi log ti syslogd deamon, v do kch thch h thng ghi log.
iu ny c ngha l chng ta c th kim tra t dng lnh ti bt c thi gian no.
Lnhlogger cung cp mt phng thc thm cng vo mt dng ti h thng ghi log file t
dng lnh.
nh dng ca lnh l:
logger [-i] [-f file] [-p priority] [-t tag] [message]...

Di y l chi tit v cc tham s.

Chc nng

Miu t

-f filename

S dng ni dung ca tn file nh thng bo log.

-i

log ID tin trnh ca tin trnh logger vi mi dng.


Nhp thng bo vi quyn u tin c xc nh (li vo b chn c xc

-p priority

nh); quyn u tin thng bo c th c xc nh dng s hoc nh l cp


phng thc.quyn u tin. Quyn u tin mc nh l user.notice.

-t tag

message

nh du mi dng c thm ti h thng log vi th xc nh.


Cc tham s chui m ni dung c kt ni cng nhau theo th t xc nh,
ring r bi khong trng.

Bn c th s dng trang Trang tr gip (Manpage Help) kim tra c php ca cc lnh ny.

S lun phin log trong Unix/Linux

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 144

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

Cc log file c thin hng tng ln rt nhanh v chim mt khong ln ca khng gian a.
cho

php kh

nng lun

phin

log, hu ht phin

bn

s dng

cc

cng

nhnewsyslog hoc logrotate.


Nhng cng c ny nn c gi trn mt khong khng gian thng xuyn bng cch s dng
cron deamon. Bn truy cp vo chng Trang tr gip (Manpage Help) bit thm chi tit v
newsyslog hoc logrotate.

Cc v tr log quan trng trong Unix/Linux


Tt c ng dng h thng to cc tp log trong /var/log v cc thc mc ph ca n. Di y l
mt s ng dng quan trng v cc th mc log tng ng ca chng.

ng dng

Th mc

httpd

/var/log/httpd

samba

/var/log/samba

cron

/var/log/

mail

/var/log/

mysql

/var/log/

Signal v Trap trong Unix/Linux


Signals l cc tn hiu ngt phn mm c gi ti mt chng trnh bo rng c mt s kin
nghim trng xy ra. Cc s kin ny c th rt a dng t cc yu cu ngi s dng truy cp
vo b nh bt hp php. Mt vi signal, nh signal ngt, ch rng mt ngi s dng i hi
chng trnh lm ci g m khng trong s kim sot.
Bng di y lit k cc signal thng thng m bn c th bt gp hoc mun s dng n trong
cc chng trnh ca bn:

Tn signal

S
hiu

Miu t

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 145

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

signal
Tr hon vic kim tra trn qun l terminal hoc s dng ca qun l

SIGHUP

SIGINT

c thng bo nu ngi s dng gi mt tn hiu ngt (Ctrl+C).

SIGQUIT

c thng bo nu ngi s dng gi mt tn hiu b (Ctrl+D).

SIGFPE

SIGKILL

SIGALRM

14

Tn hiu bo s ln thc hin (Alarm Clock).

SIGTERM

15

Tn hiu kt thc phn mm (c gi bi sigkill theo mc nh).

tin trnh.

c thng bo nu mt hot ng thuc v ton khng hp php


c th chy.
Nu mt tin trnh nhn signal ny, n phi thot ra ngay lp tc v
s khng thc hin cc hot ng lm sch.

Danh sch cc signal trong Unix/Linux


C mt cch d dng lit k tt c cc signal c h tr bi h thng ca bn. Ch cn thng
bo lnh kill -l v n s hin th tt c cc signal c h tr.
$ kill -l
1) SIGHUP

2) SIGINT

3) SIGQUIT

4) SIGILL

5) SIGTRAP

6) SIGABRT

7) SIGBUS

8) SIGFPE

9) SIGKILL

10) SIGUSR1

11) SIGSEGV

12) SIGUSR2

13) SIGPIPE

14) SIGALRM

15) SIGTERM

16) SIGSTKFLT

17) SIGCHLD

18) SIGCONT

19) SIGSTOP

20) SIGTSTP

21) SIGTTIN

22) SIGTTOU

23) SIGURG

24) SIGXCPU

25) SIGXFSZ

26) SIGVTALRM

27) SIGPROF

28) SIGWINCH

29) SIGIO

30) SIGPWR

31) SIGSYS

34) SIGRTMIN

35) SIGRTMIN+1

36) SIGRTMIN+2

37) SIGRTMIN+3

38) SIGRTMIN+4

39) SIGRTMIN+5

40) SIGRTMIN+6

41) SIGRTMIN+7

42) SIGRTMIN+8

43) SIGRTMIN+9

44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 146

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

47) SIGRTMIN+13 48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14


51) SIGRTMAX-13 52) SIGRTMAX-12 53) SIGRTMAX-11 54) SIGRTMAX-10
55) SIGRTMAX-9

56) SIGRTMAX-8

57) SIGRTMAX-7

58) SIGRTMAX-6

59) SIGRTMAX-5

60) SIGRTMAX-4

61) SIGRTMAX-3

62) SIGRTMAX-2

63) SIGRTMAX-1

64) SIGRTMAX

Danh sch thc t trn ca signal l a dng v khc nhau gia Solaris, HP-UX v Linux.

Cc hot ng mc nh trong Unix/Linux


Mi signal c mt hot ng mc nh lin kt vi n. Hot ng mc nh vi mt signal l hot
ng m mt script hoc mt chng trnh thc hin khi n nhn c mt signal.
Mt trong s cc hot ng mc nh c th l:

Kt thc tin trnh

B qua signal

Kt xut li nh. N to mt file gi l core (li) cha hnh nh b nh ca tin trnh khi n
nhn c signal

Dng tin trnh

Tip tc tin trnh b dng

Gi cc signal trong Unix/Linux


C mt vi phng thc trong vic gi cc signal ti mt chng trnh hoc mt script. Mt trong
nhng phng thc ph bin nht l cho ngi s dng g phm Ctrl +C hoc phm dng trong
khi mt script ang chy.
Khi bn nhn phm Ctrl+C, mt SIGINT c gi ti script v khi mi hnh ng mc nh xc
nh s kt thc script.
Phng thc ph bin khc gi signal l s dng lnh kill m c c php nh sau:
$ kill -signal pid

y, signal l hoc s hoc tn ca signal gi v pid l ID tin trnh m signal nn c gi


ti. V d:

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 147

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

$ kill -1 1001

Gi HUP hoc signal dng ti mt chng trnh m ang chy vi ID tin trnh l 1001. gi
mt kill signal ti tin trnh ging nh vy, bn s dng lnh sau:
$ kill -9 1001

N s hy tin trnh ang chy c ID tin trnh 1001.

Trap signal trong Unix/Linux


Khi bn nhn phm Ctrl+C hoc phm dng ti terminal ca bn trong sut qu trnh chy mt
chng trnh shell, thng thng th chng trnh b ngay lp tc kt thc, v dng nhc lnh
xut hin tr li. Vic ny c th s khng lun lun lm bn thch th. V d, bn c th s li
hng lot cc tp tin tm thi m khng c dn sch.
Trap signal l kh d dng, v lnh trap c c php nh sau:
$ trap commands signals

y, command c th l bt c lnh Unix c hiu lc no, hoc ngay c l mt chc nng


nh ngha ca ngi s dng, v signal c th l danh sch cc signal m bn mun trap.
C 3 cch s dng ph bin trap trong shell script:
1. Dn sch cc file tm thi
2. B qua cc signal

Dn sch cc file tm thi trong Unix/Linux


Nh mt v d ca lnh trap, di y ch cch bn c th g b mt vi file v sau thot khi
nu ai c gng b d chng trnh t terminal.
$ trap "rm -f $WORKDIR/work1$$ $WORKDIR/dataout$$; exit" 2

T im trong chng trnh shell m trap ny c thc thi, hai tp work1$$ v dataout$$s t
ng b d b nu signal s 2 c nhn bi chng trnh.
V th nu ngi s dng ngt vic thi hnh ca chng trnh th sau trap ny c chy, bn
c th c m bo chc chn rng hai file ny s c dn sch s. Lnh exit m theo sau

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 148

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

bi rm l cn thit bi v khng c n th chng trnh s tip tc chy ti im m n dng li khi


signal c nhn.
Signal s 1 c to tr hon: hoc ai c tnh treo dng hoc dng mt cch ngu nhin b
ngt kt ni.
Bn c th chnh sa trap trc cng g b hai file xc nh trong trng hp ny bng
cch thm signal s 1 ti danh sch cc signal.
$ trap "rm $WORKDIR/work1$$ $WORKDIR/dataout$$; exit" 1 2

By gi nhng file ny s b g b nu dng b treo hoc nu phm Ctrl+C c nhn.


Lnh c xc nh trap phi c bao quanh trong trch dn nu chng cha nhiu hn mt
lnh. Bn cng lu rng shell qut dng lnh ti thi im m lnh trap c chy v cng thc
hin qut ln na khi mt trong cc signal c lit k c nhn.
V th trong v d trc, gi tr ca WORKDIR v $$ s c thay i ti thi gian m lnh trap
c chy. Nu bn mun s thay i ny xy ra ti thi im m hoc signal s 1 hoc s 2
c nhn, bn c th t cc lnh bn trong trch dn n nh sau:
$ trap 'rm $WORKDIR/work1$$ $WORKDIR/dataout$$; exit' 1 2

B qua cc signal trong Unix/Linux


Nu lnh c lit k cho trap l null, th signal c xc nh s b b qua khi c nhn. V d,
lnh sau:
$ trap '' 2

Xc nh rng signal ngt b b qua. Bn c th mun b qua cc signal c th no khi thc


hin mt s hot ng m m khng mun b ngt. Bn c th xc nh nhiu signal b b qua nh
sau:
$ trap '' 1 2 3 15

Ghi nh rng i s th nht phi c xc nh cho mt signal b b qua v cch trn l khng
cn bng vi cch vit sau, m cch vit sau ny c ngha ring ca n:
$ trap

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 149

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

Nu bn b qua mt signal, tt c cc shell ph cng b qua signal . Tuy nhin, nu bn xc


nh mt hnh ng c thc hin khi nhn c signal th tt c cc shell ph cng s vn thc
hin hnh ng khi nhn c signal .

Thit lp li trap trong Unix/Linux


Sau khi bn thay i cc hnh ng mc nh khi nhn c mt signal, bn c th thay i tr
li ln na vi trap, nu bn n gin b qua i s u tin nh sau:
$ trap 1 2

N thit lp li hnh ng c thc hin khi nhn c signal s 1 hoc 2 tr li dng mc nh.

Cc lnh hu ch trong Unix


Chng ny lit k danh sch cc lnh, bao gm c php v cc miu t ngn gn. c thm
nhiu chi tit v cc lnh ny, bn s dng:
$man command

Cc file v th mc trong Unix/Linux


Cc lnh ny cho php bn to cc th mc v iu khin cc file.

Lnh

Miu t

cat

Hin th ni dung file

cd

Thay i th mc ti dirname

chgrp

Thay i nhm file

chmod

Thay i s cho php

cp

Sao chp file ngun vo trong ni n

file

Xc nh kiu file

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 150

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

find

Tm kim cc file

grep

Tm file vi biu thc quy chun

head

Hin th mt vi dng u ca file

ln

To mt link mm trn tn c

ls

Hin th thng tin v kiu file

mkdir

To mt th mc dirname mi

more

Hin th d liu trong mu c nh s trang

mv

Di chuyn (t li tn) mt tn file c thnh mt tn file mi

pwd

In th mc lm vic hin ti

rm

G b (xa) mt file

rmdir

Xa mt th mc ang tn ti

tail

In mt vi dng cui ca th mc

touch

Cp nht truy cp v thi gian chnh sa ca mt file

Thao tc d liu trong Unix/Linux


Cc ni dung ca file c th dc so snh v thay i vi cc lnh sau:

Lnh

Miu t

awk

Qut mu v tin trnh ngn ng

cmp

So snh ni dung ca 2 file

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 151

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

comm

So snh d liu c phn loi

cut

Ct cc trng c chn trong mi dng ca mt file

diff

B so snh file vi sai

expand

M rng cc tab

join

Kt hp file trn mt s trng ph bin

perl

Ngn ng thao tc d liu

sed

B son lung vn bn

sort

Phn loi d liu file

split

Phn chia file thnh cc file nh hn

tr

Bin dch cc k t

uniq

Bo co cc dng c lp trong mt file

wc

Tnh ton s lng t, dng, v k t

vi

M b son vn bn vi

vim

M b son vn bn vim

fmt

B nh dng vn bn n gin

spell

Kim tra cc li chnh t vn bn

ispell

Kim tra cc li chnh t vn bn

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 152

http://vietjack.com/unix/index.jsp

ispell

Kim tra cc li chnh t vn bn

emacs

GNU d n Emacs

ex, edit

B son dng

emacs

GNU d n Emacs

emacs

GNU d n Emacs

Copyright vietjack.com

Nn file trong Unix/Linux


Cc file c th c nn tit kim khng gian. Cc file b nn c th c to v thc hnh vi
cc lnh di.

Lnh

Miu t

compress

Nn cc file

gunzip

B nn cc file

gzip

Phng thc nn thay th GNU

uncompress

B nn cc file

unzip

Lit k, kim tra v gii nn cc file b nn trong ti liu ZIP

zcat

Ni v lin kt cc file b nn

zcmp

So snh cc file b nn

zdiff

So snh cc file b nn

zmore

Lc file quan st crt ca cc vn bn b nn

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 153

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

Nhn thng tin trong Unix/Linux


Cc ti liu tra cu v cc s tay Unix a dng c sn trn mng trc tuyn. Cc lnh shell sau s
cung cp thng tin cho bn:

Lnh

Miu t

apropos

t v tr cc lnh bng t kha tra cu.

info

Hin th thng tin lnh trn trang trc tuyn

man

Hin th s tay cc trang trc tuyn

whatis

Tm kim d liu whatis cho cc t y .

yelp

B thm tra s gip GNOME

Giao tip mng h thng trong Unix/Linux


Cc lnh sau c s dng gi v nhn cc file t mt host ni b ti mt host iu khin t xa
trn Th gii.

Lnh

Miu t

ftp

Chuyn file ti chng trnh

rcp

iu khin t xa vic sao chp file

rlogin

ng nhp t xa ti mt Unix host

rsh

iu khin t xa shell

tftp

Chng trnh truyn ti file thng

telnet

To kt ni terminal ti host khc

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 154

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

ssh

Bo an shell terminal hoc s kt ni lnh

scp

Bo an shell t vic sao chp file t xa

sftp

Bo an shell t gi file ti chng trnh

Mt trong s cc lnh trn c th b hn ch ti my tnh ca bn v cc l do bo mt.

Cc thng bo gia cc ngi s dng trong


Unix/Linux
H thng Unix h tr cc thng bo hin th trn mn hnh ti ngi s dng khc v gi mail t
ng trn ton Th gii.

Lnh

Miu t

evolution

Cng c iu khin mail GNU trn Linux

mail

Chng trnh gi v c mail n gin

mesg

Cho php hoc t chi nhn cc thng bo

parcel

Gi cc file ti ngi dng khc

pine

Tin ch vdu-base mail

talk

Ni chuyn vi ngi s dng khc

write

Vit thng bo ti ngi s dng khc

Cc chng trnh tin ch trong Unix/Linux


Bng di l cc cng c v ngn ng m c sn da trn nhng g bn ci t trn h thng
Unix ca bn:

Lnh

Miu t

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 155

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

dbx

Chng trnh chnh li Sun

gdb

Chng trnh chnh li GNU (GNU debugger)

make

Duy tr cc nhm chng trnh v cc chng trnh bin dch

nm

In danh sch tn chng trnh

size

In kch c ca chng trnh

strip

D b bng k t v t li v tr cc bit

cb

B vit ng (beautifier) chng trnh C

cc

B bin dch ANSI C cho cc h thng Suns SPARC

ctrace

Chng trnh chnh li C

gcc

B bin dch GNU ANSI C

indent

Sp ch tht vo v nh dng ca ngun chng trnh C

bc

B x l ngn ng s hc tng tc

gcl

GNU Common Lisp

perl

Ngn ng mc ch chung

php

Trang web ngn ng c nhng

py

B phin dch ngn ng Python

asp

Trang web ngn ng c nhng

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 156

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

CC

B bin dch C++ cho cc h thng Suns SPARC

g++

B bin dch GNU C++

javac

B bin dch JAVA

appletvieweir

B thm tra vi m JAVA

netbeans

Tch hp mi trng pht trin JAVA trn Linux

sqlplus

Chy b phin dch Oracle SQL

sqlldr

Chy b ti d liu Oracle SQL

mysql

Chy b phin dch mysql SQL

Cc lnh hn hp trong Unix/Linux


Di y l cc lnh v thng tin thay i v h thng:

Lnh

Miu t

chfn

Thay i thng tin lnh finger ca bn

chgrp

Thay i s hu nhm ca mt file

chown

Thay i ngi s hu

date

In ngy

determin

T ng tm kim kiu terminal

du

In dung lng a s dng

echo

Phn x cc i s ti cc chc nng tiu chun

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 157

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

exit

Thot khi h thng

finger

In thng tin v nhng ngi s dng ng nhp vo

groupadd

To mt nhm ngi s dng

groups

Ch cc thnh vin ca nhm

homequota

Ch hn ngch v dung lng file s dng

iostat

Bo co cc thng k I/O

kill

Gi mt signal ti mt chng trnh

last

Hin th cc ng nhp cui ca nhng ngi s dng

logout

Thot khi Unix

lun

Lit k cc tn ngi dng hoc ID ng nhp

netstat

Ch trng thi ca mng h thng

passwd

Thay i mt khu ca ngi s dng c nhn

passwd

Thay i mt khu ng nhp ca bn

printenv

Hin th gi tr ca mt bin shell

ps

Hin th trng thi ca cc tin trnh hin ti

ps

In cc thng k trng thi ca tin trnh

quota -v

Hin th dung lng s dng a v cc gii hn

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 158

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

reset

Thit lp li ch terminal

script

Gi scritp ca khu vc terminal

script

Lu gi kt qu u ra ca mt lnh hoc mt tin trnh

setenv

Thit lp cc bin mi trng

stty

Thit lp cc chc nng terminal

time

Thi gian ca mt lnh

top

Hin th tt c cc tin trnh h thng

tset

Thit lp ch terminal

tty

In tn terminal hin ti

umask

Ch cc s cho php m c cung cp quan st cc file theo


mc nh

uname

Hin th tn ca h thng hin ti

uptime

Nhn thi gian hot ng ca h thng

useradd

To mt ti khon s dng c nhn

users

In tn ca nhng ngi s dng ng nhp

vmstat

Bo co cc thng k b nh thc

Ch nhng g m ngi dng ng nhp ang thc hin

who

Lit k danh sch nhng ngi dng ng nhp

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 159

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

Hm ton hc c sn trong Shell


Hu ht cc phn ca Bi hng dn ch yu xy dng trn Bourne Shell nhng trang ny lit k
tt c cc hm ton hc c xy dng c sn trong Korn Shell.
Korn Shell cung cp s truy cp ti b thit lp tiu chun ca cc hm ton hc. Chng c gi
bng cch s dng c php gi hm C:

Hm

Miu t

abs

Gi tr tuyt i

log

Logarit t nhin

acos

Hm arcos

sin

Hm sin

asin

Hm arcsin

sinh

Hm sin hyperbolic

cos

Hm cos

sqrt

Cn bc hai

cosh

Hm cos hyperpolic

tan

Hm tan

exp

Hm m

tanh

Hm tan hyperpolic

int

Phn nguyn

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 160

http://vietjack.com/unix/index.jsp

Copyright vietjack.com

Ti liu tham kho Unix/Linux


Di y l danh sch cc ngun hu ch v Unix/Linux. Bn nn tham kho chng hiu su
hn nhng ch chng ti cp trong lot bi ny.

Tutorialspoint Lot bi hng dn ca chng ti xy dng da trn ngun ny.

Bell Labs Qu trnh to H iu hnh UNIX. Cung cp tng quan v lch s ca H iu


hnh UNIX.

BSD UNIX FreeBSD l mt H iu hnh UNIX bc cao cho Server, desktop, v cc


Platform hin i.

Linux Online Linux l mt H iu hnh Unix-type min ph c to ln u bi Linus


Torvalds vi s h tr ca cc nh lp trnh trn ton Th gii.

Unix @ Wikipedia Mt miu t ngn gn v H iu hnh Unix.

The Unix Forums Mt din n cho nhng ngi yu Unix. Chia s tng v suy ngh
ca bn vi cc Chuyn gia v Unix.

http://vietjack.com/ Trang chia s cc bi hc online min ph

Page 161

You might also like