gia o trinh he thong mang linux

Upload: thandieu92

Post on 15-Oct-2015

24 views

Category:

Documents


1 download

TRANSCRIPT

  • 5/25/2018 Gia o Trinh He Thong Mang Linux

    1/47

    - 1-

    TRNG I HC BCH KHOA NNGKHOA CNG NGHTHNG TIN

    GGIIOO TTRRNNHH MMNN HHCC

    HH TTHHNNGG MMNNGG LLIINNUUXX

    Ths. NGUYN TN KHI

    (Lu hnh ni b)

    Nng 2004

  • 5/25/2018 Gia o Trinh He Thong Mang Linux

    2/47

    - 2-

    c lc

    Bi 1 NG NHP HTHNG LINUX ..............................................4

    1.1. Truy cp vo my tnh ci t h u hnh Linux................................41.2. Sdng Telnet truy cp vo my Linux txa.......................................41.3. Thot khi hthng ..................................................................................4

    Bi 2 DNG E-Mail 52.1. Gi thbng sendmail ..............................................................................52.2. Nhn th ...................................................................................................52.3. Cc thao tc htr....................................................................................5

    Bi 3 CC LNH TRN LINUX............................................................73.1. Tchc hthng tp tin trn Linux................... .................... ....................73.2. Cc lnh thao tc trn hthng tp tin.......................................................7

    3.2.1. To mi thmc ..............................................................................73.2.2. Thay i thmc hin hnh..............................................................83.2.3. Xem thmc lm vic hin hnh......................................................83.2.4. Xem thng tin vtp tin v thmc .................................................83.2.5. Di chuyn mt hay nhiu tp tin .......................................................83.2.6. Sao chp tp tin ................................................ ................................93.2.7. To lin kt vi tp tin ......................................................................93.2.8. Tm kim mt tp tin ........................................................................93.2.9. Xo thmc rng...........................................................................103.2.10. Xa cc tp tin hoc thmc..........................................................103.2.11. Xem hng dn sdng lnh .........................................................10

    3.2.12. Hin thni ca cc tp tin................................................... ...........103.2.13. Ni cc tp tin ..................... ...........................................................103.2.14. Xut ni dung thng bo.................................................................113.2.15. Nn v gii nn tp tin ....................................................................11

    3.3. Cc lnh hthng ...................................................................................113.3.1. Lnh at ...........................................................................................113.3.2. Lnh hostname ...............................................................................113.3.3. Lnh ps..........................................................................................113.3.4. Lnh clear.......................................................................................123.3.5. Lnh date........................................................................................123.3.6. Lnh cal ..............................................................12

    3.3.7. Lnh mount ....................................................................................123.3.8. Tin ch mc.....................................................................................123.3.9. Tin ch my tnh bc .......................................................................13

    Bi 4 QUN L TI KHON V PHN QUYN SDNG..........144.1. Qun l ti khon ca hthng ...............................................................14

    4.1.1. Ti khon ngi dng.....................................................................144.1.2. Ti khon nhm ngi dng ...........................................................14

    4.2. Phn quyn ngi dng trn hthng tp tin...........................................144.2.1. Cc quyn truy xut trn tp tin ......................................................144.2.2. Lnh chmod....................................................................................15

    4.2.3. Thay i ngi hoc nhm shu tp tin .......................................15Bi 5 DNG TRNH SON THO VI ..........................................18

  • 5/25/2018 Gia o Trinh He Thong Mang Linux

    3/47

    - 3-

    5.1. Gii thiu................................................................................................185.2. Khi ng vi...........................................................................................185.3. Son tho vn bn ...................................................................................185.4. Thot khi vi...........................................................................................19

    5.4.1. Dng vi vi danh sch cc lnh chy ca Shell...........................19

    Bi 6 P TRNH SHELL 226.1. Chng trnh tnh tng 1-> n...................................................................226.2. Chng trnh tnh giai tha ca mt s....................................................226.3. Chng trnh m sdng ca mt tp tin ..............................................226.4. Chng trnh m stca mt tp tin............................. ......................236.5. Chng trnh tm dng c di ln nht trong mt tp tin............ .........236.6. Chng trnh tm mt xu trong mt tp tin ............................................24

    Bi 7 p trnh C & C++ 25Bi 8 QUN L TIN TRNH 27

    8.1. Gii thiu................................................................................................27

    8.1.1. To mt tin trnh - lnh fork..........................................................278.1.2. Dng mt tin trnh ........................................................................278.1.3. Giao tip gia cc tin trnh............................................................288.1.4. Lin lc gia hai tin trnh ..............................................................29

    8.2. Lp trnh a tin trnh..............................................................................308.2.1. ng dn lin lc...............................................................................308.2.2. Thao tc vi "ng dn lin lc" .......................................................318.2.3. Lin lc gia tin trnh cha v tin trnh con ...................................31

    Bi 9 p trnh mng TCP/IP 329.1. Lp trnh client /server theo giao thc TCP/IP.........................................329.2. Lp trnh client /server theo giao thc UDP/IP........................................37

    Bi 10 Dch v FTP 40Bi 11 CC TP TIN CU HNH MNG ............................................42Bi 12 U HNH DCH VDNS.........................................................44

    12.1. Cc tp tin cu hnh dch vDNS ..........................................4412.1.1. Tp tin /etc/host.conf ................................................ ......................4412.1.2. Tp tin /etc/resolv.conf ....................................... ............................4412.1.3. Tp tin /etc/named.conf ....................................... ..........................4412.1.4. Tp tin /var/named/dng.vn.zone.... .................... ............ ..................4412.1.5. Tp tin /var/named/edu.vn.zone ............ .................... .................... ..4512.1.6. Tp tin /var/named/0.0.127.in-addr.arpa.zone .................................45

    12.1.7. Tp tin /var/named/localhost.zone............. .....................................4512.1.8. Lnh khi ng dch vDNS .........................................................45

    12.2. Cc lnh v tin ch htr.........................................................4612.2.1. Lnh nslookup................................................................................4612.2.2. Lnh host........................................................................................4612.2.3. Lnh dig .........................................................................................4612.2.4. Tin ch redhat-config-bind.............................................................46

  • 5/25/2018 Gia o Trinh He Thong Mang Linux

    4/47

    - 4-

    Bi 1 NG NHP HTHNG LINUX

    1.1. Truy cp vo my tnh ci t h u hnh Linux

    Khi ng my ci t Linux, xut hin du nhc khi ng h u hnh:

    Boot : linux

    Khi HH Linux khi ng, xut hin du nhc truy cp hthng :login :password :

    Ngi dng nhp vo username v password tng ng, trn mn hnh xut hinu nhc ca hthng nhsau :

    [user12@linux user12]$

    1.2. Sdng Telnet truy cp vo my Linux txaTruy cp vo Server LINUX tmy Windows. Yu cu my Windows ci t

    ng. kim tra hthng mng, tdu nhc ca lnh trn Windows, g lnh :

    C:\>ping 200.201.202.180

    u trn mn hnh xut hin : Reply from 200.201.202.180 ...

    th ngha l my tnh c khnng truy cp vo Server LINUX, ngc li, nu c

    thng bo no khc thng bo nhtrn th nn kim tra li cu hnh mng trn my.

    Tip theo, ta g lnh :

    telnet 200.201.202.180

    Sau mt khong thi gian thit lp lin kt, trn ca stelnet xut hin :login :password :

    - Ngi dng nhp vo username v password tng ng.

    V d: ng nhp vo vi ti khon user12, trn mn hnh xut hin nhsau :

    login: user12Password:Last login: Wed Apr 7 08:35:50 from 131.16.16.21[user12@linux user12]$

    1.3. Thot khi hthng

    Thot khi phin lm vic : #exit hoc #logout

    Chm dt hot ng ca hthng : #shutdown h now

  • 5/25/2018 Gia o Trinh He Thong Mang Linux

    5/47

    - 5-

    Bi 2 DNG E-Mail

    Th n thin nay ang trthnh phng tin chnh lin lc trn mng. Thn t d s dng, tin li v nhanh chng. Trong phn ny ta s dng dch v

    sendmail ca hthng Linux.2.1. Gi thbng sendmail

    C p hp: mail . . .

    $mail user01 root

    Tip theo, trn mn hnh xut hinSubject :

    n g vo ch bc th. Nhn Enter, bt u nhp vo ni dung th.

    Sau khi nhp vo ni dung th, nhn CTRL-D gi th i.

    Trn mn hnh xut hin :CC :

    Nhp vo tn nhng ngi cng nhn thhoc nhn Enter bqua.

    2.2. Nhn th

    Khi c th n, trn mn hnh xut hin thng bo : You have mail

    c th, g vo lnh : $mail Trn mn hnh slit k cc bc ththeo tht1, 2, 3 ... c ni dung

    thno, g vo sthtca bc th .

    u & nhc rng bn ang chng trnh c th.

    xa th ang c, ti du nhc bn g : &d

    thot chng trnh c th, ti du nhc bn g : &q

    V d Mt phin gi mail ca user12 :

    [user12@linux user12]$ mail user15 rootSubject: Chao ban Thuc hanh LINUXCc:[user12@linux user12]$

    2.3. Cc thao tc htr

    - hy bthtrc khi gi, bn nhn CTRL-C hai ln.

    - c ni dung mt tp tin trn thmc hin hnh vo mail :~r filename

  • 5/25/2018 Gia o Trinh He Thong Mang Linux

    6/47

    - 6-

    - Thay i ch ca th: ~s

    - Xem tt ccc thlu trong hp th: $more mbox

    Cc lnh thao tc trn sendmail

    t type messages

    n goto and type next message

    e edit messages

    f give head lines of messages

    d delete messages

    s file append messages to file u undelete messages

    R reply to message senders

    r reply to message senders and all recipients

    pre make messages go back to /usr/spool/mail

    p print message

    m mail to specific users

    q quit, saving unresolved messages in mbox

    x quit, do not remove system mailbox h print out active message headers

    ! shell escape

    cd [directory] chdir to directory or home if none given

  • 5/25/2018 Gia o Trinh He Thong Mang Linux

    7/47

    - 7-

    Bi 3 CC LNH TRN LINUX

    3.1. Tchc hthng tp tin trn Linux

    /etc u hnh hthng cc btheo my

    /usr/bin Cha hu ht cc lnh ngi dng./dev Cc tp tin thit b.

    /usr/man Cha cc ti liu trc tuyn.

    /usr/include Cha cc tp tin include chun ca C.

    /var/log Cc tp tin lu githng tin lm vic hin hnh ca ngi dng.

    /home Cha cc thmc con ca cc user.

    /usr/lib Cha cc tp tin thvin ca cc chng trnh ngi dng.

    Khi truy cp vo hthng, thmc lm vic ca ngi dng c xem nhl th

    c ch. V d: Thmc chca user01 sl/home/user01u ng dn bt u bng du /, hthng xem nhl mt tn ng dn

    y bt u tthmc gc.

    3.2. Cc lnh thao tc trn hthng tp tin

    Cc tham slun bt u bi du -, v trong hu ht cc trng hp nhiu thammt chci c thkt hp dng mt du -.

    V d: Thay v dng lnh

    ls -l -F

    , ta c thdng lnh tng ngls -lF.

    K t Chc nng*?[ ] K t i din hay theo mu

    & Chy ng dng ch nn (background), tr li du nhc hthng chocc tc vkhc .

    ; u phn cch nhiu lnh trn mt dng lnh.

    \ t tc dng ca nhng k t c bit nh *, ?, [, ], &, ;, >, nh hng dliu xut ra file.< nh hng dliu nhp tfile.

    >> nh hng dliu xut ra cui file nu file tn ti.| nh hng dliu xut l dliu nhp cho lnh tip theo.

    $ dng bin mi trng.

    3.2.1. To mi thmcC p hp: mkdir ...

    . . . l tn cc thmc cn to.[user01@linux user01]$ mkdir baitap

  • 5/25/2018 Gia o Trinh He Thong Mang Linux

    8/47

    - 8-

    [user01@linux user01]$ mkdir document[user01@linux user01]$ mkdir baitap\ltc[user01@linux user01]$ ls[user01@linux user01]$ mkdir baitap/ltc[user01@linux user01]$ mkdir baitap/perl

    3.2.2. Thay i thmc hin hnhC p hp: cd

    l thmc mun chuyn n.

    .: yu cu chuyn n thmc hin hnh.

    ..: chuyn n thmc cha.[user01@linux user01]$ cd baitap[user01@linux user01]$ cd /home[user01@linux user01]$ cd

    3.2.3. Xem thmc lm vic hin hnhC php : pwd

    [user12@linux user12]$ pwd/home/user12[user12@linux user12]$

    3.2.4. Xem thng tin vtp tin v thmc

    C p hp: ls ...

    . . . l danh sch tn tp tin hay thmc.

    :

    -F : dng hin thmt vi thng tin vkiu ca tp tin

    -l : (long) lit k kch thc tp tin, ngi to ra, cc quyn ngi sdng.

    [user12@linux user12]$ ls -lFtotal 75drwxrwxr-x 2 user12 user12 1024 Apr 7 09:41 baitap/drwxrwxr-x 2 user12 user12 1024 Apr 7 09:41 doc/-rwxrwxr-x 1 user12 user12 71 Mar 31 10:39 hello*-rw-rw-r-- 1 user12 user12 126 Apr 7 09:26 baitho.txt-rw-rw-r-- 1 user12 user12 70 Apr 7 08:26 hello.c[user12@linux user12]$

    ls lF

    ls *a* : hin thtt ctp tin hay thmc con c k tals F*E : hin thdanh sch bt u bng F v kt thc bng E

    3.2.5. Di chuyn mt hay nhiu tp tinC p hp: mv ...

  • 5/25/2018 Gia o Trinh He Thong Mang Linux

    9/47

    - 9-

    . . . l danh sch tn tp tin cn di chuyn

    l tp tin hay thmc ch.

    nh mvc thdng i tn tp tin.

    Chuyn nhiu tp tin$ mv * directory

    Di chuyn thmc[user01@linux user01]$ mkdir ctrinh[user01@linux user01]$ ls lF[user01@linux user01]$ mv ctrinh baitap

    Di chuyn thmc /home/user01/ctrinhvo thmc /home/user01/baitap

    3.2.6. Sao chp tp tin

    C p hp: cp

    [user01@linux user01]$ cd baitap[user01@linux baitap]$ vi tho.txt[user01@linux baitap]$ mv tho.txt baitho.doc[user01@linux baitap]$ lsbaitho.doc ctrinh hello.c ltc perl[user01@linux baitap]$ cp baitho.doc ~/document

    Sao chp tt ccc tp tin vo mt danh mc$ cp * directory

    3.2.7. To lin kt vi tp tin

    o lin kt vi tp tin l to thm cho tp tin tn mi v ng dn tng ng.

    C p hp: ln

    ls -l : xem slin kt ca tp tin.

    Mun xa mt tp tin ta phi xo tt ccc lin kt ca n.[user01@linux user01]$ pwd[user01@linux user01]$ ls -l

    [user01@linux user01]$ ls -l baitap[user01@linux user01]$ ln baitap/file1 file.link[user01@linux user01]$ ls -l baitap[user01@linux user01]$ ls -l file.link

    3.2.8. Tm kim mt tp tin

    nh find cho php tm kim mt hay nhiu tp tin trong mt cy danh mc.

    Tm theo tn: f in d < p a t h > - n am e < f i l en a m e >

    Tm theo s i-node ca tp tin: f in d < p a t h > - in u m < n u m b e r >

    Tm theo tn ngi shu : f in d < p a t h > - u se r < u s er n a m e >

  • 5/25/2018 Gia o Trinh He Thong Mang Linux

    10/47

    - 10-

    trnh cc thng bo li a ra mn hnh, ta c th i hng u ra lichun (standard error) ti mt tp tin rng (/dev/null ):

    $ find / -name filename - print 2>/dev/null

    V d:$ pwd/home/user01$ find / -name ttyc2d1 - print 2>/dev/null/dev/ttyc2d1$ ls -i /unix2810 - r- xr- - r- - 2 bin bin 508516 Mar 10 1989 /unix$find / -inum 2810 - print 2>/dev/null

    3.2.9. Xothmc rngC p hp: rmdir ...

    ... l tn nhng thmc cn xa.rmdir /home/baitap xa thmc /home/baitap

    3.2.10. Xa cc tp tin hoc thmc

    C p hp: rm ...

    3.2.11. Xem hng dn sdng lnh

    C p hp: man

    ho?c --help /?

    Trong l tn ca mt cn xem hng dn.[user12@linux user12]$ man ls[user12@linux user12]$ cp --help[user12@linux user12]$ cp --help >cp.txt

    3.2.12. Hin thni ca cc tp tin

    C p hp: more ...

    < f i l e1 > < f i l e2 > . . . < f i l eN > l nhng tp tin cn hin th.

    [user12@linux user12]$more baitho.txt // hin thtp tin baitho.txt[user12@linux user12]$more mbox // Xem tt cthlu trong hp th

    3.2.13. Ni cc tp tin

    C p hp: cat ... [>filename]

    nh dng hin thton bni dung ca nhiu tp tin cng mt lc.

    ... l nhng tp tin cn hin thni dung.V d:

  • 5/25/2018 Gia o Trinh He Thong Mang Linux

    11/47

    - 11-

    Hin thni dung hai tp tin baitho.txtv vanban.doc$cat baitho.txt vanban.doc

    t ni ni dung hai tp tin baitho.txtv vanban.doc vo tp tin thop.doc$cat baitho.txt vanban.doc >thop.doc

    3.2.14. Xut ni dung thng bo

    C p hp: echo ...

    Trong ... l cc i sdng lnh.[user12@linux user12]$ echo Chao cac banChao cac ban sinh vien[user12@linux user12]$echo * Hin thni dung thmc

    3.2.15. Nn v gii nn tp tin

    C p hp: gzip

    Nn mt tp tin. Tn tp tin nn ging nhtn ban u, km theo ui .gz[user12@linux user12]$ gzip vanban.txt -> vanban.txt.gz

    C p hp: gunzip gzip -d

    nh dng gii nn tp tin.[user12@linux user12]$gunzip vanban.txt.gz

    3.3. Cc lnh hthng

    3.3.1. Lnh at

    Thc hin lnh theo thi gian nh trc[user12@linux user12]$ at 8:15am Feb 27echo Happy birthday | mail emily

    [user12@linux user12]$atrmjobnumber xa lnh trong hng i[user12@linux user12]$at -l hin thdanh sch cc lnh trong hng i

    3.3.2. Lnh hostnameHin thtn my tnh ang lm vic.

    thng lu thng tin vtn my trong tp tin /etc/hosts

    [user12@linux user12]$ hostnamelinux.edu.vn

    3.3.3. Lnh ps

    Xem danh sch cc tin trnh ang hot ng trn hthng.

    [user12@linux user12]$ psPID TTY STAT TIME COMMAND

  • 5/25/2018 Gia o Trinh He Thong Mang Linux

    12/47

    - 12-

    4516 p4 S 0:00 -bash4703 p4 S 0:00 /usr/bin/mc -P4705 r0 S 0:00 bash -rcfile .bashrc4727 r0 R 0:00 ps

    [user12@linux user12]$ kill 4703 //Hy btin trnh mc c shiu 4703Terminated

    3.3.4. nh clear

    Xa mn hnh.

    3.3.5. Lnh date

    Hin thngy thng hin hnh ca hthng

    3.3.6. Lnh cal

    Xem lch tng ng vi thng v nm ch nh.

    3.3.7. Lnh mount

    C p hp: mount [-t ]

    - Lnh dng kt ni h u hnh vi cc thit bkhc trn hthng.

    - Lnh ny chthc hinc khi bn vo hthng vi tcch l root.

    type : Kiu tp tin

    device : Tp tin u khin thit bkt ni.

    mountpoint : Vtr thmc trn h u hnh dng kt ni vi file thit b.

    o kt ni vi a logic 1 : #mount /dev/hda1 /mnt/hdisk

    o kt ni vi a mm MS-DOS: #mount /dev/fd0 /mnt/floppy

    o kt ni vi a mm LINUX : #mount -t ext2 /dev/fd0 /mnt/floppy

    o kt ni vi a CDROM : #mount /dev/hda1 /mnt/cdrom

    y kt ni vi a mm : #umount /dev/fd0

    Ch :thng L inux xem cc thit bkt ni nhcc mt tp tin c bit.

    3.3.8. Tin ch mc

    Tin ch mc trn Linux c giao din lm vic ging nhtrnh NC Command caMS - DOS. khi ng mc g lnh nhsau :

    #mc

  • 5/25/2018 Gia o Trinh He Thong Mang Linux

    13/47

    - 13-

    3.3.9. Tin ch my tnh bc

    Chng trnh bc cung cp mt bmy tnh tay gip ngi dng c th tnh ton

    cc biu thc, cc hm ton hc ...

    3.3.9.1. Khi ng bc

    du nhc hthng, bn g :#bc

    xut hin du nhc, bn c thnhp vo cc biu thc tnh ton :(4+5)*(12-10) 181000000000000*10000000000001000000000000000000000000

    n nh schsthp phn, dng lnh scale = n :scale=31/6.166

    p trnh trong bc.define giaithua(n){if (n Xem cc hng dn sdng bc.

  • 5/25/2018 Gia o Trinh He Thong Mang Linux

    14/47

    - 14-

    Bi 4 QUN L TI KHON V PHN QUYN SDNG

    M tcchbo vtp tin ca LINUX: ngi sdng, nhm ngi sdng, cc

    quyn truy xut trn tp tin.4.1. Qun l ti khon ca hthng

    4.1.1. Ti khon ngi dng

    i ngi sdng trn hthng c m tqua cc thng tin sau:

    - username : tn ngi sdng

    - password : mt khu (nu c)

    - uid : snhn dng (user identify number )

    - gid : sca nhm (group identify number )

    - comment : ch thch

    - Thmc chca ti khon (home directory )

    - Shell ng nhp (chng trnh chy lc bt u phin lm vic)

    Cc thng tin trn c cha trong tp tin/etc/passwd

    4.1.2. Ti khon nhm ngi dng

    t nhm ngi sdng c m tbng cc thng tin sau:- groupname : tn ca nhm

    - gid : sca nhm (gid: group identify number)

    - danh sch cc ti khon thuc nhm

    Cc thng tin trn c cha trong tp tin/etc/group

    4.2. Phn quyn ngi dng trn hthng tp tin

    4.2.1. Cc quyn truy xut trn tp tin

    Khi tp tin c to lp, cc thng tin sau y ng thi c ghi li:

    - uidca ngi to tp tin

    - gidca ngi to tp tin

    - Cc quyn thm nhp tp tin khc . . .

    - Tp tin c bo vbi mt tp hp cc bit nh ngha quyn thm nhpr w x r w x r w xsuid sgidowner group other

    Trong :

  • 5/25/2018 Gia o Trinh He Thong Mang Linux

    15/47

    - 15-

    r Quyn c ni dung tp tin, thmc

    w Quyn to v xo ni dung tp tin, to v xa tp tin trong thmc

    x Quyn thc thi tp tin. Quyn truy xut qua li trn thmc.

    Cc quyn vi thmc chc hiu lc mt mc nht nh, thmc con c thc bo vtrong khi thmc cha th khng.

    nh ls -lFlit k danh sch cc tp tin v cc thuc tnh ca chng trong mt

    danh mc, qua ta c thxem cc thng tin nh loi tp tin, quyn truy nhp,

    ngi shu v kch thc ca tp tin. . .

    4.2.2. Lnh chmod

    nh chmod cho php thay i quyn trn tp tin ca ngi dng. Ch nhng

    ngi shu tp tin ny mi c ththay i c mc c quyn i vi tp tin ny.C ththc hin lnh theo hai cch:

    4.2.2.1. Dng cc k hiu tng trng:

    C p hp: chmod {a,u,g,o}{+,-,=}{r,w,x}

    Trong : u (user), g (group), o (other), a (all)

    Cc ton t : + thm quyn. - bt quyn. = gn gi trkhc

    4.2.2.2. Dng thng stuyt i

    C p hp: chmod

    trong mode l mt scs8 ( octal ) r w x r - x r - - 1 1 1 1 0 1 1 0 0 7 5 4$chmod 754 filename$chmod g-w,o+r baitho.doc$chmod a+r baocao.txt$chmod +r baocao.txt

    $chmod og-x baocao.txt khng cho thc thi$chmod u+rwx baocao.txt cho php ngi shu c th c, vit v thc thi.$chmod o-rwx baocao.txt khng cho truy nhp tp tin.$chmod 777 * t cc quyn cho tt ccc i tng sdng . trn ton btp tin trong thmc hin hnh

    4.2.3. Thay i ngi hoc nhm shu tp tin

    - Lnh chowncho php thay i ngi shu, nhm shu trn tp tin.

    - Lnh chgrpcho php thay i nhm shu trn tp tin.

  • 5/25/2018 Gia o Trinh He Thong Mang Linux

    16/47

    - 16-

    THC HNH

    1. Thay i quyn trn tp tin

    #cat bai1.sh

    #ls -lF bai1.sh#chmod u+x,g+wx bai1.sh#ls -lF bai1.sh#chmod 644 bai1.sh#ls -lF bai1.sh#chmod 764 bai1.sh#ls -lF bai1.sh#chmod 777 bai1.sh#ls -lF bai1.sh

    2. To ti khon hthng

    o nhm cntt2004#groupadd cntt2004

    Xem tp tin /etc/group

    #cat /etc/group

    o mt account user01 mi thuc nhm cntt2004

    #useradd - g cntt2004 -c Tai khoan user01user01

    #passwd user01

    Xem tp tin /etc/passwd, /etc/shadow

    #cat /etc/passwd

    #cat /etc/shadow

    Th ng nhp vo hthng vi ti khon l user01

    o mt account user02

    #useradd user02

    #passwd user02

    a user02 vo nhm cntt2004

    #usermod -g cntt2004 user02

    Th ng nhp vo hthng vi ti khon l user02

    Xa user02

    #userdel user02

    #cat /etc/passwd

    3. Thay i quyn sdng cho cc i tng trn tp tin

    a. To mt tp tin mi /home/baocao.txt

    b. i chshu ca tp tin /home/baocao.txt l user01

  • 5/25/2018 Gia o Trinh He Thong Mang Linux

    17/47

    - 17-

    #chown user01 /home/baocao.txt

    c. Phn quyn rwxr--r-- cho cc i tng trn tp tin /home/baocao.txt.

    #chmod 744 /home/baocao.txt

    d. ng nhp vo h thng vi ti khon user01. Th thay i ni dung tp tin/home/baocao.txt.

    e. ng nhp vo h thng vi ti khon khc. Th thay i ni dung tp tin

    /home/baocao.txt. Nhn xt ?

    4. Phn quyn sdng cho cc i tng

    a. To nhm ngi sdng c tn cntt2004.

    b. Bsung cc user01, user02 vo nhm cntt2004.

    #usermod -g cntt2004 user01#usermod -g cntt2004 user02

    c. To thmc /home/common

    #mkdir /home/common

    d. i nhm shu ca thmc /home/common l nhm cntt2004.

    #chown :cntt2004 /home/common

    hoc

    #chgrp cntt2004 /home/common

    e. Phn quyn rwx cho i tng nhm cntt2004 trn thmc /home/common

    #chmod g+rwx /home/common

    #ls -lF /home

    f. ng nhp vo h thng vi ti khon user01. To th mc mi trong/home/common.

    g. ng nhp vo hthng vi mt ti khon khc khng thuc nhm cntt2004.Thto thmc mi trong /home/common. Nhn xt ?.

  • 5/25/2018 Gia o Trinh He Thong Mang Linux

    18/47

    - 18-

    Bi 5 DNG TRNH SON THO VI

    Gii thiu trnh son tho vi, cc thao tc son tho tp tin bng vi.

    5.1. Gii thiu

    vi l chng trnh son tho cc tp tin vn bn trn cc hthng Unix :

    - Mn hnh c xem nhmt ca smtrn tp tin.

    - C khnng di chuyn con tr n bt kvtr no trn mn hnh.

    - Ca sc thdi chuyn tdo trn tp tin.

    Phn ln cc phm dng c lp hoc kt hp vi phm Shift v Ctrl to ra ccnh ca vi. Cc lnh ca vi c th c gi khi c du " : " dng cui mn hnh.

    C 2 ch (mode) trong khi sdng vi: Append modev Command mode

    Ch lnh(Command mode)

    Ch son tho(Editor mode)

    Nhn phm lnh

    Nhn ESC + Phm lnh

    5.2. Khi ng vi

    Ta c thgi vivi tn tp tin vn bn : $ vi filename

    V d: vi bai1.txt Mn hnh son tho hin ra nhsau ( y ang dng Telnet ni vo UNIX) :

    - Du ng (~) trc mi dng cho bit dng cn rng (trng)

    - Dng di cng cho bit tn file ang m, trng thi ca file: nu l file mi th

    "[new file]", nu m file c th s hin th s dng, s k t trong file (hnhi).

    5.3. Son tho vn bn

    - Chn k ttrn mt dng a < text > < ESC >

    - Sdng cc phm son tho vn bn.

  • 5/25/2018 Gia o Trinh He Thong Mang Linux

    19/47

    - 19-

    - Nhn phm ESC kt thc ch chn vn bn.

    5.4. Thot khi vi

    Mun ra khi vi v ghi li ni dung tp tin, bn nhn phm ESCv dng mt trong

    cc lnh nh sau::ZZ hoc :wq hoc :x

    Thot khi vi v khng ghi li cc thay i trc : q!

    Khi trong ch son tho ca vi, mun chy chng trnh shell, dng lnh :: !

    hoc gi shell, sau chy cc lnh ca ngi dng, khi kt thc bm Ctrl-D tri vi:

    : ! sh$ $ Ctrl-D

    5.4.1. Dng vi vi danh sch cc lnh chy ca Shell

    nh fc(fix command) cho php ta son tho bng viv chy li cc lnh chya Shell. Cch dng nhsau:

    - Son tho v cho chy lnh cui cng: $fc

    - Son tho mt nhm lnh v cho chy: $ fc m n

    - Xem danh sch 16 lnh cui cng:

    $ fc -l hoc history

    $ fc -lr (danh sch theo thtngc li)

    - To mt tp tin cha mt slnh chy (ca history): $fc -nl n1 n2 > cmd

    cmdl mt tp tin cha cc lnh ca history tlnh n1n lnh n2

    ng tm tt cc lnh ca vi

    Inserts text before cursor

    Enters text at start of line

    Inserts text after cursor

    Enters text at end of line

    Opens a new line below cursor

    Opens a new line above cursor

    Deletes word

    Deletes entire line

  • 5/25/2018 Gia o Trinh He Thong Mang Linux

    20/47

    - 20-

    Deletes to end of line

    Deletes character under cursor

    Changes word

    Changes line

    Changes to end of line

    Replaces character under cursor

    Joins lines together

    Moves to end of word

    Moves to next word

    Moves to end of line

    Moves one space right

    Moves one line up

    Moves one line down Moves one space left

    Moves cursor to first occurrence of x

    Moves cursor to last occurrence of x

    Repeats the last f/F command

    number Moves cursor to specified column number

    Moves cursor to top line on-screen (not top line of file)

    Moves cursor to bottom line on-screen

    Moves cursor to middle line on-screen Moves cursor to bottom line of file

    number Moves cursor to specified line number

    (same as:number)

    Moves to beginning of line

    x Marks current position with letterx

    Scrolls for ward one half of the screen

    Scrolls backward one half of the screen

    Scrolls for ward one screen

    Scrolls backward one screen

    Redraws the screen

    Shows the filename, current line, and column number

    Redraws the screen with current line in middle of screen

    Yanks entire line into buffer

    Puts contents of buffer below cursor

    Puts contents of buffer above cursor

    x[number] Yanks the indicated number of lines into the buffer namedx

    (x can be any single character az)

  • 5/25/2018 Gia o Trinh He Thong Mang Linux

    21/47

    - 21-

    x

    Places the contents of buffer x after the cursor

    :w [file] Writes contents to disk asfile

    :q Quits vi

    :q! Quits file without saving changes

    :wq Saves changes and quits vi

    :rfile Reads specifiedfile into editor

    :efile Editsfile

    :!command Executes specified shell command

    :number Moves to specified line number

    :f Prints out current line and filename (same as )

    /string Searches forward forstring

    ?string Searches backward forstring

    :x,ys/oldstring/newstring Replaces oldstringwith newstringfrom linex to liney(entering y = $ will replace to end of file)

    Undoes last command

    Finds next occurrence of string. Repeats last command

    ~ Changes character to opposite case

    Switches to command mode

    THC HNH

    1. Dng chng trnh vi son tho tp tin vanban.doc$vi vanban.doc

    2. Sao chp vn bn

    4dd Ct 4 dng v a vo vng mCtrl+d Chuyn xung cui vn bn

    p Sao tvng m vo sau dng hin hnh

    3. t v bch hin thsdng :

    :set nu:set nonu

    4. Lu ni dung tp tin v thot khi vi::wq

    5. Xem lai ni dung tp tin vanban.doc.

  • 5/25/2018 Gia o Trinh He Thong Mang Linux

    22/47

    - 22-

    Bi 6 LP TRNH SHELL

    6.1. Chng trnh tnh tng 1-> n

    - Minh ha cc cu trc while do done, v cch sdng [], $(()).

    - Tp tin tong1.sh#!/bin/shecho Chuong trinh tinh tong 1- $1index=0tong=0while [ $index -lt $1 ]do index=$(($index + 1)) tong=$(($tong + $index))doneecho "Tong 1-$1= $tong"

    exit 0

    - Chy chng trnh :chmod a+x tong1.sh./tong1 100

    6.2. Chng trnh tnh giai tha ca mt s

    - Minh ha cc cu trc while do done, v cch sdng [], $(()).

    - Tp tin giaithua.sh

    #!/bin/shecho Chuong trinh tinh $1!index=0gt=1while [ $index -lt $1 ]do index=$(($index + 1)) gt=$(($gt * $index))doneecho "$1!= $gt"exit 0

    - Chy chng trnh :chmod a+x giaithua.sh./giaithua 5

    6.3. Chng trnh m sdng ca mt tp tin

    - Minh ha cc cu trc if then fi, while do done, v cch sdng [], $(()).

    - Tp tin demdong.sh#!/bin/shecho Chuong trinh dem so dong cua tap tin $1{

    n=0while read line

  • 5/25/2018 Gia o Trinh He Thong Mang Linux

    23/47

    - 23-

    do n=$(($n + 1))doneecho So dong cua tap tin $1 la : $n}

  • 5/25/2018 Gia o Trinh He Thong Mang Linux

    24/47

    - 24-

    max=$n fidoneecho Dong trong tap tin $1 co do dai max = $max la : $dong}

  • 5/25/2018 Gia o Trinh He Thong Mang Linux

    25/47

  • 5/25/2018 Gia o Trinh He Thong Mang Linux

    26/47

    - 26-

    2. Chng trnh sample.c#include void printnum ( int ); /* Khai bo hm*/void printchar ( char ); /* Khai bo hm*/main () {

    double tmp; /* Khai bo bi?n ton c?c*/ tmp = 1.234; printf ("%f\n",tmp); /* In gitr? c?a bi?n ton c?c tmp*/ printnum (5); /* In gitr? s? 5*/ printf ("%f\n",tmp); /* In gitr? c?a bi?n ton c?c tmp*/ printchar ('k'); /* in k t? k*/ printf ("%f\n",tmp); /* In gitr? c?a bi?n ton c?c tmp*/}/* ?nh nghia hm d khai bo ? trn*//* Khai bo c t? khovoid nghia l hm khng tr? v? m?t gitr?*/void printnum (int inputnum) { int tmp;

    tmp = inputnum; printf ("%d \n",tmp);}void printchar (char inputchar) { char tmp; tmp = inputchar; printf ("%c \n",tmp);}

  • 5/25/2018 Gia o Trinh He Thong Mang Linux

    27/47

    - 27-

    Bi 8 QUN L TIN TRNH

    8.1. Gii thiu

    Tin trnh l mt mi trng thc hin, bao gm mt phn n lnh v mt phn

    n dliu. Cn phn bit vi khi nim chng trnh chgm tp hp lnh.

    Trn h u hnh Linux, tin trnh c nhn bit thng qua shiu ca tin trnh,

    i l pid. Cng nh i vi user, n c thnm trong nhm. V th phn bit ta

    nhn bit qua shiu nhm gi l pgrp. Mt shm ca C cho php ly c nhngthng sny:

    int getpid() /* trvgi trint l pid ca tin trnh hin ti*/

    int getppid() /*trvgi trint l pid ca tin trnh cha ca tin trnh hin ti */

    int getpgrp() /* trvgi trint l shiu ca nhm tin trnh*/

    int setpgrp() /*trvgi trint l shiu nhm tin trnh mi to ra*/

    V d:nh : printf("Toi la tien trinh %d thuoc nhom %d",getpid(),getgrp());

    t qusl: Toi l tien trinh 235 thuoc nhom 231

    8.1.1. To mt tin trnh - lnh fork

    int fork() to ra mt tin trnh con. Gi tr tr li l 0 cho tin trnh con v duhiu pid cho tin trnh cha. Gi trsl -1 nu khng to c tin trnh mi.

    Theo nguyn tc cbn ca hthng, tin trnh con v cha sc cng n m.

    n d liu ca tin trnh mi l mt bn sao chp chnh xc n d liu ca tintrnh cha. Tuy nhin tin trnh con vn khc tin trnh cha pid, thi gian xl, ...

    8.1.2. Dng mt tin trnh

    nh kill ca Shell c thdng chm dt hot ng ca mt tin trnh. v d

    nhkhi mun dng tin trnh 234 ta dng lnh: kill 234

    C cng c lnh kill nhsau:

    int kill(pid, sig);

    int pid; l du hiu nhn bit ca mt tin trnh.

    int sig; hng tn hiu giao tip tin trnh.

  • 5/25/2018 Gia o Trinh He Thong Mang Linux

    28/47

    - 28-

    8.1.3. Giao tip gia cc tin trnh

    Vic giao tip gia cc tin trnh c thc hin thng qua cc tn hiu chuna h thng. Tn hiu l mt sngt qung logic c gi n cc tin trnh bi h

    thng thng bo cho chng vnhng svic khng bnh thng trong mi trnghot ng ca chng (nhli bnh, li vo ra). N cng cho php cc tin trnh linc vi nhau. Mt tn hiu (trSIGKILL) c th c xem xt theo ba cch khc nhau:

    1. Tin trnh c th c b qua: V d chng trnh c th b qua s ngtqung ca ngi sdng h thng ( l sbqua khi mt tin trnh angc sdng phn nn.

    2. Tin trnh c th c thc hin: Trong trng hp ny, khi nhn c 1 tina

    stiu, vic thc hin 1 tin trnh c chuyn vmt quy trnh do ngi s

    ng xc nh trc, sau trli ni n bngt.

    3. Li c th c tin trnh trvsau khi nhn c tn hiu ny.

    i y l mt stn hiu thng gp:

    SIGHUPTn hiu ny c pht n cc tin trnh vo lc cui khi m n tngt.

    N cng c pht n mi tin trnh c tin trnh chnh tngt.

    SIGINT Tn hiu ny c pht n cc tin trnh khi ta ra lnh ngt.

    SIGQUIT ng tnhtrn khi ta g vo ^D.

    SIGILL

    nh khng hp l, tn hiu c pht ra khi pht hin 1 lnh khng ng

    cp vt l (v dnh1 tin trnh thc hin mt lnh m my tnh

    chng c lnh ny).

    SIGTRAPTn hiu c pht ra sau mi lnh trong trng hp tin trnh c sdng

    nh ptrace().

    SIGIOT y c pht khi c cc vn vvt l.SIGEMT y ca lnh pht, c pht ra khi c li vt l trong khi thc hin.

    SIGFPEc pht ra khi c li vtnh ton nhmt sc du phy ni c nh

    ng khng hp l. Gn nhlun chra li khi lp trnh.

    SIGKILL Trang b kt thc tin trnh. Khng thbqua hoc ct tn hiu ny.

    SIGBUS c pht khi gp li trn bus.

    SYSGEGV

    c pht ra khi gp li trn phn n struy cp dliu bn ngoi phn

    n dliu c cp pht cho tin trnh.

  • 5/25/2018 Gia o Trinh He Thong Mang Linux

    29/47

    - 29-

    SIGSYS i skhng ng cho hthng gi.

    SIGPIPE Vit trn mt ng dn khng m c.

    SIGALRM

    Pht ra khi ng hca mt tin trnh ngng li. ng h c hot ng

    ng lnh alrm().

    SIGTERMc pht ra khi mt tin trnh kt thc bnh thng. Cng c thdng

    ng 1 hthng kt thc tt ccc tin trnh hot ng.

    8.1.4. Lin lc gia hai tin trnh

    mt chng trnh n gin di y sdng cc lnh pht v nhn tn hiu, sau gip lin lc gia hai tin trnh.

    i dung ca v dl slin lc gia mt tin trnh cha v mt tin trnh con thngqua cc tn hiu c trnh by phn trc.#include #include void fils_atc(){ printf(" Tien trinh bi loai bo !!!\n"); kill(getpid(), SIGINT);}/***********************************/

    void fils(){ signal(SIGUSR1, fils_atc); printf(" Hinh thanh tien trinh moi. Nhung chuan bi loai bo tien trinh nay !!\n"); while(1);}/******************************/main(){int ppid, pid;

    if ((pid = fork())==0) fils();else { sleep(3); printf(" Chap nhan !! Tien trinh se bi loai bo.\n"); kill(pid, SIGUSR1); }}

    Trong v d trn, tin trnh con c s dng hm signal(SIGUSR1, fils_atc). Hmny c tc dng mi khi tin trnh con nhn c tn hiu SIGUSR1 th hm fils_atc() c thc thi.

  • 5/25/2018 Gia o Trinh He Thong Mang Linux

    30/47

    - 30-

    Nhvy v dtrn mt tin trnh con c to ra nhng n li khng muntip tc tn ti. Do vy sau khi tm dng li sleep(3), tin trnh cha gi n cho tintrnh con mt tn hiu l SIGUSR1 bng lnh:

    kill(pid, SIGUSR1);

    tin trnh con, tn hiu SIGUSR1 c gn vi hm fils_atc(). Hm ny ra mtthng bo bo hiu tin trnh ny sp cht ri tgi n chnh mnh (tin trnh con) tnhiu SIGINT, tn hiu ngt tin trnh. V tin trnh con cht.

    kill(getpid(), SIGINT);

    t snhc m khi lin lc trc tip bng tn hiu:

    - Mt tn hiu c thbbqua, kt thc mt tin trnh hoc bchn li. l l dochnh a ra cc tn hiu khng thch ng c tin hnh lin lc gia cc tintrnh. Mt thng p p di hnh thc tn hiu c th sbmt nu n cnhn lc loi tn hiu ny tm thi bbqua.

    - Mt vn khc l cc tn hiu c quyn rt ln, khi n chng lm ngt qung

    cng vic hin ti. V dvic nhn mt tn hiu trong khi tin trnh ang i mtkin (m c th n khi sdng cc lnh open(), read(), ...) lm cho vic thc

    thi hm bchch hng. Khi trli, lnh chnh bngt gi li mt thng p bo

    i m hon ton khng xl c.

    Ngoi vic lin lc trc tip nh v dtrn, cn cho php mt phng php linc gia cc tin trnh khc, l lin lc qua "ng ng".

    8.2. Lp trnh a tin trnh

    8.2.1. ng dn lin lc

    ng dn l mt cchcbn lin lc gin tip gia cc tin trnh. l cc filec bit (FIFO), cc thng tin c truyn i 1 u v thot ra mt u khc.

    t s c m ca "ng dn":

    - Cc ng dn chmang tnh cht tm thi, chtn ti trong thi gian thc hin cat tin trnh to ra n.

    - Mun to ra mt ng dn phi bt u bng mt lnh c bit: pipe().

    - Nhiu tin trnh c thvit v c trn cng mt ng dn. Tuy nhin, khng c mtchno phn bit thng tin cho cc tin trnh u ra.

    - Dung lng ng dn bhn ch(khong 4KB). Do khi chng ta cgng vit khing dn b y th sgp phi trng hp tc nghn.

  • 5/25/2018 Gia o Trinh He Thong Mang Linux

    31/47

    - 31-

    - Cc tin trnh lin lc qua ng dn phi c mi quan hhhng v cc ng dn niphi c mtrc khi to ra cc tin trnh con.

    - Khng thtthay i vtr thng tin trong ng.

    8.2.2. Thao tc vi "ng dn lin lc"o mt ng dn:

    int p_desc[2];int pipe(p_desc);

    Gi trtrvl 0 nu thnh cng, -1 nu tht bi.

    p_desc[0] : cha cc shiu m tnh c th c trong ng dn.

    p_desc[1] : cha cc shiu m tnh c thvit trong ng dn.

    Nhvy vic vit trong p_desc[1] l truyn dliu trong ng v vic c trongp_desc[0] nhn chng.

    V d:#include #include main(){int i,ret, p_desc[2];char c;pipe(p_desc);write(p_desc[1], "AB", 2);

    for (i=1; i

  • 5/25/2018 Gia o Trinh He Thong Mang Linux

    32/47

    - 32-

    fd=number;printf(" So hieu mo ta la %d\n",fd);switch (nread=read(fd, texte, sizeof(texte))){case -1: perror("Loi doc.");

    case 0: perror("EOF");default: printf("Van ban nhan duoc co %d ky tu: %s\n",fd, texte);}}main() {int fd[2];char chaine[10];

    if (pipe(fd)==-1) { perror("Loi khoi tao pipe.");

    exit(1);}

    switch (fork()) {case -1: perror(" Loi khoi tao tien trinh."); break;case 0: if (close(fd[1])==-1) perror(" Error."); code_fils(fd[0]); exit(0);

    }close(fd[0]);if (write(fd[1]),"hello",6)==-1) perror("Loi truyen.");}

    t quchng trnh:

    So hieu mo ta la: 5Van ban nhan duoc co 6 ky tu: hello

    Ch rng, tin trnh con c trong ng dn m khng vit nn n bt ung cch ng phn vit fd[1] tit kim cc tn hiu m tca thp. Tng t, vtin trnh cha chsdng phn vit nn n ng phn c li (fd[0]). Sau tin trnhcha vit vo ng dn 6 k tv tin trnh con c chng.

    Bi 9 p trnh mng TCP/IP

    9.1. Lp trnh client /server theo giao thc TCP/IP

    Chng trnhtcpClient.c/* Chuong trinh tcpClient.c */

  • 5/25/2018 Gia o Trinh He Thong Mang Linux

    33/47

    - 33-

    /* Khai bo cc file thvin cn thit gi hm socket*/

    #include #include #include /*gethostbyname*/#include

    #include #include #include /* close */

    #define SERVER_PORT 1500#define MAX_MSG 100

    int main (int argc, char *argv[]) {

    /* Khi to cc bin dng trong chng trnh */ int sd, rc, i; struct sockaddr_in localAddr, servAddr;

    struct hostent *h;

    if(argc < 3) { printf("usage: %s ... \n",argv[0]); exit(1); }

    /* Hm gethostbyname() ly v a chIP theo tn nhp vo trong tp tin /etc/hosts */

    h = gethostbyname(argv[1]); if(h==NULL) { printf("%s: unknown host '%s'\n",argv[0],argv[1]);

    exit(1); }

    servAddr.sin_family = h->h_addrtype; memcpy((char *) &servAddr.sin_addr.s_addr, h->h_addr_list[0], h->h_length); servAddr.sin_port = htons(SERVER_PORT);

    /* Gn cc gi trcho i tng socket. To socket cho my Client. Lu li sm tsocket */

    sd = socket(AF_INET, SOCK_STREAM, 0); if(sd

  • 5/25/2018 Gia o Trinh He Thong Mang Linux

    34/47

    - 34-

    rc = bind(sd, (struct sockaddr *) &localAddr, sizeof(localAddr)); if(rc

  • 5/25/2018 Gia o Trinh He Thong Mang Linux

    35/47

    - 35-

    int main (int argc, char *argv[]) {

    int sd, newSd, cliLen;

    struct sockaddr_in cliAddr, servAddr; char line[MAX_MSG];

    /* Gn cc gi trcho i tng socket. To socket cho my Server. Lu li sm tsocket */

    sd = socket(AF_INET, SOCK_STREAM, 0); if(sd

  • 5/25/2018 Gia o Trinh He Thong Mang Linux

    36/47

    - 36-

    } /* while(read_line) */

    } /* while (1) */

    }

    /* WARNING *//* this function is experimental. I don't know yet if it works *//* correctly or not. Use Steven's readline() function to have something robust.*//* rcv_line is my function readline(). Data is read from the socket when *//* needed, but not byte after bytes. All the received data is read. *//* This means only one call to recv(), instead of one call for each received byte. *//* You can set END_CHAR to whatever means endofline for you. (0x0A is \n)*//* read_lin returns the number of bytes returned in line_to_return */

    /* Hm c chc nng c dliu tsocket*/int read_line(int newSd, char *line_to_return) {

    static int rcv_ptr=0; static char rcv_msg[MAX_MSG]; static int n; int offset;

    offset=0;

    while(1) { if(rcv_ptr==0) { /* read data from socket */ memset(rcv_msg,0x0,MAX_MSG); /* init buffer */

    n = recv(newSd, rcv_msg, MAX_MSG, 0); /* wait for data */ if (n

  • 5/25/2018 Gia o Trinh He Thong Mang Linux

    37/47

    - 37-

    /* end of line but still some data in buffer => return line */ if(rcv_ptr */ /* wait for more data to arrive on socket */ if(rcv_ptr == n) { rcv_ptr = 0; }

    }/* while */}/*main*/

    9.2. Lp trnh client /server theo giao thc UDP/IP

    Chng trnhudpClient.c/* udpClient.c */

    #include #include #include #include #include

    #include #include #include /* memset() */#include /* select() */

    #define REMOTE_SERVER_PORT 1500#define MAX_MSG 100

    int main(int argc, char *argv[]) {

    int sd, rc, i;

    struct sockaddr_in cliAddr, remoteServAddr; struct hostent *h;

    /* check command line args */ if(argc

  • 5/25/2018 Gia o Trinh He Thong Mang Linux

    38/47

    - 38-

    printf("%s: sending data to '%s' (IP : %s) \n", argv[0], h->h_name, inet_ntoa(*(struct in_addr *)h->h_addr_list[0]));

    remoteServAddr.sin_family = h->h_addrtype; memcpy((char *) &remoteServAddr.sin_addr.s_addr,

    h->h_addr_list[0], h->h_length); remoteServAddr.sin_port = htons(REMOTE_SERVER_PORT);

    /* socket creation */ sd = socket(AF_INET,SOCK_DGRAM,0); if(sd

  • 5/25/2018 Gia o Trinh He Thong Mang Linux

    39/47

    - 39-

    #include /* memset() */

    #define LOCAL_SERVER_PORT 1500#define MAX_MSG 100

    int main(int argc, char *argv[]) {

    int sd, rc, n, cliLen; struct sockaddr_in cliAddr, servAddr; char msg[MAX_MSG];

    /* To socket trn my Server - t tn cho socket ca chng trnh Server */

    sd=socket(AF_INET, SOCK_DGRAM, 0); if(sd

  • 5/25/2018 Gia o Trinh He Thong Mang Linux

    40/47

    - 40-

    Bi 10 DCH VTRUYN FILE FTP

    FTP (File Transfer Protocol) l dch vcho php truyn cc tp tin gia hai my

    tnh Client v Server, qun l cc thmc v truy cp vo thtn n t. FTP khng

    c thit lp truy cp vo mt my khc v chy cc chng trnh my , chdng cho vic truyn tp tin.

    kt ni FTP, g lnh sau : ftp

    nh ngi dng FTP M t

    ascii Chuyn sang ch truyn ascii

    bell m thanh ca chng trnh sau khi truyn mi tp tin

    binary Chuyn sang ch truyn nhphncd directory Chuyn i thmc hin hnh trn server

    cdup Li thmc hin hnh vmt cp trc

    close Hukt ni

    delete filename Xo mt tp tin trn server

    dir directory Hin ththmc directoryca server

    get filename Truyn tp tin trn server vmy cc bhash Hin th/lm mt du # cho mi khi cc k t truyn c

    help Hin thcc trgip

    lcd directory Chuyn i thmc hin hnh trn my cc b

    ls directory Xem danh sch cc tp tin trong thmc directory trn Server

    mdelete files Xa nhiu tp tin trn my Server

    mdir directories Lit k cc tp tin trong nhiu thmc trn my Server

    mget files i nhiu tp tin trn my Server v thmc hin hnh ca my

    c b

    mkdir o thmc trn my Server

    mput files i mt stp tin tmy cc bln my Server

    open host t ni vi Server host txa

    put filename Truyn tp tin tmy cc bln my Server

    pwd Hin ththmc hin hnh trn server

  • 5/25/2018 Gia o Trinh He Thong Mang Linux

    41/47

    - 41-

    status Hin thtrng thi ca ftp

    rename file1 file2 i tnfile1trn my Server thnhfile2

    quote Cung cp mt lnh FTP mt cch trc tip

    quit Chm dt kt ni v thot khi ftp

    ? Hin thdanh sch lnh

    Khi truy cp vo h thng, nu cha c account, ngi dng c th login viaccount c bit l anonymous, khng c mt khu.

    Thc hnh

    C:\>ftp Khi ng ftp tthmc hin hnhC:\

    (to) : 200.201.202.180

    user : user01 Nhp vo tn user

    Password : Nhp vo mt khu tng ng

    ftp> dir Xem ni dung thmc

    ftp> ? Xem ni dung cc lnh ca ftp

    ftp>put autoexec.bat autoexec.dos Chuyn tp tin tClient ln Server

    i tn mi l autoexec.dos

    ftp> ls Xem kt qutruyn file

    ftp>get autoexec.dos LINUX.TXT y tp tin autoexec.dos trn Server v

    Client vi tn mi l LINUX.TXTftp>mget autoexec.dos y tp tin autoexec.dos trn Server v

    Client thmc C:\

    ftp>cd /home/user01 Chuyn n thmc hin hnh l user01

    l thmc c ton quyn ca user user01

    ftp>mdir document o trong thmc user01 thmc mi

    c tn document

    ftp> help dir Xem hng dn sdng lnh dir

    ftp>help get Xem hng dn sdng lnh get

    ftp> quit t thc phin lm vic

  • 5/25/2018 Gia o Trinh He Thong Mang Linux

    42/47

    - 42-

    Bi 11 CC TP TIN CU HNH MNG

    1. Tp tin /etc/hosts

    # Do not remove the following line, or various programs

    # that require network functionality will fail.127.0.0.1 localhost.localdomain localhost200.201.202.1 linuxsvr.dng.vn linuxsvr

    2. p tin /etc/sysconfig/network

    NETWORKING=yesFORWARD_IPV4=falseHOSTNAME=linuxsvr.edu.vnDOMAIN=edu.vnGATEWAY=200.201.202.1

    3. p tin /etc/sysconfig/network-scripts/ifcfg-eth0

    DEVICE=eth0BOOTPROTO=noneONBOOT=yesUSERCTL=noPEERDNS=noTYPE=EthernetIPADDR=200.201.202.1

    NETMASK=255.255.255.0NETWORK=200.201.202.0BROADCAST=200.201.202.255

    4. Chy chng trnh X- Windows htrcu hnh hthng :

    redhat-config-network

    5. Khi ng li dch vmng

    [root@linuxsvr root]#/etc/init.d/network restart

    Shutting down interface eth0: [ OK ]Shutting down loopback interface: [ OK ]Setting network parameters: [ OK ]Bringing up loopback interface: [ OK ]Bringing up interface eth0: [ OK ]

    6. Kim tra bng lnh :

    [root@linuxsvr root]#hostnamelinuxsvr.dng.vn

  • 5/25/2018 Gia o Trinh He Thong Mang Linux

    43/47

    - 43-

    7. Xem thng tin vcu hnh thit bmng

    [root@linuxsvr root]#ifconfigeth0 Link encap:Ethernet HWaddr 00:06:7B:02:71:21 inet addr:200.201.202.1 Bcast:200.201.202.255 Mask:255.255.255.0

    UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:2326 errors:0 dropped:0 overruns:0 frame:0 TX packets:70927 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:100 RX bytes:218392 (213.2 Kb) TX bytes:6939053 (6.6 Mb) Interrupt:9 Base address:0x4c00

    lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:933 errors:0 dropped:0 overruns:0 frame:0 TX packets:933 errors:0 dropped:0 overruns:0 carrier:0

    collisions:0 txqueuelen:0 RX bytes:87261 (85.2 Kb) TX bytes:87261 (85.2 Kb)

    Hnh 1. Cu hnh dch vmng bng tin ch redhat-config-network.

  • 5/25/2018 Gia o Trinh He Thong Mang Linux

    44/47

    - 44-

    Bi 12 U HNH DCH VDNS

    12.1. Cc tp tin cu hnh dch vDNS

    12.1.1. Tp tin /etc/host.conf

    order hosts,bind

    12.1.2. Tp tin /etc/resolv.conf

    :search dng.vnnameserver 200.201.202.1

    12.1.3. Tp tin /etc/named.conf

    # named.conf - configuration for bind# Generated automatically by redhat-config-bind, alchemist et al.# Any changes not supported by redhat-config-bind should be put# in /etc/named.customcontrols { inet 127.0.0.1 allow { localhost; } keys { rndckey; };};include "/etc/named.custom";include "/etc/rndc.key";zone "0.0.127.in-addr.arpa" { type master; file "0.0.127.in-addr.arpa.zone";

    };zone "localhost" { type master; file "localhost.zone";};zone "dng.vn" { type master; file "dng.vn.zone";};zone "edu.vn" { type master; file "edu.vn.zone";};

    12.1.4. Tp tin /var/named/dng.vn.zone

    $TTL 86400@ IN SOA dng. root.localhost ( 1 ; serial 28800 ; refresh 7200 ; retry 604800 ; expire 86400 ; ttl

    ) IN NS 200.201.202.1.

  • 5/25/2018 Gia o Trinh He Thong Mang Linux

    45/47

    - 45-

    www IN A 200.201.202.1tankhoi01 IN A 200.201.202.1tankhoi02 IN A 200.201.202.2

    12.1.5. Tp tin /var/named/edu.vn.zone

    $TTL 86400@ IN SOA edu. root.localhost ( 2 ; serial 28800 ; refresh 7200 ; retry 604800 ; expire 86400 ; ttl ) IN NS 200.201.202.1.www IN A 200.201.202.1tankhoi01 IN A 200.201.202.1

    tankhoi02 IN A 200.201.202.2

    12.1.6. Tp tin /var/named/0.0.127.in-addr.arpa.zone

    $TTL 86400@ IN SOA localhost. root.linuxsvr.dng.vn ( 36 ; serial 28800 ; refresh 7200 ; retry 604800 ; expire 86400 ; ttk

    )@ IN NS localhost.1 IN PTR localhost.1 IN PTR www.1 IN PTR tankhoi01.2 IN PTR tankhoi02.1 IN PTR www.1 IN PTR tankhoi01.2 IN PTR tankhoi02.

    12.1.7. Tp tin /var/named/localhost.zone$TTL 86400@ IN SOA @ root.localhost ( 1 ; serial 28800 ; refresh 7200 ; retry 604800 ; expire 86400 ; ttl ) IN NS localhost.@ IN A 127.0.0.1

    12.1.8. Lnh khi ng dch vDNS

    /etc/init.d/named restart

  • 5/25/2018 Gia o Trinh He Thong Mang Linux

    46/47

    - 46-

    12.2. Cc lnh v tin ch htr

    12.2.1. Lnh nslookup

    #nslookupNote: nslookup is deprecated and may be removed from future releases.Consider using the `dig' or `host' programs instead. Run nslookup withthe `-sil[ent]' option to prevent this message from appearing.>www.dng.vnServer: 200.201.202.1Address: 200.201.202.1#53

    Name: www.dng.vnAddress: 200.201.202.1> tankhoi02.edu.vn

    Server: 200.201.202.1Address: 200.201.202.1#53

    Name: tankhoi02.edu.vnAddress: 200.201.202.2

    12.2.2. Lnh host

    #host tankhoi01.dng.vn

    tankhoi01.dng.vn has address 200.201.202.1

    12.2.3. Lnh dig

    # dig dng.vn; DiG 9.2.1 dng.vn;; global options: printcmd;; Got answer:;; ->>HEADER

  • 5/25/2018 Gia o Trinh He Thong Mang Linux

    47/47

    - 47-

    Hnh 2. Cu hnh dch vBIND bng tin ch redhat-config-bind.

    @2004, Nguyn Tn Khi

    KHOA CNG NGHTHNG TIN - TRNG I HC BCH KHOA NNG