Beruflich Dokumente
Kultur Dokumente
ng nhp vo Linux
V d mn hnh ng nhp:
pc29 login: bctruong password: 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 2
TDE - HCM
May 18 18:29
Thc hnh H iu hnh Linux 7
PCPU: Thi gian chng trnh WHAT chy JCPU: Tng thi gian cc chng trnh ca user ang chy
TDE - HCM Thc hnh H iu hnh Linux 9
Khi ng li my:
$ reboot hoc Nhn t hp phm Ctrl Alt - Del
Tt my:
$ poweroff hoc $ shutdown h now
TDE - HCM Thc hnh H iu hnh Linux 10
Cc lnh Linux c bn
S dng ty chn trn dng lnh:
Lnh lit k ni dung th mc:
$ ls $
TDE - HCM
11
3 6 1 1 1 2
users 1024 Dec 21 ./ root 1024 Dec 14 ../ users 163 Dec 7 .kermrc users 34 Jun 6 .less users 114 Nov 23 .lessrc users 1024 Dec 7 .term/ -> cho kt qu tng ng lnh trn -> cho kt qu tng ng lnh trn
12
3 6 2 1 1 1
users 1024 Dec 21 ./ root 1024 Dec 14 ../ users 1024 Dec 7 .term/ users 163 Dec 7 .kermrc users 114 Nov 23 .lessrc users 34 Jun 6 .less
TDE - HCM
13
Lit k th mc cha:
$ ls ..
TDE - HCM
15
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
16
TDE - HCM
17
TDE - HCM
18
TDE - HCM
21
K t ?:
$ ls /home/tuan/??put.txt input.txt
TDE - HCM
gi ps (PID=26746)
TDE - HCM
28
Dng ps u kim tra li; nu process vn cn -> bc 7; nu process mt -> bc 8 Bc 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 29
TDE - HCM
32
Tn file:
Ti a 256 k t Cha 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 33
boot
home
etc
/etc
tuan
duyen
/home/duyen
TDE - HCM
34
User c ton quyn c ghi trong th mc ny Mc nh cc user khng th c ghi c trong home directory ca nhau.
TDE - HCM
35
ng dn tng i v tuyt i:
ng dn tng i: Cn c vo th mc hin hnh ng dn tuyt i: ng dn y t th mc gc n file
TDE - HCM Thc hnh H iu hnh Linux 36
Xa file:
$ rm <file> Nhc trc khi xa: ty chn i (interactive) $ rm i *duck rm: remove dead_duck? Y rm: remove guiduck? N rm: remove lame-duck? y
TDE - HCM Thc hnh H iu hnh Linux 42
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 <th mc> Ty chn r (recursive) duyt quy ton b th mc con bn trong
TDE - HCM Thc hnh H iu hnh Linux 43
Nn tp tin:
$ gzip onefile $ zip onefile onefile.gz onefile.zip
H iu hnh Linux
Phn 2: Qun tr Linux I
Ch s hu ca thumuc1 l tuan
ngha ca group:
Dng khi cn cp quyn truy cp file cho mt nhm ngi.
TDE - HCM Thc hnh H iu hnh Linux 49
w
x x x
x
x x x
TDE - HCM
52
- r w x r w x r w x
owner group other
group
other
53
hoc
$ ls -l -rwxrwxrwx 1 root dr-xr-x-wx 2 root $ chmod go-rw my* $ ls -l -rwx--x--x 1 root dr-x--x--x 2 root
TDE - HCM
TDE - HCM
61
TDE - HCM
62
TDE - HCM
63
S dng wildcard:
$ ls ch1.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 65
TDE - HCM
72
TDE - HCM
73
Vi 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 77
H iu hnh Linux
Phn 3: Qun tr Linux II
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 82
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 /dev crw------- root root beep => c=character brw-rw---- root floppy fd0 => b=block
TDE - HCM Thc hnh H iu hnh Linux 83
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
84
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 device p: FIFO device, u: unbuffered character mode device
Xa device:
Dng lnh rm xa file thng thng
TDE - HCM
85
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 /dev/lp1 /dev/lp2 0x03BC 0x0378 0x0278 LPT1 LPT2 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 86
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 620 major=6 l kiu thit b cng parallel minor=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 lp0
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 (tt)
Login process:
boot Linux init mingetty login bash shell /etc/passwd ~/.bash_profile /etc/inittab Chn mc khi ng (run level) Gi chng trnh getty khi to cc terminal Thit lp thng s truyn thng vi terminal Gi trnh login Xc thc username v password Gn bin mi trng TERM Sau kt thc v m shell
TDE - HCM
89
Terminal (tt)
Tn cng serial, a ch cng v tn tng ng trn MS-DOS:
/dev/ttyS0 /dev/ttyS1 /dev/ttyS2 /dev/ttyS3 0x03F8 0x02F8 0x03E8 0x02E8 COM1 COM2 COM3 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 90
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 660 major=4 l kiu thit b cng serial minor=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 91
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
92
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
93
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 bash tuan 13851 0.0 0.0 2600 648 pts/0 R 18:00 0:00 ps -u
TDE - HCM
94
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
95
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 96
File /etc/shadow:
Lu cc password m ha ca mi account Ch c root mi c quyn c ghi file ny V 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 98
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 99
V d file /etc/group:
root:x:0:root bin:x:1:root,bin,daemon tuan:x:500:
TDE - HCM Thc hnh H iu hnh Linux 104
TDE - HCM
107
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 110
Cu hnh Printer:
Chn printer queue v cu hnh my in
Cu hnh Timezone:
Chn time zone a phng
Secondary name server: Server d phng cho Primary name server Domain name (tn min): Tn my v tn min
TDE - HCM Thc hnh H iu hnh Linux 114
TDE - HCM
115
TDE - HCM
116
=> 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 118
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 120
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.
Xa b service:
chkconfig --del <service name>
# chkconfig --del sshd
TDE - HCM
125
Ci t mi:
# rpm ivh <RPM_file>
Nng cp:
# rpm Uvh <RPM_file>
G b phn mm (uninstall):
# rpm e <software> <software> gm tn v version ca phn mm, nu khng nh th dng rpm q xc nh.
iu chnh file specs (nu cn thm ty chn bin dch) trc khi gi rpmbuild
TDE - HCM Thc hnh H iu hnh Linux 129
H iu hnh Linux
Phn 4: Lp trnh Shell
Chng trnh Shell c vit bng cc trnh son tho vn bn thng thng nh vi,
TDE - HCM Thc hnh H iu hnh Linux 131
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 PATH Bin quy c ca shell, v d: $1, $2,
Khai bo bin:
Khng cn khai bo trc Bin 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 133
Ly gi tr ca bin:
Dng du $ trc tn bin V d in gi tr bin COUNT ra mn hnh: echo $COUNT
TDE - HCM Thc hnh H iu hnh Linux 134
TDE - HCM
137
S dng du nhy
Du nhy kp (): biu din chui k t c cha khong trng
$ mystring=Hello World $ echo $mystring => In bin mystring Hello 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 138
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 139
Lnh test
Dng nh gi mt biu thc iu kin C php: 2 dng
test expression [ expression ] Ton Ton Ton Ton
TDE - HCM
hay
TDE - HCM
TDE - HCM
145
TDE - HCM
TDE - HCM
147
Cu trc iu kin
Pht biu if: dng 1
if [ expression ] then commands fi
Lu :
Phi c khong trng cnh du [, ], = $1: chui k t tham s dng lnh th nht T kha then phi vit xung hng
TDE - HCM Thc hnh H iu hnh Linux 150
Cu trc lp
Pht biu for: dng 1
for var1 in list1 do commands done list1: 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.
Cu trc lp (tt)
Pht biu for: dng 2
for var1 do commands done var1: nhn gi tr t danh sch tham s dng lnh Dng pht biu for ny tng ng vi:
for var1 in $@
TDE - HCM Thc hnh H iu hnh Linux 155
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 file do tr 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 hnh V d: $ uppercase vb1 vb2 vb3
=> vb1.caps, vb2.caps, vb3.caps
TDE - HCM Thc hnh H iu hnh Linux 156
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 vb3 do tr 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
157
Cu trc lp (tt)
V d pht biu for: (tt)
File uppercase3: version 3 ca uppercase danh sch file l mt bin
list=vb1 vb2 vb3 for file in $list do tr a-z A-Z < $file > $file.caps done
TDE - HCM
158
Cu trc lp (tt)
Pht biu while:
while expression do commands done expression: biu thc lun l (gi tr true hay false) Vng while lp khi expression = true
Lnh shift: Dch chuyn tham s dng lnh qua tri ($2 => $1, $3 => $2, $4 => $3, )
TDE - HCM Thc hnh H iu hnh Linux 159
Cu trc lp (tt)
V d pht biu while:
File param: In th t v gi tr cc tham s trn dng lnh
count=1 while [ -n $* ] do echo Tham so thu $count = $1 shift count=`expr $count + 1` done Mi khi gi shift, bin $1 s ln lt mang gi tr tham s k tip
TDE - HCM Thc hnh H iu hnh Linux 160
Cu trc lp (tt)
Pht biu until:
until expression do commands done expression: biu thc lun l (gi tr true hay false) Vng until lp khi expression = false Lnh break: thot khi vng lp for, while, until, select
TDE - HCM Thc hnh H iu hnh Linux 161
Cu trc lp (tt)
V d pht biu until:
File param2: version until ca param
count=1 until [ -z $* ] do echo Tham so thu $count = $1 shift count=`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 162
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 = par3
nh ngha th tc
Khai bo hm:
function_name () { commands }
Gi hm:
function_name [param1 param2 ] Hm khng hn ch s tham s Tham 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 167
nh ngha th tc (tt)
V d s dng hm:
File tinhgiaithua: Chng trnh tnh giai tha
#!/bin/bash # Ham giaithua giaithua () { if [ $1 -gt 1 ] ; then PREV=`expr $1 - 1` giaithua $PREV RESULT=`expr $RESULT \* $1` fi } # Chuong trinh chinh RESULT=1 giaithua $1 echo "Giai thua cua $1 = $RESULT"
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 vi cng h tr t mu ni dung.
Dng phn cch nhiu lnh trn cng mt dng Gi lnh exit n vi n l m thot continue: b qua lnh cn li v sang bc lp k continue n: tip tc t n vng lp gn nht break n: thot khi n vng lp gn lnh break nht
Thc hnh H iu hnh Linux 169
TDE - HCM
Cu trc || (hay):
cmd1 || cmd2 tng ng vi if cmd1 ; then : else cmd2 ; fi
TDE - HCM Thc hnh H iu hnh Linux 171
H iu hnh Linux
Phn 5: Lp trnh Linux
Ngn ng C
Lch s:
Pht trin bi Dennis Ritchie ti Bell Laboratories khi xy dng h thng UNIX Cc 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 hnh Chng trnh thc thi nhanh
TDE - HCM Thc hnh H iu hnh Linux 173
GNU C Compiler
GNU C Compiler (GCC):
L trnh bin dch C thng dng trn Linux Tng thch vi chun ANSI C
TDE - HCM
174
V d chng trnh C
Son tho file test.c:
$ cat > test.c #include <stdio.h> 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 180
(gdb) run
Starting program: /home/tuan/test Breakpoint 1, main () at test.c:4 4 n += 2;
(gdb) watch n
Hardware watchpoint 2: n
TDE - HCM
183
(gdb) next
n = 12 7 return 0;
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 185
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 186
TDE - HCM
187
TDE - HCM
188
TDE - HCM
190