Professional Documents
Culture Documents
Tài Liệu UNIX Tiếng Việt
Tài Liệu UNIX Tiếng Việt
jsp
Copyright vietjack.com
Bi hng dn v Unix/Linux
Unix l mt h iu hnh my tnh m c kh nng thc hin nhiu hot ng bi nhiu ngi
trong cng mt thi gian.
Unix c ra i nm 1969 bi Ken Thompson v Dennis Ritche ti phng th nghim AT&T Bell
Labs. Phn hng dn ny cung cp cc kin thc v Unix.
Lot bi hng dn ca chng ti da trn ngun ti liu ca: Tutorialspoint
i vi c gi
Phn hng dn ny c chun b cho ngi mi bt u hc v Unix, t gip h hiu c
cc kin thc c bn v cc lnh, Shell Scripts v cc tin ch khc ca Unix.
iu kin tin
Chng ti gi s rng bn c mt cht kin thc v H iu hnh v cc chc nng ca n. Mt
kin thc c bn v cc khi nim my tnh s cng gip bn trong vic hiu cc bi thc hnh a
dng trong phn hng dn ny.
Page 1
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
C rt nhiu phin bn Unix khc nhau trn th trng. Solaris Unix, AIX, HP Unix v BSD
l mt s v d. Linux cng l mt phin bn ca Unix m l min ph.
Cu trc Unix/Linux:
S di l cu trc ca mt h thng Unix:
Page 2
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
chun cho tt c cc lnh. C Shell, Bourne Shell v Korn Shell l nhng shell c bit n
nhiu nht v c sn trong hu ht cc phin bn Unix.
ng nhp Unix/Linux
Khi bn ln u kt ni vi mt h thng Unix, bn thng nhn thy mt dng nhc nh sau:
login:
Page 3
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
successfully
Page 4
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
2 amrood amrood
-rw-rw-r--
1 amrood amrood
drwxr-xr-x
2 amrood amrood
4096 Feb 15
2006 univ
drwxr-xr-x
2 root
root
4096 Dec
2007 urlspedia
-rw-r--r--
1 root
root
276480 Dec
2007 urlspedia.tar
drwxr-xr-x
8 root
root
4096 Nov 25
2007 usr
-rwxr-xr-x
1 root
root
3192 Nov 25
2007 webthumb.php
-rw-rw-r--
1 amrood amrood
20480 Nov 25
2007 webthumb.tar
-rw-rw-r--
1 amrood amrood
5654 Aug
2007 yourfile.mid
-rw-rw-r--
1 amrood amrood
166255 Aug
2007 yourfile.swf
Bn l ai trong Unix/Linux?
Trong khi bn ng nhp vo h thng, bn c th sn lng bit : Who am I?
Cch n gin nht l tm kim bn l ai l nhp lnh whoami :
Page 5
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
$ whoami
amrood
$ who
amrood ttyp0 Oct 8 14:10 (limbo)
bablu
qadir
Page 6
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
Cch ph hp nht ng h thng Unix l thng qua s dng mt trong cc lnh sau:
Lnh
Miu t
halt
init 0
init 6
bt u li nh lc trc khi ng
poweroff
ng h thng ch poweroff
reboot
Khi ng li h thng
shutdown
ng h thng
Bn phi l ngi s dng chnh c th c quyn ng h thng, nhng i khi ngi i din
cng c th thc hin iu ny.
Page 7
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
Di y l v d v kt qu ca lnh trn.
$ls
bin
hosts
lib
res.03
ch07
hw1
pub
test_results
ch07.bak
hw2
res.01
users
docs
hw3
res.02
work
drwxrwxr-x
2 amrood amrood
-rw-rw-r--
1 amrood amrood
drwxr-xr-x
2 amrood amrood
4096 Feb 15
2006 univ
drwxr-xr-x
2 root
root
4096 Dec
2007 urlspedia
-rw-r--r--
1 root
root
276480 Dec
2007 urlspedia.tar
drwxr-xr-x
8 root
root
drwxr-xr-x
-rwxr-xr-x
1 root
-rw-rw-r--
1 amrood amrood
200
300
root
4096 Nov 25
2007 usr
4096 Nov 25
2007 webthumb-1.01
3192 Nov 25
2007 webthumb.php
20480 Nov 25
2007 webthumb.tar
Page 8
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
-rw-rw-r--
1 amrood amrood
5654 Aug
2007 yourfile.mid
-rw-rw-r--
1 amrood amrood
166255 Aug
2007 yourfile.swf
4096 May 29
2007 zlib-1.2.3
Tin t
Miu t
File thng chng hn nh mt file vn bn ASCII, nh phn hoc ng link
cng.
Nhm file c bit. nhm file thit b u vo/u ra v d nh mt a cng
vt l.
File k t c bit. File thit b u vo/u ra th v d nh mt a cng vt
l.
File th mc m cha mt danh sch cc file v th mc khc.
Page 9
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
ch010.doc
ch02.doc
ch03-2.doc
ch04-1.doc
ch040.doc
ch05.doc
ch06-2.doc
ch01-2.doc ch02-1.doc c
Page 10
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
lit k cc file nhn khng nhn thy (b n), xc nh ty chn -a cho lnh ls:
$ ls -a
.profile
docs
lib
test_results
..
.rhosts
hosts
pub
users
.emacs
bin
hw1
res.01
work
.exrc
ch07
hw2
res.02
.kshrc
ch07.bak
hw3
res.03
Page 11
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
Bn c th chnh sa cc file hin ti bng cch s dng b son vi. Chng ta s i vo chi tit
tng phn trong mt chng hng dn c th. Nhng rt gn y, bn c th m mt file ang
tn ti nh sau:
$ vi filename
Bn c th hin th s lng dng bng cch s dng ty chn -b cng vi lnh cat nh sau:
$ cat -b filename
1
Page 12
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
19 103 filename
t li tn file
http://vietjack.com/ Trang chia s cc bi hc online min ph
Page 13
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
Lnh mv s di chuyn tt c file ang tn ti vo trong file mi. V th trong tnh hung ny bn s
ch tm thy mt newfile duy nht trong th mc hin ti.
Xa file
xa mt file ang tn ti, bn s dng lnh rm. C php n gin ca n l:
$ rm filename
Page 14
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
Page 15
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
Page 16
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
X11
bin
gimp
jikes
sbin
ace
doc
include
lib
share
atalk
etc
info
man
ami
To cc th mc trong Unix/Linux
Cc th mc c to ra bng lnh sau:
$mkdir dirname
Page 17
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
D b cc th mc trong Unix/Linux
Cc th mc c th c xa bng cch s dng lnh rmdir nh sau:
$rmdir dirname
$
Ghi ch: d b mt th mc, bn nn chc chn n khng cn cha d liu quan trng no,
ngha l khng c bt k file hoc th mc ph bn trong th mc ny.
Bn c th d b nhiu th mc ti cng thi im nh sau:
$rmdir dirname1 dirname2 dirname3
$
Page 18
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
t li tn cc th mc trong Unix/Linux
Lnh mv c th c s dng t li tn mt th mc. C php nh sau:
$mv olddir newdir
$
teacher
drwxr-xr-x
60
root
----------
teacher
-rwxr-xr-x
teacher
class
2048
Jul 16 17.56 .
1536
Jul 13 14:18 ..
class
4210
class
1948
Page 19
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
1 amrood
users 1024
Nov 2 00:10
myfile
drwxr-xr--- 1 amrood
users 1024
Nov 2 00:10
mydir
Nhm 3 k t tip theo t 5-7 i din cho quyn hn truy cp nhm ti nhng file s hu.
V d -rwxr-xr-- i din rng nhm c cho php c (r) v thc thi (x), nhng khng cho
php vit (w)
Nhm 3 k t cui cng t 8-10 i din quyn hn truy cp khc. V d -rwxr-xr--i din
rng ai trn th gii ch cho php c (r).
Page 20
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
1. c:
Cho php c ni dung ca file.
2. Vit:
Cho php chnh sa hoc g b ni dung ca file.
3. Thc thi:
Ngi s dng vi quyn hn truy cp thc thi c th chy mt file nh l mt chng trnh.
Ch truy cp vo th mc
Cc ch truy cp vo th mc c lit k v t chc trong cng mt cch nh trong bt k mt
file no. C mt vi im khc nhau m bn cn ch :
1. c:
Truy cp vo mt th mc vi ngha l ngi s dng c th c cc ni dung. Ngi s dng c
th xem tn cc file bn trong mt th mc.
2. Vit
Cho php ngi s dng c th thm hoc xa file ni dung ca th mc.
3. Thc thi:
Chy mt th mc khng thc s mang nhiu ngha, v th bn ch coi l giy php ngang
qua.
Mt ngi s dng phi c quyn truy cp thc thi ti th mc bin chy lnh ls hoc cd chng
hn.
Page 21
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
Ton t chmod
Miu t
th mc
Thit lp cc quyn hn truy cp c ch nh.
Di y l mt v d bng cch s dng lnh testfile. Chy ls -1 trn testfile ch rng quyn hn
truy cp ca file l nh sau:
$ls -l testfile
-rwxrwxr--
1 amrood
users 1024
Nov 2 00:10
testfile
Sau mi v d lnh chmod t bng trc c chy trn testfile, theo sau bi ls -l v th bn c
th quan st cc thay i ca quyn hn truy cp.
$chmod o+wx testfile
$ls -l testfile
-rwxrwxrwx
1 amrood
users 1024
Nov 2 00:10
testfile
users 1024
Nov 2 00:10
testfile
users 1024
Nov 2 00:10
testfile
1 amrood
1 amrood
Page 22
http://vietjack.com/unix/index.jsp
-rw-r-xrwx
1 amrood
users 1024
Nov 2 00:10
Copyright vietjack.com
testfile
Tham chiu
---
--x
-w-
-wx
Cho php c
r--
r-x
rw-
rwx
1 amrood
users 1024
Nov 2 00:10
testfile
Page 23
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
1 amrood
users 1024
Nov 2 00:10
testfile
users 1024
Nov 2 00:10
testfile
users 1024
Nov 2 00:10
testfile
1 amrood
1 amrood
Page 24
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
Page 25
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
Cc bit SUID bit v SGID bit s xut hin bng k t s nu quyn hn truy cp l c sn. SUID s
bit s c t trong cc permission bit, ni m ngi s hu thc thi s c thm quyn. V d,
lnh sau:
$ ls -l /usr/bin/passwd
-r-sr-xr-x
root
bin
/usr/bin/passwd*
Ngi s hu ca th mc sticky;
Ngi s hu ca cc file b g b;
Ngi s hu gc
Ci t mi trng Unix/Linux
Mt khi nim Unix quan trng l environment, m c nh ngha bi cc bin mi trng. Mt
s c thit lp bi h thng, s khc c thit lp bi bn, bi shell hoc bt k chng trnh
m bn ti v.
Mt bin l mt chui k t m chng ta gn mt gi tr. Gi tr c ch nh c th l mt s, vn
bn, tn file, thit b hoc bt k kiu d liu khc.
V d, u tin chng ta thit lp mt bin TEST v sau chng ta truy cp gi tr ca n bng
cch s dng lnh echo.
Page 26
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
$TEST="Unix Programming"
$echo $TEST
Unix Programming
Ghi ch rng cc bin mi trng c thit lp m khng s dng k hiu $ nhng trong khi truy
cp chng, chng ta s dng k hiu $ nh l mt tin t. Nhng bin ny gi gi tr ca chng
cho n khi chng ta thot khi shell.
Khi bn ng nhp vo h thng, Shell di ch khi to thit lp mi trng bin. iu
ny thng l tin trnh 2 bc m bao gm Shell c cc file sau:
/etc/profile
profile
Page 27
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
File .profile l di quyn kim sot ca bn. Bn c th nhp thm thng tin Shell ty theo bn
mun ti file ny. Thng tin t nht m bn cn thit lp bao gm:
Bn c th kim tra .profile trong th mc chnh. M n bng cch s dng b son vi v kim tra
tt c cc bin thit lp cho mi trng ca bn.
Page 28
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
$hello
hello: not found
$
Dy escape
Miu t
\t
\d
Ngy hin ti, din t dng Ngy trong tun Thng Ngy
Page 29
http://vietjack.com/unix/index.jsp
\n
Dng mi
\s
\W
Th mc lm vic
\w
ng Path y ca th mc lm vic
\u
\h
\#
\$
Copyright vietjack.com
Page 30
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
$ PS2="secondary prompt->"
$ echo "this is a
secondary prompt->test"
this is a
test
$
Bin
DISPLAY
HOME
IFS
Miu t
Cha ng b nhn din cho s hin th m cc chng trnh X11 nn
s dng bi mc nh.
Ch dn th mc chnh ca ngi s dng hin ti: tham s mc nh
cho lnh cd c sn.
Ch dn Internal Field Separator m c s dng bi s phn tch t
ang tch sau s m rng.
LANG m rng Locale h thng mc nh; LC_ALL c th c s
LANG
LD_LIBRARY_PATH
PATH
Page 31
http://vietjack.com/unix/index.jsp
PWD
RANDOM
SHLVL
TERM
TZ
UID
Copyright vietjack.com
$ echo $TERM
xterm
$ echo $PATH
/usr/local/bin:/bin:/usr/bin:/home/amrood/bin:/usr/local/bin
$
Page 32
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
Lnh pr thay i nh dng ca file ch trn mn hnh hoc trn bn in, n khng chnh sa file ban
u. Bng di y lit k mt vi ty chn ca lnh pr:
Chc nng
Miu t
-k
To ra k ct u ra.
-d
-h "header"
-t
Kh l khi in u v cc l trn/di.
-l PAGE_LENGTH
-o MARGIN
-w PAGE_WIDTH
Page 33
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
nhiu ct.
Trc khi s dng pr, di y l cc ni dung ca mt file mu: food.
$cat food
Sweet Tooth
Bangkok Wok
Mandalay
Afghani Cuisine
Isle of Java
Big Apple Deli
Sushi and Sashimi
Tio Pepe's Peppers
........
$
9:58 1997
Restaurants
Page 1
Sweet Tooth
Isle of Java
Bangkok Wok
Mandalay
Afghani Cuisine
........
$
Page 34
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
$lp food
request id is laserp-525
(1 file)
Lnh Ip ch mt ID m bn c th s dng dng cng vic in hoc kim tra trng thi ca n.
john
128865
Nov 7
11:27
laserp-574
grace
82744
Nov 7
11:28
laserp-575
john
23347
Nov 7
11:35
on laserp
Owner
Job
Files
Total Size
active john
573
report.ps
128865 bytes
1st
grace
574
ch03.ps ch04.ps
82744 bytes
2nd
john
575
standard input
23347 bytes
Page 35
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
y dng u tin hin th trng thi my in. Nu my in khng hot ng hoc ang ht giy,
bn c th quan st cc thng tin khc trn dng u tin.
Lnh Iprm s dng cng vic ang thc hin nu lnh do bn ra. Nu khng th, bn c th
cung cp cc tn cng vic nh l tham s hoc s dng mt du gch ngang (-) g b tt c
cng vic ca bn:
$lprm 575
dfA575diamond dequeued
cfA575diamond dequeued
$
Bng di lit k cc chc nng quan trng lin quan n lnh mail:
Chc nng
Miu t
Page 36
http://vietjack.com/unix/index.jsp
-s
-c
-b
Copyright vietjack.com
This is a test
.
Cc:
Page 37
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
Tn grep bt ngun t lnh ed (UNIX line editor), g/re/p c ngha l globally search for a regular
expression and print all lines containing it (tm kim ton cu cho mt regular expression v in tt
c dng cha n)."
Mt regular expression l hoc mt vi on thun vn bn hoc cc k t c bit s dng cho
cc kt ni mu.
Cch s dng n gin nht ca grep l tm kim mt mu cha mt t n. N c th th c
s dng trong mt pipe m ch trong nhng dng ny ca cc file u vo cha mt chui
cho c gi ti u ra tiu chun. Nu bn khng cung cp cho grep mt tn file c, n c
u vo tiu chun, y l cch m tt c cc filter lm vic.
$ls -l | grep "Aug"
-rw-rw-rw-
1 john
doc
11008 Aug
6 14:10 ch02
-rw-rw-rw-
1 john
doc
8515 Aug
6 15:30 ch07
-rw-rw-r--
1 john
doc
-rw-rw-r--
1 carol doc
Chc nng
Miu t
-v
-n
In cc dng kt ni v s dng ca n.
-l
-c
Page 38
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
-i
1 carol doc
Chc nng
Miu t
-n
-r
Nghch o th t ca s sp xp.
Page 39
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
-f
+x
C th c nhiu hn hai lnh c kt ni trong mt pipe. V d v pipe trn s dng grep, chng
ta c th sp xp cc file theo cch khc l bng cch chnh sa theo th t kch c trong August.
Pipe sau cha cc lnh: ls, grep, v sort:
$ls -l | grep "Aug" | sort +4n
-rw-rw-r--
1 carol doc
-rw-rw-r--
1 john
doc
-rw-rw-rw-
1 john
doc
8515 Aug
6 15:30 ch07
-rw-rw-rw-
1 john
doc
11008 Aug
6 14:10 ch02
1 carol doc
-rw-rw-r--
1 john
doc
-rw-rw-rw-
1 john
doc
8515 Aug
6 15:30 ch07
-rw-rw-r--
1 john
doc
14827 Aug
9 12:40 ch03
.
.
.
Page 40
http://vietjack.com/unix/index.jsp
-rw-rw-rw-
1 john
doc
16867 Aug
Copyright vietjack.com
6 15:56 ch05
--More--(74%)
Foreground Process
Background Process
Page 41
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
ch010.doc
ch02.doc
ch03-2.doc
ch04-1.doc
ch040.doc
ch05.doc
ch06-2.doc
ch01-2.doc
ch02-1.doc
Tin trnh chy trong Foreground, kt qu ca n c hng trc tip trn mn hnh ca ti v
nu lnh ls mun bt k u vo no, n i t bn phm.
Trong khi mt chng trnh ang chy trong Foreground v cn mt khong thi gian di, chng ta
khng th chy bt k lnh khc (bt u mt tin trnh khc) bi v dng nhc khng c sn ti khi
chng trnh ang chy kt thc tin trnh v thot ra.
ch010.doc
ch02.doc
ch03-2.doc
ch04-1.doc
ch040.doc
ch05.doc
ch06-2.doc
ch01-2.doc
ch02-1.doc
Page 42
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
Dng u tin cha cc thng tin v Background Process - s cng vic (job number) v Process
ID. Bn cn bit v Job number thao tc n gia Background v Foreground.
Nu bn nhn phm Enter by gi, bn nhn thy nh sau:
[1]
Done
ls ch*.doc &
Dng u tin ni cho bn rng lnh ls trong Background Process hon thnh mt cch thnh
cng. Dng th hai l mt dng nhc cho mt lnh khc.
TTY
TIME
CMD
18358
ttyp3
00:00:00
sh
18361
ttyp3
00:01:31
abiword
18789
ttyp3
00:00:00
ps
Mt trong nhng flag c s dng cho ps l -f (vit tt ca full), m cung cp nhiu thng tin nh
v d di y:
$ps -f
UID
PID
PPID C STIME
TTY
TIME CMD
amrood
amrood
amrood
amrood
Ct
Miu t
UID
Page 43
http://vietjack.com/unix/index.jsp
PID
Process ID.
PPID
STIME
TTY
TIME
CMD
Copyright vietjack.com
Chc nng
Miu t
-a
-x
-u
-e
Page 44
http://vietjack.com/unix/index.jsp
PPID C STIME
TTY
Copyright vietjack.com
UID
PID
TIME CMD
amrood
amrood
amrood
amrood
$kill 6738
Terminated
y lnh kill s kt thc tin trnh first_one. Nu mt tin trnh thng b qua mt lnh kill, bn
c th s dng kill -9 theo sau bi Process ID nh sau:
$kill -9 6738
Terminated
Page 45
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
Mt tin trnh deamon khng c terminal iu khin. N khng th m /dev/tty. Nu bn thc hin
mt ps-ef v quan st vo trng tty, tt c deamon s c mt du ? cho tty.
r hn, mt deamon ch l mt tin trnh m chy trong Background, thng i cho ci g
xy ra m n c kh nng lm vic vi, ging nh my in deamon ang i cc lnh in.
Nu bn c mt chng trnh m cn thc hin mt tin trnh di, th sau gi tr ca n to
mt deamon v chy n trong Background.
Page 46
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
V d trong Unix/Linux:
Di y l v d kim tra tnh sn sng ca mt host c trn mng:
$ping google.com
PING google.com (74.125.67.100) 56(84) bytes of data.
64 bytes from 74.125.67.100: icmp_seq=1 ttl=54 time=39.4 ms
64 bytes from 74.125.67.100: icmp_seq=2 ttl=54 time=39.9 ms
64 bytes from 74.125.67.100: icmp_seq=3 ttl=54 time=39.3 ms
64 bytes from 74.125.67.100: icmp_seq=4 ttl=54 time=39.1 ms
64 bytes from 74.125.67.100: icmp_seq=5 ttl=54 time=38.8 ms
--- google.com ping statistics --22 packets transmitted, 22 received, 0% packet loss, time 21017ms
rtt min/avg/max/mdev = 38.867/39.334/39.900/0.396 ms
$
Page 47
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
iu hng cc th mc;
t v nhn cc file;
Lnh
Miu t
put filename
get filename
Page 48
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
prompt off
prompt on
dir
cd dirname
lcd dirname
quit
V d trong Unix/Linux:
Di y l v d minh ha v mt s lnh:
$ftp amrood.com
Connected to amrood.com.
220 amrood.com FTP server (Ver 4.9 Thu Sep 2 20:35:07 CDT 2009)
Name (amrood.com:amrood): amrood
331 Password required for amrood.
Password:
230 User amrood logged in.
ftp> dir
200 PORT command successful.
150 Opening data connection for /bin/ls.
total 1464
drwxr-sr-x
3 amrood
group
drwxr-sr-x
2 amrood
group
1536 Mar
3 18:07 Misc
Page 49
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
drwxr-sr-x
5 amrood
group
512 Dec
7 10:59 OldStuff
drwxr-sr-x
2 amrood
group
drwxr-sr-x
5 amrood
group
-rw-r--r--
1 amrood
group
drwxr-sr-x
3 amrood
group
512 Jan
drwxr-sr-x
3 amrood
group
1 amrood
group
1630 Aug
8 1994
dboard.f
-rw-r-----
1 amrood
group
vttest.c
-rwxr-xr-x
1 amrood
group
-rw-r--r--
1 amrood
group
1648 Aug
-rwxr-xr-x
1 amrood
group
wide.list
Page 50
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
Mt khi bn ng nhp bng cch s dng telnet, bn c th thc hin tt c cc hot ng trn
thit b kt ni t xa. Di y l v d v telnet:
C:>telnet amrood.com
Trying...
Connected to amrood.com.
Escape character is '^]'.
login: amrood
amrood's Password:
*****************************************************
*
WELCOME TO AMROOD.COM
*****************************************************
do your work }
$ logout
Connection closed.
C:>
Page 51
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
Name
Tty
amrood
Idle
pts/0
Login Time
Office
Name: (null)
Directory: /home/amrood
Shell: /bin/bash
Name
amrood
Tty
pts/0
Idle
Login Time
Office
Nhn thng tin v mt ngi s dng ring bit c trn thit b t xa nh sau:
$ finger amrood@avtar.com
Login: amrood
Name: (null)
Directory: /home/amrood
Shell: /bin/bash
Page 52
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
B son tho vi thng c cn nhc l tiu chun thc quyn trong B son tho Unix bi v:
N yu cu rt t ngun cho n;
Lnh
vi filename
Miu t
To mt file mi nu n khng tn ti, nu khng th m mt file
ang tn ti.
vi -R filename
view filename
Page 53
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
~
~
~
~
~
~
~
"testfile" [New File]
Page 54
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
Lnh thot khi B son tho vi l :q. Mt khi ang trong ch lnh, g du hai chm v q v
du ! theo sau. Nu file ca bn c chnh sa theo cch no , B son tho s cnh bo
bn v iu ny v khng cho bn thot khi n. b qua thng bo ny, lnh thot khi vi
m khng lu cc chnh sa l :q!. Lnh ny gip bn thot khi vi m khng lu bt c s thay
i no m bn to ra ti file.
Lnh lu ni dung ca B son tho vi l :w. Bn c th kt ni lnh trn vi lnh quit, hoc :wq
v du quay li !.
Cch d nht lu cc thay i v thot khi vi l lnh ZZ. Khi bn ang trong ch lnh, g ZZ
v n s lm vic tng t nh lnh :wq.
Bn c th xc nh tn cc file khc nhau lu bng cch xc nh tn file sau :w. V d, nu
bn mun lu file bn ang lm vic thnh mt file khc c tn l filename2, bn s g :wfilename2
v du !. Bn t mnh th nh.
Lnh
Miu t
B son tho vi l phn bit ch hoa v thng, v th bn cn ch khi vit ch hoa trong
khi s dng lnh.
Page 55
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
C nhiu cch khc di chuyn trong mt file trong vi. Nh rng bn phi trong ch lnh (nhn
Esc hai ln). Di y l mt bng lit k cc lnh khc m bn c th s dng di chuyn xung
quanh file:
Lnh
Miu t
0 or |
t v tr con tr ti u dng.
t v tr con tr t trc.
t v tr con tr u cu vn k tip.
Di chuyn ti on vn sau.
Di chuyn v on vn trc.
[[
]]
n|
1G
Page 56
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
nG
:n
fc
Fc
Di chuyn ngc li ti c
Di chuyn ti u ca mn hnh.
nH
nL
:x
Lnh
Miu t
CTRL+d
CTRL+d
CTRL+f
Page 57
http://vietjack.com/unix/index.jsp
CTRL+u
CTRL+b
CTRL+e
CTRL+y
CTRL+u
CTRL+d
CTRL+b
CTRL+f
CTRL+I
Copyright vietjack.com
Lnh
Miu t
Page 58
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
Xa cc k t trong Unix/Linux
Di y lit k cc lnh quan trng m c th c s dng xa cc k t v cc dng trong
mt file m:
Lnh
Miu t
dw
d^
d$
dd
Lnh
Miu t
cc
Page 59
http://vietjack.com/unix/index.jsp
cw
Copyright vietjack.com
Lnh
Miu t
yy
yw
Page 60
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
Lnh
Miu t
<<
>>
^G
:f
:f filename
t li tn hin ti ca file.
:w filename
Vit tn file
:e filename
M mt file khc vi tn ca n.
:cd dirname
:e #
:n
Page 61
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
:p
:N
:r file
:nr file
Cc lnh n v N tng ng lp li lnh tm trc theo cng cch tm hoc theo hng ngc li.
Mt vi k t c ngha quan trng trong khi s dng lnh tm kim v c t trc bi mt du
\ tr thnh mt phn ca biu thc cn tm.
K t
Miu t
Tm ti u ca dng. (S dng ti phn bt u ca mt biu thc tm
kim.)
Kt ni vi mt k t n.
Page 62
http://vietjack.com/unix/index.jsp
<
>
Copyright vietjack.com
Lnh
Miu t
:set ic
:set ai
:set noai
:set nu
:set sw
:set ws
Page 63
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
:set ro
:set term
In kiu terminal.
:set bf
Page 64
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
Shell l g?
Shell cung cp cho bn mt giao din vi h thng Unix. N thu thp input t bn v chy cc
chng trnh trn c s u vo . Khi mt chng trnh hon thnh, n hin th kt qu (output)
ca chng trnh .
Mt Shell l mt mi trng trong chng ta c th chy cc lnh, cc chng trnh v Shell
script. C cc phin bn khc nhau ca Shell, m ch khc nhau t phin bn ca h iu hnh.
Mi phin bn ca Shell c b thit lp cc lnh v hm c tha nhn ring ca n.
Bn c th ty chnh dng nhc lnh ca mnh bng cch s dng bin mi trng PS1 c gii
thch trong chng Mi trng lm vic.
Page 65
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
C Shell (csh)
Cc Unix Shell u tin c vit vo gia thp k 1970 bi Stephen R. Bourne trong khi ng ta
ang lm vic ti phng th nghim AT&T Bell Labs New Jersey.
Bourne Shell l Shell u tin xut hin trn h thng Unix, v th n c cp n nh l the
Shell.
Bourne Shell thng c ci t nh l /bin/sh trn hu ht cc phin bn Unix. V l do ny, n
l Shell c chn vit script d dng trn cc phin bn khc nhau ca Unix.
Trong chng ny, chng ta cp n hu ht cc khi nim Shell trn c s Bourne Shell.
Page 66
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
#!/bin/sh
Lnh ny ni cho h thng rng cc lnh theo sau c chy bi Bourne Shell. N c gi l mt
shebang bi v k hiu # c gi l mt hash v k hiu ! c gi l mt bang.
to mt script cha cc lnh ny, u tin bn t dng shebang v sau thm cc lnh:
#!/bin/bash
pwd
ls
iu ny to ra kt qu sau:
/home/amrood
index.jsp
unix-basic_utilities.jsp
unix-directories.jsp
test.sh
unix-communication.jsp
unix-environment.jsp
Ghi ch: chy bt c chng trnh no ca bn c trong th mc hin ti, bn nn chy bng
cch s dng ./program_name
Page 67
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
Page 68
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
V d:
NAME="Zara Ali"
V d trn nh ngha bin Name v gn gi tr Zara Ali cho n. Cc bin theo kiu ny c gi l
cc bin v hng (scala). Mt bin v hng ch c th gi mt gi tr ti mt thi im.
Shell cho php bn gi bt k gi tr no bn mun trong mt bin. V d:
VAR1="Zara Ali"
Page 69
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
VAR2=100
NAME="Zara Ali"
echo $NAME
N s to ra kt qu sau:
Zara Ali
NAME="Zara Ali"
readonly NAME
NAME="Qadiri"
N s to kt qu sau:
/bin/sh: NAME: This variable is read only.
Page 70
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
unset variable_name
NAME="Zara Ali"
unset NAME
echo $NAME
Page 71
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
Bin
Miu t
$0
$n
$#
$*
$@
$?
$$
$!
Page 72
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
#!/bin/sh
for TOKEN in $*
do
echo $TOKEN
Page 73
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
done
Ghi ch: Ti y do...done l mt dng ca loop m chng ta s bn lun trong chng hng
dn sau.
Page 74
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
Page 75
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
NAME[2]="Mahnaz"
NAME[3]="Ayan"
NAME[4]="Daisy"
NAME[0]="Zara"
NAME[1]="Qadir"
NAME[2]="Mahnaz"
NAME[3]="Ayan"
NAME[4]="Daisy"
echo "First Index: "
echo "Second Index: "
N s to ra kt qu sau:
$./test.sh
First Index: Zara
Second Index: Qadir
Page 76
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
$ {array_name[*]}
$ {array_name[@]}
NAME[0]="Zara"
NAME[1]="Qadir"
NAME[2]="Mahnaz"
NAME[3]="Ayan"
NAME[4]="Daisy"
echo "First Method:$ {NAME[*]}"
echo "Second Method:$ {NAME[@]}"
N s to ra kt qu sau:
$./test.sh
First Method: Zara Qadir Mahnaz Ayan Daisy
Second Method: Zara Qadir Mahnaz Ayan Daisy
Cc ton t s hc
Cc ton t quan h
Cc ton t logic
Cc ton t chui
Page 77
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
val=`expr 2 + 2`
echo "Total value : $val"
N s to ra kt qu sau:
Total value : 4
Nhng im m bn cn lu l:
Phi c mt khong trng gia hai ton t v 2 s din t, v d 2+2 l khng ng, n
nn c vit l 2 + 2.
Ton
t
Miu t
V d
`expr
$a +
+
$b`
kt
qu
l 30
Page 78
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
`expr
$a -
$b`
kt
qu
l -10
`expr
$a \*
$b`
*
kt
qu
l
200
`expr
$b /
/
$a`
kt
qu
l 2
`expr
$b %
%
$a`
kt
qu
l 0
a=$b
s
=
gn
gi tr
ca b
cho a
Page 79
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
[ $a
== $b
==
] s
tr v
kt
qu
False.
[ $a
!= $b
!=
] s
tr v
kt
qu
True.
Ton
t
-eq
Miu t
V d
[ $a -
Page 80
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
tr ln ng.
eq $b
] l
khng
ng.
[ $a -ne
ne $b
] l
ng.
[ $a -gt
gt $b
] l
khng
ng.
[ $a -lt
lt $b ]
ng th iu kin tr nn ng.
l
ng.
[ $a -ge
ge $b
] l
khng
ng.
[ $a -le
l
ng.
Page 81
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
Ton
t
Miu t
V d
[!
!
false ]
l
true.
[ $a lt 20 o $b -o
gt
100 ]
l
true.
[ $a lt 20 a $b -a
Page 82
http://vietjack.com/unix/index.jsp
Ton
t
Copyright vietjack.com
Miu t
V d
[ $a =
=
$b ] l
kin l ng.
khng
ng.
[ $a
!=
] l
ng.
[ -z
-z
$a ] l
v l ng.
khng
ng.
[ -z
-n
khng
ng.
[ $a ]
str
l
khng
sai.
Page 83
http://vietjack.com/unix/index.jsp
Ton
t
Copyright vietjack.com
Miu t
V d
[ -b
-b file
$file ]
l sai.
[ -c
-c file
$file ]
l sai.
[ -d
$file ]
-d file
l
khng
ng.
[ -f
-f file
Kim tra nu file l file thng nh tri ngc vi th mc hoc l file c bit, $file ]
nu ng th iu kin l ng.
l
ng.
[ -g
-g file
$file ]
l sai.
[ -k
-k file
$file ]
l sai.
[ -p
-p file
$file ]
l sai.
-t file
[ -t
nu ng th iu kin l ng.
$file ]
Page 84
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
l sai.
[ -u
-u file
$file ]
l sai.
[ -r
-r file
$file ]
l
ng.
[ -w
-w file
$file ]
l
ng.
[ -x
-x file
$file ]
l
ng.
[ -s
-s file
$file ]
l
ng.
[ -e
-e file
$file ]
ti.
l
ng.
Page 85
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
Lnh if...else
Lnh case...esac
Lnh if...fi
Lnh if...else...fi
Lnh if...elif...else...fi
Page 86
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
Lnh case...esac
Vng lp while
Vng lp for
Vng lp until
Vng lp select
Bn s s dng cc vng lp khc nhau trn c s cc tnh hung khc nhau. V d, vng lp
while s chy lnh cho ti khi iu kin cho vn cn ng, trong khi vng lp until s chy
ti khi iu kin cho tr nn ng.
Mt khi bn c cc bi thc hnh chng trnh tt, bn s bt u s dng vng lp thch hp trn
c s tnh hung cho. y, vng lp while v for l c sn trong hu ht cc ngn ng
chng trnh khc nh C, C++ v PERL etc.
Page 87
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
C php:
while command1 ; # this is loop1, the outer loop
do
Statement(s) to be executed if command1 is true
V d:
Sau y l v d n gin ca lng vng lp:
#!/bin/sh
a=0
while [ "$a" -lt 10 ]
# this is loop1
do
b="$a"
while [ "$b" -ge 0 ]
# this is loop2
do
echo -n "$b "
b=`expr $b - 1`
done
echo
a=`expr $a + 1`
done
N to ra kt qu sau. N l quan trng ghi nh cch echo -n lm vic y. Ti y ty chn n cho php echo trnh vic in mt dng k t mi.
Page 88
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
0
1 0
2 1 0
3 2 1 0
4 3 2 1 0
5 4 3 2 1 0
6 5 4 3 2 1 0
7 6 5 4 3 2 1 0
8 7 6 5 4 3 2 1 0
9 8 7 6 5 4 3 2 1 0
V d
Di y l v d n gin v s dng vng lp while hin th cc s t 0 n 9.
#!/bin/sh
a=10
Page 89
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
while [ $a -ge 10 ]
do
echo $a
a=`expr $a + 1`
done
C php
Lnh break sau c s dng thot khi mt vng lp.
break
V d
V d sau ch vng lp sau s kt thc ngay sau khi iu kin tr thnh 5:
#!/bin/sh
a=0
while [ $a -lt 10 ]
do
echo $a
Page 90
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
if [ $a -eq 5 ]
then
break
fi
a=`expr $a + 1`
done
N s hin th kt qu sau:
0
1
2
3
4
5
Di y l mt v d n gin ca lng vng lp. Script thot ra khi c hai vng lp nu var1
bng 2 v var2 bng 0.
#!/bin/sh
for var1 in 1 2 3
do
for var2 in 0 5
do
if [ $var1 -eq 2 -a $var2 -eq 0 ]
then
break 2
else
echo "$var1 $var2"
fi
done
done
Page 91
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
C php:
continue
Ging vi lnh break, mt i s nguyn c th c cung cp cho lnh continue nhy qua
lnh ny t vng lp c lng.
continue n
V d
Vng lp sau s dng lnh continue m tr li t lnh continue v bt u tin trnh lnh k tip.
#!/bin/sh
NUMS="1 2 3 4 5 6 7"
Page 92
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
fi
echo "Found odd number"
done
N s to ra kt qu sau:
Found odd number
Number is an even number!!
Found odd number
Number is an even number!!
Found odd number
Number is an even number!!
Found odd number
V d:
Di y l v d, trong khi in mt gi tr ca bin, n s c thay th bi gi tr ca bin. Cng
thi gian \n c thay th bi dng mi.
#!/bin/sh
a=10
echo -e "Value of a is $a \n"
Page 93
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
Dy thot
Miu t
\\
Du cho ngc
\a
\b
Phm li (backspace)
\c
\f
form feed
\n
Dng mi
\r
Quay tr li
\t
Tab ngang
\v
Tab dc
Bn c th s dng chc nng -E khng cho php bin dch du ngoc cho (mc nh).
Bn c th s dng chc nng -n khng cho php chn ca dng mi.
C php
Trnh thay th lnh c thc hin khi mt lnh c cung cp nh sau:
`command`
Page 94
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
Khi thc hin trnh thay th lnh, m bo rng bn ang s dng 2 du trch dn n kiu (`), ch
khng phi l .
V d
Trnh thay th lnh thng thng c s dng gn u ra ca mt lnh ti mt bin. Mi mt
v d sau gii thch cch s dng trnh thay th lnh.
#!/bin/sh
DATE=`date`
echo "Date is $DATE"
USERS=`who | wc -l`
echo "Logged in user are $USERS"
UP=`date ; uptime`
echo "Uptime is $UP"
N s to ra kt qu sau:
Date is Thu Jul
1 user,
Mu
Miu t
$ {var}
Thay th gi tr ca var.
Page 95
http://vietjack.com/unix/index.jsp
$ {var:-word}
$ {var:=word}
$ {var:?message}
$ {var:+word}
Copyright vietjack.com
V d:
Di y l v d minh ha cc trng thi a dng ca trnh thay th trn:
#!/bin/sh
unset var
echo $ {var:+"This is default value"}
echo "3 - Value of var is $ var"
var="Prefix"
echo $ {var:+"This is default value"}
echo "4 - Value of var is $ var"
N s to ra kt qu sau:
Page 96
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
3 - Value of var is
This is default value
4 - Value of var is Prefix
Prefix
5 - Value of var is Prefix
V d trong Unix/Linux:
Di y l v d ch cch in mt * hoc mt ?:
#!/bin/sh
N s to ra kt qu sau:
Hello
./test.sh: line 2: Word: command not found
Page 97
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
N s to ra kt qu:
Hello; Word
K hiu $ l mt siu k t, v th n phi c trch dn trnh shell thc hin cc cng vic
c bit lin quan n n:
#!/bin/sh
Trch dn
Trch dn n
Miu t
Tt c cc k t gia trch dn ny khng cn ngha c bit na vi
shell.
Hu ht cc k t gia trch dn ny khng cn ngha c bit, tr cc
k t sau:
Trch dn kp
\$
\'
Page 98
http://vietjack.com/unix/index.jsp
\"
\\
Copyright vietjack.com
Du gch cho
ngc
ca n.
Trch dn ngc
(``)
lnh v c chy.
t mt du cho ngc (\) trc mi k t c bit l mt vic gy chn ngt v lm cho code
kh c.
echo \<-\$1500.\*\*\>\; \(update\?\) \[y\|n\]
VAR=ZARA
echo '$VAR owes <-$1500.**>; [ as of (`date +%m/%d`) ]'
Page 99
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
N s to ra kt qu sau:
$VAR owes <-$1500.**>; [ as of (`date +%m/%d`) ]
Nhng n khng phi th m bn mun hin th. Nh vy r rng l trch dn n ngn cn trnh
thay th bin. Nu bn mun thay th gi tr ca bin v thc hin cng vic sau du phy nh bn
mong i th khi bn cn t cc lnh ca bn trong trch dn kp nh sau:
VAR=ZARA
echo "$VAR owes <-\$1500.**>; [ as of (`date +%m/%d`) ]"
N s to ra kt qu sau:
ZARA owes <-$1500.**>; [ as of (07/02) ]
Page 100
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
C php
y l c php n gin t bt k lnh Shell no vo gia trch dn ngc:
V d:
var=`command`
V d:
Sau y chng ti s chy lnh date v gi kt qu trong bin DATA:
DATE=`date`
N to ra kt qu l:
Current Date: Thu Jul
Page 101
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
tty01
Sep 12 07:30
ai
tty15
Sep 12 13:32
ruth
tty21
Sep 12 10:10
pat
tty24
Sep 12 13:07
steve
tty25
Sep 12 13:03
Page 102
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
$ wc -l users
2 users
$
Ghi nh rng, c mt s khc nhau trong output bi 2 mu ca lnh wc. Trong trng hp u
tin, tn ca tp users c lit k vi s dng, cn trong trng hp th hai th khng.
Trong trng hp u, wc bit rng n ang c input ca n t tp users. Trong trng hp th
hai, n ch bit rng n ang input ca n t input tiu chun v th n khng hin th tn file.
y, shell phin dch ton t << nh l mt ch lnh c input ti khi n tm thy mt dng
cha gii hn xc nh. Tt c input m trn dng cha gii hn sau c cho tr thnh
input tiu chun ca lnh.
Gii hn ny ni cho shell rng here document thc hin xong. Khng c n, shell tip tc c
input mi mi. Gii hn phi l mt t n m khng cha cc du cch hoc tab.
Di y l input ca lnh wc -l tnh ton tng s dng.
Page 103
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
Code ny s to ra kt qu sau:
This is a simple lookup program
for good (and bad) restaurants
in Cape Town.
filename=test.txt
vi $filename <<EndOfCommands
i
This file was created automatically from
a shell script
^[
ZZ
EndOfCommands
Page 104
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
Nu bn chy script ny vi vim m hot ng tng t vi, th sau bn s thy output ging nh
sau:
$ sh test.sh
Vim: Warning: Input is not from a terminal
$
Page 105
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
Lnh
Miu t
u ra ca pgm c gn ti file.
n > file
n >> file
n >& m
n <& m
<< tag
input tiu chun xut pht t y qua th tip theo ti phn u ca dng.
Ghi ch rng du hiu file 0 thng l input tiu chun (STDIN), 1 thng l u ra tiu chun
(STDOUT), v 2 thng l u ra li tiu chun (STAERR).
Cc hm Shell
Cc hm cho php bn tinh gin mt tnh nng tng th ca mt script vo mt phn nh v logic
hn m c th thc hin cng mt chc nng bt c khi no n c cn thng qua vic gi hm.
S dng cc hm thc hin cc cng vic mang tnh lp l mt cch thng minh to tnh s
dng li c ca code. Tnh s dng li ca code l mt phn quan trng ca cc quy tc
chng trnh hng i tng hin i.
Cc hm Shell l tng t nh cc chng trnh con, phng thc v cc hm ca cc chng
trnh khc.
Page 106
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
To cc hm trong Unix/Linux
cng b mt hm, n gin bn s dng c php sau:
function_name () {
list of commands
}
V d:
Sau y l v d n gin ca vic s dng hm:
#!/bin/sh
Page 107
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
#!/bin/sh
Code ny s to ra kt qu sau:
$./test.sh
Hello World Zara Ali
$
Tr li cc gi tr t mt hm trong Unix/Linux
Nu bn chy mt lnh exit t bn trong mt hm, hiu qu ca n l khng ch kt thc s vn
hnh ca hm m cn ca chng trnh Shell.
Nu bn thay cho mun kt thc s vn hnh ca hm, th c cch thot khi mt hm nh
ngha.
Da trn tnh hung bn c th tr li bt c gi tr no t hm ca bn bng cch s dng
lnh return m c c php nh sau:
return code
V d:
Hm di y tr li gi tr 1.
#!/bin/sh
Page 108
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
Hello () {
echo "Hello World $1 $2"
return 10
}
number_two () {
Page 109
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
N s to ra kt qu sau:
This is the first function speaking...
This is now the second function speaking...
Page 110
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
V d
By gi bn tng tng bt c lnh no m bn mun nhn c s gip . Gi s bn mun
bit v lnh pwd, th sau n gin bn ch cn s dng lnh sau:
$man pwd
Khu vc
Miu t
NAME
Tn ca lnh
SYNOPSIS
Page 111
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
OPTIONS
Lit k cc lnh khc m trc tip lin quan ti lnh trong Man Page hoc
SEE ALSO
BUGS
hoc u ra ca n.
Cc v d v cch s dng ph bin m cung cp cho ngi c gi v
EXAMPLES
AUTHORS
Cui cng, chng ti mun ni rng, Man Page l mt ngun quan trng v l con ng u tin
bn chn khi tm kim thng tin v cc lnh hoc cc file trong h thng Unix.
Page 112
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
Lnh cat ni dung ca /etc/passwd ti sed thng qua pipe trong khng gian mu ca sed.
Khng gian mu l khu vc cng vic bn trong m c sed s dng thc hin cng vic ca
n.
Dy
Miu t
Page 113
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
In dng
Xa dng
s/pattern1/pattern2/
Xa tt c cc dng vi sed
Gi sed thm ln na, nhng ln ny ni cho sed s dng lnh chnh sa xa cc dng, biu
th bng k t n d:
$ cat /etc/passwd | sed 'd'
$
Page 114
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
mail:x:8:8:mail:/var/mail:/bin/sh
news:x:9:9:news:/var/spool/news:/bin/sh
backup:x:34:34:backup:/var/backups:/bin/sh
$
Bn ch rng number 1 c thm trc lnh chnh sa xa. iu ny ni cho sed thc hin
lnh chnh sa trn dng u tin ca file. Trong v d ny, sed s xa dng u tin ca
/etc/passwd v in phn cn li ca file.
Dy
Miu t
'4,10d'
Dng bt u t 4 n 10 b xa.
'10,4d'
'4,+5d'
'2,5!d'
Page 115
http://vietjack.com/unix/index.jsp
'1~3d'
'2~2d'
Copyright vietjack.com
'4,10p'
'4,d'
y l mt c php li.
',10d'
y l mt c php li.
Ghi ch: Trong khi s dng hnh ng p, bn nn s dng chc nng -n trnh lp li vic in
dng. Bn th kim tra s khc nhau gia hai lnh sau:
$ cat /etc/passwd | sed -n '1,3p'
N l quan trng ghi nh rng sed ch thay th s kin u tin trn mt dng. Nu trn chui
root din ra nhiu hn mt dng th ch dng u tin s c thay th.
Page 116
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
ni cho sed thc hin thay th ton b, thm k t g ti phn cui ca lnh nh sau:
$ cat /etc/passwd | sed 's/root/amrood/g'
amrood:x:0:0:amrood user:/amrood:/bin/sh
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
...........................
Flag
Miu t
NUMBER
Thay th ch kt ni th NUMBER.
M hoc m
Page 117
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
Trong v d trn chng ta s dng du hiu gii hn : as thay v du gch cho / bi v chng ta
ang c gng tm kim /root thay v mt root n.
Theo cch tng t, thay i mt dy a ch, bn c th thc hin cng vic ging nh sau:
$ cat /etc/passwd | sed '1,5s/sh/quiet/g'
root:x:0:0:root user:/root:/bin/quiet
daemon:x:1:1:daemon:/usr/sbin:/bin/quiet
bin:x:2:2:bin:/bin:/bin/quiet
Page 118
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
sys:x:3:3:sys:/dev:/bin/quiet
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/bin/sh
man:x:6:12:man:/var/cache/man:/bin/sh
mail:x:8:8:mail:/var/mail:/bin/sh
news:x:9:9:news:/var/spool/news:/bin/sh
backup:x:34:34:backup:/var/backups:/bin/sh
Page 119
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
root:x:0:0:root user:/root:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/bin/sh
man:x:6:12:man:/var/cache/man:/bin/sh
mail:x:8:8:mail:/var/mail:/bin/sh
news:x:9:9:news:/var/spool/news:/bin/sh
backup:x:34:34:backup:/var/backups:/bin/sh
K t
Miu t
Kt ni vi phn bt u ca cc dng.
Kt ni vi bt k k t n no.
[chars]
Cc k t kt ni trong Unix/Linux
Bn nhn vo bng di lit k mt s Expression khc m gii thch cho cch s dng ca cc
siu k t. V d, cc mu sau:
Expression
Miu t
Page 120
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
/a.c/
/a*c/
/[tT]he/
/^$/
Kt ni vi cc dng trng.
/^.*$/
/ */
/^$/
Kt ni vi cc dng trng.
Thit lp
Miu t
[a-z]
Kt ni vi mt ch ci n thng.
[A-Z]
Kt ni vi mt ch ci n hoa.
[a-zA-Z]
Kt ni vi mt ch ci n.
[0-9]
Kt ni vi mt s n.
[a-zA-Z0-9]
Kt ni vi mt s hoc mt ch ci n.
Page 121
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
/var/log/secure
mail.*
-/var/log/maillog
cron.*
/var/log/cron
uucp,news.crit
/var/log/spooler
local7.*
/var/log/boot.log
Lp k t
Miu t
[[:alnum:]]
[[:alpha:]]
[[:blank:]]
[[:cntrl:]]
Cc k t iu khin
[[:digit:]]
Cc s [0-9]
[[:graph:]]
[[:lower:]]
[[:print:]]
[[:punct:]]
Cc k t du chm cu
[[:space:]]
[[:upper:]]
Page 122
http://vietjack.com/unix/index.jsp
[[:xdigit:]]
Copyright vietjack.com
Page 123
http://vietjack.com/unix/index.jsp
$ sed -e 's/^[[:digit:]]\{3\}/(&)/g'
Copyright vietjack.com
\
-e 's/)[[:digit:]]\{3\}/&-/g' phone.txt
(555)555-1212
(555)555-1213
(555)555-1214
(666)555-1215
(666)555-1216
(777)555-1217
By gi bn th lnh sau:
$ cat phone.txt | sed 's/\(.*)\)\(.*-\)\(.*$\)/Area \
Page 124
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
Page 125
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
Th
mc
Miu t
/bin
/dev
y l cc thit b iu khin.
Cc lnh th mc Supervisors, cc file nh cu hnh, cc file nh cu hnh a,
/etc
/lib
/boot
/home
/mnt
/proc
Page 126
http://vietjack.com/unix/index.jsp
/tmp
Copyright vietjack.com
/usr
/var
/sbin
/kernel
Lnh
Miu t
cat filename
Hin th mt tn file.
cd dirname
Di chuyn bn ti th mc c xc nh.
cp file1 file2
file filename
Tm mt file/th mc.
head filename
Ch phn bt u ca mt file.
less filename
Page 127
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
ls dirname
Ch ni dung ca th mc c xc nh.
mkdir dirname
To mt th mc c nh trc.
more filename
mv file1 file2
pwd
rm filename
G b mt file.
rmdir dirname
G b mt th mc.
tail filename
touch filename
ti.
whereis filename
Ch v tr ca mt file.
which filename
Bn c th s dng Trang tr gip (Manpage Help) kim tra c php y cho mi lnh
c cp y.
1K-blocks
Used
/dev/vzfs
10485760
7836644
2649116
/devices
Page 128
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
Ct
Miu t
Filesystem
Tn h thng file.
kbytes
used
avail
capacity
Mounted on
/etc/cron.d
126
/etc/default
/etc/dfs
Page 129
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
...
$
/etc/cron.d
63k
/etc/default
3k
/etc/dfs
...
$
Page 130
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
Sau khi gn kt, bn c th s dng lnh cd iu hng h thng file c mi nht thng qua
im kt ni m bn va mi to ra.
Lnh mount cho bn kh nng truy cp vo h thng file, nhng trn cc h thng Unix hin i
nht, chc nng t ng kt ni thc hin ngm tin trnh ny cho ngi s dng v khng yu
cu s can thip no.
Gii hn cng (Hard Limit): Khi ngi dng s dng chm ti mc gii hn, yu cu
thm cho phn khng gian s dng na, s khng c khi no c thm.
Lnh
Miu t
quota
Page 131
http://vietjack.com/unix/index.jsp
edquota
quotacheck
setquota
quotaon
quotaoff
repquota
Copyright vietjack.com
Bn c th s dng Trang tr gip (Manpage Help) kim tra c php y cho mi lnh
c cp trn y.
Page 132
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
Lnh
Miu t
useradd
usermod
userdel
groupadd
groupmod
groupdel
Page 133
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
Bn c th s dng cc lnh trong Trang tr gip (Manpage Help) kim tra c php y
cho mi lnh c cp trn.
Ty chn
Miu t
-g GID
Gi tr s ca ID nhm.
-o
-r
-f
groupname
Page 134
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
Lnh ny ch g b nhm, khng phi bt k file no lin quan ti nhm. Cc file l vn c th truy
cp c bi ngi s hu ca n.
Ty chn
Miu t
-d homedir
-g groupname
-m
Page 135
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
-s shell
-u userid
accountname
Chnh sa mt ti khon
Lnh usermod cho bn kh nng to cc thay i ti mt ti khon c nhn ang tn ti t
dng lnh. N s dng cc i s nh lnh useradd, cng vi i s -l, m cho php bn thay i
tn ti khon.
Page 136
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
CPU
B nh
Khng gian a
Cc dy dn giao tip
I/O Time
Page 137
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
Thnh phn
Miu t
Lng thi gian thc t m CPU dnh chy chng trnh ca ngi s
dng trong trng thi ngi dng. N bao gm thi gian dnh chy cc
triu hi th vin, nhng khng bao gm thi gian dnh trong Kernel.
Lng thi gian m CPU dnh cho chng trnh ny trong trng thi h
Trng thi CPU thng. Tt c chng trnh I/O yu cu cc s phc v Kernel. Ngi vit
h thng
thng
Hiu nng b
nh o
Chng trnh
Thi gian dnh cho chy cc chng trnh khc khi h thng khng phc
ng dng
Lnh
Miu t
nice/renice
netstat
Page 138
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
time
uptime
ps
vmstat
Bo co cc thng k v b nh o.
gprof
prof
top
Bn c th truy cp vo Trang tr gip (Manpage Help) kim tra c php y cho mi lnh
c cp y.
dng
mt
tin
trnh
ghi
log
thng
trung
tm
chy
chng
Page 139
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
Mc
Miu t
Facility
(phng tin)
Selector (b
chn)
Action (hnh
ng)
khin hoc thit b khc, vit thng bo ti h thng ghi log ca ngi s dng
hoc gi thng bo cng vi my ch syslog khc.
Facility
auth
authpriv
console
Miu t
Cc hot ng lin quan n yu cu tn v mt khu (getty, su,
login)
Tng t nh auth nhng ghi log ti mt file m ch c th c
c bi nhng ngi dng c chn.
S dng bt cc thng bo m thng trc tip gi ti bn iu
khin h thng.
cron
daemon
Page 140
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
ftp
kern
Cc thng bo kernel.
local0.local7
lpr
mark
news
ntp
user
uucp
H thng ph UUCP.
Quyn u tin
emerg
alert
crit
Miu t
Tnh trng khn cp, nh mt s ngng hot ng h thng sp xy ra,
thng c thng bo ti tt c ngi dng.
Tnh trng m nn c chnh li cho ng ngay lp tc, nh mt d
liu h thng b h hng.
Tnh trng nghim trng, nh li phn cng.
Page 141
http://vietjack.com/unix/index.jsp
err
Cc li thng thng.
warning
Cnh bo.
notice
Copyright vietjack.com
info
debug
none
/var/log/messages
lpr.info
/var/log/lpr.log
mail.*
/var/log/mail.log
ftp.*
/var/log/ftp.log
auth.*
@prep.ai.mit.edu
auth.*
root,amrood
netinfo.err
/var/log/netinfo.log
install.*
/var/log/install.log
*.emerg
Page 142
http://vietjack.com/unix/index.jsp
*.alert
|program_name
mark.*
/dev/console
Copyright vietjack.com
Page 143
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
5. Gi thng bo ti syslog trn mt host khc. Trong trng hp ny, trng hnh ng bao
gm mt tn host, c t trc bi mt du hiu (v d: @tutorialspoint.com)
Chc nng
Miu t
-f filename
-i
-p priority
-t tag
message
Bn c th s dng trang Trang tr gip (Manpage Help) kim tra c php ca cc lnh ny.
Page 144
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
Cc log file c thin hng tng ln rt nhanh v chim mt khong ln ca khng gian a.
cho
php kh
nng lun
phin
log, hu ht phin
bn
s dng
cc
cng
ng dng
Th mc
httpd
/var/log/httpd
samba
/var/log/samba
cron
/var/log/
/var/log/
mysql
/var/log/
Tn signal
S
hiu
Miu t
Page 145
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
signal
Tr hon vic kim tra trn qun l terminal hoc s dng ca qun l
SIGHUP
SIGINT
SIGQUIT
SIGFPE
SIGKILL
SIGALRM
14
SIGTERM
15
tin trnh.
2) SIGINT
3) SIGQUIT
4) SIGILL
5) SIGTRAP
6) SIGABRT
7) SIGBUS
8) SIGFPE
9) SIGKILL
10) SIGUSR1
11) SIGSEGV
12) SIGUSR2
13) SIGPIPE
14) SIGALRM
15) SIGTERM
16) SIGSTKFLT
17) SIGCHLD
18) SIGCONT
19) SIGSTOP
20) SIGTSTP
21) SIGTTIN
22) SIGTTOU
23) SIGURG
24) SIGXCPU
25) SIGXFSZ
26) SIGVTALRM
27) SIGPROF
28) SIGWINCH
29) SIGIO
30) SIGPWR
31) SIGSYS
34) SIGRTMIN
35) SIGRTMIN+1
36) SIGRTMIN+2
37) SIGRTMIN+3
38) SIGRTMIN+4
39) SIGRTMIN+5
40) SIGRTMIN+6
41) SIGRTMIN+7
42) SIGRTMIN+8
43) SIGRTMIN+9
Page 146
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
56) SIGRTMAX-8
57) SIGRTMAX-7
58) SIGRTMAX-6
59) SIGRTMAX-5
60) SIGRTMAX-4
61) SIGRTMAX-3
62) SIGRTMAX-2
63) SIGRTMAX-1
64) SIGRTMAX
Danh sch thc t trn ca signal l a dng v khc nhau gia Solaris, HP-UX v Linux.
B qua signal
Kt xut li nh. N to mt file gi l core (li) cha hnh nh b nh ca tin trnh khi n
nhn c signal
Page 147
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
$ kill -1 1001
Gi HUP hoc signal dng ti mt chng trnh m ang chy vi ID tin trnh l 1001. gi
mt kill signal ti tin trnh ging nh vy, bn s dng lnh sau:
$ kill -9 1001
T im trong chng trnh shell m trap ny c thc thi, hai tp work1$$ v dataout$$s t
ng b d b nu signal s 2 c nhn bi chng trnh.
V th nu ngi s dng ngt vic thi hnh ca chng trnh th sau trap ny c chy, bn
c th c m bo chc chn rng hai file ny s c dn sch s. Lnh exit m theo sau
Page 148
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
Ghi nh rng i s th nht phi c xc nh cho mt signal b b qua v cch trn l khng
cn bng vi cch vit sau, m cch vit sau ny c ngha ring ca n:
$ trap
Page 149
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
N thit lp li hnh ng c thc hin khi nhn c signal s 1 hoc 2 tr li dng mc nh.
Lnh
Miu t
cat
cd
Thay i th mc ti dirname
chgrp
chmod
cp
file
Xc nh kiu file
Page 150
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
find
Tm kim cc file
grep
head
ln
To mt link mm trn tn c
ls
mkdir
To mt th mc dirname mi
more
mv
pwd
In th mc lm vic hin ti
rm
G b (xa) mt file
rmdir
Xa mt th mc ang tn ti
tail
In mt vi dng cui ca th mc
touch
Lnh
Miu t
awk
cmp
Page 151
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
comm
cut
diff
expand
M rng cc tab
join
perl
sed
B son lung vn bn
sort
split
tr
Bin dch cc k t
uniq
wc
vi
M b son vn bn vi
vim
M b son vn bn vim
fmt
B nh dng vn bn n gin
spell
ispell
Page 152
http://vietjack.com/unix/index.jsp
ispell
emacs
GNU d n Emacs
ex, edit
B son dng
emacs
GNU d n Emacs
emacs
GNU d n Emacs
Copyright vietjack.com
Lnh
Miu t
compress
Nn cc file
gunzip
B nn cc file
gzip
uncompress
B nn cc file
unzip
zcat
Ni v lin kt cc file b nn
zcmp
So snh cc file b nn
zdiff
So snh cc file b nn
zmore
Page 153
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
Lnh
Miu t
apropos
info
man
whatis
yelp
Lnh
Miu t
ftp
rcp
rlogin
rsh
iu khin t xa shell
tftp
telnet
Page 154
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
ssh
scp
sftp
Lnh
Miu t
evolution
mesg
parcel
pine
talk
write
Lnh
Miu t
Page 155
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
dbx
gdb
make
nm
size
strip
D b bng k t v t li v tr cc bit
cb
cc
ctrace
gcc
indent
bc
B x l ngn ng s hc tng tc
gcl
perl
Ngn ng mc ch chung
php
py
asp
Page 156
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
CC
g++
javac
appletvieweir
netbeans
sqlplus
sqlldr
mysql
Lnh
Miu t
chfn
chgrp
chown
Thay i ngi s hu
date
In ngy
determin
du
echo
Page 157
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
exit
finger
groupadd
groups
homequota
iostat
Bo co cc thng k I/O
kill
last
logout
lun
netstat
passwd
passwd
printenv
ps
ps
quota -v
Page 158
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
reset
Thit lp li ch terminal
script
script
setenv
stty
time
top
tset
Thit lp ch terminal
tty
In tn terminal hin ti
umask
uname
uptime
useradd
users
vmstat
Bo co cc thng k b nh thc
who
Page 159
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
Hm
Miu t
abs
Gi tr tuyt i
log
Logarit t nhin
acos
Hm arcos
sin
Hm sin
asin
Hm arcsin
sinh
Hm sin hyperbolic
cos
Hm cos
sqrt
Cn bc hai
cosh
Hm cos hyperpolic
tan
Hm tan
exp
Hm m
tanh
Hm tan hyperpolic
int
Phn nguyn
Page 160
http://vietjack.com/unix/index.jsp
Copyright vietjack.com
The Unix Forums Mt din n cho nhng ngi yu Unix. Chia s tng v suy ngh
ca bn vi cc Chuyn gia v Unix.
Page 161