Professional Documents
Culture Documents
Gia o Trinh Linux
Gia o Trinh Linux
MC LC
1. Gii thiu h iu hnh Linux
1.1 Lch s Linux
1.2 Ci t Linux
2. Giao tip trn mi trng Linux
2.1 Gii thiu trnh son tho vi
2.2 Gii thiu tin ch mc
2.3 Cc cu lnh c bn trn Linux
2.3.1
2.3.2
Cc cu lnh v th mc v file
2.3.3
Cc cu lnh nn d liu
2.3.4
Lch s
Nm 2000: hng trm triu ngi dng, hn 15.000 ngi tham gia pht trin
Linux. Hng nm th trng cho Linux tng trng trn 100%.
1.2.
Ci t my ch Linux
3. La chn ngn ng
Chn ngn ng mc nh l English
6. Chn kiu ci t
Linux swap, dung lng bng dung lng RAM ca my. Tip theo to mt partion
tn "/" vi loi Linux native, dung lng t nht l 500Mb (tu theo dung lng cn
trng ca a bn, nu bn mun install trn gi RedHat th cn n khong
2288MB). Hy yn ch l nu bn to sai (partition kch thc qu ln, ln hn dung
lng cn trng ca a) th RedHat s khng cho bn i tip. Ch cn to 2 partition
ny l ri. Khi no bn click c Next th coi nh l thnh cng!
to mt partition mi, chn Add. Mn hnh Edit New Partition xut hin
.
Ch rng nu bn chn Skip, bn s khng th boot h thng Red Hat Linux mt
cc trc tip m s phi s dng phng php boot khc (boot disk chng hn) Bn
ch nn la chn cch ny khi bn chc chn c cch khc boot h thng Red
Hat Linux ca bn.
Dng la chn t boot loader ti Master Boot Record khi to ngay h iu hnh
Linux khi bt my.
16. To user
Bn c th to ti khon user cho chnh mnh s dng hng ngy. User root
(superuser) c quyn truy nhp vo h thng nhng rt nguy him, ch nn s
dng bo dng hay qun tr h thng.
Mt khu ca user c phn bit ch hoa ch thng v t nht l 6 k t.
17.
Tip theo, bn c th chn la cc gi tin ci t. Bn nn chn cc phn
mm, dch v hay s dng nht ci t sn trn my khi khi ng. Tuy nhin, tuy
nhin, bn cng c th ci t sau ny tu theo nhu cu s dng. Cc gi tin ny nu
c ci t s c ghi li trong tp /tmp/install.log sau khi khi to li h thng ca
bn.
Cu lnh
Tc dng
Ctrl + D
Ctrl + U
Ctrl + F
Ctrl + B
k hoc up arrow
Return
^ hoc 0
i,a
Xa k t sau con tr
dw
d^
Hu b thay i trc
/pattern
?pattern
n,N
p, P
Lp li cu lnh cui.
dd
:w
:q!
:ZZ
2.2.
Tin ch mc.
Mt khi ngi dng c c cm vi giao din dng lnh ca DOS, h cho rng cc
lnh ca Linux cng kh hc. Trong thi k ca DOS trc Windows, vic nh
hng cc tp tin thng qua h thng menu v cc chng trnh qun l bt u pht
trin mnh, cho d chng ch da trn ch text. Mt trong s chng trnh thng
dng nh vy l Norton Commander.
Linux cng c mt chng trnh tin ch vi chc nng tng t nh vy gi l
Midnight Commander (MC). Bn khng phi mt cng tm kim MC, phn ln cc
nh phn phi Linux u cung cp km theo HH v n c ci trong /usr/bin/mc.
Chng trnh chy c hai ch : text mode v ha (Xterm di X Windows).
Sau khi nhp lnh "mc" chy chng trnh, bn s nhn thy mt ca s c chia
i nh trong hnh 1. Midnight Commander hu nh l bn sao ca Norton
F1: Tr gip
F2: Menu ngi dng
F3: Xem cc tp tin c chn
F4: Hiu nh tp tin
F5: Copy tp tin
F6: i tn, chuyn tp tin
F7: To th mc
F8: Xo tp tin
F9: Gi menu th xung (pull-down)
F10: Thot khi Midnight Commander
thng tp tin mng ca UNIX (UNIX Network File System - NFS), Midnigh
Commander c th hot ng nh mt my khch ftp bng cch a lin kt FTP vo
menu.
Midnight Commander bao gm c chng trnh xem v son tho tp tin. C hai u
c th lm vic vi file vn bn v file nh phn (text v binary) v hin th cc k t
8-bit ngoi 128 k t m ASCII.
Trnh son tho c giao din menu v ging Windows nhiu phm son tho c bn:
nhn Shift v phm mi tn chn text, nhn Ctrl-Ins copy text v Shift-Ins
dn text. Bn c th ghi macro vi Ctrl-R cng nh thc hin nhng tm kim theo t
thng thng.
S dng cc k t i din
Tng ng vi mt k t bt k
[]
V d:
Jo*
: Cc file bt u vi Jo
Jo*y
: Cc file bt u vi Jo v kt thc vi y
Ut*l*s.c
?.h
Doc[0-9].txt
Doc0[A-Z].txt
2.3.1.2.
K t
ngha
Tng ng vi bt u ca mt dng
\<
Tng ng vi bt u mt t
\>
Tng ng vi kt thc mt t
[]
[^]
Trc tin, trong mt biu thc chnh quy, mt k t bt k khng c ngha ring
cho chnh n. V d tm kim cc dng cha ch foo trong file data.txt s dng
cu lnh sau:
Lnh cat
Lnh chmod
Lnh chown
C php:
Lnh clear
lnh cmp
Lnh cp
Lnh du
Lnh file
Lnh find
Lnh grep
Lnh head
Lnh ln
Lnh locate
Lnh ls
Lnh mkdir
Lnh mv
Lnh pwd
C php: pwd
Cu lnh ny hin th tn th mc hin ti bao gm c ng dn tuyt i. V d:
pwd
Trn mn hnh hin th :
/home/trantu
Lnh rm
Lnh tail
Lnh compress
Lnh gunzip
Lnh gzip
Lnh tar
Lnh uncompress
Lnh unzip
Lnh zip
Lnh mount
Lnh umount
Lnh bg
C php: bg
y l kch bn shell c xy dng sn. a mt tin trnh ang chy v chy sau
hu cnh (tin trnh nn).
Lnh fg
C php: fg [%job-number]
Cu lnh ny cho php bn chuyn mt tin trnh nn ln chy trn tin cnh.
Nu bn chy cu lnh ny khng c bt k i s no, n s a cu lnh cui cng
sau hu cnh ln hin th. V d, nu c hai cu lnh chy sau hu cnh, bn c th
chuyn cu lnh th nht ln chy trn tin cnh bng cu lnh:
fg %1
Lnh jobs
C php: jobs
Lnh ny cho php bn hin th cc tin trnh nn ang chy. Ngoi ra cn mt s
lnh s c trnh by trong cc phn sau.
sbin
usr
dev
var
etc
home
M t th mc
Th mc
Chc nng
/home
/bin
/usr
/usr/bin
/usr/sbin
/usr/lib
/usr/doc
/usr/man
/sbin
/dev
/etc
3.2.
-rw-rw-r--
S lin kt
Trantu
Nhm s dng
Trantu
191
Apr 14
14:55
Tn file
.bash_profile
newuser
file hoc th mc
V d:
chown trantu example.txt
Cu lnh ny lm cho ngi s dng trantu c quyn s hu file example.txt
Nu superuser mun thay i nhm cho mt file hoc th mc, ngi c th s
dng cu lnh chown nh sau:
chown
newuser.newgroup
file hoc th mc
V d
chown trantu.admin example.txt
Cu lnh trn khng ch thay i quyn s hu file cho trantu m cn t li nhm s
dng file l admin. Nu superuser mun thay i ngi s hu v nhm s dng cho
tt c cc file trong mt th mc, ngi c th s dng cu lnh chown vi ty
chn R. V d
chown R trantu.admin /home/trantu/
3.2.2. Thay i nhm s dng file/th mc vi lnh chgrp
Cu lnh chgrp cho php bn thay i quyn s dng file hay th mc ca mt nhm,
ch nu bn thuc v c hai nhm (nhm c v nhm mi). V d:
chgrp httpd *.html
Lnh trn s thay i nhm s dng cho tt c cc file c phn m rng html. Bn ch
c th thay i c nu bn thuc nhm httpd. Ging nh lnh chown, lnh chgrp
cng c ty chn R thay i quyn vi nhiu file hay th mc.
3.2.3. S dng s theo h c s 8 tng ng vi thuc tnh truy cp
H c s 8 s dng 8 s (0-7), v mi s tng ng vi 3 bit (theo h nh phn). Bng
bn di ch cho bn thy s tng ng v quyn vi s h c s 8.
S th 1
Gi tr c
s 8
S th 2
S th 3
S th 4
set-UID
set-GID
sticky-bit
Special
User
Group
Others
Nh trn bng trn, s th nht c s dng cho vic thit lp cc quyn c bit,
s th hai c s dng cho vic thit lp ngi s hu file hay th mc. S th ba
c s dng thit lp quyn cho nhm ngi s dng v s th t c s dng
thit lp quyn cho tt c mi ngi. Khi bt k mt s no b b qua, n c
xem nh nhn gi tr 0. Bng bn di ch ra mt vi v d v cc gi tr tng ng
vi quyn:
Gi Tr
Gii Thch
0400
0440
0444
0644
0755
4755
2755
read (r)
read (r)
read (r)
write (w)
write (w)
write (w)
write (w)
execute (x)
execute (x)
execute (x)
execute (x)
Special
User
Group
Others
all (a)
Mi kiu quyn tng ng vi mt k t n (trong du ngoc).
3.2.5. Thay i quyn truy cp file th mc s dng lnh chmod
Tin ch chmod cho php bn thay i cc quyn. Bn c th s dng cc ch s hay
cc k t vi tin ch ny thay i quyn. V d
Blocks: 8
Device: 812h/2066d
Inode: 157762
0/
Links: 2
root) Gid: ( 0/ root)
cp r /tmp/foo /zoo/foo
3.4.6. Dch chuyn cc file v th mc
dch chuyn cc file hay th mc s dng cu lnh mv. V d, chuyn /file1
vo /tmp/file2 ta s dng cu lnh sau:
mv /file1 /tmp/file2
3.4.7. Xa cc file v th mc
xa cac file v th mc s dng lnh sau:
rm filename
Khi xa h thng s hi bn c th s mun xa hay khng. Nu bn chc chn
file bn mun xa bn c th thc hin lnh xa rm vi ty chn f khng hin ra
thng tin yu cu xc nhn ca h thng. xa mt th mc, bn cn thc hin lnh
rm vi ty chn r
3.4.8. Tm kim file
xc nh v tr chnh xc ca mt filem, bn c th s dng lnh which. V d:
which httpd
Cu lnh ny s ch ra cho bn y ng dn ca chng trnh httpd nu n sn
c. Bn cng c th xc nh mt phn ca tn file hay th mc s dng lnh locate
locate netpr.pl
4.
useradd tutavn
Trong file /etc/passwd s b sung thm dng mi nh sau:
tutavn:x:502:504::/home/tutavn:/bin/bash
K hiu x c ngha l ti khon cha c mt khu. V vy bn cn to mt khu cho
ngi s dng bng cu lnh sau:
paswd tutavn
Bn s c yu cu vo mt khu hai ln, v khi mt khu c tip nhn, n s
c m ha v thm vo dng ca ngi s dng trong file /etc/passwd. Cc gi tr
UID v GID s c la chn t ng bi useradd, thng thng n tng gi tr UID
v GID ln mt so vi ngi c thm vo ln sau cng trc . Bn c th to
ngi s dng c th mc ch khc vi mc nh (trong th mc home) bng thc
hin cu lnh:
useradd newuser d /www/newuser
Ngi s dng mi s c to v c th mc ch l /www/user. Khi bn to mt
ngi s dng mi, h thng cng ng thi mc nh to ra mt nhm mi c trong
file /etc/group c tn ging nh tn ti khon ca ngi s dng. to ngi s
dng vi tn nhm mi hay tn nhm tn ti trong h thng, bn s dng lnh
adduser vi ty chn g. V d:
useradd tutavn g users
Nu bn mun to ngi s dng mi l thnh vin ca mt s nhm, bn c th s
dng ty chn G. v d
useradd tutavn G users1,users2
4.3.2. To mt nhm mi
to mt nhm mi bn s dng cu lnh groupadd. V d:
groupadd mygroup
Thay i mt khu
Trn mn hnh GNOME, chn Main Menu Button => Programs => System
=> Printer Configuration khi ng trong ch ha.
Trn mn hnh KDE, chn Main Menu Button => System => Printer
Configuration khi ng ch ha.
nh lnh printtool ti du nhc shell (VD: XTerm hoc GNOME terminal)
khi ng printconf
4.4.2. Ci t my in cc b
ci t mt my in gn trn cng song song hay cng USB ca my tnh, nhn nt
New trn ca s printconf chnh nh trn, chn Next tip tc.
Hnh 2: Ci t my in
Nhp tn my in trong trng Queue Name v chn Local Printer t danh sch
Queue Type nhn Next tip tc.
Hnh 3: Ci t my in cc b
printconf s c gng pht hin my in v hin th nh trong hnh 4.
Hnh 5: Ci t my in Unix xa
Ca s tip theo cho php bn cu hnh my ch in xa .
Hnh 7: Ci t my in SMB
Trong ca s ca hnh 8, in cc thng s cu hnh sau:
Chn nt Translate \n => \r\n chuyn i cc k t cui dng sang khun dng
m h thng Microsoft Windows c th c c.
Nhn Next tip tc.
Owner/ID
Class
active user@localhost+902
01:20:46
Job Files
Size Time
902 sample.txt
2050
5.
Hai dng in m bo rng card mng 3c509 c kernel nhn bit. Trong trng
hp kernel khng nhn bit card , chng ta phi lm li kernel Linux v t module
iu khin (driver) ca card vo trong kernel hay cu hnh ch load module.
cu hnh tip ni mng qua TCP/IP chng ta phi xc nh r cc thng tin lin
quan n a ch IP ca my. Cc thng tin cn bit l :
a ch IP ca my
Netmask
a ch ca mng
Broadcast
a ch IP ca gateway
Chng ta s ln lt im qua cc khi nim c bn trn v s hc su hn trong phn
TCP/IP ca kha hc.
a ch IP ca my l mt dy 4 s vit dc dng A.B.C.D, trong mi s nhn
gi tri t 0-255. Nu my ca bn kt ni mt mng nh ti nh do bn thit lp th
a ch kiu 192.168.1.D l mt a ch nn t, vi D l cc s khc nhau cho tng
my. Nu my ca bn s ha nhp vi mt mng LAN c trc v bn mun
kt ni vi cc my khc th hi ngi qun tr mng v a ch IP bn c th gn cho
my ca mnh cng vi tt c cc thng s tip theo.
Netmask. Tng t nh trn, nu bn t qun, netmask s l 255.255.255.0
a ch mng. Nu bn t qun, a ch ca mng s l 192.168.1.0
Broadcast. Nu bn t qun, broadcast l 192.168.1.255
a ch gateway. y l a ch ca my cho php bn kt ni vi mng LAN
khc, tc l cc my tnh vi 3 s u ca a ch khng ging bn l 192.168.1. Bn
b trng nu bn ch lin lc vi cc my cng mng 192.168.1.XXX. Ch l a
ch mng ca my gateway bt buc phi trng vi a ch mng ca bn.
Sau khi xc nh cc thng s, v d nh
IP address = 192.168.1.15
Netmask = 255.255.255.0
Link encap:Ethernet
inet
Mask:255.255.255.0
HWaddr 00:A0:24:4F:3D:DC
addr:192.168.2.20
Bcast:192.168.2.255
MTU:1500
Metric:1
Mask:255.0.0.0
UP LOOPBACK RUNNING
MTU:3924
Metric:1
193.105.106.10
netmask
255.255.255.0
broadcast
Linux cho php bn s dng b danh (alias) cho card mng, tc l cho php bn c
nhiu a ch IP cho cng mt card vt l. Kt qu nhn c gn ging nh bn c
gn nhiu card vt l ln my. Do , bn c th dng mt card ni vi nhiu
mng logic khc nhau. C php ca lnh ny l :
netmask
255.255.255.248
broadcast
Gateway
192.168.2.20
255.255.255.255 UH
eth0
192.168.2.0
255.255.255.0
eth0
127.0.0.0
255.0.0.0
lo
default
192.168.2.10
Genmask
0.0.0.0
UG
0 eth0
Bit s dng thnh tho c php ca 2 lnh ifconfig v route rt quan trng, n cho
php cc cn b qun tr thay i cu hnh kt ni mng ca mt server mt cch
nhanh chng v khng phi khi ng li my. V vy, server lun sn sng. Bn
cng c th s dng tin ch netconfig cu hnh lin kt mng nu cha thnh tho
nhiu c php ca cc lnh trn.
Lnh ping
ng dng ca lnh ny l th xem 2 my c kt ni c vi nhau cha. C php
c bn ca lnh rt n gin l ping a_ch_IP_my_ch. V d nh
[tnminh@proxy tnminh]$ ping sun
PING sun.vnuhcm.edu.vn (172.16.1.4): 56 data bytes
64 bytes from 172.16.1.4: icmp_seq=0 ttl=255 time=0.1 ms
64 bytes from 172.16.1.4: icmp_seq=1 ttl=255 time=0.2 ms
64 bytes from 172.16.1.4: icmp_seq=2 ttl=255 time=0.1 ms
64 bytes from 172.16.1.4: icmp_seq=3 ttl=255 time=0.1 ms
--- sun.vnuhcm.edu.vn ping statistics --4 packets transmitted, 4 packets received, 0% packet loss
round-trip min/avg/max = 0.1/0.1/0.2 ms
2
418.ATM4-0.GW21.Defense.OLEANE.NET
4.17 m
(195.25.28.149),
5.0
ms,
4.17
ms,
3
FastEth0-0.GW16.Defense.OLEANE.NET (195.25.25.208), 4.17 ms, 4.17 ms,
4.17s
4
ms
..............
14
970
s (ttl=241!)
15
202.167.121.195
(203.162.3.42), 1
(202.167.121.195),
905
ms
!H
203.162.3.42
88 ms (ttl=242!)
Lnh traceroute l mt cng c hiu qu cho php ta pht hin li trong qu trnh
phn ng (IP routing). V d kt ni t A -> C c trc trc v vi traceroute ti C
t my A, ta c th pht hin ra my A kt ni my B, ri my B li kt ni my A ...
do cu hnh routing ca A v B sai.
Ch l khi chng ta th kt ni vi mt my xa trong Internet, do nhiu mng p
dng cc bc tng la (firewall) nn nhiu khi lnh ping v traceroute khng chy
nhng trn thc cht l mng vn thng.
5.1.3. Cc tin ch mng: Telnet v ftp
Telnet
FTP
Telnet vo my xa.
Chuyn n th mc c cc tp ta mun ti v.
kt thc g quit.
Cch ti ln (upload): Tng t nh trn, nhng dng cu lnh put thay cho cu lnh
get.
5.2. Ci t diul-up trn Linux
5.2.1. Ci t
Chn Internet Configuration Wizard tug menu System configuration
Sau mn hnh ny s ch th
yess wait...
Khi xong mn hnh network configuration s bo giao din ppp0 l active.
6.
Lp trnh shell.
Lp trnh shell l mt trong nhng cng c hu ch nht cho vic qun tr h thng.
Kh nng vit mt chng trnh ngn hon thnh mt cng vic i hi nhiu thi
gian mnh hn rt nhiu so vi cc cng c qun tr Linux khc c bit n. Lp
trnh Shell c th lm cho cuc sng ca ngi qun tr tr ln d th hn v n l
mt k nng bt buc i vi ngi qun tr Linux. C th nhn thy c rt nhiu
cng vic ca nhng ngi qun tr h thng i mt hng ngy lin quan n cc file
v th mc. Bt c khi no bn phi x l vi mt s lng ln cc file, lp trnh
shell s lm cho cng vic ca bn tr ln d dng hn. Phn ny s ch cho bn cch
lp trnh Shell c bn, n c th gip cho bn thc hin cc cng vic hng ngy.
6.1. To v chy chng trnh Shell
N mt cch n gin nht, lp trnh shell ch l cc file cha mt hoc nhiu cu
lnh shell hay cu lnh Linux. Bn c th s dng cc chng trnh n gin thc
hin cc cng vic lp i lp li, thay cho hai hay nhiu cu lnh lun lun c
thc thi cng nhau bng mt cu lnh, t ng ci t cc chng trnh khc, v
vit cc ng dng tng tc n gin.
to mt chng trnh shell, bn phi to mt file s dng mt trnh son tho v
a cc cu lnh shell hay Linux m bn mun c thc thi vo trong file. Gi s
rng bn c mt CD-ROM c gn vo h thng Linux. Thit b CD-ROM ny
c gn vo h thng khi h thng c khi ng ln u. Nu bn cn thay i a
CD c trong CD bng mt a CD mi. Mt cch bn thc hin c cng
vic ny l bn nh CD-ROM khi h thng s dng cu lnh umount, v sau
gn li s dng cu lnh mount . Cc cu lnh ch ra di y cho bn thy tun
t cc bc thc hin:
umount /dev/cdrom
mount /dev/cdrom /cdrom
Cu lnh ny thay i quyn ca file lm cho file c th thc thi. chy chng
trnh shell mi, g remount trn dng lnh.
kim ca bn, nu khng h thng s khng tm thy chng trnh thc thi. Nu
bn khng chay c chng trnh bi v file khng c tm thy, hy xc nh
ng dn. Hoc nu bn s dng tcsh vit chng trnh, dng u tin ca
chng trnh shell phi bt u vi # tcsh nhn ra n nh mt file chng trnh
tcsh. Thc ra, cch an ton (m bo ) nht l dng u ca mi chng trnh
shell bn thm #!/bin/sh m bo chng trnh shell c thc thi nh mt tin
trnh Bourne shell. iu ny ngn chn nhiu vn vi ngn ng lp trnh C, shell
s c gng thng dch c php Bourne shell.
Mt cch khc l bn c th thc thi chng trnh shell l chy shell m chng trnh
c vit theo n v tn chng trnh nh mt khai bo cho shell. Trong trng hp
mt chng trinh tcsh, bn thc hin cu lnh sau:
tcsh remount
V d sau trnh by mt tnh hung khc, trong vic s dng chng trnh shell s
gip tit kim rt nhiu thi gian. Gi s rng bn phi lm vic vi ba file khc
nhua trong mt th mc mi ngy, v bn mun d phng ba file ny vo mt a
mm vo cui mi ngy. thc hin c cng vic ny, bn phi g mt lot cc
lnh:
mount -t msdos /dev/fd0 /a
cp file1 /dev/fd0
cp file2 /dev/fd0
cp file3 /dev/fd0
Khi thit lp mt bin cho shell bash v pdksh, hy chc chn rng khng c du
cch c hai bn du bng. Vi tcsh, iu ny khng quan trng.
Chng trnh s tr li kt qu
there hello
$?
$0
$*
Trong cu lnh ny, du gch ngc n k t trng trong shell v chui hello there
c gn cho bin greeting.
Du gch ngc thng c s dng nhiu nht khi bn mun n ch mt k t
trong shell. Vn ny xut hin khi bn mun a vo mt k t c bit trong mt
chui. V d, lu gi ca mt hp a my tnh vo mt bin c tn l disk_price,
s dng cu lnh sau.
disk_price=\$5.00 (for bash and pdksh)
set disk_price = \$5.00 (tcsh)
hoc
[ expression ]
ngha
str1 = str2
str1 != str2
str
-n str
Tr li gi tr true nu di ca str ln hn 0
-z str
Cc ton t s thc hin cc chc nng tng t cc ton t string ngoi tr vic
chng hot ng trn cc i s kiu s. Bng 6.4.2 lit k danh sch cc ton t s
c s dng trong cu lnh test.
Bng 6.4.2 Cc ton t s cho cu lnh test.
Ton t
ngha
Bn s dng cc ton t file cho cu lnh test thc hin cc chc nng chng hn
nh kim tra xem cc file c tn ti hay khng v kim tra xem file thuc loi
no, file c a vo nh mt i s cho cu lnh test. Bng 6.4.3 a ra danh sch
cc ton t file cho cu lnh test.
ngha
-d file
Tr li gi tr true nu file c xc nh l mt th mc
-f file
-r file
-s file
-w file
-x file
Bn s dng cc ton t logic cho cu lnh test kt hp cc ton t s, xu, hay file
hoc ph nh mt ton t n s, xu, hoc file. Bng 6.4.4 a ra danh sch c ton
t logic cho cu lnh test.
Bng 6.4.4 Cc ton t Logic ch cu lnh test.
Ton t
ngha
! expr
Expr1 -a expr2
Expr1 -o expr2
Shell tcsh khng c cu lnh test, nhng cc biu thc ca tsch thc hin cc chc
nng tng t. Cc ton t tcsh h tr hu ht ging nh c h tr trong ngn ng
C. Bn thng s dng cc biu tc ny trong cc cau lnh if v while. Trong on
sau,phn "S dng cc lnh c iu kin " v "S dng cc lnh lp " s ni v cc
cu lnh ny. Ging nh cu lnh test trong bash v pdksh, cc biu thc trong tcsh
h tr cc ton t s, xu, file, v logic. Bng 6.4.5 a ra danh sch cc ton t c
h tr trong c biu thc ca tcsh.
Bng 6.4.5 Cc tan t s cho for cc biu thc tcsh.
Ton t
ngha
ngha
str1 == str2
str1 != str2
Bng 6.4.7 a ra danh sch c ton t file m cc biu thc tcsh h tr.
Bng 6.4.7 Cc ton t File cho cc biu thc tcsh.
Ton t
ngha
-r file
Tr li gi tr true nu file c th c c
-w file
-x file
-e file
Tr li gi tr true nu file tn ti
-o file
-z file
-f file
-d file
Tr li gi tr true nu file l mt th mc
ngha
exp1 || exp2
! exp
commands
elif [ expression2 ]
commands
else
commands
fi
commands;;
esac
count=`grep ^i $2 | wc -l`
echo "The number of lines in $2 that start with an i is $count"
;;
-e)
count=`grep ^e $2 | wc -l`
echo "The number of lines in $2 that start with an e is $count"
;;
* )
echo "That option is not recognized"
;;
esac
Trong dng ny, lnh for thc thi mt ln cho mi phn t nm trong danh sch. Danh
sch ny c th c thay i cha cc t c phn bit vi nhau bi du cch, hoc
n c th l mt danh sch cc gi tr c g trc tip vo trong cu lnh. Mi ln
qua vng lp, bin var1 c gn cho phn t hin ti trong danh sch v tip tc cho
n khi phn t cui cng trong danh sch.
Dng th hai ca lnh for c c php nh sau:
for var1
do
statements
done
Trong dng ny, lnh for thc thi mt ln cho mi phn t nm trong bin var1. Khi
bn s dng c php ny ca lnh for, chng trnh shell gi s rng bin var1 cha
tt c cc i s c a vo trong chng trnh shell t dng lnh. in hnh, dng
ny ca lnh for l tng ng vi vit cc lnh sau:
for var1 in "$@"
do
statements
done
Tng ng vi lnh for trong tcsh l lnh foreach. N x l tng t nh lnh for
trong bash v pdksh. C php ca lnh foreach nh sau:
foreach name (list)
commands
end
count=1
while [ -n "$*" ]
do
echo "This is parameter number $count $1"
shift
count=`expr $count + 1`
done
Lnh shift chuyn i s dng lnh ln mt sang bn tri (xem on sau"Lnh shift"
bit thm thng tin). Chng trnh bn di tng t c vit cho ngn ng tcsh:
#
set count = 1
while ( "$*" != "" )
echo "This is parameter number $count $1"
shift
set count = `expr $count + 1`
end
do
echo "This is parameter number $count $1"
shift
count=`expr $count + 1`
done
kt qu cc i s c a vo nh sau:
$1 = file1 $2 = file2
Bn c th vit li lnh repeat bt k bng lnh while hay lnh for; c php repeat ch
thun tin hn m thi.
6.7. S dng cc hm
Ngn ng shell cho php bn dnh ngha hm ca chnh bn. Cc hm ny c nh
ngha ging nh cch bn nh ngha cc hm trn ngn ng lp trnh C hay cc ngn
ng lp trnh khc. Thun li chnh ca vic s dng hm t chc, trnh vit tt c
cc m shell ca bn trong mt dng. M c vit s dng cc hm c khuynh
hng d hn trong vic c v bo tr v cng l khuynh hng nh gn hn bi v
bn c th nhm cc m chung vo trong mt hm thay vic a n vo tt c cc ni
cn n.
C php to mt hm trongbash v pdksh l nh sau:
fname () {
shell commands
}
rm $1
mv $1.out $1
shift
done; }
lower () {
shift
for i
do
tr A-Z a-z <$1 >$1.out
rm $1
mv $1.out $1
shift
done; }
print () {
shift
for i
do
lpr $1
shift
done; }
usage_error () {
echo "$1 syntax is $1 <option> <input files>"
echo ""
echo "where option is one of the following"
echo "p -- to print frame files"
echo "u -- to save as uppercase"
echo "l -- to save as lowercase"; }
case $1
in
p | -p) print $@;;
u | -u) upper $@;;
7. Ci t v qun tr WebServer
7.1. Hng dn ci t trn mi trng Linux.
Ci t trn mi trng Linux hon ton khng kh nh nhng g chng ta ngh khi
mi tip xc vi h iu hnh ny. Qu trnh ci t ch n gin, chng ta thc hin
cu lnh rpm vi c php sau:
rpm [ivhqladefUV] [-force] [nodeps] [--oldpackage] package list
y l chng trnh qun l cc gi ci. N cho php bn qun l cc gi RPM, thc
hin rt d dng vic ci t v g b phn mm. ci t phn mm c tn l
precious-software-1.0.i386.rpm chy cu lnh sau:
rpm i precious-software-1.0.i386.rpm
bn c th lm cho vic ci t trng p mt hn bng cch s dng ty chn ivh
thay cho ty chn i. Nu bn ci mt gi phn mm ri nhng v mt l do no
bn li mun ci li n ln phin bn c, bn ch cn s dng ty chn force cho
lnh rpm. Nu bn mun nng cp mt phn mm, bn s dng ty chn U.V d:
rpm Uvh precious-software-1.0.i386.rpm
Tuy nhin bn ci mt phin bn mi v by gi bn mun ci li phin bn c,
nu bn mun s dng lnh trn, h thng s bo li phin bn ci t l phin bn
mi hn phin bn m bn mun ci. c th thc hin c iu ny bn s dng
ty chn --oldpackage cng vi ty chn U ci t phin bn c. tm kim
cc gi ci c ci vo h thng ca bn, bn s dng lnh sau:
rpm -qa
tm cc gi ci ca mt chng trnh nh sendmail, bn c th s dng lnh
rpm q sendmail
H thng s tr li gi ci s dng ci sendmail. pht hin gi ci no ca
mt file xc nh nh /bin/tcsh, ta s dng cu lnh:
rpm qf /bin/tcsh
Qun tr WebServer
<path-to-apache>/bin/apachectl stop
V d:
/afs/uncc.edu/usr/q/zlian/Apache/bin/apachectl stop
7.2.4. Cu hnh Apache
Theo cch truyn thng, cu hnh Apache c chia thnh ba file cu hnh:
httpd.conf, access.conf, v srm.conf. Theo th t cc file ny c
ngha nh sau, httpd.conf l file cu hnh server chnh, access.conf l file
nh ngha cc quyn truy cp, v srm.conf cc ti nguyn server c nh ngha,
chng hn nh nh x cc th mc v cc biu tng. Trong 1.3.4, ba file ny c
trn vo mt file chung httpd.conf, n c th tm thy trong th mc conf. V
d:
/afs/uncc.edu/usr/q/zlian/apache/conf/
Ch : Cc hng dn quan trng cho cu hnh ca bn:
ServerName
ServerName ch ra a ch IP ca my ch ci t dch v WebServer, thng thng
nu my ca bn l my cc b, khng ni mng, a ch ny mc nh l 127.0.0.1
tng ng vi tn my l localhost. Nu my ny c a ch mng, bn c th thay th
bng a ch IP ca my. xem a ch ca my bn thc hin lnh:
ifconfig a
Listen
DocumentRoot
DocumentRoot /usr/web
Sau mt truy cp n http://www.my.host.com/index.html s tng
ng /usr/web/index.html.
Thng xut hin trong khi cu hnh nh sau: (i.e., "DocumentRoot
/usr/web/") thm mt k t / ui, bn nn trnh iu ny.
7.2.5. Xc thc ngi dng
ngn chn truy cp vo cc file trn server ca bn, bn nn s dng bo v
user/password, Bn c th s dng cc hng dn sau.
AuthType
AuthName
AuthUserFile
AuthGroupFile
require
<Directory></Directory>
<Files></Files>
AuthType La chn kiu xc thc ngi s dng cho mt th mc. Ch c Basic
v Digest l thc thi hin ti.
AuthName t tn ca xc thc cho mt th. Tn xc thc ny s c gi n
client nhng ngi s dng bit loi username v password no gi.
AuthName c mt i s; Nu tn xc thc c du cch n phi c t trong du
trch dn.
AuthUserFile t tn ca file vn bn thun ty cha danh sch nhng ngi s
dng v mt khu cho vic xc thc ngi s dng. Tn file l ng dn n n file
ngi s dng. Nu n khng phi l ng dn tuyt i (v d, nu n khng bt
u vi /), N c xem nh ng dn tng i n ServerRoot.
AuthGroupFile t tn ca mt file vn bn thun ty cha danh sch cc nhm
ngi s dng cho vic xc thc ngi s dng. Tn file l ng dn n file group.
Nu n khng phi l ng dn tuyt i (v d, khng bt u vi du /), n c
xem nh ng dn tng i n ServerRoot.
require Chn nhng ngi s dng no c th truy co vo mt th mc. C php
cho php l:
1. Ch nhng ngi s dng c t tn c th truy cp th mc:
require user userid userid ...
2. Ch nhng ngi s dng trong cc nhm c t tn c th truy cp th
mc:
require group group-name group-name ...
3. Tt c nhng ngi s dng c th truy cp th mc:
require valid-user
<Directory> v </Directory> c s dng nhm mt nhm cc
hng dn v n s ch c p dng cho th mc c t tn v cc th mc con
TIME
CMD
13636 pts/1
00:00:00 bash
13696 pts/1
00:00:00 man
13699 pts/1
00:00:00 sh
13700 pts/1
00:00:00 sh
13704 pts/1
00:00:00 less
16692 pts/1
00:00:00 tail
17252 pts/1
00:00:00 ps
Trng
Gii Thch
Tn ca tin trnh
PID
%CPU
%MEM
SIZE
RSS
TTY
STAT
START
TIME
COMMAND
PRI
PPID
WCHAN
FLAGS
S c c kt hp vi tin trnh
Ty Chn
Miu t
Hin th kt qu y
Txx
Tin ch ny cho php bn dng mt tin trnh bng tn. V d bn c mt tin trnh
c goi l signal_demo.pl v bn mun dng tin trnh ny. Bn s dng lnh:
killall signal_demo.pl
Thng thng khi chng ta chy mt tin trnh t thit b u cui (bn phm) hay
shell, bn chy tin trnh tin cnh. Khi bn chy tin trnh tin cnh, bn phi i
cho n kt thc. Tuy nhin, thay v vic i cho n kt thc, bn c th chy n hu
cnh bng vic thm mt k hiu & cui dng lnh. iu ny hu ch khi mt tin
trnh chy trong thi gian di v bn cn phi lm mt cng vic khc. V d, khi
ng h qun tr CSDL PosgresSQL vi postmaster bn thc hin:
postmaster i &
Vy khi no bn bit mt tin trnh hu cnh ang chy hay dng. Bn c th s
dng lnh:
ps -af
xem tt c cc tin trnh trong c c tin trnh hu cnh.
[2]- Stopped
tail
[3]+ Stopped
ls -R /
bg 3
Mt ln na ta s dng lnh jobs, ta s thy thng tin hin trn mn hnh nh sau:
[1] Stopped
[2]- Stopped
tail
[3]+ Running
ls -R /
chuyn mt tin trnh t hu cnh sang chy trn tin cnh bn dng lnh fg. V
d:
fg 3
8.2.3. Giao tip gia cc tin trnh
i khi cc tin trnh cn trao i thng tin cho nhau x l. Chng hn nh lnh ls
ca Linux ch bit lit k v ghi ton b d liu v thng tin ca file, th mc ra mn
hnh. Lnh ls khng c c ch dng khi mn hnh y. Trong khi lnh more li c kh
nng c d liu v a ra mn hnh theo tng trang ngi dng c thi gian xem
qua. Cc chng trnh cn c nhu cu chuyn d liu cho nhau x l. Mt c ch
c s dng kh ph bin trn Linux l pipe (ng ng). Bn s dng ch th |
biu th ng ng. V d:
ls R | more
Hoc bn c th tm chnh xc tn tin trnh nh:
ps af | grep [bash]
8.3 Lp k hoch cc tin trnh
du a > /tmp/du.out
Sau khi bn g lnh Enter, n s hin th li du nhc cho php bn nhp vo cc cu
lnh tip theo. Bn c th chn Ctrl+D kt thc.
Nu v mt l do no , bn mun dng cng vic m bn lp lch, bn c th s
dng lnh atrm xa cng vic trc khi n c thc hin. Bn cn phi bit s
th t ca cng vic m bn mun hy, tm ra cc cng vic m bn lp lch,
bn chy cu lnh atq tm s th t cng vic, sau dng atrq vi i s l s th
t ca cng vic mun hy. V d:
atrq 1
8.3.2 S dng crontab
C nhiu cng vic trn Linux cn c lp lch mt cch thng xuyn, v d xa
cc file c c sinh ra bi h thng trong th mc tmp hng ngy, hay hng tun bn
cn phi chy mt tin trnh mi ngy hay mi tun. Tin ch cron cho php bn thc
hin cc cng vic nh th. Thc ra cron bao gm crond daemon, c khi ng bi
tin trnh init. Crond c cc lch cng vic t /etc/crontab v cc file trong
/var/spoon/cron. Th mc cron ny lu tr cc file lp lch (thng c gi l
crontab hay cron table) cho nhng ngi s dng thng thng c php chy cc
cng vic cron. L mt superuser, bn c th xc nh mt danh sch nhng ngi s
dng c php chy cc cng vic cron trong file /etc/cron.allow. Tng t, bn c
th xc nh nhng ngi s dng khng c php thc hin cc cng vic cron
trong file /etc/cron.deny. C hai file ny u s dng mt nh dng c bn: mt
username trn mt dng. Nu mt ngi c php thc hin cc cng vic cron,
ngi c th s dng tin ch crontab thc hin cng vic lp lch. V d, khi
bn c php, bn c th g lnh:
crontab e
v son tho cc cng vic cn thc hin. Mt cng vic cron phi c nh dng sau:
minute(s) hour(s) day(s) month weekday username command argument(s)
Cc trng t 1 n 5 c nh dng sau
9. Bo mt h thng
Cng vi s pht trin khng ngng ca truyn thng k thut s, Internet v s pht
trin nhy vt ca nn cng nghip phn mm, bo mt my tnh l mt vn ngy
cng tr nn quan trng. Cn phi hiu rng khng c h thng my tnh no l an
Nhng sai st trong chnh sch an ninh khng ch lin quan n nhng k xm nhp,
m cn lin quan n nhng vn bnh thng nh thi tit, thin tai, chy, n, h
hng thit b,... Do vy, vic thit lp mt chnh sch an ninh tt cho vic gii quyt
nhng s c phi c ln k hoch k lng, c xem xt v chng nhn bi ngi
c quyn hn trong cng ty.
Mt chnh sch an ninh tt nn bao gm cc vn sau :
o
o
o
o
o
o
Tp hp 1 nhm i ph vi s tn cng:
- Nhm ny phi bao gm nhng nhn vin kinh nghim, nhng ngi m c
th gip hnh thnh mt k hoch hnh ng i ph vi s tn cng.
Da theo chnh sch v cc quy trnh thc hin v an ninh ca cng ty, s
dng cc bc thch hp khi thng bo cho mi ngi hay t chc v cuc tn
cng.
Tm s gip t nh cung cp dch v Internet v c quan ph trch v an
ninh my tnh:
- Lin h nh cung cp dch v Internet ca bn thng bo v cuc tn
cng. C th nh cung cp dch v Internet ca bn s chn ng c cuc
tn cng.
- Lin h c quan ph trch v an ninh my tnh thng bo v cuc tn
cng
o
o
Tm thi dng phng thc truyn thng khc (chng hn nh qua in thoi)
khi trao i thng tin m bo rng k xm nhp khng th chn v ly
c thng tin.
Ghi li tt c cc hot ng ca bn (chng hn nh gi in thoi, thay i
file, ...)
Theo di cc h thng quan trng trong qa trnh b tn cng bng cc phn
mm hay dch v pht hin s xm nhp (intrusion detection
software/services). iu ny c th gip lm gim nh s tn cng cng nh
pht hin nhng du hiu ca s tn cng thc s hay ch l s quy ri nhm
nh lc hng s ch ca bn(chng hn mt tn cng DoS vi dng lm
sao lng s ch ca bn trong khi thc s y l mt cuc tn cng nhm
xm nhp vo h thng ca bn).
- Sao chp li tt c cc files m k xm nhp li hay thay i (nh nhng
on m chng trnh, log file, ...)
o
o
o
http://www.first.org
http://ciac.llnl.gov/
http://www.cert.dfn.de/eng/csir/europe/certs.html
Mt s website v an ton my tnh
http://www.cs.purdue.edu/coast/
http://www.linuxsecurity.com
http://www.securityportal.com
http://www.tno.nl/instit/fel/intern/wkinfsec.html
http://www.icsa.net
http://www.sans.org
http://www.iss.com
http://www.securityfocus.com