Professional Documents
Culture Documents
ISELinux101
ISELinux101
H NI 2006
Li ni u
Giy php s dng ca hu ht cc phn mm u c a ra nhm hn ch bn t
do chia s v thay i n. Ngc li, Giy php Cng cng ca GNU c mc ch
m bo cho bn c th t do chia s v thay i phn mm t do - tc l m bo
rng phn mm l t do i vi mi ngi s dng. Giy php Cng cng ny p
dng cho hu ht cc phn mm ca T chc Phn mm T do v cho tt c cc
chng trnh khc m tc gi cho php s dng. (i vi mt s phn mm khc
ca T chc Phn Mm T do, p dng Giy php Cng cng Hn ch ca GNU
thay cho giy php cng cng). Bn cng c th p dng n cho cc chng trnh
ca mnh.
Khi ni n phn mm t do, chng ta ni n s t do s dng ch khng quan tm
v gi c. Giy php Cng cng ca chng ti c thit k m bo rng bn
hon ton t do cung cp cc bn sao ca phn mm t do (cng nh kinh doanh
dch v ny nu bn mun), rng bn c th nhn c m ngun nu bn c yu
GII THIU
Gii thiu ti liu
Ti liu Qun tr h thng Linux l cun gio trnh b ch, c xy dng vi mc
ch chuyn ti cc kin thc ht sc c bn nhng cn thit i vi cc hc vin,
c bit l i vi nhng ngi lm cng tc ging dy.
c bin son da trn b gio trnh ca Hc vin Linux LPI (Linux Professional
Institute). y l b gio trnh c bin son mt cch cng phu, t m v khoa hc,
dng cho vic o to v n luyn cc chng ch LPI ca Hc vin Linux.
Do ang trong qu trnh xy dng h thng gio trnh v bi ging mt cch khoa
hc v chuyn nghip. V vy, trong qu trnh dch v bin son ti liu khng trnh
khi nhng thiu st. Rt mong c s ng gp kin ca ngi c ti liu
ngy cng c hon chnh hn.
Hi vng trong thi gian ti, cng vi s cng tc cht ch gia RedHat v Cng ty
ISE, chng ti s xy dng c b gio trnh hon chnh, khoa hc v phong ph
hn.
Nhm tc gi xin chn thnh cm n v chc cho ngi c c c mt kho hc
b ch.
Nhm tc gi Cng ty ISE
MC LC
GII THIU ............................................................................................................ 12
U
Bootloader.............................................................................................................. 34
Nhng thit b qun l....................................................................................... 35
Quotas .................................................................................................................... 37
Thc hnh .............................................................................................................. 39
H THNG FILE TRONG LINUX...................................................................... 40
Cu trc ca h thng file ...................................................................................... 40
S nht qun trong nh dng v kin trc ca h thng file ................................ 43
Kim tra dung lng a ........................................................................................ 45
Quyn truy xut File, Th mc.............................................................................. 46
Thc hnh .............................................................................................................. 49
DNG LNH........................................................................................................... 50
Tng tc vi SHELL ........................................................................................... 50
Bin mi trng ca Shell ..................................................................................... 51
Xut, nhp, i hng............................................................................................ 53
Du ngoc v Cc k t a ngha (Metacharacter)............................................... 57
Lch s dng lnh................................................................................................... 59
Mt s lnh khc.................................................................................................... 60
Thc hnh .............................................................................................................. 61
QUN L FILE ...................................................................................................... 65
Di chuyn quanh h thng file............................................................................... 65
Tm kim file v th mc....................................................................................... 65
Lm vic vi th mc ............................................................................................ 68
S dng cp v mv .................................................................................................. 69
Hard links v symbol links .................................................................................... 70
Touching v dd-ing ................................................................................................ 72
Ti liu o to Linux c bn
CI T
CI T
Cu trc ca a ci
Hin ti, c rt nhiu phin bn phn phi Linux khc nhau. Vi mi bn, cch t
tn ca cc th mc trn a ci cng khc nhau. Thng thng chng c dng nh
sau:
images: Dng cha nh ca Linux. C nhiu kiu file nh khc nhau. Mi file c
mt cng dng ring:
- Khi ng tin trnh ci t
- Cung cp module cho nhn
- Khi phc li h thng
18
Ti liu o to Linux c bn
CI T
Mt s nh c th c ghi li vo a mm hoc CD, USB nhm mc ch khi
ng qu trnh ci t t nhiu ngun khc nhau.
Bn thn nhiu file nh cng cha bn trong n nhng file v th mc con. C th
truy cp n nhng file v th mc ny thng qua vic nh x file nh vo mt thit
b loop.
Ci t Cc b
Ci t cc b l cch thc d dng v ph thng nht trong tt c cc phng thc
ci t. Hu ht cc bn phn phi Linux u c dng boot CD cho php khi ng
qu trnh ci t mt cch t ng. Vi nhng my tnh khng c CD, c th thay
th n bi a mm hoc USB khi ng qu trnh ny (khi , th mc
packages thng c t trong cng).
to ra a mm hoc a USB c kh nng khi ng, c th dng lnh dd trong
Linux hoc rawrite.exe trong DOS/Win.
19
Ti liu o to Linux c bn
CI T
V d: i vi cc bn phn phi ca RedHat cc file nh ny c tn l boot.img.
Ngoi ra, c th cn c mt s file nh c bit khc c cung cp nh:
bootnet.img hay pcmcia.img.
Ci t qua Mng
Thng thng cc gi ci t c ti mt server xa, ngi dng ch cn khi
ng qu trnh ci t, thit lp cc tham s mng chnh xc sau , tin trnh ci t
s t ng download cc gi cn thit v my tnh ci (thng qua cc giao thc
nh FTP, HTTP, NFS).
khi ng qu trnh ci t c th s dng bt k phng thc no nh miu
t trong phn Ci t Cc b. Ngoi ra, qu trnh ny cng c th c khi ng
thng qua mt Card Mng c kh nng boot kt hp vi DHCP v TFTP Server
c thit lp cho mc ch ny.
Phc hi H thng
Trong trng hp h thng b trc trc, khng th khi ng chnh xc, c th phc
hi c mt s li thng qua c ch khi ng Phc hi H thng.
Khi khi ng c ch ny, mt phin bn thu gn ca Linux v mt h thng file o
c np vo v chy ngay trn RAM h thng. H thng file tht s c tm kim
v nh x vo mt th mc ca h thng file o ny. Ngi dng c th dng lnh
chroot chuyn qua h thng file tht v x l s c. Thng thng nu tm thy,
n s c nh x vo th mc /mnt/sysimage ca h thng o.
20
Ti liu o to Linux c bn
CI T
21
Ti liu o to Linux c bn
CI T
v cc th mc con nhiu cp. Cc ti nguyn h thng c s dng lu tr d
liu c gn kt/nh x (mounted) vo cc im ch nh trn h thng file, cc
im ny c gi l cc im gn kt/nh x (mount point). Th mc gc /
cng l mt im gn kt v phn vng lu tr d liu cho / s c xc nh
trong qu trnh khi ng.
Thc hnh
1. Ci t (qua mng hoc khng) mt h thng Linux vi yu cu nh sau:
+ Chn Custom System
+ Phn vng cng vi Disk Druid thnh cc phn vng nh sau:
/boot 100M
SWAP 512M
/ 2000M
/usr 6000M
/home 1000M
/tmp 2000M
/var Phn dung lng cn li ca cng
+ Ci t GRUB ln MBR v t mt khu cho GRUB.
Copyright ISE, 2006
22
Ti liu o to Linux c bn
CI T
+ Ci t cc gi theo yu cu ca ging vin.
2. Phc hi h thng
+ Gi s bn b qun mt khu root, khi ng li my tnh v phc hi li n bng
ch single.
+ Gi s bn cng qun c mt khu ca GRUB nn khng khi ng vo ch
single c. Khi ng my tnh bng a c kh nng cu h (Rescue Mode). Sa
li file cu hnh ca GRUB (/boot/grub/grub.conf) xa mt khu.
23
Ti liu o to Linux c bn
CU HNH PHN CNG
Qun l Ti nguyn
truy cp vo cc thit b, h thng (CPU) phi cp pht cc ti nguyn truy cp
cho chng. Sau y l cc kiu ti nguyn ny:
24
Ti liu o to Linux c bn
CU HNH PHN CNG
a ch I/O (Input/Output Nhp/Xut)
L nhng a ch trn b nh h thng c nh x vo b nh ca thit b. Mi
thao tc trn vng nh ny tng ng vi thao tc ln b nh ca thit b.
25
Ti liu o to Linux c bn
CU HNH PHN CNG
Mt s Ti nguyn thng dng
Device
I/O port
IRQ
/dev/ttyS0
0x03f8
/dev/ttyS1
0x02f8
/dev/lp0
0x378
/dev/lp1
0x278
soundcard
0x220
USB
USB (Universal Serial Bus) l chun kt ni gia cc thit b vi nhau v vi PC.
Chng c chia thnh cc lp thit b nh sau:
Display Devices
Communication Devices
Audio Devices
Mass Storage Devices
Human Interface Devices (HID)
Mi thit b gn vo cng USB u c iu khin bi mt b iu khin USB
Controller. Bt u t phin bn nhn 2.2.7, Linux mi h tr USB Controller. C 3
kiu USB Controllers nh sau:
Host Controler
Kernel Module
OHCI (Compaq)
usb-ohci.o
UHCI (Intel)
usb-uhci.o
ehci-hdc.o
26
Ti liu o to Linux c bn
CU HNH PHN CNG
SCSI
Hin nay, chun SCSI c hai kiu giao tip l:
- Chun giao tip 8-bit vi mt knh truyn h tr 8 thit b SCSI. Tuy nhin do
bao gm c controller nn card SCSI theo chun ny ch c th kt ni c vi ti
a 7 thit b SCSI khc.
- Chun giao tip 16-bit (WIDE) cng tng t nh chun 8-bit vi s thit b kt
ni ti a l 15.
Mi thit b SCSI c gn mt s hiu SCSI ID duy nht. Cc s hiu ny chy t
0 n 7 hoc 15 v c th c thit lp bi cc jump trn chng.
Network Card
dng c card mng, nhn ca h thng phi h tr chng. Thng tin v card
mng ang dng trong h thng c th c tm thy thng qua cc lnh hoc file
sau: dmesg, lspci, scanpci, /proc/interrupts, /sbin/lsmod hay /etc/modules.conf
27
Ti liu o to Linux c bn
CU HNH PHN CNG
V d trn cho thy mt card mng ang dng c chipset l Tulip, a ch I/O l
0xf800 v IRQ = 10. Nu cc thng tin ny hot ng tt th c th s dng n ti
cc h thng khc tng ng v phn cng nhng c li khi np module hay I/O
hoc IRQ b xung t. thay i cc tham s ny c th s dng cc lnh
modprobe hoc insmod (thay i trc tip) hay ghi vo trong file
/etc/modules.conf (c hiu lc t ln khi ng sau).
Modem
Do cc Modem cm trong yu cu CPU x l d liu cho chng nn thng thng
Linux khng h tr cc thit b loi ny (mc d c nhiu cch i ng vng
gii quyt vn trn).
V vy, ti liu ny ch cp n cc modem cm ngoi (s dng cng serial).
Trong Linux, cc cng serial c nh ngha khc so vi trong DOS/Windows:
DOS
Linux
COM1
/dev/ttyS0
COM2
/dev/ttyS1
COM3
/dev/ttyS2
28
Ti liu o to Linux c bn
CU HNH PHN CNG
Mc d hu ht cc phin bn phn phi Linux u c cng c ha d tm v
thit lp tham s cho modem, nhng trong cc server ch s dng giao din text,
setserial l cng c hu ch cho vic ny. Vi tham s -g, setserial c th tm c
cng serial no ang c thit b kt ni. Ngoi ra, setserial cng c kh nng thit
lp li tham s hot ng cho nhng cng ny.
My in
Hng dn chi tit hn v my in s c cp n trong nhng phn sau ca ti
liu. Thng thng nhng my in c kh nng PnP s c d tm ngay khi h
thng khi ng (k c my in USB cng c th c d thy) v c th nhn thy
bi lnh dmesg.
Qu trnh In trong Linux c thc hin trong hai bc. u tin, d liu in c
lc qua mt b lc theo nh dng ca trnh qun l my in. Sau , d liu mi
c x l a ra my in.
Thc hnh
1. S dng lng dmesg xem thng tin t file /var/log/dmesg. Tm trong cc
thng tin v USB, tty hoc eth0 v tr li:
Copyright ISE, 2006
29
Ti liu o to Linux c bn
CU HNH PHN CNG
- Tn ca USB controllers c s dng?
- S hiu IRQ ca hai cng serial u tin l bao nhiu?
2. Kim tra ni dung ca cc file:
/proc/ioports
/proc/interrupts
/proc/pci
/proc/dma
3. PCI bus:
- Kim tra output ca cc lnh lspci -v and scanpci v. Kiu ca card mng trn my
bn l g?
- Kim tra xem c bao nhiu mc bus trong file /proc/pci. Nhng thng tin ny c
ging nh kt qu ca 2 lnh trn khng?
4. USB:
- Dng lnh lsmod v lsusb kim tra xem kiu host controller no ang c s
dng trong h thng? UHCI, OHCI hay EHCI.
30
Ti liu o to Linux c bn
QUN L THIT B
QUN L THIT B
a v Phn vng
a vt l
a vt l c nhn Linux gn vo cc mc trong th mc /dev. Mi kt ni t
nhn n cc thit b u thng qua b s major/minor. Cc s major c nh
ngha trong file /proc/devices. V d: a cng IDE u tin c s major = 3
Block devices:
1
ramdisk
fd
ide0
hda
Primary Master
hdb
Primary Slave
hdc
Secondary Master
hdd
Secondary Slave
sda
sdb
Phn vng a
c th s dng c, cc a cng cn phi c phn vng. Linux thm vo
ng sau nh danh a cng s hiu ca cc phn vng qun l.
31
Ti liu o to Linux c bn
QUN L THIT B
hda1
hda2
sdc3
32
Ti liu o to Linux c bn
QUN L THIT B
Trong v d trn (dng fdisk -l), h thng c ba phn vng chnh c nh danh t
hda1 n hda3. Phn vng th 3 c nh du l m rng v cha trong n 7 phn
vng con. Do hda3 khng c dng. Cc phn vng con c nh danh t
hda5 tr i.
diskdrake
Mandrake
DiskDruid
RedHat
33
Ti liu o to Linux c bn
QUN L THIT B
Trn h thng ang hot ng
fdisk lun l cng c c la chn phn vng cc a cng. Tp lnh ca fdisk
tng i n gin, ch gn g lnh m xem y cc lnh ca n.
Sau khi fdisk, nu c thay i bng phn vng, cn phi khi ng li my tnh.
s dng c cc phn vng ny, phi nh dng chng vi cc nh dng h thng
file m Linux hiu c thng qua cc lnh: mkfs hoc mke2fs.
Bootloader
Bootloader l chng trnh mc nh c ci t trn MBR nhm gip my tnh la
chn c phn vng khi ng, np b mi h iu hnh v chuyn quyn kim
sot cho h iu hnh.
Cc bn Linux c phn phi vi hai Bootloader ring. Tuy nhin, chng cng
nhn vai cho mi h iu hnh nn c th ci t vo BR ca phn vng khi ng
ch khng nht thit phi ci t trn MBR.
LILO
M nh phn ca trnh bootloader, c ci t trn MBR hoc BR. N s np m
khi ng giai on 2 ti /boot/boot.b.
/etc/lilo.conf
File cu hnh ca LILO vi mt s tham s nh sau:
34
Ti liu o to Linux c bn
QUN L THIT B
boot*
install
prompt
default
timeout
image*
ng dn ch n nhn khi ng
label*
Tn ca file nh
root*
/sbin/lilo
Cng c dng c tham s t /etc/lilo.conf v thit lp cho LILO.
35
Ti liu o to Linux c bn
QUN L THIT B
Ngoi ra, /etc/fstab cng c dng tr gip cho cc kt gn ti nguyn thi gian
thc. V d:
rw, ro
c-ghi hoc ch c
users
user
owner
36
Ti liu o to Linux c bn
QUN L THIT B
mount n
usrquota
grpquota
Quotas
Quota l cng c cho php qun tr h thng thit lp hn ngch lu tr trn a.
Cng c ny khng yu cu khi ng li h thng. Sau y l mt s bc lm
chung:
1. Thm ty chn usrquota vo file /etc/fstab ti dng cha phn vng cn phn hn
ngch.
2. Remount li phn vng ny:
37
Ti liu o to Linux c bn
QUN L THIT B
Tham s soft/hard limit phi c thit lp cho c s blocks ln inodes cho mi user.
H thng s cho php s dng vt qu con s soft limit cho n khi ht hn. Khi
, hard limit s c s dng quyt nh chnh xc hn ngch ca ngi dng.
S dng tham s -T quyt nh thi gian ny.
5. Bt ch hn ngch ln:
Ngi dng c th kim tra hn ngch ca mnh bng lnh quota, qun tr c th
sinh ra bo co v hn ngch bng lnh repquota hoc quotastats.
38
Ti liu o to Linux c bn
QUN L THIT B
Thc hnh
1. S dng fdisk, xa phn vng /home, sau to li 1 phn vng mi. Khi ng
li my tnh. Vn g s xy ra? Gii quyt nh th no?
2. Dng lnh mkfs to ra nh dng h thng file kiu ext3 trn phn vng ny
3. To th mc data trong th mc gc. Thit lp li /etc/fstab sao cho th mc ny
l mount point ca phn vng mi nh dng.
4. Dng lnh mount c tham s kim tra li xem thit lp /etc/fstab ng cha.
5. Thit lp hn ngch a cho phn vng trn theo tng bc hng dn.
39
Ti liu o to Linux c bn
H THNG FILE TRONG LINUX
40
Ti liu o to Linux c bn
H THNG FILE TRONG LINUX
The base directories
Cc th mc c s l nhng th mc con cp 1 nm ngay di th mc gc /.
Chng c to ra bi mt gi thng c tn l filesystem.
41
Ti liu o to Linux c bn
H THNG FILE TRONG LINUX
/mnt hoc /media
Mount point mc nh cho nhng h thng file kt ni bn ngoi.
/proc
Lu cc thng tin ca nhn, ch c th ghi c ni dung trong th mc /proc/sys.
/boot
Cha nhn Linux khi ng v cc file system maps cng nh cc file khi ng
giai on hai.
/home (ty chn)
Th mc dnh cho ngi dng khc root. Thng tin khi to th mc mc nh ca
ngi dng c t trong /etc/skel/
/root (ty chn)
Th mc mc nh ca ngi dng root.
/tmp
Th mc cha cc file tm thi.
/usr
Th mc cha nhng file c nh hoc quan trng phc v tt c ngi dng.
/usr/local hoc /opt (ty chn)
Th mc cha cc phn mm ci thm.
/var/www, /var/ftp/ hoc /srv (Suse)
Th mc cha thng tin ca cc dnh v WEB hay FTP.
/var
Th mc cha cc thng tin hay thay i nh: spool v log
42
Ti liu o to Linux c bn
H THNG FILE TRONG LINUX
43
Ti liu o to Linux c bn
H THNG FILE TRONG LINUX
Tin ch nh dng
Do nhn Linux ch c th c c cc h thng file c nh dng t trc nn
lu tr v qun l d liu trn cc phn vng mi, cn phi nh dng mt h
thng file trn thng qua cc cng c nh dng.
nh dng mt phn vng c kiu h thng file l ext2 bng lnh mkfs.ext2 hay
mke2fs. Tng t nh vy vi kiu h thng file xfs (ca Silicon Graphics) vi lnh
mkfs.xfs.
Lnh mkfs thc cht l mt chng trnh kim tra yu cu nh dng v la chn
ng lnh thi hnh. C php ca mkfs l:
mkfs t <fstype>
44
Ti liu o to Linux c bn
H THNG FILE TRONG LINUX
S dng du
Tin ch ny c s dng hin th khng gian a c s dng nhng mc
th mc. V vy, du cng khng th hin th khong trng cn tha ca a.
45
Ti liu o to Linux c bn
H THNG FILE TRONG LINUX
Ngi dng s hu
V d:
-rw-rw-r-- 1 jade sales 24880 Oct 25 17:28 libcgic.a
46
Ti liu o to Linux c bn
H THNG FILE TRONG LINUX
Ty chn hay dng vi chmod, chown v chgrp l R cho php thay i trong c
cc th mc, file bn trong th mc ch nh.
Ngoi cch s dng k t i din cho cc quyn: read=r, write=w, execute=x,
chmod cho php s dng mt b s h bt phn thay i quyn theo bng sau:
read
write
execute
user
group
other
rwx
r-x
rw-
4+2+1=7
4+1=5
4+2=6
666
-rw-rw-rw-
Directories
777
-rwxrwxrwx
umask
47
Ti liu o to Linux c bn
H THNG FILE TRONG LINUX
L khi nim c thit lp ch nh quyn truy xut mc nh cho cc file v th
mc mi to i vi mi ngi dng. umask l mt mt n gm mt b cc s h
bt phn. Khi , quyn truy xut mc nh ca cc file v th mc i vi mi
ngi dng c tnh theo cng thc sau:
48
Ti liu o to Linux c bn
H THNG FILE TRONG LINUX
Thc hnh
Filesystem
1. Xa phn vng c nh x vo /data ca bi trc, to ra 2 phn vng mi c
kiu nh dng ca h thng file l ext2 v reiserfs.
2. To 2 th mc con trong /mnt v nh x hai phn vng mi vo.
mkdir /mnt/ext2
mkdir /mnt/reiserfs
3. S dng cc lnh mount, df, fsck kim tra i vi 2 phn vng mi to.
4. Chuyn i t ext2 sang ext3 bng lnh tune2fs
File permissions
1. Login bng 1 ngi dng khng phi root v to 1 file mi bng lnh touch. Kim
tra xem quyn truy xut ca file ny l g?
2. Thay i umask thnh 027. Quyn truy xut mc nh s l g?
3. Ni no s thit lp gi tr mc nh ca umask? /etc/profile, /etc/bashrc
4. Thm 2 ngi dng mi user1, user2 vi passwword tng ng. To nhm mi
sales. V thm 2 ngi dng mi to vo nhm ny.
5. To th mc /news s hu bi nhm sales v c quyn 770 cho th mc ny. Sau
t GID cho th mc ny.
6. Kim tra cc tnh cht ca GID vi user1 v user2.
7. Thm Sticky-Bit cho th mc /news. Kim tra tnh cht ca bit ny.
49
Ti liu o to Linux c bn
DNG LNH
DNG LNH
Khi qut
S dng dng lnh l cch c bn tng tc vi h thng my tnh. B bin dch
shell (h v) thng dch cc lnh c nhp vo t bn phm. Du nhc shell ($ hoc
# i vi ngi qun tr h thng) cho bit h thng sn sng hot ng.
Shell cn l mt mi trng lp trnh cho php thc hin cc lnh khi ng.
Chng trnh shell c gi l script (kch bn).
Do bash shell l mt trong nhng shell thng dng nht trong cng dng linux, v
th LPI (Linux Professional Institute) tp trung ch yu vo bash shell.
Tng tc vi SHELL
Cc cu lnh thc hin trn shell c dng sau:
ng dn tuyt i/tng i
50
Ti liu o to Linux c bn
DNG LNH
Shell thng dch t u tin ca bt k dng lnh no nh l mt cu lnh. Nu dng
lnh c mt ng dn tuyt i hoc tng i n cu lnh th cu lnh s c
thc thi. Nu t u tin khng c k t / th shell s tm kim cc th mc
c khai bo trong ni dung bin mi trng PATH v thc hin chng trnh c
tn trng vi cu lnh.
V d nu tham bin PATH ch cha cc th mc /bin v /usr/bin th cu lnh xeyes
s khng c tm thy khi m n nm trong /usr/X11R6/bin/xeyes v v th ng
dn tuyt i l cn thit cho cu lnh ny c thc thi.
/usr/X11R6/bin/xeyes
$Variable-Name
CREDIT=300
echo $CREDIT
51
Ti liu o to Linux c bn
DNG LNH
C hai loi bin: bin cc b v bin xut (c th gi l bin ton cc a phng,
thc t khi nim ny khng th ng ngha vi khi nim bin ton cc trong cc
ngn ng lp trnh. Tuy vy cho ngn gn, tt c cc th hin bin ton cc xut
hin trong ti liu ny u c ngha nh bin xut).
Bin cc b ch c truy cp bi shell hin thi. Trong khi bin xut s c
truy cp bi c shell v bt k tin trnh con ca shell ny.
Cc lnh set v env dng hin th cc bin d c nh ngha
Cc lnh set v env
set
Hin th tt c cc bin
env
V d: To bin CREDIT l bin ton cc. Hin th n vi lnh set hoc env.
export CREDIT
env | grep CREDIT
Khi to mt shell mi (tin trnh con) v kim tra xem bin CREDIT c c truy
cp n khng? Chng ta c th khi to bt k shell mi v xem bin CREDIT c
c truy cp n khng?
52
Ti liu o to Linux c bn
DNG LNH
Cc bin c
nh ngha trc
ngha
DISPLAY
HISTFILE
HOME
LOGNAME
PATH
PWD
SHELL
TERM
Cc bin c bit
Mt s bin lin quan n vic qun l tin trnh
$!
53
Ti liu o to Linux c bn
DNG LNH
stdout
stderr
i hng stdout
program > file
D liu theo hng t tri sang phi
54
Ti liu o to Linux c bn
DNG LNH
i hng stdin
program < file
Trong trng hp ny d liu theo hng t phi sang tri. Ton t < ch c s
dng cho stdin v khng th dng cho stdout.
Nu file instruction cha trn mi dng cc k t p, m, v q th trong v d sau y
fdisk s in bng phn vng (partition) ca /dev/hda, in tin ch tr gip, v cui
cng l thot khi cu lnh.
i hng stderr
program 2> errorfile
stdin, stdout, v stderr c di din bng 0, 1, v 2 tng ng. Cu lnh trn cho
php chng ta chn lung stderr.
55
Ti liu o to Linux c bn
DNG LNH
Cc lnh ng ng
Program1| Program2
Cc ng ng (pipe) c di din bng k hiu |. Dng d liu chuyn t tri
sang phi. Hnh sau y minh ha stdout ca mt tin trnh c chuyn hng n
stdin ca mt tin trnh khc nh th no.
Cc chuyn hng ca d liu xut c phn tch t phi sang tri, do cc lnh
sau l khng tng ng
56
Ti liu o to Linux c bn
DNG LNH
Do-command 2>&1 >logfile
Do-command >logfile 2>&1
Cc k t i din (wildcard)
K t * c th i din cho 0 hoc mt s k t tu
ls /usr/bin/b*
K t ? i din cho mt k t tu
ls usr/bin/?b*
Cc min (range)
[] c dng nh ngha mt min cc gi tr
ls a[0-9]
ls [!Aa]*
57
Ti liu o to Linux c bn
DNG LNH
{xu1,xu2} mc d chng khng c dng i din mt h tn file nhng
chng c th s dng i snh vi tn nhng file c.
ls index.{htm,html}
Du nhy
Du nhy ny ging du huyn ca Ting Vit v thng c t cnh s 1 ca
bn phm y .
Cp du nhy (``) s thc hin cu lnh nm bn trong. V d sau y s nh ngha
bin TIME s dng lnh date
58
Ti liu o to Linux c bn
DNG LNH
Mt cch khc thc hin cu lnh ging nh s dng cc du nhy l $(). V
d di y s thc hin cu lnh bn trong v gn gi tr tr v vo bin TIME.
TIME=$(date)
history
1.
ls
2.
Ln trn 1 dng
Ctrl+n
Xung di 1 dng
Ctrl+b
Ctrl+f
Ctrl+a
V cui dng
Ctrl+e
V u dng
59
Ti liu o to Linux c bn
DNG LNH
!2
!-2
!!
^string1^string2
Mt s lnh khc
B danh
Chng ta c th to cc b danh cho cc lnh s dng nhiu tham s. Cch thc
to mt b danh l nh sau
S kt thc cu lnh
Bng cch n phm TAB, shell s kt thc cu lnh m chng ta ang g vo
Bng cch ch g alias ti mt dng lnh, chng ta s c danh sch ca cc b danh
c nh ngha
<<l s i hng cho kt thc file (EOF)
V d cu lnh
cat << stop
60
Ti liu o to Linux c bn
DNG LNH
Thc hnh
Stdin-stdout-stderr
G cc cu lnh sau y v a ra cc kt qu thc thi (nu c th) s dng cc s
ging nh nhng s c dng trong chng ny
Dng lnh
1. Hin th tt c cc file trong /usr/X11R6/bin m khng bt u vi k t 'x'
ls /usr/X11R6/bin/[!x]*
thit lp mu nn
-fg <mu>
thit lp mu ch
61
Ti liu o to Linux c bn
DNG LNH
62
Ti liu o to Linux c bn
DNG LNH
Khi to gi tr 'virus' cho bin ALERT
ALERT=virus
Kim chng xem bin ALERT c khi to cha bng lnh set?
set |grep ALERT
(v) Khi to mt bash shell mi v chc chn rng ALERT c nh ngha trong
shell mi
bash
echo $ALERT
Thot khi shell ny. Gi tr ca bin ALERT trong shell ban u s l bao
nhiu?
63
Ti liu o to Linux c bn
DNG LNH
2. Ti li nhc cu lnh g cc dng sau:
CREDIT01=300;CREDIT02=400
for VAR in CREDIT01 CREDIT02; do echo $VAR;done
64
Ti liu o to Linux c bn
QUN L FILE
QUN L FILE
Di chuyn quanh h thng file
Cc ng dn tuyt i v tng i
Mt th mc hoc mt file c th truy cp bng ng dn tuyt i bt u t th
mc gc (/) hoc ng dn tng i bt u t th mc hin thi.
ng dn tuyt i: c lp vi th mc hin thi ca ngi dng v bt u vi /
ng dn tng i: ph thuc vo th mc hin thi ca ngi dng v khng
bt u vi /
i vi mt h thng file c cu trc bt k, c mt s tin ch gip chng ta c th
duyt ton b h thng
pwd: a ra ng dn tuyt i v v tr ca bn trong h thng
cd: thay i th mc
Tm kim file v th mc
Chng ta s tm hiu cc tin ch find, which, whereis v locate
find
C php:
find <DIRECTORY> <CRITERIA> [-exec <COMMAND> {} \; ]
V d
65
Ti liu o to Linux c bn
QUN L FILE
xargs
Tin ch ny ny thng xem nh l mt cng c i km vi find. Thc t xargs s
x l mi dng ca kt qu xut chun nh mt tham bin cho mt tin ch khc.
Chng ta c th dng xargs xo tt c cc file thuc v mt ngi dng bng
lnh sau
66
Ti liu o to Linux c bn
QUN L FILE
locate
C php:
locate <STRING>
locate X11R
which
C php:
which string
whereis
67
Ti liu o to Linux c bn
QUN L FILE
C php
whereis string
Lm vic vi th mc
To th mc vi lnh mkdir
Khi to mt th mc chng ta c th thit lp quyn truy nhp vi la chn -m. Mt
la chn c ch khc l -p s t ng to tt c cc th mc con khi cn.
V d:
mkdir p docs/programs/versions
Xo cc th mc
xo mt th mc chng ta c th s dng lnh rmdir hoc rm. Nu bn ang
th mc gc bn c th dung la chon -f xo tt c cc file.
68
Ti liu o to Linux c bn
QUN L FILE
Ch :
rm -rf /dir1/*
l th mc trng
rm -rf /dir1/
dir1
S dng cp v mv
cp
C php
cp [options] file1 file2
cp [options] file1 directory
Hnh minh ho: file1 vi inode 250 s c copy sang file 2, sao y d liu n mt
vng d liu mi v tao inode mi 6238 cho file2.
69
Ti liu o to Linux c bn
QUN L FILE
Ch :
tr mydir
cp -r /mydir/ /dir2/ s copy tt c cc file v th mc con bao
gm c mydir
mv
C php:
mv [options] oldname newname
mv [options] source destination
mv [options] source directory
70
Ti liu o to Linux c bn
QUN L FILE
ln
s lilo.conf lilo.sys
y l danh sch nhng file ca cu lnh trn. Ch rng gi tr tham chiu l 1 cho
c 2 file.
Cc lin kt tt cng
Mt lin kt tt cng l mt tn c to thm cho cng mt inode v gi tr tham
chiu ca file s c tng thm 1 cho mi lin kt tt cng mi
ln
lilo.conf lilo.link
71
Ti liu o to Linux c bn
QUN L FILE
Trong bng i y ch rng gi tr tham chiu l 2 v c 2 file c cng kch
thc. Thc t chng hon ton ging nhau.
Touching v dd-ing
touch
Mt cch khc to hoc thay i mt file la s dung touch
C php:
touch {options} file(s)
to cc file mi
gian ca lilo.conf
dd
72
Ti liu o to Linux c bn
QUN L FILE
Lnh ny s copy 1 file vi kch thc khi I/O c th thay i. Lnh ny cng c
dng thc hin cc qu trnh chuyn i (ging nh tr). Cc la chn chnh l if=
(file nhp), of=(file xut), v conv=(chuyn i)
Cc kho chuyn i c th l: lcase, ucase, v ascii
V d
dd if=/mnt/cdrom/images/boot.img of=/dev/fd0
Thc hnh
iu hng file
To mt th mc mi /bin trong /tmp
mkdir /tmp/bin
To v xo cc th mc
Cch no l nhanh nht to cc th mc /dir1/dir2?
Xo cc th mc ny vi rmdir sau vi rm
73
Ti liu o to Linux c bn
QUN L FILE
74
Ti liu o to Linux c bn
QUN L TIN TRNH
75
Ti liu o to Linux c bn
QUN L TIN TRNH
Trong hnh trn tt c cc m tin trnh (PID) u c nhn thy; gi tr ca chng
c tng dn. La chn thng dng nht ca lnh ny l -p s hin th cc PID v h s lm ni r cc tin trnh ca ngi dng.
ps T
ps aux
76
Ti liu o to Linux c bn
QUN L TIN TRNH
kill
c php
kill SIGNAL process_PID
Mi tin trnh c th la chn nhn hay khng nhn mt tn hiu ngoi tr SIGKILL
s c thc hin bng nhn h thng. Cc daemon s hiu SIGUP c ngha l "c
li file cu hnh"
Chng ta c th s dng lnh killall dng cc tin trinh m khng cn bit PID
Copyright ISE, 2006
77
Ti liu o to Linux c bn
QUN L TIN TRNH
killall
C php
killall SIGNAL process_NAME
78
Ti liu o to Linux c bn
QUN L TIN TRNH
Ch c ngi qun tr h thng c th gim gi tr NI ca mt tin trnh. T khi tt
c cc tin trnh bt u vi gi tr NI mc nh l 0, ch c ngi qun tr h thng
c th thit lp gi tr m cho cc gi tr NI.
S dng lnh renice thay i mc u tin ca mt tin trnh. Dng lnh nice
thit lp mc u tin ca mt tin trnh.
C php
Nice -<NI> <process>
renice <+/-NI> -p <PID>
renice +1
-p
234 765
79
Ti liu o to Linux c bn
QUN L TIN TRNH
nide
--5 xclock
Khi mt chng trnh ang chy trong ch nn trc, du nhc shell c th khi
phc trong chc lt bng cch ngt chng trnh . Tn hiu ngt l Ctrl Z.
80
Ti liu o to Linux c bn
QUN L TIN TRNH
[mike localhost /bin]$bg
Job number
Chng ta c th dng v bt u la chn cc cng vic mt cch thun tin bng
cch s dng job number. Vic la chn ny c thc hin cng vi lnh fg
kill -9 %1
fg %2 hoc
fg %?xma
81
Ti liu o to Linux c bn
QUN L TIN TRNH
nohup l mt chng trnh c vai tr nh mt tin trnh cha c lp vi phin ngi
dng. Khi mt ngi dng thot khi h thng, th h thng s gi HUP n tt c
cc tin trnh nm trong nhm tin trnh ca ngi dng. V d, trnh tn hiu
HUP, mt chng trnh gi l bigbang s c gng tnh thi gian xut hin ca cc
tin trnh
82
Ti liu o to Linux c bn
QUN L TIN TRNH
Thc hnh
Bn nn chy X trc khi bt u cc bi thc hnh sau
1. Kim tra gi tr nice value (NI) hin thi ca x-terminal ang chy. Thay i gi
tr ny bng ln top hoc renice
2. Tn hiu tng ng ca ^Z gi n mt tin trnh l g? (Hin th tt c cc tn
hiu vi kill -l)
3. Tn hiu no c nh ngha li cho phn ln cc daemon v yu cu c li file
cu hnh?
4. Tn hiu mc dnh gi n mt tin trnh l g khi s dng kill hoc killall?
5. Tn hiu no c trc tip x l bng nhn h thng (kernel) v khng th nh
ngha li?
6. Trc ht bn hy ng nhp vo thit b u cui o (tty1 to tty6). Chng ta s
thc hin mt script cho php tip tc chy khi chng ta thot ra khi h thng dng
tin trnh cha nohup
Trong th mc /tmp to mt file gi l print-out vi ni dung sau y
#!/bin/bash
count=0
while (true) do
echo this is iteration number $count
let count+=1
done
83
Ti liu o to Linux c bn
QUN L TIN TRNH
Chng ta c th khng nhn thy dng lnh khi g exit nhng cu lnh ny s
lm bn thot ra khi h thng. Khi bn ng nhp li hy kim tra print-out
c dng
84
Ti liu o to Linux c bn
X L VN BN
X L VN BN
cat the Swiss Army Knife
Dng cat son vn bn
Tin ch cat c th dng nh mt chng trnh son tho n gin
Dng cat c vn bn
Thng thng hn cat c dng a vn bn ra stdout. Cc la chn thng
c dng l
-n
nh s mi dng ca output
-b
-A
V d
85
Ti liu o to Linux c bn
X L VN BN
Cc cng c n gin
S dng head hoc tail
Cc tin ch head hoc tail thng c dng phn tich cc logfile. Chng s xut
a ra mc nh 10 dng vn bn. Sau y l cch dng
86
Ti liu o to Linux c bn
X L VN BN
m s dng, s t v byte
Tin ich wc s m s lng cc byte, cc t, v cc dng trong file. Mt vi la
chn cho php chng ta thay i gi tr output ca wc
Cc la chn cho wc
-l
m s dng
-w
m s cc k t hoc t
Lu :
Nu khng c tham bin, wc s m da trn ni dung c g vo stdin
nh s cc dng
Tin ch nl c tc dng ging nh cat -b
Copyright ISE, 2006
87
Ti liu o to Linux c bn
X L VN BN
nh s tt c cc dng gm c cc dng trng
X l vn bn
Cc cng c sau y thay i b tr vn bn
La chn cc trng (field) v cc k t vi cut
Tin ch cut c th ly ra mt vng cc k t hoc cc trng t mi dng ca vn
bn.
La chn -c c dng x l k t.
C php:
88
Ti liu o to Linux c bn
X L VN BN
V d:
C php:
V d:
Kt ni v dn vn bn
Tin ch n gin nht l paste s ghp hai file bn cnh nhau
C php
Copyright ISE, 2006
89
Ti liu o to Linux c bn
X L VN BN
C php
Sp xp output
Lnh sort s sp xp mc nh mt vn bn theo th t abc. La chn -n s thc hin
vic sp xp theo th t s.
nh dng output
Chng ta c th thay i s lng cc k t trong mi dng ca output bng lnh
fmt. Mc nh fmt s lin kt cc dng v a ra 75 k t cho mi dng
Cc la chn fmt
-w
-s
-u
90
Ti liu o to Linux c bn
X L VN BN
91
Ti liu o to Linux c bn
X L VN BN
Thay th cc k t
Tin ch tr s thay th mt tp hp cc k t bng tp h k t khc.
[AB] [ab]
<file.txt
92
Ti liu o to Linux c bn
X L VN BN
Thc hnh
1. S dng cat g vn bn sau vo mt file c tn l message
cat >> message
line 1
^D
Thc hin tng t nhng dng t kho STOP thay th iu khin kt thc file (^D)
cat >> message << STOP
line 2
STOP
93
Ti liu o to Linux c bn
X L VN BN
Thc hin tng t dng lnh cut
To 50 file trong th mc ny
# ! /bin/bash
count=0
while [ $count -lt 50 ] do
touch /tmp/files/$count.txt
let count+=1
done
Cc bn s g cc dng lnh sau thay i cc file c phn m rng txt sang dat
94
Ti liu o to Linux c bn
CI T PHN MM
CI T PHN MM
Gii thiu
Hy bt u cng vi mt on m ngun ngn. V d ny s gip gip chng ta tm
hiu vn m khng cn c kin thc su v ngn ng lp trnh C
Tp main.c:
#include<stdlib.h>
int main(){
Hello();
}
Tp Hello.c:
#include<stdio.h>
void Hello(){
printf(Hi ! \n);
}
95
Ti liu o to Linux c bn
CI T PHN MM
Cu lnh trn s to ra 2 tp main.o v Hello.o c s dng xy dng cc ng
dng app.
Dch app
La chn o xc nh tn ca m ngun c dch. Nu khng c tn tp no
c ch ra tp dch s c t tn mc nh a.out
Tt c cc bc trn c th c chy t ng bng cch s dng a Makefile. Di
y l mt v d nh dng Makefile to ng dng app
Makefile
SHELL = /bin/sh
CC = /usr/bin/gcc
app: main.o Hello.o
$(CC) o app main.o Hello.o
main.o: main.c
$(CC) c main.c
Hello.o Hello.c
$(CC) c Hello.c
96
Ti liu o to Linux c bn
CI T PHN MM
Dng lnh trn s to tp chy a.out cng tp i tng Hello.o c link tnh ti
n.
Th vin tnh
Cc th vin tnh c lu tr trong file .o. Cc lu tr c to ra bi cng c ar
v c phn m rng .a.
Hnh 2: thm mt file i tng vo phn lu tr
to file i tng
97
Ti liu o to Linux c bn
CI T PHN MM
Hnh 4: Dch chng trnh vi th vin chia s:
Dng lnh trn s to file chy a.out. Tuy nhin nu bn th chy file ny my tnh
s thng bo li di y.
while
loading
open shared object
shared
file: No
libraries:
such file or
98
Ti liu o to Linux c bn
CI T PHN MM
S dng cng c ldd xem Th vin chia s no mt file chy cn trong thi gian
thc thi.
V d:
ldd a.out
libfoo.so.1.0 => not found
libc.so.6 => /lib.libc.so.6 (0x40028000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
99
Ti liu o to Linux c bn
CI T PHN MM
1. Nu tp nh phn cn ch tm thi, kim tra nh ngha bin
LD_LIBRARY_PATH nh sau:
Ci t ngun
100
Ti liu o to Linux c bn
CI T PHN MM
t tn package
Rpm c t tn theo cch sau
name-version-release.architecture.rpm
Ch (mode) chnh
Tt
M t
-i
- install
Ci t gi
101
Ti liu o to Linux c bn
CI T PHN MM
-U
-update
Cp nht hoc ci t gi
-F
--freshen
-V
--verify
-q
--query
Yu cu gi cc gi v cc file ci t/ g
b
-e
--erase
G b gi
Ch th cp
Tt
M t
p dng cho tt c cc gi ci t
verbose
102
Ti liu o to Linux c bn
CI T PHN MM
or
rpm ql routed
Tu chn
Package File
-qp
Installed Package
-q
File
-qf
Cc Tu chn c bit
103
Ti liu o to Linux c bn
CI T PHN MM
--nodeps
--force
--test
-requires
ch ra cc yu cu ca gi
( tn-phin_bn-ngy_xut-bn.src.rpm)
Cch 1:
Ci t package ngun RPM vi:
rpm ivh name-version-release.src.rpm
104
Ti liu o to Linux c bn
CI T PHN MM
Trong th mc /usr/src/redhat/SPECS c mt file vi tn name.spec (trong
name l tn ca package). bt u xy dng package dch, tn name-versionrelease.i386.rpm, g trong ca s lnh:
rpm ba name.spec
Cch 2:
Cch ny cng tng t nh cch th 1 nhng bt u vi lnh n sau y:
rpm --rebuid name-version-release.src.rpm
Cch 3:
Trong mt vi trng hp nh pht trin s phn phi tarball cng vi nhau trong
mt file spec. Nu tarball c gi tn name-version-release.tar.qz bn c th
tm mt file .spec vi lnh sau:
tar tzvf name-version-release.tar.gz | grep .spec
105
Ti liu o to Linux c bn
CI T PHN MM
rpm --bt name-version-release.tar.gz
Cng c Alien
Cng c ny s chuyn i packages Debian sang Redhat v ngc li. Bn c th
ti xung ti: http://kitenet.net/programs/
106
Ti liu o to Linux c bn
CI T PHN MM
Thc hnh
Trong cc v d sau ti mt file RPM ngun ( vd. bash-2.05-8.src.rpm vi Redhat
7.2) t www.rpmfind.net
1. Ci t tarball
Bung cc thnh phn ca gi RPM m khng dch bt c file no:
rpm ivh bash-2.05-8.src.rpm
T /usr/src/redhat/SOURCES/bash-2.05-8
patch p1 b <file.patch
107
Ti liu o to Linux c bn
CI T PHN MM
o G b(uninstall) package
108
Ti liu o to Linux c bn
THAO TC VI VN BN NNG CAO
Tm kim tn ng
Cc t bt u bng KEY
WORD\>
Cc t kt thc bn WORD
Bt u ca mt dng
Kt thc mt dng
[ Range]
[^c]
Khng phi k t c
\[
Dich k t [ theo gc
cat*
Tm kim cc k t n
109
Ti liu o to Linux c bn
THAO TC VI VN BN NNG CAO
Tm kim tng ng
A1|A2|A3
cat+
cat?
H grep
Tnh nng grep h tr biu thc chnh quy regex nh m t bng1.
egrep
Cng c egrep h tr biu thc chnh quy m rng eregex nh m t trong bng2.
fgrep
fgrep biu din cho grep nhanh v fgrep dch chui gc ( khng c h tr ca regex
hoc eregex)
Lm vic vi grep
C php ca grep:
grep PATTERN FILE
Grep
Main Options
-c
-f
Tm PATTERN t file
-i
110
Ti liu o to Linux c bn
THAO TC VI VN BN NNG CAO
-n
ch ra s dng ca file
-v
-w
grep v ^$ /etc/lilo.conf
egrep v fgrrep
Tin ch fgrep khng nhn bit c ng ngha c bit ca mt biu thc chnh
quy. V d
Tin ch egrep s thc hin vi mi biu thc chnh quy mi. N cng c th tm
kim mt vi t kho nu chng c bt u vi dng lnh c chia bi pipes. V
d:
111
Ti liu o to Linux c bn
THAO TC VI VN BN NNG CAO
Xo tt c cc dng ch thch :
sed
s/\/dev\/hda1/\/dev\/sdb3/g
MODIF
K t s trong dng lnh biu din cho substitute. K t g biu din cho globally
v p substitution trn mi dng
Nu dng cha ng t kho KEY th thay th : vi ;
112
Ti liu o to Linux c bn
THAO TC VI VN BN NNG CAO
sed
/KEY/ s/:/;/g
MODIF
sed
sed
1 s/old/new
/keyword/ s/old/new/g
23,25 d
-f
COMMANDS MODIF
113
Ti liu o to Linux c bn
THAO TC VI VN BN NNG CAO
Tu chn ca lnh
d Xo mt dng
r c mt file v xut ra file output
s Thay th
w Ghi kt qu ra vo mt file
114
Ti liu o to Linux c bn
THAO TC VI VN BN NNG CAO
Thc hnh
1. To mt file mi c tn FILE vi ni dung sau:
Using grep,
fgrep and
egrep
to grep for 99% of the cats
% these are two
% commented lines
S dng grep xut ra ch nhng dng lnh khng phi l dng ch thch
Tm kim cc dng cha ng cc t bt u vi a
2. Biu thc chnh quy. Thm cc dng sau vo file trn:
ca
cat
cats
catss
cat+
cat*
cat?
car
carriage
Xem kt qu ca cc lnh sau khi s dng grep, egrep v fgrep:
grep cat+ FILE
grep cat? FILE
grep cat. FILE
grep cat* FILE
115
Ti liu o to Linux c bn
THAO TC VI VN BN NNG CAO
116
Ti liu o to Linux c bn
S DNG TRNH SON THO VI
Cc ch Vi
thc hin cc thao tc phc tp nh l copy/paste, trnh son tho vi c th thc
hin bng nhiu ch khc nhau
Ch dng lnh (Command Mode)
y l ch son tho v nh du thng s dng mt ch ci. V d dng
ch ci j nhy xung dng tip theo
Nh l qui tc ngn tay ci (rule of thumb), nu bn mun thc hin mt thao
tc nhiu ln, bn c th in s ln thc hin trc khi g cu lnh. V d:
dng lnh 10j nhy n 10 dng tip theo.
Ch dng (hoc ct) cui cng
Bn c th s dng ch ny mn hnh dng lnh (command line mode)
bng cch nh du hai chm. Ct s hin th gc bn tri cui cng ca
mn hnh. Trong ch ny, bn c th thc hin cc thao tc n gin nh
tm kim, ghi d liu, thot hoc chy mt cu lnh shell.
Ch chn
Cnh n gin nht thc hin ch ny trong mn hnh dng lnh
(command Mode) l dng ch ci i hoc a. y l ch trc quan nht v
thng c s dng chn vn bn vo mt ti liu.
Phm Esc s thot ch chn v quay tr v mn hnh dng lnh
117
Ti liu o to Linux c bn
S DNG TRNH SON THO VI
Cc mc vn bn
Cc mc vn bn nh l t (words) hoc on vn bn (paragraph) c inh ngha
trong ch dng lnh (command mode) cho php son tho cc lnh s dng trong
cc ti liu vn bn m khng cn dng n thit b chut.
T, cu v on (Words, sentences and paragraphs)
e reps. b
( reps. )
{ reps. }
u dng
Cui dng
1G
u tp
Cui tp
Chn vn bn
Trong ch dng lnh, i cho php bn chn thm vn bn vo ti liu. Cc c tnh
khc ca trnh son tho vi cng c thc hin tng t nh vy. Bng sau y s
lit k ton b cc c tnh chn vn bn ca vi.
Cc cu lnh chn
a
118
Ti liu o to Linux c bn
S DNG TRNH SON THO VI
A
Chn vn bn vo dng mi
Xo vn bn
Nu bn mun xo mt k t n trong ch dng lnh th dng x v xo dng
hin ti th dng dd.
Ch : Gn nh tt c cc cu ln trong vi c th c lp li bng cch g thm s
ln lp li pha trc. Bn cng c th cch ny i vi cc mc vn bn (nh t,
cu, on vn bn, ...) bng cch thay th thc th (entity) sau cu lnh.
Bng 4: Cc t v k t
w
Ch n
K t n
V d:
Xo mt t
dw
Xo vn bn t v tr con tr n cui dng hin ti
d$
Xo vn bn t v tr con tr n cui on hin ti
d}
119
Ti liu o to Linux c bn
S DNG TRNH SON THO VI
Bn c th xo cng lc mt mc vn bn ng thi chuyn sang ch chn vi
lnh c. Nh thng l bn c th s dng cu lnh ny vi mt mc vn bn nh w
hoc {.
Copy / Paste
Thao tc copy trong vi l cu lnh y (thay cho yank), v thao tc chn l p.
V d:
Sao chp vn bn t v tr hin ti n cui dng hin thi
y$
120
Ti liu o to Linux c bn
S DNG TRNH SON THO VI
Tm kim
Do vic tm kim i hi phi khp theo mu do mt ln na chng ta li cp
n cc biu thc chnh qui (regular expressions regex). Nh mt s cng c thao
tc vi vn bn ca UNIX nh grep hoc sed, vi cng tun th cc biu thc chnh
qui ny.
thc hin tm kim, u tin phi chuyn v ch du hai chm. Cu lnh / s
tm kim t v tr hin ti xung cui v cu lnh ? s tm kim theo hng ngc
li.
c th thc hin thao tc tm kim v thay th. C php tng t nh i vi sed.
V d:
Tm dng bt u t ch ci z
/^z
Lm li (Undo)
Chng ta lun c th hu b cc thao tc va thc hin (trong ch dng lnh) vi
cu lnh u, v c th s dng i vi tp khi cha thao tc ghi cha c thc hin.
121
Ti liu o to Linux c bn
S DNG TRNH SON THO VI
Ghi vn bn
Cu lnh ghi d liu l w. Bng cch ny ti liu s mc nh c ghi li. Ngi
dng cng c th xc nh tn cho tp cn ghi. Tng on (portion) vn bn c th
c ghi li sang tp bn bn khc trong khi cc tp vn bn khc ang c c
hoc chn ti ti liu hin thi. V d sau s th hin iu ny.
V d:
Ghi ti liu hin ti ra tp c tn l newfile
:w newfile
l cui ti liu
122
Ti liu o to Linux c bn
S DNG TRNH SON THO VI
Thc hnh
Ti root cp /var/log/messages to /tmp. S dng chc nng tm kim v thay th ca
vi to ra tt c cc dng bt u vi and end with;
G u hu b tt c cc thay i.
Copy /etc/lilo.conf ti /tmp, son tho tp ny v th copy/paste yy/p v cut/paste
vi dd/p
Kim tra kt qu ca :x, ZZ, :quit, :wq, v :q! (cu lnh no s ghi d liu v cu
lnh no khng)
Kim tra th kt qu sau khi s dng mt s ch chn vn bn nh: A, a, O, o, S
v s
La chn: Nu bn ci t gi vim-enhanced th chng trnh vimtutor s cho thy
mt s la chn thng dng ca vi.
123