H u hành Linux - hutechos.weebly.comhutechos.weebly.com/uploads/1/6/9/3/16936172/thuchanh_hedieuhanh... · Các lệnh Linux cơ bản

Embed Size (px)

Citation preview

  • H iu hnh Linux

    Phn 1: S dng Linux

  • TDE - HCM Thc hnh H iu hnh Linux 2

    ng nhp vo Linux

    V d mn hnh ng nhp:pc29 login: bctruongpassword: bctruong123[bctruong@pc29 bctruong]$

    bctruong v bctruong123 l thng tin username v password cp trong h thng (lu Linux c phn bit ch hoa v ch thng).pc29 l tn my tnh (hostname)K hiu $ l du nhc lnh (bash shell)K hiu # l du nhc lnh ca user root

  • TDE - HCM Thc hnh H iu hnh Linux 3

    ng nhp vo Linux (tt)

    Cc loi user account trn Linux:root: Admin account, tng t account Administrator trn WinNT/200xdaemon, shutdown, ftp, apache, : System account dng khi thc thi chng trnh. Khng th ng nhp bng cc account ny.lan, viet, tuan, : User account, mi account thng c cp mt th mc lm vic (home directory), v d /home/tuan

  • TDE - HCM Thc hnh H iu hnh Linux 4

    ng nhp vo Linux (tt)

    Thng tin v user account:uid: M ngi dng (User ID)gid: M nhm ngi dng (Group ID)username, passwordHome directory: C cha mt s file chun:

    .bash_profile: Thc thi mi khi user login, thng dng t bin mi trng PATH.bash_logout: Thc thi mi khi user logout..bash_history: Cha cc dng lnh user g.

  • TDE - HCM Thc hnh H iu hnh Linux 5

    ng nhp vo Linux (tt)

    ngh v password an ton:T 8 k t tr lnKhng dng cc t trong t inKhng t trng vi usernameCha c ch, s v k t c bitKhng ghi chp ra giyNn thay i theo nh k

    Trnh ng nhp bng ti khon root:=> Nga vic v tnh lm hng h thng

  • TDE - HCM Thc hnh H iu hnh Linux 6

    ng nhp vo Linux (tt)

    To mt user account mi:pc29 login: rootpassword: password# useradd tuan -> to user tuan# passwd tuan -> t mt khuChanging password for user tuanNew password: passwordRetype new password: password# exit -> thot khi rootLu : password khng hin th khi nhp

  • TDE - HCM Thc hnh H iu hnh Linux 7

    ng nhp vo Linux (tt)

    ng nhp bng user account va to:pc29 login: tuanPassword: nhtuan123

    $ passwd -> i mt khu (nu cn)

    Xem username ca mnh:$ whoamituan$ who am ituan pts/0 May 18 18:29

  • TDE - HCM Thc hnh H iu hnh Linux 8

    ng nhp vo Linux (tt)

    Xem cc user ang login:$ whotuan pts/0 May 18 18:29root tty01 May 15 15:18root tty03 May 15 15:17

    K hiu terminal ni trc tip vo my:tty01, tty02, tty03,

    K hiu terminal gi lp (pseudo terminal):pts/0, pts/1, pts/2,

  • TDE - HCM Thc hnh H iu hnh Linux 9

    ng nhp vo Linux (tt)

    Xem chi tit cc user ang login:$ w15:10:41 up 4 days, 5:29, 3 users, load average: 0.91, 0.73, 0.35

    USER TTY FROM LOGIN@ IDLE JCPU PCPU WHATtuan pts/0 10.1.1.3 18:29 .0s .01s .01s wroot tty01 - 15:18 2:0 .03s .00s wroot tty03 - 15:17 5:23 0s 0s w

    PCPU: Thi gian chng trnh WHAT chyJCPU: Tng thi gian cc chng trnh ca user ang chy

  • TDE - HCM Thc hnh H iu hnh Linux 10

    Thot khi Linux

    Logout:$ logout hoc$ exit

    Khi ng li my:$ reboot hocNhn t hp phm Ctrl Alt - Del

    Tt my:$ poweroff hoc$ shutdown h now

  • TDE - HCM Thc hnh H iu hnh Linux 11

    Cc lnh Linux c bn

    S dng ty chn trn dng lnh:Lnh lit k ni dung th mc:$ ls$

    Lit k tt c cc file, k c file n:$ ls a./ .bash_history .kermrc .lessrc

  • TDE - HCM Thc hnh H iu hnh Linux 12

    Cc lnh Linux c bn (tt)

    S dng ty chn trn dng lnh: (tt)Lit k chi tit tt c file:$ ls altotal 10drwxr-xr-x 3 tuan users 1024 Dec 21 ./drwxr-xr-x 6 root root 1024 Dec 14 ../-rw-r--r-- 1 tuan users 163 Dec 7 .kermrc-rw-r--r-- 1 tuan users 34 Jun 6 .less-rw-r--r-- 1 tuan users 114 Nov 23 .lessrcdrwxr-xr-x 2 tuan users 1024 Dec 7 .term/

    C th thay i trt t cc ty chn:$ ls la -> cho kt qu tng ng lnh trn$ ls a -l -> cho kt qu tng ng lnh trn

  • TDE - HCM Thc hnh H iu hnh Linux 13

    Cc lnh Linux c bn (tt)

    S dng ty chn trn dng lnh: (tt)Lit k theo th t thi gian file (gim dn):$ ls alttotal 10drwxr-xr-x 3 tuan users 1024 Dec 21 ./drwxr-xr-x 6 root root 1024 Dec 14 ../drwxr-xr-x 2 tuan users 1024 Dec 7 .term/-rw-r--r-- 1 tuan users 163 Dec 7 .kermrc-rw-r--r-- 1 tuan users 114 Nov 23 .lessrc-rw-r--r-- 1 tuan users 34 Jun 6 .less

    t: Vit tt t sort by time

  • TDE - HCM Thc hnh H iu hnh Linux 14

    Cc lnh Linux c bn (tt)

    S dng ty chn trn dng lnh: (tt)Lit k theo th t thi gian file (tng dn):$ ls altrtotal 6-rw-r--r-- 1 tuan users 34 Jun 6 .less-rw-r--r-- 1 tuan users 114 Nov 23 .lessrcdrwxr-xr-x 2 tuan users 1024 Dec 7 .term/-rw-r--r-- 1 tuan users 163 Dec 7 .kermrcdrwxr-xr-x 6 root root 1024 Dec 14 ../drwxr-xr-x 3 tuan users 1024 Dec 21 ./

    Ty chn r dng xut kt qu theo th t ngc liLu ty chn r khc vi R dng khi lit k c nhng th mc con bn trong.

  • TDE - HCM Thc hnh H iu hnh Linux 15

    Cc lnh Linux c bn (tt)

    S dng tham s dng lnh:Lit k chi tit th mc /usr/local/src:$ ls l /usr/local/src

    Lit k th mc cha:$ ls ..

    Lit k th mc lm vic ca user:$ ls ~

  • TDE - HCM Thc hnh H iu hnh Linux 16

    Cc lnh Linux c bn (tt)

    Chuyn hng nhp/xut (redirection):D liu u ra t command1 c chuyn cho u vo ca command2 thng qua pipe:command1 | command2

    K hiu | c th tm thy phm \Lit k th mc theo tng trang bng cch s dng pipe:$ ls /usr/local/src | more

  • TDE - HCM Thc hnh H iu hnh Linux 17

    Cc lnh Linux c bn (tt)

    Chuyn hng nhp/xut: (tt) gi kt qu thc thi lnh ra file, s dng k hiu >Lit k mt th mc ra file output.txt trn a:$ ls /usr/local/src > output.txt

    Sau , c th xem ni dung output.txt:$ more output.txt hoc$ less output.txt hoc$ tail output.txt -> Ch xem 10 dng cui

  • TDE - HCM Thc hnh H iu hnh Linux 18

    Cc lnh Linux c bn (tt)

    Chuyn hng nhp/xut: (tt)K hiu > lun to mt file mi hoc thay th ni dung file c b sung thm ni dung m khng ghi ln file c, s dng k hiu >>B sung danh sch user ang lm vic vo file output.txt:$ who >> output.txt

  • TDE - HCM Thc hnh H iu hnh Linux 19

    Cc lnh Linux c bn (tt)

    Quy c m t lnh Linux:Ch khng nm trong cc du [], , {} c gi nguyn:$ ls [-l]

    Ch trong [] l ty chn (khng bt buc):$ ls [-l]

    Du v ch bn trong c thay bng on ch tng ng:$ more

    nu l output.txt -> more output.txt

  • TDE - HCM Thc hnh H iu hnh Linux 20

    Cc lnh Linux c bn (tt)

    Quy c m t lnh Linux: (tt)Du {} ni ch c chn mt trong nhiu gi tr lit k bn trong:$ hostname { | -F }-> hostname hoc-> hostname F Du | dng phn cch cc la chn vi nhau

    Du m t nhiu tham s tng t:$ more [filenames ]-> more file1 file2 file3 file4 file5

  • TDE - HCM Thc hnh H iu hnh Linux 21

    Cc lnh Linux c bn (tt)

    Tr gip v lnh Linux:Xem ti liu m t lnh (manual):$ man -> xem help ca command$ man k -> tm dng cha keyword

    Xem hng dn cc lnh shell (lnh ni tr):$ help

    Ti liu LDP (Linux Documentation Project)http://www.tldp.org

  • TDE - HCM Thc hnh H iu hnh Linux 22

    Cc lnh Linux c bn (tt)

    S dng k t thay th (wildcard):K t *:$ ls /home/tuan/*.txtinput.txt output.txt vanban.txt

    K t ?:$ ls /home/tuan/??put.txtinput.txt

    S dng tnh nng autocomplete:$ pass* $ passwd$ pass $ passwd

  • TDE - HCM Thc hnh H iu hnh Linux 23

    Cc lnh Linux c bn (tt)

    Bin mi trng (environment variables):Bin mi trng c nh ngha ring cho tng user, tng phin lm vic. Xem cc bin mi trng:$ env hoc $ setHOME=/home/tuanLOGNAME=tuanPATH=/usr/local/bin:/usr/binSHELL=/bin/bash

    PATH l ni shell s tm lnh thc thi

  • TDE - HCM Thc hnh H iu hnh Linux 24

    Cc lnh Linux c bn (tt)

    Bin mi trng: (tt)t bin mi trng:$ PATH = .:/usr/bin:/home/tuan$ export PATHTng ng vi:$ export PATH = .:/usr/bin:/home/tuan

    Thit lp t ng bin mi trng khi login:Gi lnh trn trong file ~/.bash_profile

    (~ l k hiu th mc lm vic ca user)Thc thi li file .bash_profile:$ source ~/.bash_profile

  • TDE - HCM Thc hnh H iu hnh Linux 25

    Cc lnh Linux c bn (tt)

    Tin trnh (process):L cc chng trnh ang thc thi bi h thng hoc ngi s dng.Xem cc process ta ang chy:$ ps -> Vit tt t process statusPID TTY STAT TIME COMMAND41 pts/0 S 0:00 bash

    134 pts/0 R 0:00 psPID: Process ID (t 0 -> 65565)TTY: Terminal chy processDu -: Login shell (bash)

  • TDE - HCM Thc hnh H iu hnh Linux 26

    Cc lnh Linux c bn (tt)

    Tin trnh (process): (tt)Xem chi tit cc process ta ang chy:$ ps -uUSER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMANDtuan 26509 0.0 0.1 4328 1416 pts/0 S 09:18 0:00 -bashtuan 26575 0.0 0.0 2592 640 pts/0 R 09:21 0:00 ps -u

    STAT: Process Status (S=Sleeping, R=Running)Xem tt c cc process ang chy:$ ps a -> Xem cc process trn terminal ny$ ps ax -> Xem tt c process$ ps aux -> Xem chi tit tt c process$ ps axf -> Xem c quan h gia cc process

  • TDE - HCM Thc hnh H iu hnh Linux 27

    Cc lnh Linux c bn (tt)

    Tin trnh (process): (tt)ps vi ty chn l:$ ps lF S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD0 S 508 26509 26508 0 75 0 - 1083 wait4 pts/0 0 bash0 R 508 26746 26509 0 80 0 - 779 - pts/0 0 ps

    PPID: Parent Process ID

    bash (PID=26509)

    init (PID=1) ps (PID=26746)

    PPID = bash PID

    gi

    Tt c cc process

  • TDE - HCM Thc hnh H iu hnh Linux 28

    Cc lnh Linux c bn (tt)

    Tin trnh (process): (tt)Hy tin trnh: Lnh kill

    Dng khi khng th kt thc chng trnh bng cch thng thng hay t hp phm Ctrl-C, qBc 1: Login vo rootBc 2: Dng ps u tm PID ca process cn killBc 3: $ kill Bc 4: Dng ps u kim tra li; nu khng cn -> bc 8; nu vn cn nhng vi PID mi -> bc 6.

  • TDE - HCM Thc hnh H iu hnh Linux 29

    Cc lnh Linux c bn (tt)

    Tin trnh (process): (tt)Hy tin trnh: (tt)

    Bc 5: Nu process vn cn, kill vi ty chn -9:$ kill -9

    Dng ps u kim tra li; nu process vn cn -> bc 7; nu process mt -> bc 8Bc 6: Process xut hin li vi PID mi -> do parent process sinh ra -> cn kill parent process.Bc 7: Dng ps l tm PPID v kill parent process theo cc bc nu.Bc 8: Process b kill. Cn logout khi root:$ exit

  • TDE - HCM Thc hnh H iu hnh Linux 30

    Cc lnh Linux c bn (tt)

    Chuyn thnh user khc:Thay v phi logout khi user hin ti v login li t u vi user mi, ta dng lnh su:Chuyn thnh user root:$ su -> Vit tt t super userPassword: -> Nhp password ca root

    Chuyn thnh user root (vi profile ca root):$ su Password: -> Nhp password ca root

    Chuyn thnh user (khc root):$ su [-]

  • TDE - HCM Thc hnh H iu hnh Linux 31

    Cc lnh Linux c bn (tt)

    Tm kim chui vi lnh grep:Lnh grep (Global Regular Expression Parser) tm v hin th cc dng cha chui cn tm.Cng dng 1: Lc kt qu lnh:

    | grep $ ls | grep put -> Lit k file c ch putinput.txt output.txt$ ps ax | grep bash -> Tm chnh xc6368 tty2 S 0:00 -bash

    27514 pts/0 S 0:00 -bash27959 pts/0 S 0:00 grep bash

  • TDE - HCM Thc hnh H iu hnh Linux 32

    Cc lnh Linux c bn (tt)

    Tm kim chui vi lnh grep: (tt)Cng dng 2: Tm dng c cha chui con trong file:

    grep $ grep Window input.txtX Window is a GUI of LinuxBut Windows is a Microsofts OS$ grep Window input.txtX Window is a GUI of Linux

  • TDE - HCM Thc hnh H iu hnh Linux 33

    S dng h thng file

    Phn loi file theo ni dung:D liu ngi dngD liu h thng: V d file /etc/passwdFile thc thi (chng trnh)

    Tn file:Ti a 256 k tCha cc k t hoa, thng, s, du ., du -, du _, Mt s h thng ch phn bit 32 hay 64 k t u tin trong tn file

  • TDE - HCM Thc hnh H iu hnh Linux 34

    S dng h thng file (tt)

    Th mc:L mt loi file c bitQuy tc t tn tng t nh file

    /

    boot home etc

    tuan duyen

    /etc

    /home/duyen

  • TDE - HCM Thc hnh H iu hnh Linux 35

    S dng h thng file (tt)

    Th mc lm vic (home directory):Mi user c cp mt th mc lu tr d liu ring ca mnh.Tn th mc thng trng tn username v t trong th mc /home.Home directory cn c k hiu l du ~:[tuan@pc29 /]$ cd ~ cd /home/tuan

    User c ton quyn c ghi trong th mc nyMc nh cc user khng th c ghi c trong home directory ca nhau.

  • TDE - HCM Thc hnh H iu hnh Linux 36

    S dng h thng file (tt)

    Lnh in th mc hin hnh (pwd):cd /var/log

    $ pwd -> vit tt t Print working dir/var/log

    ng dn tng i v tuyt i:ng dn tng i: Cn c vo th mc hin hnhng dn tuyt i: ng dn y t th mc gc n file

  • TDE - HCM Thc hnh H iu hnh Linux 37

    S dng h thng file (tt)

    V d ng dn tng i:$ cd /var/log -> /var/log hin hnh$ more messages -> /var/log/messages$ more ./samba/smb.log

    -> /var/log/samba/smb.log$more ../lib/mylib.txt

    -> /var/lib/mylib.txtDu . k hiu th mc user ang ngDu .. k hiu th mc cha

  • TDE - HCM Thc hnh H iu hnh Linux 38

    S dng h thng file (tt)

    Lnh chuyn th mc (cd):$ pwd/home/tuan

    $ cd .. -> Chuyn ra th mc cha /home$ pwd/home

    $ cd .. -> Chuyn ra th mc cha /$ pwd/

  • TDE - HCM Thc hnh H iu hnh Linux 39

    S dng h thng file (tt)

    To file vn bn vi lnh cat:To file mi:$ cat > newfileHello WorldHeres some text^D

    Xem li ni dung file:$ cat newfileHello WorldHeres some text

  • TDE - HCM Thc hnh H iu hnh Linux 40

    S dng h thng file (tt)

    To file vn bn vi lnh cat: (tt)B sung thm vo file:$ cat >> newfileSome more lines

    Ni nhiu file thnh mt file:$ cat > anotherfileDiffrerent text$ cat newfile.txt anotherfile > bigfile

    Lnh cat, vt tt ca concatenate ni cc input xut ra mt output.

  • TDE - HCM Thc hnh H iu hnh Linux 41

    S dng h thng file (tt)

    To th mc (mkdir):$ mkdir

    Di chuyn (mv) v sao chp file (cp):$ mv $ cp

    Di chuyn v sao chp vi wildcard:Di chuyn th mc:$ mvdir

  • TDE - HCM Thc hnh H iu hnh Linux 42

    S dng h thng file (tt)

    i tn file / th mc:$ mv

    Xa file:$ rm

    Nhc trc khi xa: ty chn i (interactive)$ rm i *duckrm: remove dead_duck? Yrm: remove guiduck? Nrm: remove lame-duck? y

  • TDE - HCM Thc hnh H iu hnh Linux 43

    S dng h thng file (tt)

    Xa th mc:Dng lnh rmdir xa th mc:$ rmdir

    Ch xa c th mc trng (khng cn ni dung) xa ton b ni dung v cc th mc con bn trong (th mc cha trng):$ rm r

    Ty chn r (recursive) duyt quy ton b th mc con bn trong

  • TDE - HCM Thc hnh H iu hnh Linux 44

    S dng h thng file (tt)

    Gii nn tp tin:$ gunzip onefile.gz -> onefile$ unzip onefile.zip -> onefile

    Nn tp tin:$ gzip onefile -> onefile.gz$ zip onefile -> onefile.zip

    Gii nn tp tin tar.gz:$ tar xvfz onefile.tar.gz

  • TDE - HCM Thc hnh H iu hnh Linux 45

    S dng h thng file (tt)

    Cc th mc quan trng:Th mc gc //home: Cha cc home directory ca cc user/bin (binaries): Cha cc chng trnh Linux c bn/usr: Cha cc phn mm, ti liu, /usr/bin: Cha cc chng trnh ci t/dev: Linux xem mi th l file, y l ni cha cc file thit b

    $ cat /dev/cdrom > MyCDImage.isoThit b /dev/null: Dng nhn d liu rc

  • H iu hnh Linux

    Phn 2: Qun tr Linux I

  • TDE - HCM Thc hnh H iu hnh Linux 47

    Quyn truy cp file v th mc

    Thuc tnh file:$ ls -l /usr/games-rwxr-xr-x 3 root root 4096 Feb 21 11:45 banner-r-xrwxr-x 3 root games 4096 Feb 21 11:44 fortune

    7 trng thuc tnh cho mi file:Tp quyn truy xut (permission)S lin kt n file (link count)User ID s hu file owner (v d root)Nhm user ca file (v d games)Kch thc file (tnh theo byte)Ngy gi to fileTn file

  • TDE - HCM Thc hnh H iu hnh Linux 48

    Quyn truy cp file v th mc (tt)

    Ch s hu ca file (owner):L user to ra file :[tuan@pc29 tuan]$ mkdir thumuc1[tuan@pc29 tuan]$ ls ldrwxr-xr-x 2 tuan users 4096 11:44 thumuc1

    Ch s hu ca thumuc1 l tuanOwner c th gn quyn truy cp file .root c th i owner ca file:# chown [root@pc29 tuan]# chown root thumuc1[root@pc29 tuan]# ls ldrwxr-xr-x 2 root users 4096 11:44 thumuc1

  • TDE - HCM Thc hnh H iu hnh Linux 49

    Quyn truy cp file v th mc (tt)

    Nhm ngi dng (group):Mi group c th cha nhiu user.Mt user c th thuc nhiu group nhng ch c mt nhm chnh (primary group).Thng thng nhm chnh ca mi user l mt group c trng tn vi User ID, v d: UID=tuan, Primary GID=tuan

    ngha ca group:Dng khi cn cp quyn truy cp file cho mt nhm ngi.

  • TDE - HCM Thc hnh H iu hnh Linux 50

    Quyn truy cp file v th mc (tt)

    Nhm user ca file (group):L nhm chnh ca owner khi to file:[tuan@pc29 tuan]$ mkdir thumuc1[tuan@pc29 tuan]$ ls ldrwxr-xr-x 2 tuan users 4096 11:44 thumuc1

    Nhm chnh (primary group) ca tuan l usersNhm ca thumuc1 l users

    root c th i nhm ca file:# chgrp [root@pc29 tuan]# chgrp admins thumuc1[root@pc29 tuan]# ls ldrwxr-xr-x 2 tuan admins 4096 11:44 thumuc1

  • TDE - HCM Thc hnh H iu hnh Linux 51

    Quyn truy cp file v th mc (tt)

    Quyn truy cp file:3 quyn: c(r), ghi(w), thc thi(x)p dng cho3 i tng: owner, group, other (cc user khc)

    Quyn truy cp th mc:3 quyn: lit k(r), ghi(w), chuyn vo(x)p dng cho3 i tng: owner, group, other (cc user khc

  • TDE - HCM Thc hnh H iu hnh Linux 52

    Quyn truy cp file v th mc (tt)

    r w xowner x x x

    group x x x

    other x x x

    K hiu x:

    Dng chui quyn: r,w,x: cho php - : cm

    Dng bit quyn: 1: cho php 0 : cm

  • TDE - HCM Thc hnh H iu hnh Linux 53

    Quyn truy cp file v th mc (tt)

    => Cn 9 bit biu din quyn cho mt fileBiu din dng chui quyn:

    - r w x r w x r w x

    owner group other- : filed : th mc

    Biu din dng bit quyn:

    1 1 1 1 1 1 1 1 1

    owner group other

  • TDE - HCM Thc hnh H iu hnh Linux 54

    Quyn truy cp file v th mc (tt)

    Biu din quyn dng s:Quy i dng bit quyn sang h bt phn.V d:

    rwxr-xr-x = 111101101 = 755owner c ton quyn, cc user cn li ch c c v thc thi

    rwx------ = 111000000 = 700owner c ton quyn, cn li khng c quyn

    r--rw---- = 100110000 = 460owner ch c, user trong nhm c quyn c ghi, cn li khng c quyn

  • TDE - HCM Thc hnh H iu hnh Linux 55

    Quyn truy cp file v th mc (tt)

    t quyn truy cp file:chmod

    Dng specification th nht:chmod [u|g|o|a][+|-][r|w|x]

    u: owner; g: group; o: other; a: c 3 i tng+: bt quyn; -: tt quynr: quyn r; w: quyn w; x: quyn x

    Dng specification th hai:chmod

    S bt phn biu din chui bit quyn trn

  • TDE - HCM Thc hnh H iu hnh Linux 56

    Quyn truy cp file v th mc (tt)

    Mt s v d t quyn file:$ chmod ugo-rw myfile hoc$ chmod a-rw myfile

    => Tt quyn c/ghi ca tt c user$ ls -l-rwxrwxrwx 1 root admins 640 05:40 myfiledr-xr-x-wx 2 root admins 4096 05:40 mydir$ chmod go-rw my*$ ls -l-rwx--x--x 1 root admins 640 05:40 myfiledr-x--x--x 2 root admins 4096 05:40 mydir

    => Tt quyn c/ghi ca cc user trong group v user khc

  • TDE - HCM Thc hnh H iu hnh Linux 57

    Quyn truy cp file v th mc (tt)

    Mt s v d t quyn file: (tt)$ ls -l-rw-r--r-- 1 tuan users 1024 myfile$ chmod 755 myfile$ ls -l-rwxr-xr-x 1 tuan users 1024 myfile

    => group v other khng c quyn ghi

    $ chmod 644 myfile$ ls -l-rw-r--r-- 1 tuan users 1024 myfile

    => tt quyn ghi ca group v other, tt tt c quyn thc thi

  • TDE - HCM Thc hnh H iu hnh Linux 58

    Quyn truy cp file v th mc (tt)

    User c quyn c file th cng c quyn copy file. User s l owner ca file copy mi:$ whoamituan$ ls -l-rwxr-xr-x 1 root admins 100 myfile$ cp myfile ~$ ls l ~-rwxr-xr-x 1 tuan users 100 myfile

  • TDE - HCM Thc hnh H iu hnh Linux 59

    Quyn truy cp file v th mc (tt)

    User c quyn ghi trong th mc th cng c quyn xa cc file trong th mc , cho d cc file c t quyn ghi cho user hay khng:$ whoamituan$ groups users => xem danh sch group usersusers: duyen nam tuan viet$ ls -ladrwxrwx--- 2 root users 4096 .-rw------- 2 root root 916 file01$ rm file01

  • TDE - HCM Thc hnh H iu hnh Linux 60

    Trnh thng dch lnh Shell

    Shell l g?Chng trnh din dch cc lnh do user nhp t bn phm v chuyn cho Linux thc thi.Ta nh trnh command.com trong MS-DOS.Shell thng dng trn Linux hin nay l Bash(Bourne Again Shell).

  • TDE - HCM Thc hnh H iu hnh Linux 61

    Trnh thng dch lnh Shell (tt)

    Shell cha mt s lnh buit-in (ta nh lnh ni tr trong MS-DOS), v d pwd.Cc lnh khc u l nhng chng trnh thc thi nm trong cc th mc (ta nh lnh ngoi tr trong MS-DOS), v d cp,mv.

  • TDE - HCM Thc hnh H iu hnh Linux 62

    Trnh thng dch lnh Shell (tt)

    Sau khi user ng nhp (login), Linux s chy mt shell mi cho user lm vic.Khi user logout, shell ca user s kt thc.Shell thng l chng trnh u tin c chy sau khi user login.Loi shell lm vic ca mi user c nh ngha trong thuc tnh ca user account.

  • TDE - HCM Thc hnh H iu hnh Linux 63

    Trnh thng dch lnh Shell (tt)

    Cc loi shell truyn thng:Bourne shell (sh): Shell u tin v c mt trn mi h UNIX, h tr lp trnh shell rt tt.C shell (csh): C php lp trnh ta nh ngn ng C, h tr tng tc vi user tt.Korn shell (ksh): Kt hp cc u im ca Bourne shell v C shell, cung cp mi trng Bourne shell vi kh nng h tr tng tc vi user.

  • TDE - HCM Thc hnh H iu hnh Linux 64

    Trnh thng dch lnh Shell (tt)

    Shell trn Linux:bash: Phin bn m rng ca shtcsh: Phin bn m rng ca cshpdksh: Phin bn m rng ca ksh

    Bourne Again Shell (bash):L shell mc nh trn LinuxTng thch Bourne shellB sung kh nng x l user input:

    Auto-completion, wildcards, history, alias

  • TDE - HCM Thc hnh H iu hnh Linux 65

    Trnh thng dch lnh Shell (tt)

    Bourne Again Shell (bash): (tt)Command-line Auto-completion:

    Phm TAB, S dng wildcard:$ lsch1.doc ch2.doc ch3.doc ch4.doc ch5.doc$ lpr ch* hay$ lpr ch?.doc hay$ lpr ch[12345].doc hay$ lpr ch[1-5].doc

    => In t file ch1.doc cho n ch5.doc

  • TDE - HCM Thc hnh H iu hnh Linux 66

    Trnh thng dch lnh Shell (tt)

    Bourne Again Shell (bash): (tt)Command history:

    Lu li cc lnh user g trong file HISTFILE(mc nh l .bash_history) home directory ca user .Kch thc history quy nh bi bin HISTSIZE.User c th ly li cc lnh g bng phm mi tn ln v xung, tng t nh doskey trong MS-DOS.Xem history:$ history [s dng sau cng]

  • TDE - HCM Thc hnh H iu hnh Linux 67

    Trnh thng dch lnh Shell (tt)

    Bourne Again Shell (bash): (tt)Alias: Thay cc lnh di bng tn (alias) ngn hn gim thao tc g phm.$ cd /usr/local/src/gbench1 (1)t tn cho lnh (1) l gb:

    $ alias gb=cd /usr/local/src/gbench-1S dng: $ gbMt s alias mc nh trong RedHat bash:

    alias ls=ls --color=ttyalias ll=ls -l --color=ttyalias mc='. /usr/share/mc/bin/mc-wrapper.sh'

  • TDE - HCM Thc hnh H iu hnh Linux 68

    Trnh thng dch lnh Shell (tt)

    Bourne Again Shell (bash): (tt)Input redirection: V d:m s dng, s t, s k t trong mt on vn bn (c nhp t bn phm):

    $ wcHello World!Ctrl-D1 2 13

    Dng input redirection c on vn bn t file:$ wc < hello.txt1 2 13

  • TDE - HCM Thc hnh H iu hnh Linux 69

    Trnh thng dch lnh Shell (tt)

    Bourne Again Shell (bash): (tt)Output redirection: Chuyn kt qu xut ca lnh ra file thay v in ra mn hnh. V d:$ ls > dirlist.txt

    => Lit k ni dung th mc vo file dirlist.txt$ find / -name *.txt > result.txt

    => Tm cc file *.txt k t th mc / v in kt qu + thng bo ra file result.txt

    $ find / -name *.txt 2> /dev/null=> Tm cc file *.txt k t th mc /, ch in kt qu ra mn hnh, khng in thng bo li (kt qu t thit b xut li chun stderr (2) s b ct).

  • TDE - HCM Thc hnh H iu hnh Linux 70

    Trnh thng dch lnh Shell (tt)

    Bourne Again Shell (bash): (tt)Pipe (|): Truyn d liu gia cc lnh output ca lnh ny s l input ca lnh k. V d:$ cat vidu.txtX Window is a GUI of LinuxBut Windows is a Microsofts OSOpenwin is from Sun Solaris$ cat vidu.txt | grep Window | wc l2

    => In s dng cha ch Window trong file vidu.txt

  • TDE - HCM Thc hnh H iu hnh Linux 71

    Trnh thng dch lnh Shell (tt)

    Bourne Again Shell (bash): (tt)Prompt: bash dng 2 mc du nhc:

    PS1: Du nhc lnh, mc nh l:[\u@\h \W]\$ chng hn: [tuan@pc29 usr]$

    PS2: Du nhc ch nhp d liu, mc nh l >Mt s k t c bit dng cho prompt:

    \$: K t $ hay # (i vi root)\\: K t \\d: Ngy thng\h: Hostname\n: Xung hng\s: Tn shell\w: Th mc hin hnh

  • TDE - HCM Thc hnh H iu hnh Linux 72

    Trnh thng dch lnh Shell (tt)

    Bourne Again Shell (bash): (tt)Thit lp Prompt cho shell:$ PS1=\t\\

    => Du nhc lnh s l:16:43:24\

  • TDE - HCM Thc hnh H iu hnh Linux 73

    Qun tr h thng Linux

    Gn kt (mount) h thng file:Mi h thng file trn Unix/Linux u phi mount mi c th s dng c.Mount l thao tc gn kt mt h thng file vo mt th mc no (mount point) trong cy th mc gc /.Mi truy cp n th mc mount point c hiu l truy cp vo h thng file mount.

  • TDE - HCM Thc hnh H iu hnh Linux 74

    Qun tr h thng Linux (tt)

    Gn kt (mount) h thng file: (tt)Trong qu trnh boot, lnh mount s c gi gn kt tt c cc h thng file ch nh trong file /etc/fstab.V d file /etc/fstab:/dev/hda1 / ext3/dev/hda2 swap swap/dev/cdrom /mnt/cdrom udf,iso9660/dev/fd0 /mnt/floppy auto

    => mount hda1 vo th mc gc, cdrom vo th mc /mnt/cdrom, a mm vo /mnt/floppy

  • TDE - HCM Thc hnh H iu hnh Linux 75

    Qun tr h thng Linux (tt)

    Gn kt (mount) h thng file: (tt)nh dng lnh mount nh sau:mount

    filesystem l tn thit bmountpoint l tn th mc s gn kt vo thit b

    Trng hp thit b cha c m t trong /etc/fstab hoc Linux khng t ng bit:mount t

    fstype l kiu h thng file ca thit bMount a CDROM vo /mnt/cdrom:mount /dev/cdrom /mnt/cdrom

    /dev/cdrom l tn thit b a CDROM 1

  • TDE - HCM Thc hnh H iu hnh Linux 76

    Qun tr h thng Linux (tt)

    Gn kt (mount) h thng file: (tt)Mount a mm vo th mc /mnt/floppy:$ mount /dev/fd0 /mnt/floppy

    /dev/fd0 l tn thit b a mm 1Trng hp a mm format FAT12:

    $ mount t msdos /dev/fd0 /mnt/floppy

    Mount partition Win9x:$ mount t vfat /dev/hda1 /mnt/win

    Gi s /dev/hda1 l partition ci Windows 9x ( C)=> c ghi trong th mc /mnt/win nh trn a C: ca Windows 9x

  • TDE - HCM Thc hnh H iu hnh Linux 77

    Qun tr h thng Linux (tt)

    Gn kt (mount) h thng file: (tt)Mount a USB:$ mount /dev/sda1 /mnt/usb

    /dev/sda1 l tn thit b USB 1 (khe cm u tin)Trng hp my c /dev/sda l thit b SCSI HDD, tn thit b USB s l /dev/sdb,

    Mount a SCSI vo th mc /mnt/temp$ mount /dev/sda1 /mnt/temp

    /dev/sda1 l partition1 ca a SCSI HDD 1Vi lnh mount, mount point c th l bt c th mc no, tuy nhin thng thng nn t trong /mnt

  • TDE - HCM Thc hnh H iu hnh Linux 78

    Qun tr h thng Linux (tt)

    Gn kt (mount) h thng file: (tt)Mt s tn thit b:

    /dev/fd0 l tn thit b a mm 1/dev/fd1 l tn thit b a mm 2/dev/cdrom l tn thit b CDROM 1/dev/cdrom1 l tn thit b CDROM 2/dev/hda1 l partition 1 ca HDD 1/dev/hda2 l partition 2 ca HDD 1/dev/hdb1 l partition 1 ca HDD 2/dev/hdb3 l partition 3 ca HDD 2/dev/sda1 l partition 1 a SCSI 1 hoc a USB 1/dev/sdb3 l partition 3 a SCSI 2 hoc a USB 3

  • TDE - HCM Thc hnh H iu hnh Linux 79

    Qun tr h thng Linux (tt)

    Gn kt (mount) h thng file: (tt)Cc kiu h thng file (fstype):

    ext2: h thng file trn Linuxext3: h thng file trn Linuxiso9660: h thng file CDROMmsdos: h thng file FATvfat: h thng file FATntfs: h thng file NTFSnfs: Network File Systemsmbfs: h thng file trn cc SMB sharetmpfs: h thng file tm

  • TDE - HCM Thc hnh H iu hnh Linux 80

    Qun tr h thng Linux (tt)

    Gn kt (mount) h thng file: (tt)G gn kt CDROM:$ umount /mnt/cdrom hoc$ eject umount v y CDROM ra

    Kim tra h thng file:Nn unmount h thng file trc khi kimGi lnh fsck:$ fsck $ fsck -A

  • H iu hnh Linux

    Phn 3: Qun tr Linux II

  • TDE - HCM Thc hnh H iu hnh Linux 82

    Thit b

    Device (thit b):L nhng g gn vo my tnh chy Linux v gi nhn d liu vi h thng.V d: Terminal, hard disk, printer, CDROM, modem, UNIX/Linux i x mi th nh device.Trnh iu khin thit b (device driver) l mt phn trong kernel, cha tp lnh giao tip vi device.Device driver trong Linux cho php tho lp d dng, c lp vi phn mm h iu hnh.

  • TDE - HCM Thc hnh H iu hnh Linux 83

    Thit b (tt)

    C hai loi device trn Linux:Character device (thit b k t): Thit b nhp xut d liu dng mt ln mt k t. V d: terminal, printer, modem, Block device (thit b khi): Thit b nhp xut d liu theo tng khi ln d liu, c tc nhanh truyn hn thit b k t. V d hard disk, tape, Phn bit character v block device:$ ls -l /devcrw------- root root beep => c=characterbrw-rw---- root floppy fd0 => b=block

  • TDE - HCM Thc hnh H iu hnh Linux 84

    Thit b (tt)

    S major v minor ca thit b:Mi device c c trng bi 2 con s ny.S major phn bit cc kiu device (mi device driver khc nhau l mt kiu).S minor phn bit cc device cng kiu (khi h thng gn nhiu device ging nhau).

  • TDE - HCM Thc hnh H iu hnh Linux 85

    Thit b (tt)

    To device:mknod [option] device b|c|p|u major minor

    option:-m [mode] t mode ca file thnh mode thay v gi tr mc nh l 0666.

    b: block mode device, c: character mode devicep: FIFO device, u: unbuffered character mode device

    Xa device:Dng lnh rm xa file thng thng

  • TDE - HCM Thc hnh H iu hnh Linux 86

    Thit b (tt)

    Printer device:Linux h tr parallel printer v serial printer. C hai loi u l character mode device.Tn cng my in (printer device), a ch cng v tn tng ng trn MS-DOS:/dev/lp0 0x03BC LPT1/dev/lp1 0x0378 LPT2/dev/lp2 0x0278 LPT3

    lp0, lp1, lp2 l tn cc cng song song trn Linux.a ch cng c th thay i ty my

  • TDE - HCM Thc hnh H iu hnh Linux 87

    Thit b (tt)

    To printer device:Printer device c th to ra nh sau (nu h thng cha to sn):$ mknod m 620 /dev/lp0 c 6 0

    => To character device tn /dev/lp0 vi s major=6, minor=0, quyn truy cp file l 620major=6 l kiu thit b cng parallelminor=0 v y l device u tin, cc device k tip s nh s tng dn theo th t.

    $ chown root.daemon /dev/lp0=> t owner=root, group=daemon cho file lp0Lu cch dng chown gn owner v group.

  • TDE - HCM Thc hnh H iu hnh Linux 88

    Terminal

    Terminal:L b thit b giao tip gia ngi s dng vi cc my tnh UNIX, d liu nhp xut dng k t.Terminal truyn thng:

    L thit b phn cng hoc my PC chy phn mm gi lp (v d HyperTerminal trn Windows)Kt ni vo my tnh UNIX/Linux qua cng serial.

    Terminal o: Chng trnh gi lp terminalKch hot qua cc t hp phm Alt-F1 -> Alt-F6Thm nhp qua mng bng trnh telnet, ssh

  • TDE - HCM Thc hnh H iu hnh Linux 89

    Terminal (tt)

    Login process:

    boot Linux Chn mc khi ng (run level)Gi chng trnh getty khi to cc terminalinit

    mingetty

    login

    bash shell

    /etc/inittab

    Thit lp thng s truyn thng vi terminalGi trnh login

    Xc thc username v passwordGn bin mi trng TERMSau kt thc v m shell

    /etc/passwd

    ~/.bash_profile

  • TDE - HCM Thc hnh H iu hnh Linux 90

    Terminal (tt)

    Tn cng serial, a ch cng v tn tng ng trn MS-DOS:/dev/ttyS0 0x03F8 COM1/dev/ttyS1 0x02F8 COM2/dev/ttyS2 0x03E8 COM3/dev/ttyS3 0x02E8 COM4

    ttyS0, ttyS1, ttyS2, ttyS3 l tn cc cng serial trn Linux.a ch cng c th thay i ty my

  • TDE - HCM Thc hnh H iu hnh Linux 91

    Terminal (tt)

    To terminal device:Terminal c th to ra nh sau (nu h thng cha to sn):$ mknod m 660 /dev/ttyS0 c 4 64

    => To character device tn /dev/ttyS0 vi s major=4, minor=64, quyn truy cp file l 660major=4 l kiu thit b cng serialminor=64: y l device u tin, cc device k tip s nh s tng dn theo th t.

    $ chown root.tty /dev/ttyS0

  • TDE - HCM Thc hnh H iu hnh Linux 92

    Process

    Process:L chng trnh n, chy trong mt virtual address space ring ca h thng.Chy nhiu process trn dng lnh shell:$ cat vidu.txt | grep Window | wc l$ cd /usr/games && banner

    => Du && dng phn cch cc lnh cn chy tun t.

  • TDE - HCM Thc hnh H iu hnh Linux 93

    Process (tt)

    Cc loi process:Interactive process: Yu cu user nhp d kin trong qu trnh thc thi, v d: text editor, shell, game, Batch process: Khng tng tc vi user khi thc thi, d kin u vo c cho trc.Daemon process: thng c kch hot vo lc boot my, chy ch background.

  • TDE - HCM Thc hnh H iu hnh Linux 94

    Process (tt)

    Lnh ps (process status):Xem chi tit cc process ca mnh:$ ps u

    USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND

    tuan 13814 1.5 0.1 4344 1432 pts/0 S 18:00 0:00 bashtuan 13851 0.0 0.0 2600 648 pts/0 R 18:00 0:00 ps -u

    Xem cc process ca mt user no :# ps u tuan

    Xem chi tit tt c process trong h thng:# ps -aux

  • TDE - HCM Thc hnh H iu hnh Linux 95

    Qun tr ngi dng

    Ti khon superuser:L user account c UID = 0, thng l root.Nn to tng account cho tng cng vic qun tr trnh ng nhp vo root.

    File /etc/passwd:File text lu c s d liu user account trn h thng.Ch c root mi c quyn ghi ln file ny.

  • TDE - HCM Thc hnh H iu hnh Linux 96

    Qun tr ngi dng (tt)

    File /etc/passwd: (tt)nh dng mi dng trong file:username:password:UID:GID: comment:home_directory:login_commandpassword: L m ha ca user passwordhome_directory: Thng l /home/login_command: Chng trnh cn gi ngay sau khi login thnh cng

    Lu :H thng khng lu tr trc tip user password.H thng ch c th kim chng user password ch khng th gii m c user password.

  • TDE - HCM Thc hnh H iu hnh Linux 97

    Qun tr ngi dng (tt)

    V d file /etc/passwd:root:x:0:0:root:/root:/bin/bashbin:x:1:1:bin:/bin:/sbin/nologindaemon:x:2:2:daemon:/sbin:/sbin/nologinsync:x:5:0:/sbin:/sbin/nologinhalt:x:7:0:halt:/sbin:/sbin/haltrpm:x:37:37::/var/lib/rpm:/bin/bashuucp:x:10:14:uucp:/var/spool/uucp:nobody:x:99:99:Nobody:/:/sbin/nologinftp:x:14:50:FTP:/var/ftp:/sbin/nologintuan:x:500:500::/home/tuan:/bin/bash

  • TDE - HCM Thc hnh H iu hnh Linux 98

    Qun tr ngi dng (tt)

    Trng password trong /etc/passwd: trng: Account c password rng.x: Password (m ha) lu trong /etc/shadow.

    File /etc/shadow:Lu cc password m ha ca mi accountCh c root mi c quyn c ghi file nyV d dng cha password ca account tuan trong /etc/shadow:tuan:$1$/347I5oy$cfG13OXnR3tNKmRvraEyG.:12560:0:99999:7:::

  • TDE - HCM Thc hnh H iu hnh Linux 99

    Qun tr ngi dng (tt)

    Cc account h thng:root: superuser account (UID = 0)daemon: Dng chy cc system processbin: Owner cho cc file thc thiftp: Dng trong kt ni FTP

    Trng password ca cc account nh daemon, bin, ftp l mt du *, th hin user khng c login bng account ny.

  • TDE - HCM Thc hnh H iu hnh Linux 100

    Qun tr ngi dng (tt)

    B sung user mi vo h thng: 2 cchSa trc tip file /etc/passwd:

    Son tho file ny v b sung 1 dng cho user miTo home directory v t quyn s hu cho userCopy cc file khi ng (.bash_profile, ) vo home directory v t quyn s hu cho user.Lu : Sao lu li v cn thn khi dng cch ny

    S dng lnh useradd:# useradd tuan

    => To user account tuan vi cc gi tr mc nh:home directory l /home/tuanlogin command (shell) l /bin/bashNhm chnh (primary group) l tuan, khng c nhm ph.

  • TDE - HCM Thc hnh H iu hnh Linux 101

    Qun tr ngi dng (tt)

    Thm thng s cho useradd:# useradd -d /tuan -s /bin/sh tuan

    => To user tuan c home directory l /tuan v shell lm vic l Bourne shell (/bin/sh)

    # useradd g user tuan

    => To user tuan v t nhm chnh (primary group) ca tuan l nhm user

    # useradd -g user -G teacher,admin tuan

    => To user tuan, t nhm chnh ca tuan l user, nhm ph l teacher v admin

    File /etc/group: C s d liu user group

  • TDE - HCM Thc hnh H iu hnh Linux 102

    Qun tr ngi dng (tt)

    Sa i thng tin user: 2 cchSa trc tip file /etc/passwd, /etc/groupS dng lnh usermod:# usermod c Nguyen Van Tuan tuan

    => t thng tin comment cho account tuan# usermod G students,operators tuan

    => t nhm ph ca tuan l students v operator

    # usermod -g admins tuan

    => i nhm chnh ca tuan thnh admins

  • TDE - HCM Thc hnh H iu hnh Linux 103

    Qun tr ngi dng (tt)

    Xa user khi h thng: 2 cchSa trc tip file /etc/passwd:

    Xa dng thng tin user trong file /etc/passwdXa dng thng tin group trong file /etc/groupXa th mc lm vic ca user

    S dng lnh userdel:# userdel tuan

    => Xa tuan khi h thng (xa c group tuan)# userdel r tuan

    => Xa user tuan v xa c home dir ca tuan

  • TDE - HCM Thc hnh H iu hnh Linux 104

    Qun tr ngi dng (tt)

    File /etc/group: (tt)nh dng mi dng trong file:group_name:password:GID:users_list

    password: Thng l du *, x hoc trng, ch s dng mt s h thng yu cu user nhp password khi tham gia nhm.users_list: Danh sch cc user thnh vin ca nhm, cch nhau bi du phy (,).

    V d file /etc/group:root:x:0:rootbin:x:1:root,bin,daemontuan:x:500:

  • TDE - HCM Thc hnh H iu hnh Linux 105

    Qun tr ngi dng (tt)

    Thm, sa, xa nhm ngi dng: 2 cchSa trc tip file /etc/groupDng lnh groupadd, groupmod, groupdel:# groupadd students

    => Thm nhm students vo h thng# groupmod -n sinhvien students

    => i tn nhm students thnh sinhvien# groupdel sinhvien

    => Xa nhm sinhvien

    a thnh vin vo group:Dng lnh usermod trnh by trn

  • TDE - HCM Thc hnh H iu hnh Linux 106

    Cu hnh RedHat vi setup

    File cu hnh trong Linux:Hu ht d liu cu hnh trong Linux v cc ng dng u lu trong cc file cu hnh.File cu hnh thng l file vn bn, c phn m rng .conf v lu trong th mc /etc.Cu hnh ca h thng c thit lp bng cch hiu chnh cc file cu hnh.

    Tin tch setup trong RedHat:Dng thit lp cc cu hnh c bn cho h thng thng qua giao din menu gn gi.Trnh setup s hiu chnh cc thng s trong cc file cu hnh tng ng ca h thng.

  • TDE - HCM Thc hnh H iu hnh Linux 107

    Cu hnh RedHat vi setup (tt)

  • TDE - HCM Thc hnh H iu hnh Linux 108

    Cu hnh RedHat vi setup (tt)

    Trnh setup c 7 mc cu hnh sau:Xc thc (Authentification): authconfigTng la (Firewall): lokkitThit b chut (Mouse): mouseconfigMng (Network): netconfigMy in (Printer): printconfDch v h thng (System Services): ntsysvNgy gi h thng (Timezone): timeconfig

    Mi mc tng ng vi mt chng trnh cu hnh c tn nu trn.

  • TDE - HCM Thc hnh H iu hnh Linux 109

    Cu hnh RedHat vi setup (tt)

    Cu hnh xc thc ngi dng:Xc thc qua NIS: Chn mc ny nu c s d liu user c lu tr tp trung trong mt NIS server trn mng.Xc thc qua LDAP: Chn mc ny nu c s d liu user c lu tr tp trung trong mt LDAP server trn mng.Xc thc qua Samba: Chn mc ny nu mun my Linux logon vo NT Domain nh mt my trm Windows NT.

  • TDE - HCM Thc hnh H iu hnh Linux 110

    Cu hnh RedHat vi setup (tt)

    Cu hnh Firewall:Chn High, Medium hoc No firewall ty theo nhu cu v an ninh ca h thng.

    V d cc my ni trc tip vi Internet cn dng High firewall, cc my trm trong mng LAN c bo v c th khng cn firewall.

    Chn Customize trong trng hp cn thit lp firewall nhng vn cho php truy cp vo mt s cng TCP/IP no nh HTTP, FTP, SSH.

  • TDE - HCM Thc hnh H iu hnh Linux 111

    Cu hnh RedHat vi setup (tt)

    Cu hnh Mouse:Chn ng loi mouse ang dng

    Cu hnh Printer:Chn printer queue v cu hnh my in

    Cu hnh Timezone:Chn time zone a phng

    Cu hnh System Sevices:Chn cc service (thng l daemon) s chy t ng khi boot my

  • TDE - HCM Thc hnh H iu hnh Linux 112

    Cu hnh RedHat vi setup (tt)

    Mt s service quan trng:autofs: Dch v mount t ng khi bootcrond: Dch v nh thi thc thicups: Dch v in ndhcpd: DHCP Server - cp a ch IP nghttpd: Apache Web Serveriptables: Firewallkudzu: Dch v nhn din phn cngldap: LDAP Server dch v th mc

  • TDE - HCM Thc hnh H iu hnh Linux 113

    Cu hnh RedHat vi setup (tt)

    Mt s service quan trng: (tt)named: DNS Server phn gii tn minnetwork: Kch hot cc thit b mngnfs: NFS Server Network File Systemsmb: Samba kt ni Microsoft Networksquid: Proxy Serversshd: SSH Server cho php truy cp t xatelnet: Telnet Server cho truy cp t xavsftpd: FTP Serverxinetd: Qun l cc dch v Internet

  • TDE - HCM Thc hnh H iu hnh Linux 114

    Cu hnh RedHat vi setup (tt)

    Cu hnh Network:Mi my phi thit lp cc thng s:a ch IP theo quy nh ca ngi qun tr mng LAN (a ch thuc lp A, B hay C; netmask l bao nhiu).Gateway: Thit b/server ng vai tr ca ng kt ni ra cc mng LAN/WAN/Internet bn ngoi.Primary name server: phn gii tn min ra IP

    V d phn gii www.yahoo.com -> 66.94.230.37Secondary name server: Server d phng cho Primary name serverDomain name (tn min): Tn my v tn min

  • TDE - HCM Thc hnh H iu hnh Linux 115

    Cu hnh RedHat vi setup (tt)

    Cu hnh Network (tt): V d

  • TDE - HCM Thc hnh H iu hnh Linux 116

    Cu hnh RedHat vi setup (tt)

    Cu hnh Network: Cc thng s mng (IP, netmask, gateway, DNS, domain) c thit lp bng 2 phng php

    S dng a ch IP tnh:Thit lp bng tay cc thng s trn.Phi lin h vi qun tr mng LAN mi khi thit lp, thay i cu hnh mng cho my.Cc my trm phi thit lp li cu hnh khi c s thay i v cu hnh mng LAN.

  • TDE - HCM Thc hnh H iu hnh Linux 117

    Cu hnh RedHat vi setup (tt)

    Cu hnh Network: (tt)S dng a ch IP ng:

    Cc thng s cu hnh mng c t ng thit lp thng qua mt DHCP Server.Ngi dng khng cn quan tm n vic thit lp cc thng s trn.Khi mng LAN thay i cu hnh, cc my trm s t ng c DHCP Server cp nht cu hnh.=> Phi duy tr mt DHCP Server (v c th c mt DHCP Server d phng) trn mng LAN.=> Chn option Use dynamic IP configuration (DHCP) trong phn cu hnh network ca setup.

  • TDE - HCM Thc hnh H iu hnh Linux 118

    Cu hnh RedHat vi setup (tt)

    Cu hnh Network: Xem thng tin cu hnh mng: Lnh ifconfig# ifconfigeth0 Link encap:Ethernet HWaddr 00:06:B5:8C:76:0C

    inet addr:10.1.1.12 Bcast:10.1.255.255 Mask:255.255.0.0UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

    eth1 Link encap:Ethernet HWaddr 00:03:74:E0:C4:17inet addr:10.2.1.12 Bcast:10.2.255.255 Mask:255.255.0.0UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

    => Xem thng tin tt c thit b mng# ifconfig eth0

    => Xem thng tin card mng 1# ifconfig eth1

    => Xem thng tin card mng 2

  • TDE - HCM Thc hnh H iu hnh Linux 119

    Cu hnh RedHat vi setup (tt)

    Cu hnh Network: (tt)Ngoi phng php dng setup cu hnh mng, c th hiu chnh trc tip cc file cu hnh /etc/sysconfig/network-scripts:

    File ifcfg-eth0: Cu hnh cho thit b eth0DEVICE=eth0IPADDR=10.1.1.12NETMASK=255.255.0.0NETWORK=10.1.0.0ONBOOT=yesHWADDR=00:06:5b:8c:c4:17

  • TDE - HCM Thc hnh H iu hnh Linux 120

    Cu hnh RedHat vi setup (tt)

    Cu hnh Network: (tt)Kch hot thit b mng eth0:# ifconfig eth0 up hoc# ifup eth0

    Tm ngng thit b mng eth0:# ifconfig eth0 down hoc# ifdown eth0

    Ngoi ra, lnh ifconfig cn cho php thit lp cc thng s cu hnh mng v nhiu la chn khc.

  • TDE - HCM Thc hnh H iu hnh Linux 121

    Thit lp cc service

    Dch v h thng (service):Cc service c thc thi thng qua cc script t th mc /etc/rc.d/init.d/Ngoi ra cn c 7 th mc rc0.d rc6.d trong th mc /etc/rc.d/ cha cc lin kt n nhng script ny.

    Cc service cho tng runlevel:Linux c 7 mc runlevel, khi boot my vo runlevel no, Linux s thc thi cc service trong th mc rc0.d .. rc6.d tng ng vi runlevel .

  • TDE - HCM Thc hnh H iu hnh Linux 122

    Thit lp cc service (tt)

    V d: Dch v web server httpdFile script: /etc/rc.d/init.d/httpdCc lin kt th mc /etc/rc.d/rc0.d .. rc6.d:

    /etc/rc.d/rc3.d/K15httpd-> /etc/rc.d/init.d/httpd

    /etc/rc.d/rc5.d/S85httpd-> /etc/rc.d/init.d/httpd

    /etc/rc.d/rc1.d/K15httpd-> /etc/rc.d/init.d/httpd

    K hiu K - u tin kt thc; S - bt u

  • TDE - HCM Thc hnh H iu hnh Linux 123

    Thit lp cc service (tt)

    B sung service mi:To hoc copy file script ca service vo /etc/rc.d/init.d: V d file sshd#!/bin/bash# Init file for OpenSSH server daemon# chkconfig: 2345 55 25 Ni dung file script

    Dng chkconfig bt buc phi c, ngha nh sau:2345: sshd chy cc runlevel 2, 3, 4, 555: sshd c u tin bt u 55 (trong 100 service th sshd l service th 55 c start)25: sshd c u tin kt thc l 25

  • TDE - HCM Thc hnh H iu hnh Linux 124

    Thit lp cc service (tt)

    B sung service mi: (tt)Dng lnh chkconfig to cc lin kt tng ng trong /etc/rc.d/rc0.d rc6.d:# chkconfig --add

    Kch hot service t ng chy khi boot:# chkconfig on

    C th dng trnh setup, mc System Service kch hot service ( trnh by phn trc).

    t li runlevel cho service (nu cn):# chkconfig --level

  • TDE - HCM Thc hnh H iu hnh Linux 125

    Thit lp cc service (tt)

    Xem thit lp ca service:chkconfig --list

    # chkconfig --list sshdsshd 0:off 1:off 2:on 3:on 4:on 5:on 6:off

    Ngng kch hot service:chkconfig off

    Xa b service:chkconfig --del

    # chkconfig --del sshd

  • TDE - HCM Thc hnh H iu hnh Linux 126

    Ci t phn mm trn RedHat

    Phn mm dng source:Thng c ng gi v nn di dng .tar.gz

    cd configure => Cu hnh phn mmmake => Bin dch phn mmmake install => Ci t phn mm vo

    cc th mc h thngH thng phi c ci GCC (Gnome C Compiler)c file README, INSTALL ca phn mm bit chnh xc v cch ci t.

  • TDE - HCM Thc hnh H iu hnh Linux 127

    Ci t phn mm trn RedHat (tt)

    Phn mm dng RPM binary:Gi phn mm c phn m rng tn file:

    . i386.rpm, .i686.rpm => Kin trc Intel

    .sparc.rpm => Kin trc SunCi t mi:# rpm ivh

    Nng cp:# rpm Uvh

    Cc ty chn quan trng:--nodeps: b qua cc gi RPM lin quan--force: buc phi ci t

  • TDE - HCM Thc hnh H iu hnh Linux 128

    Ci t phn mm trn RedHat (tt)

    Phn mm dng RPM binary: (tt)Xem thng tin phn mm ci:# rpm -q # rpm -qi

    G b phn mm (uninstall):# rpm e

    gm tn v version ca phn mm, nu khng nh th dng rpm q xc nh.

    Mt s lu khi ci t phn mm RPM:Nu c thng bo li v dependancy gia cc gi RPM, dng ty chn --nodeps b qua.

  • TDE - HCM Thc hnh H iu hnh Linux 129

    Ci t phn mm trn RedHat (tt)

    Phn mm dng RPM source:Gi phn mm c phn m rng tn file:

    .src.rpm => Dng source codeDch RPM source sang RPM binary ri ci t:# rpm -ivh # cd /usr/src/redhat/SPECS# rpmbuild bb # cd /usr/src/redhat/RPMS/i386 ;Vi Intel# rpm -ivh

    iu chnh file specs (nu cn thm ty chn bin dch) trc khi gi rpmbuild

  • H iu hnh Linux

    Phn 4: Lp trnh Shell

  • TDE - HCM Thc hnh H iu hnh Linux 131

    Chng trnh Shell

    Chng trnh Shell:L file vn bn cha mt hoc nhiu lnh Linux cn thc thi mt lt.Cng dng:

    Chy nhiu lnh c dng thng xuyn bng mt lnh n (chng trnh shell)T ng ha cng on ci t phn mmVit cc chng trnh ng dng n gin

    Chng trnh Shell c vit bng cc trnh son tho vn bn thng thng nh vi,

  • TDE - HCM Thc hnh H iu hnh Linux 132

    To chng trnh Shell

    V d: Chng trnh backup ni dung th mc lm vic vo a mm:

    Son tho chng trnh shell:# cat > backupmount t msdos /dev/fd0 /mnt/floppycp ~/* -R /mnt/floppy

    Gn quyn thc thi:# chmod a+x backup

    Chy chng trnh backup:# ./backup hoc # source backup

  • TDE - HCM Thc hnh H iu hnh Linux 133

    S dng bin

    Bin (variable) l phn t nh cha d liu dng khi thc thi chng trnh shell.Hai loi bin:

    Bin do chng trnh shell t khai bo, bin mi trng, v d PATHBin quy c ca shell, v d: $1, $2,

    Khai bo bin:Khng cn khai bo trcBin ca shell khng c kiu d liu: mt bin c th lu hoc chui k t hoc s nguyn,

  • TDE - HCM Thc hnh H iu hnh Linux 134

    S dng bin (tt)

    nh ngha bin v gn gi tr: v dCOUNT=5 -> Khai bo bin COUNT gi tr 5

    Lu : vi Bash shell, khng c c khong trng cnh du =Mt cch gn khc: set COUNT = 5

    Ly gi tr ca bin:Dng du $ trc tn binV d in gi tr bin COUNT ra mn hnh:

    echo $COUNT

  • TDE - HCM Thc hnh H iu hnh Linux 135

    S dng bin (tt)

    Bin tham s dng lnh:L cc bin lu cc tham s c truyn trn dng lnh khi gi chng trnh shell.Quy tc t tn:

    1: Tham s th 12: Tham s th 23: Tham s th 3

    Ly gi tr: cng dng du $ trc tn bin$1, $2, $3,

  • TDE - HCM Thc hnh H iu hnh Linux 136

    S dng bin (tt)

    Bin tham s dng lnh (tt): v dChng trnh shell to 2 user account:# vi create-twouseradd $1useradd $2passwd $1passwd $2

    Thc thi chng trnh:# create-two huyen hieu

    => To user huyen v hieu, sau t password

  • TDE - HCM Thc hnh H iu hnh Linux 137

    S dng bin (tt)

    Mt s bin quy c trong Shell:$#: S lng tham s dng lnh$?: M thot ca lnh va thc thi$0: Tn chng trnh shell (tham s 0)$*: Danh sch cc tham s dng lnh ($1 $2 )$@: Danh sch cc tham s dng lnh, t trong du nhy ($1 $2 )

  • TDE - HCM Thc hnh H iu hnh Linux 138

    S dng du nhy

    Du nhy kp (): biu din chui k t c cha khong trng$ mystring=Hello World$ echo $mystring => In bin mystringHello World

    Bash s bo li khi khng dng nhy kp cho chui:

    $ mystring=Hello World-bash: World: command not found

    => mystring vn khng c gn gi tr

  • TDE - HCM Thc hnh H iu hnh Linux 139

    S dng du nhy (tt)

    Du nhy n (): biu din chui k t c cha khong trng hay k t c bit khc$ mystring=Hello World$ echo $mystringHello World

    ngha ca du nhy kp: che k t khong trng trong chui ngha ca du nhy n: che tt c k t c bit trong chui (gm c khong trng)

  • TDE - HCM Thc hnh H iu hnh Linux 140

    S dng du nhy (tt)

    Khi no s dng du nhy kp:$ mystring=Hello, I am $LOGNAME$ echo $mystringHello, I am tuan

    => Nhy kp khng che k t $ nn c thay th

    Khi no s dng du nhy n:$ mystring=Hello, I am $LOGNAME$ echo $mystringHello, I am $LOGNAME

    => Nhy n che k t $ nn khng thay th

  • TDE - HCM Thc hnh H iu hnh Linux 141

    S dng du nhy (tt)

    Du s ngc \ (backslash): Dng che mt k t c bit.$ mystring=Hello\ World$ echo $mystringHello World

    => Du backslash che k t khong trng$ cost=\$2500$ echo $cost$2500

    => Du backslash che k t $

  • TDE - HCM Thc hnh H iu hnh Linux 142

    S dng du nhy (tt)

    Du nhy ngc (``): Dng ly kt qu thc thi ca lnh t bn trong.$ dir_content=`ls la /home/tuan`$ echo $dir_contentdrwxr-x--- 22 tuan tuan 4096 Jun 3 15:57 .drwxr-xr-x 25 tuan tuan 4096 Jun 3 16:49 ..-rw------- 1 tuan tuan 16595 Jun 4 19:44 .bash_history-rw-r--r-- 1 tuan tuan 24 Jun 11 2000 .bash_logout-rw-r--r-- 1 tuan tuan 271 Jun 3 10:09 .bash_profile-rw-r--r-- 1 tuan tuan 176 Aug 24 1995 .bashrc

    => Thc thi lnh ls v gn kt qu cho dir_content

  • TDE - HCM Thc hnh H iu hnh Linux 143

    Lnh test

    Dng nh gi mt biu thc iu kinC php: 2 dngtest expression hay[ expression ]

    C 4 nhm ton t dng trong expression:Ton t s nguynTon t chui k tTon t fileTon t logic

  • TDE - HCM Thc hnh H iu hnh Linux 144

    Lnh test (tt)

    Ton t s nguyn:

    expression nghaint1 eq int2 = true nu int1 = int2int1 ge int2 = true nu int1 int2

    int1 le int2 = true nu int1 int2

    int1 gt int2 = true nu int1 > int2

    int1 lt int2 = true nu int1 < int2int1 ne int2 = true nu int1 int2

  • TDE - HCM Thc hnh H iu hnh Linux 145

    Lnh test (tt)

    Ton t chui:

    expression nghastr1 = str2 = true nu str1 = str2str1 != str2 = true nu str1 str2

    -n str = true nu str length > 0

    str = true nu str null

    z str = true nu str length = 0

  • TDE - HCM Thc hnh H iu hnh Linux 146

    Lnh test (tt)

    Ton t file:

    expression nghad filename = true nu l th mcf filename = true nu l file thng

    s filename = true nu kch thc khc 0

    r filename = true nu file c c

    w filename = true nu file ghi cx filename = true nu file thc thi c

  • TDE - HCM Thc hnh H iu hnh Linux 147

    Lnh test (tt)

    Ton t logic:

    expression ngha! expr = true nu expr = false

    expr1 -a expr2 = true khi expr1 v expr2 trueexpr1 -o expr2 =true khi expr1 hay expr2 true

  • TDE - HCM Thc hnh H iu hnh Linux 148

    Cu trc iu kin

    Pht biu if: dng 1if [ expression ]thencommands

    fi

    Pht biu if: dng 2if [ expression ]thencommands

    elsecommands

    fi

  • TDE - HCM Thc hnh H iu hnh Linux 149

    Cu trc iu kin (tt)

    Pht biu if: dng 3if [ expression ]thencommands

    elif [ expression2 ]thencommands

    elsecommands

    fi

  • TDE - HCM Thc hnh H iu hnh Linux 150

    Cu trc iu kin (tt)

    V d pht biu if:File hello: Hin th cu helloif [ $1 = you ]thenecho Hi, how are you?

    elseecho Hello $1

    fi

    Lu :Phi c khong trng cnh du [, ], =$1: chui k t tham s dng lnh th nhtT kha then phi vit xung hng

  • TDE - HCM Thc hnh H iu hnh Linux 151

    Cu trc iu kin (tt)

    V d pht biu if: (tt)File helpme: kim tra v c README.TXTif [ -r README.TXT ]thenless README.TXT

    elif [ ! -f README.TXT ]thenecho Sorry, no help file!

    elseecho Sorry, no read permission!

    fi

  • TDE - HCM Thc hnh H iu hnh Linux 152

    Cu trc iu kin (tt)

    Pht biu case:case str1 instring1)commands;;string2)commands;;*)commands;;

    esac

    Pht biu case trong shell mnh hn C, Pascal ch c th so snh chui vi cc k t wild card.

  • TDE - HCM Thc hnh H iu hnh Linux 153

    Cu trc iu kin (tt)

    V d pht biu case:File readfile: c ni dung mt filecase $3 infirst)

    head -n $2 $1;;last)

    tail n $2 $1;;*)

    cat $1;;esac

    V d, c 10 dng cui file README.TXT:$ readfile README.TXT 10 last

  • TDE - HCM Thc hnh H iu hnh Linux 154

    Cu trc lp

    Pht biu for: dng 1for var1 in list1docommands

    donelist1: danh sch cc gi tr cch nhau bi khong trng

    list1 c th l mt bin hoc mt danh sch c nhp trc tip trong cu lnh.

    var1: Ln lt nhn cc gi tr trong list1 ti mi ln lp

  • TDE - HCM Thc hnh H iu hnh Linux 155

    Cu trc lp (tt)

    Pht biu for: dng 2for var1docommands

    done

    var1: nhn gi tr t danh sch tham s dng lnhDng pht biu for ny tng ng vi:for var1 in $@

  • TDE - HCM Thc hnh H iu hnh Linux 156

    Cu trc lp (tt)

    V d pht biu for:File uppercase: i sang ch hoa ni dung cc file vn bn (tn file nhp t dng lnh)for filedotr a-z A-Z < $file > $file.caps

    done

    Lnh tr: Chuyn i cc k t (a..z sang A..Z) ca chui nhp t bn phm v in ra mn hnhV d: $ uppercase vb1 vb2 vb3

    => vb1.caps, vb2.caps, vb3.caps

  • TDE - HCM Thc hnh H iu hnh Linux 157

    Cu trc lp (tt)

    V d pht biu for: (tt)File uppercase2: version 2 ca uppercase danh sch file c sn (vb1, vb2, vb3)for file in vb1 vb2 vb3dotr a-z A-Z < $file > $file.caps

    done

    => Dng dng 1 ca pht biu for.Lu khng c du nhy trong danh sch

  • TDE - HCM Thc hnh H iu hnh Linux 158

    Cu trc lp (tt)

    V d pht biu for: (tt)File uppercase3: version 3 ca uppercase danh sch file l mt binlist=vb1 vb2 vb3for file in $listdotr a-z A-Z < $file > $file.caps

    done

    => Cng dng dng 1 ca pht biu for.

  • TDE - HCM Thc hnh H iu hnh Linux 159

    Cu trc lp (tt)

    Pht biu while:while expressiondocommands

    doneexpression: biu thc lun l (gi tr true hay false)Vng while lp khi expression = true

    Lnh expr: nh gi mt biu thc tonV d: $ expr 100 / 5 + 1 => In ra 21

    Lnh shift: Dch chuyn tham s dng lnh qua tri ($2 => $1, $3 => $2, $4 => $3, )

  • TDE - HCM Thc hnh H iu hnh Linux 160

    Cu trc lp (tt)

    V d pht biu while:File param: In th t v gi tr cc tham s trn dng lnhcount=1while [ -n $* ]doecho Tham so thu $count = $1shiftcount=`expr $count + 1`

    doneMi khi gi shift, bin $1 s ln lt mang gi tr tham s k tip

  • TDE - HCM Thc hnh H iu hnh Linux 161

    Cu trc lp (tt)

    Pht biu until:until expressiondocommands

    doneexpression: biu thc lun l (gi tr true hay false)Vng until lp khi expression = falseLnh break: thot khi vng lp for, while, until, select

  • TDE - HCM Thc hnh H iu hnh Linux 162

    Cu trc lp (tt)

    V d pht biu until:File param2: version until ca paramcount=1until [ -z $* ]doecho Tham so thu $count = $1shiftcount=`expr $count + 1`

    done

    expression -z $* tr v true nu danh sch tham s dng lnh rng ( shift ht tham s)

  • TDE - HCM Thc hnh H iu hnh Linux 163

    Lnh shift

    Tc dng:Dch chuyn gi tr hin ti ca cc tham s dng lnh sang tri mt v tr

    V d:$ command par1 par2 par3

    => $1 = par1, $2 = par2, $3 = par3Sau khi shift:

    => $1 = par2, $2 = par3, $3 = null

    Shift nhiu v tr:shift n: Dch sang tri n v tr

  • TDE - HCM Thc hnh H iu hnh Linux 164

    Lnh shift (tt)

    V d: version 4 ca uppercase$ uppercase4 -i vidu.in -o vidu.out

    while [ $1 ]do

    if [ $1 = -i ] theninfile=$2shift 2

    elif [ $1 = -o ]thenoutfile=$2shift 2

    elseecho Program $0 does not recognize option $1break

    fidonetr a-z A-Z $infile $outfile

  • TDE - HCM Thc hnh H iu hnh Linux 165

    Pht biu select

    To h thng menu dng lnh:select menuitem [in list_of_items]docommands

    done

    Du ngoc []: ty chn ca pht biu selectlist_of_items: bin hoc danh sch cha nhiu hn 1 phn t (menu item)Nu khng ch nh list_of_item, select s dng danh sch tham s dng lnh (nh for)

  • TDE - HCM Thc hnh H iu hnh Linux 166

    Pht biu select (tt)

    V d pht biu select:Hin th 3 menu pick1, pick2, pick3:select menuitem in pick1 pick2 pick3doecho Ban muon chon muc $menuitem?read resif [ $res = y -o $res = Y ]then

    breakfi

    done

    Lnh read: c d liu user nhp t bn phm

  • TDE - HCM Thc hnh H iu hnh Linux 167

    nh ngha th tc

    Khai bo hm:function_name () {commands

    }

    Gi hm:function_name [param1 param2 ]

    Hm khng hn ch s tham sTham s hm c th xem nh tham s dng lnh (truy xut bng $1, $2, dng shift, nh vi lnh)

    M tr v:Gi lnh return [n]: n cha gi tr tr v (1 byte)

  • TDE - HCM Thc hnh H iu hnh Linux 168

    nh ngha th tc (tt)

    V d s dng hm:File tinhgiaithua: Chng trnh tnh giai tha#!/bin/bash# Ham giaithuagiaithua () {

    if [ $1 -gt 1 ] ; thenPREV=`expr $1 - 1`giaithua $PREVRESULT=`expr $RESULT \* $1`

    fi}# Chuong trinh chinhRESULT=1giaithua $1echo "Giai thua cua $1 = $RESULT"

    Lu : Du nhn (*) phi thay bng \* shell khng hiu lm

  • TDE - HCM Thc hnh H iu hnh Linux 169

    Mt s quy c khc

    Mi file chng trnh shell nn bt u vi:#!/bin/bash

    => Thng bo y l Bash shellscript h thng nhn bit khi thc thi. Ngoi ra cc trnh son tho vn bn nh vicng h tr t mu ni dung.

    Du chm phy (;):Dng phn cch nhiu lnh trn cng mt dng

    Thot chng trnh shell:Gi lnh exit n vi n l m thot

    Lnh continue, break:continue: b qua lnh cn li v sang bc lp kcontinue n: tip tc t n vng lp gn nhtbreak n: thot khi n vng lp gn lnh break nht

  • TDE - HCM Thc hnh H iu hnh Linux 170

    Mt s quy c khc (tt)

    Lnh export: Truyn gi tr bin xung cc shell con

    $ DISPLAY=10.1.1.12:0.0; export DISPLAY

    Lnh sed (stream editor): Hiu chnh d liu u vo, v d:

    sed 1,2d vb.txt => xa dng 1 v dng 2 t vb.txtsed /bye/d vb.txt => xa dng c ch byesed s/bad/good vb.txt => thay t bad thnh goodsed -n /hello/p vb.txt => in nhng dng c t hellosed s/^M//g vb.dos > vb.unix => i vn bn DOS

    -> UNIX

  • TDE - HCM Thc hnh H iu hnh Linux 171

    Mt s quy c khc (tt)

    Cu trc && (v):cmd1 && cmd2 tng ng viif cmd1 ; thencmd2 ; fi

    Cu trc || (hay):cmd1 || cmd2 tng ng viif cmd1 ; then:

    elsecmd2 ; fi

  • H iu hnh Linux

    Phn 5: Lp trnh Linux

  • TDE - HCM Thc hnh H iu hnh Linux 173

    Ngn ng C

    Lch s:Pht trin bi Dennis Ritchie ti Bell Laboratories khi xy dng h thng UNIXCc phin bn UNIX u tin c vit bng Assembly v ngn ng B.C ra i nhm khc phc cc yu im ca B v tr thnh ngn ng thng dng nht.

    u im:Chun ha trn nhiu nn tng, h iu hnhChng trnh thc thi nhanh

  • TDE - HCM Thc hnh H iu hnh Linux 174

    GNU C Compiler

    GNU C Compiler (GCC):L trnh bin dch C thng dng trn LinuxTng thch vi chun ANSI C

    C php tng qut:gcc [options] [filenames]

    Cc options s c p dng cho tng file trong filenames.

  • TDE - HCM Thc hnh H iu hnh Linux 175

    GNU C Compiler (tt)

    Lu v options:> 100 options trong GCCC nhiu options cha t 2 k t tr ln=> Khng th nhm nhiu options sau mt du => Mi option phi i vi mt du ringV d: 2 lnh sau c ngha khc nhau:gcc p g test.cgcc pg test.c

  • TDE - HCM Thc hnh H iu hnh Linux 176

    GNU C Compiler (tt)

    Bin dch chng trnh:gcc test.c

    => File thc thi tn a.outgcc -o thunghiem test.c

    => File thc thi tn thunghiemgcc -c test.c

    => File m i tng tn test.o. Sau lin kt cc file object thnh file thc thi.=> Dng option ny khi lin kt nhiu file

  • TDE - HCM Thc hnh H iu hnh Linux 177

    GNU C Compiler (tt)

    Option bin dch ti u:Mc nh: Chng trnh dch nhanh v d debug.-O v -O2: Chng trnh nh hn v chy nhanh hn.

    Option debug v profile:-g: To thng tin debug trnh GNU debugger (gdb) s dng.-pg: To profile trnh gprof hin th thng tin timing khi chy chng trnh.

  • TDE - HCM Thc hnh H iu hnh Linux 178

    GNU Debugger (gdb)

    C php chung:gdb [filename]

    => Bt u debug mt file chng trnhTrc , file chng trnh cn c bin dch vi ty chn -g.

    Cc lnh c bn trong gdb:file: np file chng trnh cn debugkill: dng debug chng trnhlist: xem cc phn source code

  • TDE - HCM Thc hnh H iu hnh Linux 179

    GNU Debugger (gdb)

    Cc lnh c bn trong gdb: (tt)break: t im dng (breakpoint) trong coderun: thc thi chng trnh cn debugnext: chy 1 dng code, khng chy vo trong cc hm.step: chy 1 dng code, chy vo trong cc hm trn dng .watch: hin th gi tr ca bin khi b thay iquit: thot khi gdb

  • TDE - HCM Thc hnh H iu hnh Linux 180

    V d chng trnh C

    Son tho file test.c:$ cat > test.c#include int main() {int n = 10;n += 2;printf(n = %i\n, n);return 0;

    }Ctrl-Z Enter

  • TDE - HCM Thc hnh H iu hnh Linux 181

    V d chng trnh C (tt)

    Dch chng trnh test.c:$ gcc -g -o test test.c

    => file chng trnh test nm trong cng mt th mc vi test.cThm ty chn -g c th debug chng trnh

    Thc thi chng trnh test:$ ./testn = 12

  • TDE - HCM Thc hnh H iu hnh Linux 182

    V d chng trnh C (tt)

    Debug chng trnh test:$ gdb testGNU gdb Red Hat Linux ()Copyright 2003 Free Software Foundation, Inc.

    (gdb) list1 #include 2 int main() {3 int n = 10;4 n += 2;5 printf(n = %i\n, n);6 return 0;7 }

  • TDE - HCM Thc hnh H iu hnh Linux 183

    V d chng trnh C (tt)

    Debug chng trnh test: (tt)(gdb) break 4Breakpoint 1 at 0x804833f: test.c, line 4

    (gdb) runStarting program: /home/tuan/testBreakpoint 1, main () at test.c:4

    4 n += 2;

    (gdb) watch nHardware watchpoint 2: n

  • TDE - HCM Thc hnh H iu hnh Linux 184

    V d chng trnh C (tt)

    Debug chng trnh test: (tt)(gdb) nextHardware watchpoint 2: nOld value = 10New value = 12main () at test.c:5

    5 printf(n = %i\n, n);

    (gdb) nextn = 12

    7 return 0;

    (gdb) kill(gdb) quit

  • TDE - HCM Thc hnh H iu hnh Linux 185

    Mt s tin ch lp trnh C

    xxgdb:Phin bn giao din ha (X Window) ca gdb

    indent:nh dng m ngun theo quy tt thng nht

    gprof:Cho bit mi hm c gi bao nhiu ln v phn trm thi gian thc thi ca hm.Cn bin dch chng trnh vi ty chn -pg

    p2c:Chuyn m ngun Pascal thnh m ngun C

  • TDE - HCM Thc hnh H iu hnh Linux 186

    Source Code Control

    Mc ch:Qun l cc phin bn source code ca phn mm.Gip tm kim, cp nht, theo di cc phin bn khc nhau ca mt file source d dng.

    Tin ch make:T ng bin dch, lin kt cc file source trong mt project phn mm.Th hin mi quan h ph thuc gia cc file source.

  • TDE - HCM Thc hnh H iu hnh Linux 187

    Source Code Control (tt)

    Tin ch make: (tt)Ch cp nht cc file c thay i sau ln bin dch sau cng.S dng mt file m t (Makefile) cha cc lut cn thc hin khi bin dch phn mm.Mi lut s sinh ra cc lnh cn thit cho qu trnh bin dch. Cc lnh c thc thi bi shell.

  • TDE - HCM Thc hnh H iu hnh Linux 188

    Source Code Control (tt)

    V d mt Makefile:Project someonehappy bao gm cc file sau:

    2 file source: main.c, dothis.c3 file header: yes.h, no.h, maybe.h1 file th vin: /usr/happy/lib/likeatree.a1 file assembly: itquick.s

    => file chng trnh someonehappy

  • TDE - HCM Thc hnh H iu hnh Linux 189

    Source Code Control (tt)

    V d mt Makefile: (tt)Mi dung Makefile:someonehappy: main.o dothis.o /usr/happy/lib/likeatree.agcc o someonehappy main.o dothis.o itquick.o /usr/happy/lib/likeatree.a

    main.o: main.cgcc -c main.c

    dothis.o: dothis.cgcc -c dothis.c

    itquick.o: itquick.sas -o itquick.o itquick.s

  • TDE - HCM Thc hnh H iu hnh Linux 190

    Source Code Control (tt)

    V d mt Makefile: (tt)Mi dung Makefile: (tt)fresh:rm *.o

    maybe.h: yes.h no.hcp yes.h no.h /user/sue/

    Thc thi make:$ make someonehappy hoc$ make

  • TDE - HCM Thc hnh H iu hnh Linux 191

    Source Code Control (tt)

    nh dng ca MakefileBao gm nhiu mc, mi mc c dng:: [dependents]

    => Nu file c hn so vi cc file [dependents] th make s thc thi .[dependents] l danh sch cc fileCc lnh trong cch nhau bi du chm phy (;) v khng c k t xung dngTrc phi l du cch TAB

  • TDE - HCM Thc hnh H iu hnh Linux 192

    Source Code Control (tt)

    Forcing recompiles:Khng mun make bin dch li mi khi copy file t ni ny qua ni khc=> S dng tin ch touch hay gi make vi ty chn -t

    Kim tra Makefile:Gi make vi ty chn -n=> make s in ra cc thng bo nhng khng bin dch tht chng trnh

  • TDE - HCM Thc hnh H iu hnh Linux 193

    Source Code Control (tt)

    Macro:Tng t nh cc bin trong lp trnh shellV d:LIBFILES=/usr/happy/lib/likeatree.aobjects = main.o dothis.oCC = /usr/bin/cc1version=This is one version of someonehappy

    OPTIONS =

    Makefile cng coi cc bin mi trng shell nh macro.

  • TDE - HCM Thc hnh H iu hnh Linux 194

    Source Code Control (tt)

    Macro: (tt)Cc macro quan trng trong Makefile:CC: Trnh C CompilerCFLAGS: Cc c bin dch cho CC

    Macro c th tham kho cc macro khc:LIB_DIR = /usr/happy/libLIB_FILES = ${LIB_DIR}/likeatree.aOBJS = main.o dothis.o itquick.osohappy: ${OBJS} ${LIB_FILES}${CC} -o sohappy ${OBJS} ${LIB_FILES}

  • TDE - HCM Thc hnh H iu hnh Linux 195

    Source Code Control (tt)

    Lut hu t:p dng chung mt mc ca Makefile cho cc target hay dependent c phn m rng cho trc => Khng cn to cho mi file mt mc ring trong Makefile.Mt s lut hu t mc nh ca make:.SUFFIXES: .o .c .s.c.o:$(CC) $(CFLAGS) c $ Cc hu t cn p dng lut.c.o:$(CC) $(CFLAGS) c $ Dch cc file *.c nu cc file *.o ca chng cha c cp nht$< i din cho mi dependent *.c (tng t $?)$@ i din cho mi target *.o