You are on page 1of 54

Moscow Institute of Electronic Technology

Capt.ZayYarWin

Laboratory Exercises with Linux


ed'gef;
,ck vufawGUavhusifhcef;rSpNyD; uRefawmfwkdU[m Operating System Linux eJU
ygwfoufwJh avhusifhcef;tcsdKUukd pwifxdawGUMu&rSmjzpfygw,f/ Linux &JU file structure
wnfaqmufyHk? command line interface rSm toHk;jyKwJh command rsm;eJU shell script
rsm;a&;om;enf;udk tajccHtm;jzifh avhvmNyD; vufawGUavhusifhcef;rsm; jyKvkyfMu&rSmjzpfyg
w,f/
Linux user awGtaeeJU GUI vdkUac:wJh Graphic User Interface udk Windows
rSmuJhodkU mouse udktoHk;jyKum icon awGudkMunfhNyD; tvG,fwultvkyfvkyfEdkifovdk
command line interface rSm command awGudk&dkufNyD; system udk instruction ay;Edkifyg
w,f? Graphic mode eJUtvkyfvkyfwm[m user twGuf ydkNyD;em;vnf&ef vG,fulayr,fh
tcsdKUaom task awGrSmawmh graphic rSm icon awGudkMunfhNyD;wpfqifhjcif; click
vkyfoGm;&wmxuf shell rSm text command udk &dkufNyD;tvkyfvkyfwm[m ydkvG,fulNyD;
process time [mvnf; graphic rSmxufydkenf;vdkU tvkyfvkyfrIU ydkrdkjrefqefwmudk awGU&rSm
jzpfygw,f? OS Linux rSmtoHk;jyKwJh xif&Sm;wJh Shell awGuawmh BASH (BourneAgain SHell), CSH(C SHell) eJU KSH(Korn SHell) awGyJjzpfygw,f/ MS-DOS rSm
toHk;jyKwJh COMMAND.COM shell [mvnf; tckazmfjyyg Shell awGeJU vkyfaqmifrIU
twlwljzpfygw,f/ 'gayr,fh Linux rSm toHk;jyKwJh Shell awGavmufawmh powerful
rjzpfygbl;/
BASH shell uawmh Red Hat &JU default shell jzpfygw,f/ atmufrSm
azmfjyxm;wJhyHkawGudk Munfhr,fqkd&if shell rSm command awGeJU b,fvdktvkyfvkyfw,fqdk
wmoabmaygufvG,fulrSmjzpfygw,f/

uRefawmfwdkU user awGay;vdkufwJh instruction awGudk pufuwdkuf&dkuf em;rvnfEdkif


ygbl;? tJ'gaMumifh shell uaewqifh pufuem;vnfEdkifwJh machine language udk
ajymif;ay;ygw,f? tJ'DhtcgusrSom OS u uRefawmfwdkU&JU instruction udk em;vnfNyD;
instruction twGuf output udk jyefxkwfay;ygw,f? 'Davmufqdk&ifawmh command line
interface rSm command eJU shell b,fvdktvkyfvkyfw,fqdkwm tajccHtm;jzifh
em;vnfoGm;NyDvdkU,lqygw,f/ Laboratory No(9) eJU (10) rSmawmh shell rSmtoHk;jyKwJh

Moscow Institute of Electronic Technology

Capt.ZayYarWin

basic command awGeJU No.11 rSmawmh shell script tenf;i,fudk pwifxdawGUMu&rSm

jzpfygw,f/

Linux file structure


Linux file structure rSmyg0ifwJh directory rsm;udk uRefawmfwdkUavhvmMu&rSm jzpfyg
w,f/ uRefawmfwdkUtaeeJU directory tvdkuf rnfonfh directory xJrSm rnfodkUaom
zdkiftrsdK;tpm;awGyg0ifw,f? system eJU user twGuf command file awG? configuration
file awG? uRefawmfwdkUtwGuf avhvm&mrSm taxmuftuljzpfapr,fh documentation files
awG[m rnfonfh directory xJrSm&SdMuw,f ponfjzifh tusOf;zsOf; od&Sdxm;zdkU vdktyfyg
w,f/ directory tm;vHk;[m / root atmufrSm tree yHkpHrsdK;eJU tqifhqifh zGJUpnf;xm;yg
w,f/ Linux file structure layout udk atmufrSmazmfjyxm;ygw,f-

Moscow Institute of Electronic Technology

Capt.ZayYarWin

/root

user root twGuf home directory jzpfygw,f/

/home

system xJrSmyg0ifwJh user awG&JU directory awG? data awG[m 'D


directory xJrSm&Sdygw,f/

/bin
/usr/bin

/sbin
/proc
/usr
/boot
/lib
/dev

/etc

'D directory (2)ckxJrSm System twGuf vdktyfwJh program file


awG&Sdygw,f? /bin xJrSmawmh system startup vkyfwJhtcsdefrSmvdktyfwJh
command file awG&Sdygw,f? user awGtwGuf vdktyffwJh command file
awG jzpfygw,f/
/bin directory uJhodkU command file awG&Sdygw,f? system eJU
administrator toHk;jyKwJh zdkifawGjzpfygw,f/
'D file system uawmh virtual file system jzpfygw,f? disk ay:rSm
wu,fr&Sdygbl;?
Command file rsm;? documentation zdkifrsm;? man pages rsm;? Kernel
source code file rsm; wnf&Sdygw,f/
Boot loader toHk;jyKwJh zdkifawGwnf&Sdygw,f? linux kernel vnf; 'D
directory xJrSm wnf&dSygw,f/
Shared libraries files awGwnf&Sdygw,f/
System rSm toHk;jyKwJh device awGtm;vHk;[m 'D directory xJrSm file

awGtjzpf wnf&Sdygw,f/
System &JU configuration file awG[m 'D directory xJrSm text file
awGtaeeJU wnf&Sdygw,f/ system boot vkyfwJhtcsdefrSm toHk;jyKwJh
scripts zdkif? password file awG wnf&Sdygw,f/

/var

Mail, news eJU log file awGwnf&Sdygw,f/

/mnt

device awGudk system rSm toHk;jyK&eftwGuf mount vkyfxm;wJhae&m


mount point jzpfygw,f/

/tmp

Program eJU user awG&JU temporary zdkifawGtwGuf toHk;jyKygw,f/

Note:
To login the system:
login:<username>
Password:

# Linux rSm case sensitive jzpfw,fqdkwm owdxm;&rSmjzpfygw,f/ Oyrm- Panda


panda.
3

Moscow Institute of Electronic Technology

Capt.ZayYarWin

ordinary user login account jzpfygw,f/

root (odkU) superuser login account jzpfygw,f/

Ctrl+Alt+F1,
Ctrl+Alt+F2,
Ctrl+Alt+,

virtual text console wpfckeJUwpfckMum; ajymif;wJhtcgrSm oHk;yg

w,f/

Ctrl+c

current process udk &yfypfcsifwJhtcgrsdK;rSm oHk;ygw,f/

Ctrl+d

current terminal rS logout vkyfwJhtcgrSmoHk;ygw,f? exit


command eJUwlygw,f/

shutdown h now

Shutdown the system

halt

Stop the system

Command Line Interface:

Moscow Institute of Electronic Technology

Capt.ZayYarWin

Laboratory Exercise No (9)


Lab.9 rSm

uRefawmfwkdUpwifxdawGUMu&r,fh Command awGuawmh atmufyg

twkdif;jzpfygw,f1

man

Displays help information on a command

help

To see help or options on a command

mount/umount

Mounts a partitions or device

who

To see who is using system

pwd

Display the current working directory

cd

Change the current working directory

ls

Displays the content of a directory or information on a


file

ln

To create multiple file copied with various link

cat

To see text files

10

less

View text files

11

file

Display file type

12

cp

Copies one or more files/directories.

13

mv

Move or rename files/directories.

14

rm

Remove files

15

mkdir

To create new file

16

rmdir

Remove a directory. (The directory must be empty!)

17

chmod

To change file access permissions.

18

chown

Change ownership of a file

command man/help
rdrdtoHk;jyKr,fh command eJUygwfoufwJh tcsuftvufawG? yg0ifwJh option awGeJU
b,fvdk toHk;jyK &r,fqdkwmudk odvdkwJhtcgrSm toHk;jyKygw,f/
Syntax:
$ man [-k] command

Moscow Institute of Electronic Technology

Capt.ZayYarWin

$ command --help

# MS-DOS rSmoHk;wJh C:\>command /? (odkU) C:\>command help eJUtwllwlygyJ?


Example:
[myn@panda myn]$ date
[myn@panda myn]$ man cp

copy eJUygwfoufwJh manual page xJa&mufoGm;rSmjzpfygw,f?


<space> aemufpmrsufESmawGudk oGm;vdkwJhtcgrSm ESdyf&rSmjzpfygw,f/
<Enter> pmaMumif;a& wpfaMumif;csif;qif;oGm;zdkUtwGuf toHk;jyKygw,f/
<Ctrl+c> odkU <q> manual page rS exit vkyfcsifwJhtcgrSm oHk;ygw,f/

command mount/umount
Unix system rSmtoHk;jyKwJh file system [m / root &JUatmufrSm tree yHkpHeJU
tqifhqifhwnf&Sdaewmjzpfygw,f/ 'DzdkifawGxJrS tcsdKU[m device file awGvnf;jzpfEdkifyg
w,f/ (Oyrm- cdrom, floppy device,) 'D device awGudk uRefawmfwdkUtoHk;jyKvdkwJh
tcg file system (/ tree)rSmoGm;NyD;csdwfquf(wyfqif)&ygw,f/ mount vkyfw,fvdkUac:yg
w,f/ tJ'DhtcgrSom system uaeNyD; uRefawmfwdkUtoHk;jyKvdkwJh device udkod&SdNyD;awmh 'D
device awGudktoHk;jyKEdkifrSmjzpfygw,f/ toHk;jyK&r,fh command uawmh mount
jzpfygw,f/ command mount udk toHk;jyKwJhtcgrSm argument (2)ckeJU toHk;jyK&ygw,f/
tJ'guawmh mount vkyfcsifwJh device (devices name) eJU file system rSm mount
vkyfr,fhae&m mount point jzpfygw,f/ 'D mount command udk superuser(root)
account eJUomjyKvkyfEdkifygw,f/
mount vkyfxm;wJh device ukd file system rSjyefNyD; jzKwf (disable) vdkwJhtcgrSm
command umount udktoHk;jyK&ygw,f/ atmufrSmazmfjyxm;wJh OyrmawGudk avhvmMunfh

&if ydkNyD;oabmaygufrSmjzpfygw,f/
Syntax:
# mount device mount_point(directory)
# umount device umount_point(directory)

Options:
# mount o,f,w,v

wGJzuftoHk;jyKwJh options awGudkawmh man command udk toHk;jyKNyD;awmh


avhvmMunfhyg/ man page xJrSm tao;pdwf&Sif;jyxm;ygw,f/
Example:
[root@panda root]# mount /dev/cdrom /mnt/cdrom

Moscow Institute of Electronic Technology

Cdrom device udk

mount point directory jzpfwJh

Capt.ZayYarWin

/mnt ae&mrSm

mount

vkyfvdkufwmjzpfygw,f/
[root@panda root]# mount /mnt/floppy
[root@panda root]# umount /mnt/floppy

Floppy udk mount eJU umount vkyfwmjzpfygw,f/

command who
vuf&Sd system xJudk login vkyfxm;wJh user awGeJUygwfoufwJh tcsuftvufawGudk
azmfjyay;ygw,f/
Syntax:
$ who [options] [am i]
$ whoami

Example:

who command udk option a&m arguments (am i) rygyJ oHk;wJhtcgrSm


vuf&SdtoHk;jyKaewJh user awGtm;vHk;&JU login name, terminal line, login time, remote
hostname pwJhtcsuftvufawGudk azmfjyay;wmawGU&rSmjzpfygw,f/

who command udk argument jzpfwJh am i eJUwGJoHk;wJhtcgrSm ,ckvuf&Sdrdrd[m


b,f user name jzpfw,fqkdwmudk tcsuftvuftwdtuseJU azmfjyay;wmudk awGU&rSm
7

Moscow Institute of Electronic Technology

Capt.ZayYarWin

jzpfygw,f? (-u) option u tvkyfvkyfcJhwJhMumcsdefudkyg azmfjyay;wmjzpfygw,f/ .


trSwftom;jyxm;wmuawmh rdrdjzpfw,fqkdwmudkqdkvdkygw,f/
command pwd
user vuf&Sda&mufaewJh (tvkyfvkyfaewJh) current directory udk azmfjyay;ygw,f/
Syntax:
$ pwd

Example:
[myanmar@panda myanmar]$ pwd
/home/myanmar

command cd
vuf&Sda&mufaewJh (tvkyfvkyfaewJh) directory rS tjcm; directory wpfckudk
ajymif;wJhtcgrSm toHk;jyKygw,f/
Syntax:
$ cd pathname

Example:
[myn@panda myn]$ cd /etc/sysconfig
[myn@panda sysconfig]$

vuf&Sda&mufaewJh directory uaeNyD; /etc/sysconfig directory xJudk a&mufoGm;rSm


jzpfygw,f? MS-DOS rSmtoHk;jyKwJh cd command eJUwlygw,f/
command ls
Directory xJrSm yg0ifwJh file awG&JU list ukdazmfjyay;ygw,f/ rdrda&mufaewJh
directory xJrSmyg0ifwJh file awGudkodvdkwJhtcg toHk;jyKEdkifygw,f/ MS-DOS rSm
toHk;jyKwJh dir command eJU twllwlyJjzpfygw,f/
Syntax:
$ ls
$ ls [options] directory

Example:

Moscow Institute of Electronic Technology

Capt.ZayYarWin

ls command udk options awGa&m? arguments awGa&mrygyJ toHk;jyKwJhtcgrSm


yg0ifwJhzkdifawG&JU list udk azmfjyay;wmudk jrif&rSmjzpfygw,f? options awG arguments

awGeJUwGJoHk;wJhtcg b,fvdkuGmjcm;rIU&Sdw,fqdkwm uRefawmfwdkUqufNyD;Munfh&atmif-

(-a) option udk wGJoHk;jcif;tm;jzifh hidden file awGudkygazmfjyay;wmudk awGU&rSm


jzpfygw,f? zdkifawG&JUtprSm .eJU pxm;wJhzdkifawG[m hidden file awGjzpfygw,f/

Moscow Institute of Electronic Technology

Capt.ZayYarWin

(-l) option uawmh yg0ifwJhzdkifawG&JU list ukd tcsuftvuf twdtus long format

eJU azmfjyay;wm awGU&rSmjzpfygw,f/ azmfjyxm;wJh tcsuftvufawGu bmawGudkqdkvdkw,f


qdkwm atmufrSm&Sif;jyxm;ygw,f-

option (l eJU d) udk wGJoHk;xm;wmjzpfygw,f? rdrdodvkdwJh directory /bin &JUtcsuf


tvufawGudk azmfjyay;rSm jzpfygw,f/ /bin u directory jzpfaewJhtwGuf -d option udk
wGJoHk;xm;wmjzpfygw,f? 'Dae&mrSm -d option rygyJ oHk;vdkufr,fqdk&ifawmh /bin xJrSm
&SdaewJhzdkifawG&JU list udkyJjrif&rSmjzpfygw,f/

command ln
File awG wpfckeJUwpfckMum; link jyKvkyf&mrSm toHk;jyKygw,f/ hard link eJU soft
link (symbolic link) qdkNyD; (2)rsdK;&Sdygw,f/ bmawGuGm;jcm;w,fqdkwm atmufrSmjyxm;wJh

OyrmawGudk wpfqifhcsif;avhvmMunhfvdkuf&if oabmaygufrSmjzpfygw,f/


Syntax:
$ln source destination
$ln [options] source destination

Option:
[-s] symbolic link
Example:

10

Moscow Institute of Electronic Technology

Capt.ZayYarWin

Hard link jyKvkyfwmudk Oyrmjyxm;wmjzpfygw,f/ yxrqHk; file1 trnfeJU


zdkifwpfck create vkyfNyD; zdkifxJrSm Union of Myanmar qdkwJh text ukd &dkufxnfhvkdufyg
w,f/ tJ'Dhaemuf ln command ukd toHk;jyKNyD; file2 trnfeJU file1 &JU link file wpfck
create vkyfvdkufygw,f/ ls -l command udk toHk;jyKNyD; 'DzdkifESpfck&JU tcsuftvufawGukd
avhvmMunhfwJhtcgrSm uRefawmfwdkU jrif&wJhtwdkif; link jzpfwJhtwGuf tcsuftvufawG
tm;vHk;twlwljzpfaewmudk awGU&rSmyg/ ykdNyD;aocsmatmif cat command eJU file2 udk
zwfBunfhvdkufwJhtcg file1rSm uRefawmfwdkU&dkufcJhwJhtwdkif; Union of Myanmar
jzpfaewmudkawGU&rSmyg/ ,ck uRefawmfwkdU avhvmcJhwm[m current directory xJrSmyJ
hard link file jyKvkyfwmjzpfygw,f/ rwlnDwJh directory rSm &SdaewJh file awGudkvnf;
hard link jyKvkyfvdkU&ygw,f/ tcsdKUaom directory awGtwGuf &dk;&dk; user awGuawmh
rvkyfEdkifygbl;? superuser (root) account jzifhom jyKvkyfEdkifygw,f/ Oyrmudk avhvm

MunfhygOD;-

Symbolic link jyKvkyfwmeJU ywfoufNyD; uRefawmfwdkUqufNyD;avhvmMunhfygr,f?


symbolic link uawmh Windows rSmtoHk;jyKwJh shortcut oabmrsdK;ygyJ? &Sif;vif;

oGm;atmif OyrmukdavhvmMunfhyg/

11

Moscow Institute of Electronic Technology

Capt.ZayYarWin

file3 [m file1 &JU symbolic link jzpfwmudk awGU&rSmyg? wenf;tm;jzifh


shortcut ygyJ? file size uvnf; rl&if; file1 xufi,faewmudkawGU&rSmyg? file3 ukd
zwfMunfhvdkufwJhtcgrSmvnf; Union of Myanmar udkyJ awGU&rSmjzpfygw,f/ ln
command eJUygwfoufNyD; oabmaygufr,fvkdUarQmfvifhygw,f/

command cat, less


Text file awGudkzwf&mrSm toHk;jyKygw,f/ cat command ukd wjcm;oHk;vdkU&wJh
function awGvnf;&Sdygao;w,f/
Syntax:
$ cat file

Example:
[myn@panda myn]$ cat file1
My name is Mg Mg.
I live in Myanmar.
[myn@panda myn]$

file1xJrSm&SdwJh text awGudk screen rSm awGU&rSmjzpfygw,f?


[myn@panda myn]$ cat file1 file2 > file3

Text file jzpfwJh file2 xJudk file1 xJu text awGaygif;xnfhNyD; file3 tjzpf file
topfxyfNyD; create vkyfvdkufwmjzpfygw,f/
cat command eJUygwfoufNyD; aemufvmr,fh lab: No.10 rSmxyfNyD; awGU&OD;rSm
jzpfygw,f? tu,f uRefawmfwdkU zwfvdkwJh text file [m size BuD;rm;NyD;wJh zdkifrsdK;qdk&if
awmh text awGudk screen rSm vQyfwjyufyJjrifvdkuf&NyD; file &JU atmufqHk;udk csufcsif;

a&mufoGm;rSmjzpfwJhtwGuf uRefawmfwdkUtwGuf tqifrajyawmhygbl;? tJ'DhtwGuf aemufxyf


toHk;jyKEdkifwJh command uawmh less jzpfygw,f/
12

Moscow Institute of Electronic Technology

Capt.ZayYarWin

command less uawmh text file awGudk zwf&mrSm ydkNyD;tqifajywmudk awGU&rSm

jzpfygw,f/
Example:
[myn@panda myn]$ less file1

zdkifxJrSmygwJh text awGudk pmrsufESmtvdkuf wpfrsufESmcsif;pD screen rSm display


vkyfay;rSm jzpfygw,f/ <Page Up>, <Page Down> key awGudktoHk;jyKNyD;awmh
rdrdtvdk&Sdovdk txufatmuf? twuftqif;vkyfNyD; zwfoGm;vdkU&ygw,f/ jyefxGufvdkwJhtcg
rSmawmh q odkUr[kwf keyboard uae exit vdkU &dkufvdkuf&HkygyJ/
command file
'D command uawmh file type trsdK;tpm;udk azmfjyay;ygw,f/ uRefawmfwdkUrSm
&SdaewJh file awG[m b,fvdk file type trsdK;tpm;vJqdkwmudk 'D file command u
tvG,fwul azmfjyay;ygw,f/
Syntax:
$ file somefile

Example:

command cp
File eJU directory awG copy vkyf&mrSm toHk;jyKygw,f/
Syntax:
$ cp [options] Source Dest
$ cp [options] Source Directory

13

Moscow Institute of Electronic Technology

Capt.ZayYarWin

Example:
[myn@panda myn]$ cp file1 file2

rlv&SdwJh file1 udk copy vkyfNyD; file2 trnfeJU create vkyfvkdufwmjzpfygw,f/


[myn@panda myn]$ cp file1 file2 /home/myanmar

vuf&Sda&mufaewJh directory xJuzdkifawGjzpfwJh file1 eJU file2 udk /home/myanmar


xJodkU copy vkyfvdkufwmjzpfygw,f/
[myn@panda myn]$ cp i file1 file2

rl&if;zdkifjzpfwJh file1 uae file2 tjzpf copy vkyf&mrSm rlvuwnf;u file2


emrnfeJU trnfwl&SdaecJh&if overwrite vkyfrvkyfqdkwmudk (-i) option u user udk
confirm vkyfcdkif;rSmjzpfygw,f/
command mv
mv command ukdawmh function (2)rsdK;twGuf toHk;jyKygw,f? zdkifawGudk
directory wpfckuae wpfjcm; directory wpfckudk move vkyfwJhtcgeJU aemufwpfckuawmh
file (odkU) folder awG&JU trnfudk rename vkyfwJhtcg toHk;jyKEdkifygw,f/
Syntax:
$ mv old_filename new_filename
$ mv file1 file2 directory

Example:
[myn@panda myn]$ mv file1 file2

file1 ukd file2 tjzpf rename vkyfvdkufwmjzpfygw,f? tu,f rdrday;vdkufwJh


file2 emrnfeJU rlvuwnf;u trnfwl file &Sdaew,fqdk&if tJ'Dh file2 xJudk file1 &JU
tcsuftvufawGtm;vHk;u replace vkyfvdkufrSm jzpfygw,f?
[myn@panda myn]$ mv i file1 file2

(-i) option udk toHk;jyKjcif;tm;jzifh txufrSm azmfjycJhwJhtwdkif; rdrdtopfay;csifwJh


new filename [m rlvuwnf;u toHk;jyKNyD;jzpfaer,fqdk&if overwrite vkyfrvkyf user
udk message jyrSmjzpfygw,f/
[myn@panda myn]$ mv file1 dir1

file1udk dir1xJodkU move vkyfvdkufwm jzpfygw,f/


14

Moscow Institute of Electronic Technology

Capt.ZayYarWin

[myn@panda myn]$ mv dir1 dir2

dir1 udk dir2tjzpf rename vkyfvkdufwm jzpfygw,f/

command rm
'D command udkawmh file awGeJU directory awG delete vkyf&mrSm toHk;jyKygw,f/
Syntax:
$ rm filename
$ rm r directory

Directory udk delete vkyf&mrSm (-r) option udk toHk;jyKxm;wmjzpfygw,f/


Example:
[myn@panda myn]$ rm file1 file2
[myn@panda myn]$ rm r dir1 dir2

Command rm udk toHk;jyK&mrSm owdjyK&rSmuawmh Linux [m Windows


rSmuJhodkU delete vkyfrdwmudk undo jyefvkyfvdkU&wJh command r&SdwJhtwGuf 'D command

udk roHk;cifrSm owdjyKNyD;rStoHk;jyKoifhygw,f/


command mkdir
Directory (folder) topf create vkyf&mrSm toHk;jyKygw,f/
Syntax:
$ mkdir dir_name

Example:
[myn@panda myn]$ mkdir yangon

vuf&Sda&mufaewJh directory xJrSmyJ


vkyfvdkufwm jzpfygw,f/

yangonqdkwJh

folder wpfck

create

[root@panda root]# mkdir /home/myanmar/yangon

vuf&Sda&mufaewJh directory(root) uaeNyD; /home/myanmar directory xJrSm


yangon qdkwJh folder udk create vkyfvkdufwmjzpfygw,f/

15

Moscow Institute of Electronic Technology

Capt.ZayYarWin

command rmdir
Directory(folder) udk delete vkyf&mrSmoHk;ygw,f? 'D command udk toHk;jyKwJh
tcgrSm owdjyK&r,fhtcsufuawmh rdrdzsufvdkwJh directory (folder) [m txJrSm rnfonfh
data rQr&SdwJh empty folder jzpfaerSom 'D command ukd oHk;vdkU&rSmjzpfygw,f/
Syntax:
$ rmdir dir_name

Example:
[root@panda myn]# rmdir /home/myanmar/yangon

zsufcsifwJh folder u vuf&Sd directory xJrSm r&Sdbl;qdk&ifawmh folder &SdaewJh path


name jzpfwJh /home/myanmar udkyg azmfjyNyD; oHk;&rSmjzpfygw,f/
command chmod
'D chmod command udkawmh file eJU directory awG&JU access permission udk
management vkyf&mrSm toHk;jyKygw,f/ Linux [m uRefawmfwdkU odxm;wJhtwdkif;
multi-task system jzpf&Hkomru system wpfckwnf;udk wpfcsdefwnf; wpfjydKifwnf;rSm
user trsm;tjym;toHk;jyKEdkifwJh multi-user system trsdK;tpm;vnf;jzpfygw,f/ tJ'gaMumifh
uRefawmfwkdU&JU computer xJrSm&SdwJh ta&;BuD; file, data awGudk uRefawmfwdkU cGifhjyKvdkwJh
user awGuvGJNyD; tjcm; rvdkvm;wJh user awG vma&mufNyD; access rvkyfEdkifzdkUtwGuf
security system vdktyfygw,f/ tJ'DhtwGuf uRefawmfwkdU chmod command udk
toHk;jyKNyD; file access permission setting eJU user awG&JUtMum;rSm security udk
xdef;odrf;xm;Edkifygw,f/ uRefawmfwkdU qufNyD;avhvmMunhf&atmif? yxrqHk; uRefawmfwdkU
taeeJU permission setting udk em;vnfxm;zdkU vdktyfygw,f? permission setting
twGufodxm;&r,fh user trsdK;tpm;awGuawmhu

owner

Group

others

all(u, g and o)

Permission trsdK;tpm;awGuawmhr

read access

write access

Execute(run)

16

Moscow Institute of Electronic Technology

Capt.ZayYarWin

Permission setting rSm user trsdK;tpm;awGjzpfwJh u(owner), g(group), o(others)


twGuf read, write, execute permission access trsdK;tpm;awGukd uRefawmfwdkU b,fvdk
management vkyfEdkifr,fqdkwm atmufrSmazmfjyxm;wJhyHkxJrSm MunfhygOD;-

Permission setting udkawmh ls command ukd toHk;jyKNyD; MunfhEdkifygw,f?

atmufygtwkdif; awGU&rSmjzpfygw,f[zayar@zayar-pc zayar]$ ls -l a.out


-rwxrwxr-x

1 zyw

zyw

497151 Jan 2 02:05 a.out

&vmwJh result t& 'Dzdkif&JU owner uawmh zyw jzpfNyD;awmh owner u 'Dzdkifudk
read, write, execute vkyfEdkifygw,f? group zyw xJrSmyg0ifwJh member user
awGtm;vHk;u 'Dzdkifudk read, write, execute vkyfEdkifygw,f? owner eJU group xJrSm
ryg0ifwJh tjcm;aom user awGtm;vHk;u 'Dzdkifudk read vkyfEdkifygw,f? 'Dzdkif[m program
wpfyk'fjzpfcJhr,fqdk&if run (execute) vdkU&ygw,f? write vkyfvdkUawmhr&ygbl;/ 'D
permission setting udk chmod command udktoHk;jyKNyD; owner u usefwJh user
awGtwGuf access permission udk change vdkU&ygw,f/ command udktoHk;jyKyHkuawmh
atmufygtwdkif;jzpfygw,fSyntax:
$ chmod [mode] file

Example:
[myn@panda myn]$ chmod g+w file

(add write access for the group)

[myn@panda myn]$ chmod o-rwx file

(remove all permission for the other)

[myn@panda myn]$ chmod u+x file

(allow the file owner to execute the file)

[myn@panda myn]$ chmod a+rw file

(allow everyone to read and write to the file)

[myn@panda myn]$ chmod ug+r file

(allow the owner and group to read the file)

17

Moscow Institute of Electronic Technology

Capt.ZayYarWin

chmod command udk numerical value wefzdk;udk toHk;jyKNyD;awmhvnf; toHk;jyK


Edkifygw,f/ character awG&JU value ukd owfrSwfxm;yHkuawmh r=4, w=2, x=1, -=0

jzpfygw,f/ atmufrSmazmfjyxm;wJh OyrmudkavhvmMunfhygOD;?


Example:

[myn@panda myn]$ chmod 544 file

qdkvdkwmuawmh 'Dzdkifukd owner taeeJU read, execute vkyfEkdifygw,f? group


xJrSmyg0ifwJh user awGtaeeJU read only jzpfygw,f? tjcm;aom user awGtaeeJUvnf;
'Dzdkifudk read only access vkyfvdkU&ygw,f? oabmaygufNyD;jzpfr,fvdkU ,lqygw,f/
tu,f uRefawmfwkdU[m r, w eJU x wdkU&JU owfrSwfwefzkd;awGudk arhoGm;wJhtcg
odkUr[kwf wefzdk;wpfckeJUwpfck a&maxG;NyD; rrSwfrdwJhtajctaersdK;rSm toHk;jyKEdkifzdkUtwGuf
enf;wpfck&Sdygao;w,f/ binary wefzdk;eJU wGufcsufwmjzpfygw,f/ avhvmMunfhygOD;-

tESpfcsKyftaeeJU uRefawmfwdkUjyefaqG;aEG;&&if chmod command toHk;jyKyHkudk


(3)enf;eJU avhvmcJhwmjzpfygw,f? yxrenf;uawmh[myn@panda myn]$ chmod ug+rw some_file

'kwd,enf;uawmh numerical value wefzdk;eJUtoHk;jyKwm jzpfygw,f[myn@panda myn]$ chmod 777 some_file

wwd,enf;uawmh numerical value wefzdk;udk binary wefzdk;eJU pOf;pm;wGufcsufNyD;


toHk;jyKcJhwmjzpfygw,f/ em;vnfEdkifzdkUtwGuf enf;(3)enf;pvHk;eJU vufawGUrsm;rsm;jyKvkyf
MunfhzdkU tMuHjyKvdkygw,f/
18

Moscow Institute of Electronic Technology

Capt.ZayYarWin

command chown
change owner jzpfygw,f/ file &JU ownership udk ajymif;zdkU vdktyfwJhtcgrSm

toHk;jyKygw,f/
Syntax:
# chown new_owner file

'D command udk toHk;jyKzdkUtwGuf superuser(root) jzpfzdkUvdkygw,f? tJ'gaMumifh


yxrqHk; uRefawmfwdkUtaeeJU normal user account($) uae superuser account(#) udk
ajymif;&rSmjzpfygw,f/ su command udktoHk;jyK&rSm jzpfygw,f/ rlv account udk
jyefajymif;vdkwJhtcgrSmawmh exit command udk toHk;jyK&rSmjzpfygw,f/
[zyw@zayar-pc zyw]$ su
Password:
[root@zayar-pc zyw]#
[root@zayar-pc zyw]# exit
exit
[zyw@zayar-pc zyw]$

Example:

erlemudk wpfqifhcsif; avhvmMunhfyg? oabmaygufr,fvdkU arQmfvifhygw,f/

Line No.4 rSm jrif&wJh 'Dzkdif&JU owner [m command udkoHk;tNyD;


tjcm; owner name odkU ajymif;oGm;wmudk awGU&rSmjzpfygw,f/

19

Line No.9 rSm

Moscow Institute of Electronic Technology

Capt.ZayYarWin

vufawG>av>usifhcef;rsm;

1/

rdrd\ home directory xJwGif Dir trnfjzifh directory(folder) wpfck


wnfaqmufyg/ tqdkyg Dir directory xJwGif subdirectory rsm;tm; atmufwGif
azmfjyxm;onfhtwdkif; wnfaqmufyg-

Dir/dir1/dir11
Dir/dir1/dir12
Dir/dir2
Dir/dir2/dir22/dir23

(&&Sdvmaom result tm; enf;jyxHjyoyg/)


2/

rdrd\ home directory xJwGif yg0ifaom zkdifrsm;tm;vHk;udk if;wdkUESifhoufqdkifaom


tcsuftvuf tjynfhtpHkjzifh Munfh&IUyg/ .bash_profile wGifyg0ifaom text rsm;udk
display vkyfjyyg/ .bash_profiletm; copy vkyf profile_new ESifh
profile_new1 trnfrsm;jzifh zdkifrsm; wnfaqmufyg/ Newfolder trnfjzifh
directory wpfckwnfaqmufyg/ profile_new1tm; NewfolderxJodkU a&TUyg/
profile_new1tm; newprofile odkU trnfajymif;yg/ newprofile \
symbolic link tjzpf newprofile1ESifh newprofile2 wdkUtm; wnfaqmufyg/
(&&Sdvmaom result udk enf;jyjzpfolxHjyo enf;jyar;aom ar;cGef;rsm;tm;
ajzqdkyg/)

3/

newprofile1 \ permission setting tm;Munfh&IUyg/ xkdUaemuf tqdkygzkdiftm;


vm access vkyfonfh owner ESifh group wGifryg0ifaom tjcm; user rsm;tm;
write vkyfEdkif&ef permission setting tm;jyifqifay;yg/
-newprofile2 udk owner jzpfolwpfOD;wnf;tm; read, write, execute vkyfcGifhjyK
group ESifh tjcm;aom user tm;vHk;udk rnfodkUrQ access rvkyfEdkif&ef permission
setting tm;jyifqifay;yg/
-newprofile2 udk owner jzpfoltm; read, write, execute vkyfcGifhjyK group
user rsm;twGuf execute vkyfcGifh? tjcm;aom user rsm;twGuf read ESifh execute
jyKvkyfEkdif&ef jyKvkyfay;yg/ (rSwfcsuf/
/numerical value toHk;jyKaom enf;jzifh
om permission setting tm;jyifqifyg/)

enf;]y]zpfoludk]yoI ar;cGef;rsm;tm; ajzqdkyg/

20

Moscow Institute of Electronic Technology

Capt.ZayYarWin

Laboratory Exercise No (10)


I/O Redirection, Pipes, Filters and Regular expressions
Lab:10 rSm uRefawmfwkdUxdawGUMu&r,fh Command awGuawmh atmufygtwkdif;

jzpfygw,f1

cat

Allows you to look, modify or combine a file.

tee

Read from an input and write to a standard output or file.

wc

Print the number of lines, words and characters in file.

spell

To check spelling from a file or user input.

sort

Sorts the lines in a text file.

cut

Divide a file into several parts.

diff

Display the differences between two files.

grep

Search file for pattern and print matching lines

Redirection of Input and Output


uRefawmfwdkU toHk;jyKcJhwJh command trsm;pk[m &&SdvmwJh result ukd standard
output jzpfwJh Screen rSm azmfjywmudkawGUcJhMu&NyD;jzpfygw,f/ tcsdKUaom oauFwrsm;udk
toHk;jyKNyD;awmh command awG&JU output ukd direction ajymif;vJay;Edkifygw,f/ OyrmzdkifxJodkUydkUNyD; save Edkifygw,f/ y&ifwmuJhodkUaom device awGxHodkUydkUay;Edkifygw,f/
xkdUtjyif tjcm;aom command qDodkUydkUay;NyD; command ESpfck wpfNydKifwnf; tvkyfvkyf
Edkifygw,f/ tJ'Dh redirection vkyfay;wJh oauFwawGuawmh > eJU < yJjzpfygw,f/
OyrmudkavhvmMunhfyg[myn@panda myn]$ ls > list.txt

> oauFwu ls command &JU output ukd screen odkUrjyyJ list.txt file xJodkU
direction ajymif;ay;vdkufwmjzpfygw,f/ tu,f uRefawmfwdkU redirection vkyfay;vdkufwJh
list.txt zdkif[m rlvuwnf;u &SdNyD;om; jzpfaecJh&if overwrite vkyfoGm;rSmjzpfygw,f/ tJ'Dh
jyemtwGuf >> oauFwudk tokH;jyKEdkifygw,f/
[myn@panda myn]$ ls >> list.txt

>> oauFwu overwrite rvkyfyJ rlvzdkif&JUatmufrSmqufNyD; write vkyfoGm;atmif

ulnDay;ygw,f/
21

Moscow Institute of Electronic Technology

Capt.ZayYarWin

Pipes and Filters


NyD;cJhwJh Lab-9 rSmpNyD; Unix command awG[m argument wpfck(odkU) wpfckxufydk
wJh argument awGeJU b,fvdktvkyfvkyfw,fqdkwm uRefawmfwdkU em;vnf oabmaygufcJhNyD;
jzpfygw,f/ uRefawmfwdkU[m command wpfckcsif;qDudkyJ command line rSm toHk;jyKcJhMu
wmjzpfygw,f/ ,ck 'Dtcef;rSmawmh command wpfckwnf;udkyJ r[kwfawmhygbl;? ESpfck
(odkU) ESpfckxufydkwJh command awGudk Pipes eJU Filters awG toHk;jyKcsdwfquf combine
vkyfNyD;awmh command line rSm command wpfckwnf;yHkpHrsdK;eJU toHk;jyKoGm;rSmjzpfygw,f/
tvkyfESpfckudk command wpfaMumif;wnf;eJU wpfNydKifwnf;vkyfvdkufwJh oabmygyJ/ Linux
user awGtaeeJUCommand awGodrS tvkyfvkyfvdkU&wJh Command line interface rSm
bmhaMumifh ydkNyD;tvkyfvkyfaeMuovJ? Graphic mode xuf bmawGydkNyD; tm;omcsufawG&Sdae
w,fqdkwm 'Davhusifhcef;udk NyD;oGm;wJhtcgrSm oabmaygufoGm;rSmjzpfygw,f/
Using a Pipe
Pipe &JU oauFwuawmh | jzpfygw,f/ command awGwpfckeJUwpfckudk csdwfqufwJh
tcgrSm pipe u ulnDay;ygw,f/ yxr command &JU Standard output (stout) udk
'kwd, command &JU standard input (stdin) tjzpf | u jyKvkyfay;ygw,f/ >
eJUoabmw&m;csif; qifwlygw,f/ 'gayr,fh | eJU > &JUuGmjcm;csufuawmh | u
command wpfck&JU output udk aemuf command qDudkydkUay;wmjzpfygw,f/ > vdk file
udk ydkUay;wm r[kwfygbl;/ Oyrmudk em;vnfatmifavhvmMunfhyg/
[myn@panda myn]$ cd /etc
[myn@panda

etc]$ ls | less

'D OyrmxJrSm ls eJU less command ESpfckudk wGJoHk;xm;wmjzpfygw,f/ 'D /etc


directory xJrSm system &JU configuration file awG trsm;BuD;&Sdygw,f/ yxrqHk; ls
command wpfckwnf;udk toHk;jyKNyD; 'D directory xJrSmyg0ifwJh file awG&JU list udk
Munfhyg/ 'D directory xJrSm zdkifawGtajrmuftrsm;&SdaewJhtwGuf one screen eJU display
vkyfzdkUrqHhygbl;/ tJ'DhtwGuf tay:ydkif;rSm&SdwJh zdkifawGudkjrif&zdkU tcuftcJawGU&rSm jzpfyg
w,f/ 'Djyomemudk ajz&Sif;EdkifzdkUtwGuf less command udk wGJzuftoHk;jyKEdkifygw,f/
ls rS xGufvmr,fh output udk less command &JU input (argument) tjzpf |
tultnDeJUydkUay;vdkuf&if less u wpfBudrfrSm one screen ESKef;eJU display vkyfay;rSmjzpfwJh
twGuf tqifajyoGm;aprSm jzpfygw,f/ Pipe u yxr command &JU output udk 'kwd,
command &JU input tjzpfydkUay;vdkufwmyJ jzpfygw,f/ aemuf Oyrmwpfckudk avhvmMunfh
ygOD;[myn@panda myn]$ cat myanmar.txt
Yangon
Mandalay
Bagan

22

Moscow Institute of Electronic Technology

Capt.ZayYarWin

[myn@panda myn]$ cat myanmar.txt | wc


3

22

yxrqHk; cat command eJU zkdifxJrSmyg0ifwJh text awGudk standard output rSm
display vkyfvdkufygw,f/ 'kwd, command line rSmawmh cat &JU output udk stout rSm
rjyawmhyJ |uaeNyD; wc command qDudkydkUay;vdkufygw,f (wc word count)/ |
uydkUay;vdkufwJh input udktoHk;jyKNyD; wc command u zdkifxJrSmyg0ifwJh line ta&twGuf?
word ta&twGufeJU character ta&twGufudk count vkyfNyD; stout rSm azmfjyay;wm jzpfyg
w,f/ vufawGUjyKvkyfavhvmMunfhyg/
Using a Filter()
Filter qkdwmuawmh Unix command awGygyJ/ Pipe u uRefawmfwdkU avhvmcJhwJh
twdkif; command wpfck&JU standard output udk tjcm; command wpfck&JU toHk;jyK&r,fh
input (argument) tjzpf ydkUay;ygw,f/ Filter awG tvkyfvkyfyHkuawmh stdin rS data udk
&,lNyD;awmh result udk stout odkUxkwfay;ygw,f/ text file awGukd Filter toHk;jyKNyD;
modify vkyfay;Ekdifygw,f/ Linux rSm toHk;rsm;wJh filter awGuawmh cat, cut, grep, sort,
spell, wc, ponfjzifh jzpfygw,f/
command cat
Filter cat u standard input rS uRefawmfwdkU &dkufxnfhvdkufwJh data udk copy
vkyfNyD; screen rSmazmfjyay;ygw,f/ > oauFweJUwGJzufNyD; input ukd file odkUydkUay;edkifyg
w,f/
Syntax:
$ cat > file

Example:
[myn@panda myn]$ cat
Russian Federation
Russian Federation
[myn@panda myn]$

Filter cat udk argument rygyJ wpfckwnf;toHk;jyKwJhtcgrSm standard input udk


vufcHNyD;awmh standard output rSm output jyefxkwfay;ygw,f/
[myn@panda myn]$ cat > some_file
How are you!
[myn@panda myn]$

uRefawmfwdkU&dkufxnfhvdkufwJh input ukd > rS file xJodkUydkUay;ygw,f/


23

Moscow Institute of Electronic Technology

Capt.ZayYarWin

command tee
Filter tee uawmh standard input udk read vkyfNyD;awmh standard output rSm
xkwfay;ygw,f/ wpfcsdefwnf;rSmyJ output udk file xJrSmvnf; save ay;ygw,f/
Syntax:
$ tee file

Example:
[myn@panda myn]$ tee test.txt
Input from keyboard.
Input from keyboard.
[myn@panda myn]$ cat test.txt
Input from keyboard.

yxrOD;pGm command line rSm tee test.txt udk &dkufvdkufwJhtcgrSm user input
awmif;ygw,f/ Keyboard rS Input from keyboard. qdkwJh text udk &dkufxnfhvdkufyg
w,f/ tJ'DhtcgrSm standard output jzpfwJh screen rSm uRefawmfwdkU&dkufvdkufwJh text udk
output taeeJU jyef display vkyfay;NyD;awmh wpfcsdefwnf;rSmyJ test.txt zdkifxJrSmvnf;
uRefawmfwdkU &kdufvdkufwJh text udk oGm;NyD; save ay;ygw,f/ aocsmatmif cat command
eJU zdkifudk display vkyfjyxm;ygw,f/ atmufrSmjyxm;wJhOyrmudk qufNyD;avhvmMunfhygOD;-

'Dae&mrSmawmh yxr command jzpfwJh ls &JU output udk | tultnDeJU input


tjzpftoHk;jyKNyD; result udk screen eJU test.txt rSm save vdkufwmjzpfygw,f/ -a option
uawmh test.txt zkdifxJrSm rlv&SdaewJh text awGukd replace rvkyfyJ atmufrSxyfxnfhcsifwJh
twGuf toHk;jyKwmjzpfygw,f/
24

Moscow Institute of Electronic Technology

Capt.ZayYarWin

command wc
Filter wc uawmh word count command jzpfygw,f/ uRefawmfwdkU odvdkwJh
zdkifxJrSm&SdwJh line ta&twGuf? word ta&twGufeJU character ta&twGufwdkUudk output

rSm jyay;ygw,f/
Syntax:
$ wc [option] file

Option:
-c

, Print the byte counts

-m , Print the character counts


-l

, Print the newline counts

-L

, Print the length of the longest line

-w , Print the word counts

Example:
[myn@panda myn]$ cal

February 2006
Su Mo Tu We Th Fr
1 2 3
5 6 7 8 9 10
12 13 14 15 16 17
19 20 21 22 23 24
26 27 28

Sa
4
11
18
25

[myn@panda myn]$ cal | wc

37

134

yxr command line rSm cal command u calendar udk print vkyfay;ygw,f/
'kwd, command line rSmawmh wc command u calendar rSm&SdwJh line ta&twGuf?
word ta&twGufeJU character ta&twGufawGudk azmfjyay;oGm;wmjzpfygw,f/
command spell
Filter spell uawmh file xJrSm&SdwJh words awGudk system rSm&SdwJh spelling list eJU
checking vkyfNyD; spelling list rSmrygwJh rSm;aewJh spelling awGudk standard output rSm

xkwfay;ygw,f/
Syntax:
$ spell file

25

Moscow Institute of Electronic Technology

Capt.ZayYarWin

Example:
[myn@panda myn]$ spell foodlist
soop
vegetebels
[myn@panda myn]$

command sort
Filter sort ukdawmh text file xJrSm&SdwJh pmaMumif;awGudk sorting vkyf&mrSm toHk;jyK
ygw,f/ rdrd sorting jyKvkyfvdkwJh tay:rSmrlwnfNyD;awmh options awGeJU wGJzuftoHk;jyKEdkif

ygw,f/
Syntax:
$ sort [-bdfimMnru] [-k fields] filename [-o output_file]

Option:
-b

Ignores spaces at the beginning ot the line.

-d

Uses dictionary sort order and ignores the punctuation.

-f

Ignores caps.

-i

Ignores nonprinting control characters.

-m

Merges two or more input files into one sorted output.

-M

Treats the first three letters in the line as a month.

-n

Sorts by beginning of the number at the beginning of the line.

-r

Sorts in reverse order.

-u

If line is duplicated only display once.

-k fields

Sorts by fields, usually by tabs.

filename

The name of the file that needs to be sorted.

-o output_file

Sends the sorted output to a file.

Example:
[myn@panda myn]$ cat myanmar.txt
yangon
mandalay
bagan

26

Moscow Institute of Electronic Technology

Capt.ZayYarWin

[myn@panda myn]$ sort myanmar.txt


bagan
mandalay
yangon
[myn@panda myn]$

command cut
File odkU input data wpfckckrS uRefawmfwkdU vdktyfwJh text awGudk column (odkU)
field tvdkuf cut vkyfNyD; screen rSm output xkyfay;vdkwJhae&mrSm cut udk toHk;jyKygw,f/
Syntax:
$ cut -c list file
$ cut -f list [-d delim] [-s] file

list- pmaMumif;wpfaMumif;rSm uRefawmfwdkU select vkyfvdkwJh field numbers odkU column


numbers awGudk azmfjyay;ygw,f/ Oyrm-(1,4,7) qdkwmuawmh field odkU column
1,4 eJU 7 wdkUudk azmfjywmyg/ (1-3,6) uawmh column 1 rS 3 txdeJU 6 wdkUudk
nTefjyygw,f/ (-5,10)uawmh 1 rS 5 txdeJU 10 jzpfygw,f/ (3- ) qdkwmuawmh 3

rSpNyD; pmaMumif;tqHk;txdjzpfw,fqdkwmudk
OyrmawGrSm avhvmMunfhyg/

qdkvdkygw,f/

ydkrdk&Sif;vif;oGm;atmif

Option:
-c list

Character position. (eg. c1-3 is to print the first 3 character)

-f list

Field position

-d delim

Direction symbol divider of fields

-s list

For f, do not print lines that do not contain the field separator
character

Example:
[myn@panda myn]$ uname
Linux
[myn@panda myn]$ uname | cut -c1-3
Lin
[myn@panda myn]$ uname | cut c4ux
[myn@panda myn]$

27

Moscow Institute of Electronic Technology

Capt.ZayYarWin

uname command u uRefawmfwdkU toHk;jyKaewJh system &JU name udk standard


output rSm jyay;ygw,f/ 'kwd, command line rSmawmh yxrqHk; character (3)vHk;udkyJ
display vkyfcsifwJhtwGuf -c option eJU list rSmawmh 1-3 vdkUay;vdkufwmjzpfygw,f/
yxrqHk; character (3)vHk;jzpfwJh Lin udk uRefawmfwdkU awGU&rSmjzpfygw,f/ wwd,
command line rSmvnf; 'DvdkygyJ/ list rSm (4-) ay;NyD;awmhusefwJh character

awGtm;vHk;udk azmfjyay;vdkufwmjzpfygw,f/ aemufxyf Oyrmudk avhvmMunfhygOD;[myn@panda myn]$ tail -1 /etc/passwd


user1:x:501:501::/home/user1:/bin/bash

1 2 3 4 5

(pdwfrSef;eJU

column number udk a&wGufMunfhwmyg)

[myn@panda myn]$ tail -1 /etc/passwd | cut f1,6 d:


user1:/home/user1
[myn@panda myn]$ date
Sat Feb 11 23:05:50 EST 2006
[myn@panda myn]$ date | cut -f-3,6 -d
Sat Feb 11 2006
[myn@panda myn]$

-d option udk -f option eJUwGJoHk;ygw,f/ -d option eJU uyfvsufwGJoHk;wJh


character uaepNyD; column (field) cGJjcm;ay;ygw,f/

command diff
Command diff uawmh file ESpfckudk ESdKif;,SOfNyD; rwlnDwJh line awGudk print vkyf

ay;ygw,f/ xdkUtjyif 'kwd,zdkifeJU wlnDoGm;zdkUtwGuf yxrzdkifxJrSm b,fae&mawGudk


xyfNyD; add zkdUvdkr,f? delete vkyfzdkUvdkr,f? change zdkUvdkr,f qdkwmawGudkyg azmfjyay;yg
w,f/ yxrzkdifxJu line awGudk < oauFweJUazmfjyNyD; 'kwd,zdkifxJu line awGudkawmh
> oauFweJUazmfjyygw,f/
Syntax:
$ diff file1 file2
Line_number_from_file1 Action line_number_from_file2
< different line from file1.
> different line from file2.

Option:
-b

, Ignore changes in amount of white space.

-c

, Use the context output format

-i

, Ignores the case of letters.

28

Moscow Institute of Electronic Technology

Capt.ZayYarWin

Example:
[myn@panda myn]$ cat myanmar.old
Rangoon
Mandalay
Ayeyarwaddy
[myn@panda myn]$ cat myanmar
Yangon
Mandalay
Ayeyarwaddy
[myn@panda myn]$ diff myanmar.old myanmar
1c1
< Rangoon
--> Yangon
[myn@panda myn]$

Text file ESpfckjzpfwJh myanmar.old eJU myanmar udk uRefawmfwdkU diff


command eJU ESdKif;,SOfMunfhwJhtcgrSm &vmwJh result udk jrif&rSmjzpfygw,f/ (1c1) vdkU
qdkxm;wmuawmh yxrzdkif&JU line No.1 rSm 'kwd,zkdif&JU line No.1eJU change ay;zdkUvdk

w,fvdkU ajymxm;wmyg/ tJ'Dhtcg zkdifESpfck wlnDoGm;rSmjzpfygw,f/ aemufxyf Oyrmwpfck


avhvmMunfhygOD;[myn@panda myn]$ cat division.txt
Mandalay
Ayeyarwaddy
Bago
[myn@panda myn]$ diff myanmar.old division.txt
1d0
< Rangoon
3a3
> Bago
[myn@panda myn]$

ESdKif;,SOfvdkU&vmwJh result t& 'DzdkifESpfck wlnDzdkUtwGuf myanmar.old file &JU line


No.1 rSm&SdwJh Rangoon udk delete vkyfzdkUajymxm;ygw,f(1d0)/ (3a3) uawmh line No.3
rSm division file &JU line No.3 rSm&SdwJh Bago udk add ay;zdkUajymxm;wmjzpfygw,f/

29

Moscow Institute of Electronic Technology

Capt.ZayYarWin

command grep
Filter grep uawmh file xJrSm&SdwJh uRefawmfwdkU &SmvdkwJh text awGudk &SmazGNyD; tJ'Dh
text awGyg0ifwJh pmaMumif;wpfaMumif;vHk;udk screen rSmjyay;ygw,f/ grep udk argument
ESpfckeJU wGJzuftokH;jyKygw,f/ tJ'gawGuawmh uRefawmfwdkU &SmvdkwJh text eJU tJ'Dh text udk
&SmvdkwJh file name yJjzpfygw,f/
Syntax:
$ grep [word_to_lookup] [filename]

Option:
-i

Ignores upper and lower case.

-c

Print out a count of the lines that contain the pattern.

-n

Prefix each lines of output with the line number within its input file.

-v

Print all lines not matching pattern.

Example:
grep stream preface
consist of a stream of
[myn@panda myn]$ grep data preface intro
preface: data in the file
intro: new data
[myn@panda myn]$ fgrep editor\
create" preface
characters. An editor can
be used to create such
[myn@panda myn]$

Regular Expression ( )
uRefawmfwdkU &SmvdkwJh text awG file awGtwGuf grep command u tqifajyap
wmudk awGU&rSmjzpfygw,f/ 'D grep command udk ydkNyD; powerful jzpfapwJh special
character awGvnf; &Sdygw,f/ tJ'Dh special character av;awGudkawmh regular
expression vdkU ac:ygw,f/ Oyrm- uRefawmfwkdU&SmazGvdkwJh (word) pmvHk;wpfvHk;twGuf
pmvHk;aygif;tjynfhtpHk uRefawmfwdkUrodwJh tajctaersdK;awGrSm 'D special character awGu
uRefawmfwdkUudk trsm;BuD;ulnDay;Edkifygw,f/ tJ'Dh special character awGuawmh ^, $, *,
., [] awGyJjzpfygw,f/ uRefawmfwkdU b,fvdk toHk;jyKEdkifw,fqkdwm OyrmawGeJUavhvmMunfh
yg/

30

Moscow Institute of Electronic Technology

Capt.ZayYarWin

^ (Caret)

match expression at the start of a line, as in ^A.

$ (Question)

match expression at the end of a line, as in A$.

\ (Back Slash)

turn off the special meaning of the next character, as in \^.

[ ] (Brackets)
[^ ]

match any one of the enclosed characters, as in [aeiou]. Use


Hyphen "-" for a range, as in [0-9].
match any one character except those enclosed in [ ], as in
[^0-9].

. (Period)

match a single character of any value, except end of line.

* (Asterisk)

match zero or more of the preceding character or expression.

^ oauFwuawmh pmaMumif;wpfaMumif;&JU tprSm&SdwJh character awGeJU oGm;NyD;


match jzpfapygw,f/
[myn@panda myn]$ grep ^A somefile
A cup of water.
[myn@panda myn]$ grep ^Yangon myanmar.txt
Yangon

^ u pmaMumif;wpfaMumif;&JU a&SUqHk;rSm&SdwJh A eJU Yangon udkoGm;NyD; &Smapyg


w,f/ tjcm;ae&mrSm &SdaewJh 'DpmvHk;awGeJU match jzpfrSm r[kwfygbl;/

pmaMumif;wpfaMumif;&JU
oauFwudk toHk;jyKygw,f/

aemufqHk;rSm&SdaewJh

pmvHk;awGukd

&SmzdkUtwGufawmh

[myn@panda myn]$ grep Yangon$ somefile


I live in Yangon
The capital of myanmar is Yangon
[myn@panda myn]$

. uawmh rnfonfh character wpfvHk;eJUrqdk match jzpfygw,f/


[myn@panda myn]$ cat somefile
big
bad bug
bag
bigger
boogy
[myn@panda myn]$ grep b.g file
big
bad bug

31

Moscow Institute of Electronic Technology

Capt.ZayYarWin

bag
bigger

'Dae&mrSm boogy uawmh match rjzpfygbl;/ . u b eJU g Mum;rSm&SdwJh character


wpfvHk;pmtwGufyJ jzpfaevdkUyg/
* uawmh a&SUrSmuyfvsufwGJoHk;wJh character &JU tBudrfBudrfyg0ifwJhpmvHk;awGeJU
match jzpfygw,f/ Oyrm- c* twGuf c, cc, ccc, pwJhpmvHk;awGeJU match jzpfrSm

jzpfygw,f/
[] uawmh bracket xJrSmyg0ifwJh character wpfvHk;vHk;eJU match jzpfapygw,f/
[myn@panda myn]$ grep ca[a-z] somefile
cat
cad
[myn@panda myn]$ grep week[245] somefile
week2 weather
reports on week4
[myn@panda myn]$

atmufrSm jyxm;wJh OyrmeJU &Sif;vif;csufawGudkvnf; avhvmMunfhygOD;grep book files

{search files for lines with 'book'}

grep '^book' files

{'book' at the start of a line}

grep 'book$' files

{'book' at the end of a line}

grep '^book$' files

{lines containing only 'book'}

grep '\^s' files

{lines starting with '^s', "\" escapes the ^}

grep '[Ss]mug' files

{search for 'Smug' or 'smug'}

grep 'B[oO][bB]' files

{search for BOB, Bob, BOb or BoB }

grep '^$' files

{search for blank lines}

grep '[0-9][0-9]' file

{search for pairs of numeric digits}

32

Moscow Institute of Electronic Technology

Capt.ZayYarWin

vufawG>av>usifhcef;rsm;

1/

Text file ESpfckjzpfonfh N1 ESifh N2 udk wnfaqmufyg/ N1 ESifh N2 wGif yg0ifonfh


text rsm;tm; standard output wpfckwnf;wGif azmfjyyg/ xdk output tm; N3 tjzpf
save yg/ N3 tm; spelling checking vkyf output wGifjyaom error rsm;tm; zdkif
N4.error wGif save yg/

2/

N3 zdkifxJrS character a yg0ifaom pmaMumif;rsm;tm; stout wGifazmfjy


grepped zdkiftrnfjzifh save yg/ Filter rsm;udk toHk;jyK grepped zdkifxJwGif

yg0ifaom pmaMumif;ta&twGuf? pmvHk;ta&twGufwdkUudk a&wGufyg/ xkdUaemuf


tqdkygzdkiftm; sorting jyKvkyf output tm; N4 trnfjzifh odrf;yg/ N3 ESifh N4
zdkifESpfcktm; EIdif;,SOfMunfhyg/
3/

Text file wpfckudk wnfaqmufyg/ tqdkyg zdkifxJ&Sd pmaMumif;\aemufqHk;wGif week


yg0ifaom pmaMumif;rsm;tm; &SmazGyg/ pmaMumif;\ tpwGif c jzifhpaom

pmaMumif;rsm;tm; &SmazGyg/

enf;]y]zpfoludk]yoI ar;cGef;rsm;tm; ajzqdkyg/

33

Moscow Institute of Electronic Technology

Capt.ZayYarWin

Laboratory Exercise No (11)


Unix Bourne Again Shell Programming
Lab.11 rSm uRefawmfwkdUxdawGUMu&r,fh Command awGuawmh atmufygtwkdif;

jzpfygw,f1

echo

To display text or value of variable

read

To get input from keyboard and store(data) to variable

test

Check file type and compare values

let

Perform arithmetic on shell variable

exit

Exit the shell

return

To exit the function with the return value specified by n

if-then

Control structure, which


performance of command

case

Provides a choice of one of multiple possible variants

while

Cycle, used for recurrence of commands

10

for-in

Structure for the sequence reference to the values listed


in the list

puts

conditions

for

Programming in BASH
BASH [m command line interpreter jzpf&Hkomru high-level programming
language vnf; jzpfygw,f/ NyD;cJhwJh avhusifhcef;awGrSm command line interpreter tjzpf
uRefawmfwdkU avhvmcJhMuNyD; jzpfygw,f/ 'Dtcef;rSmawmh programming language
wpfcktjzpf shell scripts awGudk avhvmxdawGUMu&rSm jzpfygw,f/ yxrqHk;taeeJU shell
script qdkwm bmvJqdkwmudk &Sif;vif;pGm oabmaygufzdkUvkdygw,f/ Script qdkwmuawmh
uRefawmfwdkU command line rSm toHk;jyKcJhwJh command awGudk pkpnf;NyD; store
vkyfxm;wJh text file jzpfygw,f/ tJ'gaMumifh script qdkwm command awGpkNyD;a&;xm;wJh
file vdkU ajymr,fqdk&ifvnf; &ygw,f/ MS-DOS rSm oHk;wJh .batch file trsdK;tpm;
oabmrsdK;ygyJ/ 'gayr,fh .batch file awGxuf ydkNyD; pGrf;aqmifEdkifygw,f/
Shell script wpfcka&;zdkUtwGuf text editor wpfckckudk toHk;jyKNyD; a&;&ygw,f/
Text editor qdkwmuawmh Word Processor uJUodkU program ygyJ/ Linux System rSm
uRefawmfwdkU toHk;jyKEdkifwJh text editor program awG trsm;tjym;&Sdygw,f/ tJ'gawG
uawmh vi, emacs, pico, gedit, ponfjzifh&Sdygw,f/ uRefawmfwdkU tck vi udk toHk;jyK
34

Moscow Institute of Electronic Technology

Capt.ZayYarWin

NyD; script a&;om;avhvmMunfhMuygr,f/ Shell Script wpfck a&;zdkUtwGuf atmufygtwdkif;


tqifh(3)qifh ausmfjzwf&ygw,f1. Text editor wpfckckudk toHk;jyKNyD; script udk a&;om;&ygr,f/
Example:
[myn@panda myn]$ vi my_script

text editor vi rSm toHk;jyKwJh command key tcsdKUudk atmufuZ,m;rSm

azmfjyxm;ygw,fPurpose
To write text
To save file
To save file with file name
To quit the vi editor
To quit without saving
To save and quit vi editor

vi command syntax
Esc + i
Esc + : + w
Esc + : + w filename
Esc + : + q
Esc + : + q + !
Esc + : + w + q

2. a&;NyD;oGm;wJh script ukd execute vkyfzdkUtwGuf chmod command udk toHk;jyK


NyD; execute permission ajymif;ay;&ygr,f/
Example:
[myn@panda myn]$ chmod +x my_script
(or)
[myn@panda myn]$ chmod 755 my_script

3. tJ'DhaemufrSmawmh uRefawmfwdkU&JU script udk command line rSm execute vkyfzdkU


yJ jzpfygw,f/
Command line rSm

command (odkU) script

awGudk execute vkyfwJhtcg


ta&;BuD;wJh tcsufwpfcsufudk odxm;zkdUvdktyfygw,f/ tJ'guawmh PATH ygyJ/ PATH
qdkwm Shell variable wpfckyg/ tJ'Dh variable xJrSm command awG&SdwJh directory awGudk
store vkyfxm;ygw,f/ yg0ifwJh directory list udk atmufygtwdkif; MunfhEdkifygw,f[myn@panda myn]$ echo $PATH
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/usr/bin/X11

uRefawmfwdkU command line rSm command wpfckudk &dkufvdkufwJhtcg system


uaeNyD; uRefawmfwdkU &dkufvdkufwJh command udk vdkuf&Smygw,f/ 'Dae&mrSm command udk
hardisk wpfckvHk;&JU ae&mtESHUvdkuf&SmNyD; execute vkyfwmr[kwfygbl;/ tJ'Dhvdk vdkuf&Smr,f
qkd&ifvnf; uRefawmfwdkU[m command wpfcsufESdyfNyD;&if pufu vdkuf&SmaewJhtcsdefrSm
xkdifapmifhaezdkUyJ&Sdygw,f/ trSefwu,fuawmh uRefawmfwdkU command wpfck&dkufvdkufwJh
tcg system uaeNyD; vuf&Sda&mufaewJh directory xJrSm 'D command file &Sdovm;qdkwm
35

Moscow Institute of Electronic Technology

Capt.ZayYarWin

yxrqHk;Munfhygw,f/ rawGUbl;qdk&if PATH xJrSm azmfjyxm;wJh directory awGxJrSm


xyfNyD;&Smygw,f/ PATH xJrSm&SdwJh directory awGxJrSmvnf; rawGUbl;qdk&ifawmh
uRefawmfwdkU jrifbl;aeusjzpfwJh command not found qdkwJh error message udk
xkyfay;ygvdrfhr,f/ 'DhtwGuf uRefawmfwdkU&JU script udk save xm;wJh directory [m
PATH xJrSm yg0ifaezdkUvdktyfygw,f/ (PATH [m uRefawmfwdkU user awG pdwfBudKuf
define(modified) vkyfvdkU&wJh shell variable trsdK;tpm;jzpfygw,f/) 'grSvnf; uRefawmf
wdkU&JU script/command udk tjcm; rnfonfh directory uaerqdk vSrf;NyD; toHk;jyKvdkU&rSm
jzpfygw,f/ r[kwf&ifawmh toHk;jyKcsifwJh tBudrfwdkif;rSm save xm;wJh directory xJudk
0ifae&yghvdrhfr,f/ tqifajyaprSm r[kwfygbll;/ uRefawmfwdkU directory topfwpfck
wnfaqmufNyD; tJ'Dh directory ukd PATH xJrSm add vkyfxm;r,f/ uRefawmfwdkU&JU script
awGudk tJ'Dh directory xJrSmyJ save xm;r,fqdk&if tqifajyapr,fvdkU ,lqygw,f/
Oyrmudk avhvmMunfhyg[myn@panda myn]$ mkdir ~/bin
[myn@panda myn]$ export PATH=$PATH:~/bin

yxrqHk; /bin qdkwJh directory wpfckudk user &JU home directory xJrSm create
vkyfvdkufygw,f/ ( ~/ oauFwu users home directory udk qdkvdkw,fqdkwm
rSwfrdvdrfhr,fvdkU ,lqygw,f/) tJ'Dhaemuf export command eJU vuf&Sd PATH xJudk
uRefawmfwdkUxyfNyD;xnfhvdkwJh /bin ukd xyfxnfhNyD; define vkyfvdkufwmjzpfygw,f/
tay:rSm uRefawmf&Sif;jycJhwmawGudk oabmaygufNyDqdk&if script udk pNyD;a&;MunfhvdkU
&ygNyD/ yxrqHk;taeeJU &dk;&dk;&Sif;&Sif; script wpfckprf;NyD; a&;Munfhygr,f/ avhvmMunfhyg#!/bin/bash
#My first script.
echo We love LINUX.

yxrpmaMumif;u b,f program eJU uRefawmfwdkU&JU script ukd system em;vnf


atmif interpret vkyfay;&r,fqdkwmudk nTefjyay;ygw,f/ 'kwd,pmaMumif;rSmawmh
comment vkyfxm;ygw,f/ # oauFw&JU aemufupmvHk;awGudk bash u ignore
vkyfygw,f/
Programmer uaeNyD; program udk &Sif;jywJhoabm toHk;jyKygw,f/
aemufqHk;pmaMumif;rSmawmh echo command ukd toHk;jyKNyD; stout rSm We love
LINUX. udk display vkyfjyygvdrfhr,f/
Script a&;NyD;oGm;wJhaemufrSm execute vkyfzdkU permission setting udk change
ay;NyD; execute vkyfMunfhygr,f[myn@panda myn]$ chmod +x my_script
[myn@panda myn]$ ./my_script
We love LINUX.

36

Moscow Institute of Electronic Technology

Capt.ZayYarWin

script execute vkyfwJhae&mrSm ./ oauFwudk oHk;xm;&wJh taMumif;&if;uawmh


current directory xJrSm script &Sdw,fqdkwm system ukd azmfjyay;vdkufwmjzpfygw,f/
tu,f script udk save xm;wJh directory [m PATH xJrSm &SdNyD;om; qdk&ifawmh ./

oauFw rvdkyJeJUvnf;&ygw,f/
[myn@panda myn]$ my_script
We love LINUX.

,ckavmufqdk&if script wpfck&JU tMurf;zsOf; structure udk oabmaygufr,fvdkU


,lqygw,f/ uRefawmfwdkU&JU script udk ydkNyD; jynfhpHkaumif;rGefatmif? Intelligence av;awG
xnfhNyD; a&;EdkifzdkUtwGuf toHk;jyKvdkU&wJh command awGudk qufNyD; avhvmMuygr,f/

Variables ()
rnfonfh programming language rSmrqdk variables qdkwm rygvQifrNyD;wJh
t&mwpfckyg/ Information (odkU) data wpfckckukd udk,fpm;jyKNyD; memory
ay:rSmae&m,lxm;wJh trnfemrav; wpfckygyJ/ shell rSm toHk;jyKwJh variable
trsdK;tpm;(3)ck &Sdygw,f/ tJ'gawGuawmh User Variable, Shell Variable eJU Readonly Shell Variable awGyJ jzpfygw,f/
Variable wpfck create vkyfwmuawmh tjcm; programming language awGrSmvdk
ygyJ/ name eJU store vkyfr,fh data ukd = oauFwcHNyD; ay;vdkuf&HkygyJ/
[myn@panda myn]$ country=Myanmar

owdjyK&r,fhtcsufuawmh = sign &JU a&SUeJUaemufrSm space ygvdkUr&ygbl;/


variable &JU value ukd jyefNyD;xkyfjyzdkUtwGuf $ oauFwudk variable name &JUa&SUrSmcHNyD;
toHk;jyK&ygw,f/ substitution vkyfw,fvdkU ac:ygw,f/
[myn@panda myn]$ echo $country
Myanmar

tu,f variable xJrSm space awGyg yg0ifvmr,fqdk&if(Oyrm-string) quoting


vkyfay;zdkU vdktyfygw,f/ single quote eJU double quote (2) rsdK;&Sdygw,f/
[myn@panda myn]$ town=Yangon and Mandalay
[myn@panda myn]$ echo $town
Yangon and Mandalay
[myn@panda myn]$ town=Yangon and Mandalay
[myn@panda myn]$ echo $town
Yangon and Mandalay

Single quote eJU double quote &JU uGmjcm;csufuawmh single quote


substitution vkyfwJh ae&mrSm limit vkyfygw,f/ OyrmudkavhvmMunfhyg37

Moscow Institute of Electronic Technology

Capt.ZayYarWin

[myn@panda myn]$ echo My host name is $HOSTNAME.


My host name is $HOSTNAME.

Single quote u limit vkyfxm;wJhtwGuf substitution rvkyfEdkifyJ rlvtwdkif;


jyefNyD; azmfjyay;wmjzpfygw,f/ 'Dae&mrSm HOSTNAME qdkwm PATH uJhodkU shell
variable trsdK;tpm;yJjzpfygw,f/ system variable vdkUvnf; oHk;ESKef;ygw,f/ (tjcm;
possible toHk;jyKEdkifwJh shell variable awGudk pdwf0ifpm;r,fqdk&ifawmh command line rSm
set vdkU&dkufMunhfyg/ shell built-in variable awGeJU olwdkU store vkyfxm;wJh data (info)

awGudk awGU&ygvdrfhr,f/)
[myn@panda myn]$ echo My host name is $HOSTNAME.
My host name is panda.

OyrmrSmjrif&wJhtwdkif; double quote uawmh shell udk interpret vkyf&mrSm


taESmifht,Sufray;ygbl;/
wwd,ajrmuf variable trsdK;tpm;jzpfwJh read-only shell variable eJUygwfoufNyD;
tenf;i,fodxm;zdkUvdktyfygw,f/ 'D variable awG&JU value udk shell uae udk,fwdkif
assign vkyfNyD;awmh user taeeJU modify vkyfcGifhray;ygbl;/ 'D variable trsdK;tpm;awGxJrS
uRefawmfwdkUtwGuf script awGa&;&mrSm toHk;0ifr,fh variable tcsdKUudk atmufrSmazmfjyxm;
ygw,f/
Variable name

Meaning

$#

Number of command line arguments. (Useful to test


number of command line arguments in shell script.)

$*

All arguments to shell

$@

All arguments to shell

$0

Program (or) script name

$1, $2, .., $9

Name of command line arguments (called positional


parameters)

Oyrmjyxm;wJh script(var_test)udk avhvmMunfhyg? &Sif;oGm;ygvdrfhr,f/


#!/bin/bash
echo Your program name is $0.
echo Total of command line arguments= $#.
echo They are $@ or @*
echo First argument is $1.

38

Moscow Institute of Electronic Technology

Capt.ZayYarWin

echo Second argument is $2.


echo Third argument is $3.

'D script(var_test) udk Redhat, Debian, SUSE qdkwJh argument (3)ckeJU run
MunfhvkdufwJhtcg atmufygtwkdif; awGU&rSmyg-

Arguments

awGae&mrSm tjcm; argument awGeJU tpm;xkd;NyD; prf;Munfhyg/


oabmaygufr,fvdkU arQmfvifhygw,f/
command echo
uRefawmfwdkU screen rSm data awGudk print vkyfvdkwJhtcgrSm command echo ukd
toHk;jyKEdkifygw,f/ 'ghtjyif variable awG&JU value udk print vkyfwJhtcgrSmvnf; toHk;jyK
ygw,f/
Syntax:
$ echo [option] [string, variable,..]

Options:
-n

, Do not output the trailing new line.

-e

, Enable interpretation of the following backslash escaped characters in the strings.

Example:
[myn@panda myn]$ echo We love LINUX.
We love LINUX.

uRefawmfwdkU &dkufvdkufwJh text udk screen rSm jyefxkwfay;wmjzpfygw,f/


[myn@panda myn]$ country=Myanmar
[myn@panda myn]$ echo I live in $country.
I live in Myanmar.
[myn@panda myn]$

yxrqHk; country qdkwJh variable xJudk Myanmar qdkwJh value xnfhvdkufygw,f/


tJ'Dhaemuf echo command udk toHk;jyKNyD; variable &JUvalue ukd print vkyfjyvkdufwm
39

Moscow Institute of Electronic Technology

Capt.ZayYarWin

jzpfygw,f/ variable &JUa&SUrSm $ oauFwudk cHNyD;toHk;jyK&ygw,f/ wpfenf;tm;jzifh


variable value udk reference jyefvkyfwm jzpfygw,f/
echo command udk atmufygtwdkif; backslash escape character awGeJUvnf;
toHk;jyKEkdifygao;w,f/ toHk;rsm;wJh escape character awGudk azmfjyxm;ygw,f/
avhvmMunfhygEscape character

Name

\a
\b
\n
\r
\t

Alert(bell)
Backspace
New line
Carriage return
Horizontal tab

\\

backslash

Backslash escape character awGudk programming language awmfawmfrsm;rsm;rSm


toHk;jyKMuNyD;awmh toHk;jyKyHk concept csif;vnf; twlwlygyJ/ ,ck 'Dae&mrSm echo
command eJU toHk;jyKzdkUtwGuf -e option udkwGJNyD; toHk;jyK&ygw,f/ -e option rygyJ
oHk;r,fqdk&ifawmh shell uaeNyD; escape character awGtjzpf rodwJhtwGuf interpret
vkyfrSm r[kwfygbl;/ omrmef text awGvdkUyJ ,lqNyD; tJ'Dhtwdkif;yJ jyefNyD; print vkyfay;yg

vdrfhr,f/ Oyrmudk avhvmMunfhyg/

command read
Keyboard uaeNyD; input data awGvufcHzdkU read command udk toHk;jyKygw,f/
uRefawmfwdkU &dkufoGif;vkdufwJh data udk vufcHNyD;awmh variable tjzpf assign vkyfay;yg
w,f/ Oyrmjyxm;wJh script(read_example) udk avhvmMunfhyg#!/bin/bash

40

Moscow Institute of Electronic Technology

Capt.ZayYarWin

echo n Enter some text:


read text
echo You entered: $text

line-2 rSm -n option oHk;xm;&wJh taMumif;uawmh cursor udk atmufwpfaMumif;


qif;roGm;apcsifvdkUyg/ line-3 rSmawmh read command udk oHk;xm;wm awGU&rSmygjzpfyg
w,f/ program [m tqifhqifh run vmNyD;wJhaemuf line-3 udka&mufwJhtcg user &JU
input udkapmifhaeygvdrfhr,f/ user input wpfckck &dkufoGif;vdkufNyD;wJhaemuf program [m
tvkyfqufvkyfoGm;ygvdrfhr,f/ 'D script udk run vdkuf&if atmufygtwdkif; awGU&rSm

jzpfygw,f[myn@panda myn]$ read_example


Enter some text: Myanmar
You entered: Myanmar
[myn@panda myn]$

Option

awGeJUvnf; wGJzuftoHk;jyKEdkifygw,f/ Oyrmjyxm;wJh script udk avhvmMunfh

yg#!/bin/bash
echo n Hurry up and type something! >
if read t 3 text; then
echo Great, you made it in time.
else
echo Sorry, you are too slow.
fi
echo FINISHED

-t option &JUaemufrSm uyfvsufygwJh puefUta&twGuftxdyJ user input udk


read uapmifhygvdrfhr,f/ t&ifwkef;uvdk input &dkufNyD; ENTER ESdyfwJhtxd apmifhrSm
r[kwfawmhygbl;/ 'D concept udk toHk;jyKNyD;awmh typing avhusifhcef;jyKvkyfEdkifwJh script

yHkpHrsdK;awG rdrdOmPf&Sdovdk uGefUNyD;a&;MunfhvdkU&ygw,f/


aemufxyf toHk;rsm;wJh option wpfrsdK;uawmh -s yg/ -s option ukd user
&dkufoGif;vdkufwJh data udk display rvkyfzdkUtwGuf toHk;jyKygw,f/ Oyrm- password vdk
data rsdK;awGjzpfygw,f/
#!/bin/bash
echo -n Enter your password:
read -s pass

41

Moscow Institute of Electronic Technology

Capt.ZayYarWin

vufawGUa&;NyD; avhvmMunfhyg/

Exit Status
Linux rSm uRefawmfwdkU command (odkU) script wpfckckukd execute vkyfvdkufwJh
tcg shell uaeNyD;awmh default tm;jzifh return value wpfckck tjrJxkwfay;ygw,f/
tqdkyg value udkMunfhNyD;awmh uRefawmfwdkU&JU command (odkU) script [m execute
vkyfcsdefrSm successful jzpfovm;? error jzpfoGm;vm;qkdwm odEdkifygw,f/ type (2)rsdK;tjzpf
rSwfom; Edkifygw,f/ tJ'guawmh zero eJU nonzero yg/ (0)rS (255) txd&Sdygw,f/ tJ'Dh
value udk exit status vdkUac:ygw,f/ successful jzpfw,fqdk&if exit status (0) udk
jyygw,f/ error wpfrsdK;rsdK;eJU exit jzpfoGm;w,fqdk&ifawmh error trsdK;tpm;tay:rlwnfNyD;
(1)rS(255)twGif; value wpfckckudk jyygw,f/
exit status udk stout rSm tvkdvdk razmfjyay;ygbl;/ uRefawmfwdkU MunfhvdkwJhtcgrSm
special variable jzpfwJh ? udk toHk;jyKNyD; MunfhEdkifygw,f/ OyrmudkMunfhyg[myn@panda myn]$ rm something
rm: cannot remove something: No such file or directory
[myn@panda myn]$ echo $?
1
[myn@panda myn]$

OyrmtaeeJU pufxJrSm r&SdwJh file wpfckudk remove vkyfMunfhygw,f/ File u


r&SdwJhtwGuf error message jyygw,f/ exit status ukd $? toHk;jyKNyD; MunfhwJhtcgrSm
successful rjzpfwJhtwGuf 1 udkjrif&rSm jzpfygw,f/ aemufxyf Oyrmudk avhvmMunfhyg[myn@panda myn]$ date
Thu Aug 3 19:15:49 RDT 2006
[myn@panda myn]$ echo $?
0
[myn@panda myn]$ true
[myn@panda myn]$ echo $?
0
[myn@panda myn]$ false
[myn@panda myn]$ echo $?
1
[myn@panda myn]$

oabmaygufr,fvkdU ,lqygw,f/
42

Moscow Institute of Electronic Technology

Capt.ZayYarWin

command test
Command test udk rsm;aomtm;jzifh if command eJU wGJzufNyD;awmh true, false
decision awGtwGuf toHk;jyKygw,f/ yHkpH(2)rsdK;eJU toHk;jyKEdkifygw,f/
Syntax:
#First form
test expression
#Second form
[ expression ]

Text form eJU a&m [ ] oauFweJUyg toHk;jyKEdkifygw,f/ owdjyK&r,fh


tcsufuawmh [ eJU expression Mum;rSm space jcm;zdkUvdktyfygw,f/ command tvkyf
vkyfyHkuawmh uRefawmfwdkUay;vdkufwJh expression ay:rlwnfNyD;awmh data awGudk compare
vkyfygw,f (odkU) wGufcsufNyD;awmh (TRUE) jzpfw,fqdk&if exit status (0) ay;NyD;awmh?
(FALSE) jzpfwJhtcg 1 udk xkwfay;ygw,f/ Oyrmjyxm;wJh script udk avhvmMunfhyg#!/bin/bash
if [ -f .bash_profile ]; then
echo You have a .bash_profile. Things are fine.
else
echo You have no .bash_profile.
fi

expression taeeJU -f .bash_profile udk oHk;xm;ygw,f/


.bash_profile &Sd^r&Sdudk -f option tultnDeJU check vkyfygw,f/ expression
rSefw,fqdk&if exit status 0 eJU script NyD;oGm;ygvdrfhr,f/ r[kwf&if exit status 1 udk
xkwfay;ygvdrfhr,f/ command line rSmvnf; atmufygtwdkif; prf;MunfhEdkifygw,f-

'DOyrmrSm

[myn@panda myn]$ [ -f .bash_profile ]


[myn@panda myn]$ echo $?
0
[myn@panda myn]$

wGJzuftoHk;jyKwJh option awGudk


azmfjyxm;ygw,f/ avhvmMunfhyg-

avhvmzdkU

Expression
[ expression ]

vG,ful&eftwGuf
Description

Expression is true
43

OyrmyHkpHav;eJU

Moscow Institute of Electronic Technology

[ ! expression ]
expression1 a expression2
expression1 o expression2
[ file1 nt file2 ]
[ file1 ot file2 ]
[ d file ]
[ e file ]
[ f file ]
[ L file ]
[ r file ]
[ s file ]
[ w file ]
[ x file ]
[ integer1 eq integer2 ]
[ integer1 ge integer2 ]
[ integer1 gt integer2 ]
[ integer1 le integer2 ]
[ integer1 lt integer2 ]
[ integer1 ne integer2 ]
[ -n string ]
[ -z string ]
[ string1 = string2 ]
[ string1 != string2 ]

Capt.ZayYarWin

Expression is false
Both expression 1 and 2 are true (a=logical AND)
Either expression 1 or 2 is true (o=logical OR)
File1 is newer(modification data) than file2
File1 is older than file2
File exists and is a directory
File exists
File exists and is a regular file
File exists and is a symbolic link
File exists and is readable by you
File exists and has a size greater than zero
File exists and is writeable by you
File exists and is executable
Integer1 is equal to integer2
Integer1 is greater than or equal to integer2
Integer1 is greater than integer2
Integer1 is less than or equal to integer2
Integer1 is less than integer2
Integer1 is not equal to integer2
The length of string is nonzero.
The length of string is zero.
The strings are equal.
The strings are not equal.

em;vnfoabmaygufzdkUtwGuf vufawGUrsm;rsm;jyKvkyfNyD; avhvmapvdkygw,f/ aemuf


OyrmwpfcktaeeJU pHkudef; rudef;cGJjcm;ay;wJh script(even_odd) udk avhvmMunfhyg#!/bin/bash
num=0
echo n Enter a number:
read num
if [ $((num%2)) eq 0 ]; then
result=even
else
result=odd
fi
echo You typed number: $num is $result number.

44

Moscow Institute of Electronic Technology

Capt.ZayYarWin

'D script udk execute vkyfMunfhygr,f[myn@panda myn]$ chmod +x even_odd


[myn@panda myn]$ even_odd
Enter a number: 3
You typed number: 3 is odd number.
[myn@panda myn]$

command exit and return


vG,fvG,fajym&r,fqdk&ifawmh exit command udk exit vkyf&mrSm toHk;jyKygw,f/
shell okdU script udk user defined vkyfvdkufwJh exit status eJUtwl terminate (exit)
vkyfay;ygw,f/ tu,f uRefawmfwdkUu exit code wpfckck ( Oyrm - exit n )udk
define vkyfray;yJ exit qdkNyD; command wpfckwnf;om toHk;jyKcJhr,fqdk&ifawmh
rlvt&ifu &SdaeNyD;cJhwJh exit status udkyJ shell u vuf&Sd exit status tjzpf assign
vkyfay;ygw,f/
return uvnf; 'Dtwkdif;ygyJ/ shell function ukd return value eJU exit vkyfay;
ygw,f/ return value wpfckckrygyJ oHk;cJhr,fqdk&if rlva&SUu &SdcJhwJh value udkyJ return
status tjzpf assign vkyfay;ygw,f/
Syntax:
$ exit n
$ return n

Example:
[myn@panda myn]$ cat exit_test
#!/bin/bash
if [ $(id u) != 0 ]; then
echo You must be the superuser to run this script >&2
exit 100
fi
[myn@panda myn]$ exit_test
You must be the superuser to run this script
[myn@panda myn]$ echo $?
100
[myn@panda myn]$

45

Moscow Institute of Electronic Technology

Capt.ZayYarWin

oabmaygufvG,fatmif exit code udk (100) Oyrmay;xm;wmyg/ id u uaeNyD;


superuser [kwf^r[kwf check vkyfygw,f/ r[kwfwJhtwGuf exit command eJU xGuf
oGm;NyD;awmh exit status ukdvnf; 100 tjzpf owfrSwfvdkufygw,f/
[myn@panda myn]$ cat return_test
function rtn {
echo return from function
return 99
}
[myn@panda myn]$ return_test
return from function
[myn@panda myn]$ echo $?
99
[myn@panda myn]$

command let
Command let udkawmh shell rSm arithmetic operator awG tvkyfvkyfzdkUtwGuf
toHk;jyKygw,f/ arithmetic operation (odkU) tjcm;wGufcsuf&rSmawGudk wGufcsufay;NyD;awmh
variable value tjzpf assign vkyfay;ygw,f/ yHkpH(2)rsdK;eJU toHk;jyKEdkifygw,f/
Syntax:
$ let expression
(or)
$ ((expression))

Example:
[myn@panda myn]$ x=10
[myn@panda myn]$ y=3
[myn@panda myn]$ let ans=x+y
[myn@panda myn]$ echo $ans
13
[myn@panda myn]$

yxrqHk; x eJUy variable ESpfckudk assign vkyfygw,f/ tJ'Dhaemuf let command


udk toHk;jyKNyD; x eJUy aygif;vdkU&wJh wefzdk;udk ans variable xJudk assign vkyfvdkufygw,f/
'Dae&mrSm let command aMumifhom shell u + udk operator tjzpfodNyD; tvkyf
vkyfEdkifwm jzpfygw,f/ let ryg&if shell u operator vdkU rodEdkifygbl;/ Oyrmudk
avhvmMunfhyg46

Moscow Institute of Electronic Technology

Capt.ZayYarWin

[myn@panda myn]$ x=10


[myn@panda myn]$ y=3
[myn@panda myn]$ ans=x+y
[myn@panda myn]$ echo $ans
x+y
[myn@panda myn]$

oabmaygufr,fvdkU ,lqygw,f/ tjcm;Oyrmav;awG avhvmMunfhygOD;[myn@panda myn]$ ((x=x+3))


[myn@panda myn]$ echo $x
13
[myn@panda myn]$ let x<y
[myn@panda myn]$ echo $?
1
[myn@panda myn]$

command if-then
tjcm; programming language awGrSmoHk;wJh if &JUoabmw&m;eJU twlwlygyJ/
command toHk;jyKyHk format tenf;i,fyJ uGm;jcm;ygw,f/
Syntax:
if expression
then

commands
else

commands
fi

if statement uaeNyD; uRefawmfwkdUay;vdkufwJh expression udk wGufcsufNyD; exit


status udk xkyfay;ygw,f/ tJ'Dhwefzdk;tay:rlwnfNyD; tvkyfqufvkyfoGm;wmjzpfygw,f/
exit status 0 (true) qdk&if then &JUatmufu command awGudk execute vkyfNyD;awmh?
exit status 1 (false) jzpfwJhtcg else &JUatmufu command awGukd execute vkyfoGm;yg
w,f/ if command tm;vHk;NyD;oGm;wJhtcgrSmawmh fi eJUjyefNyD;ydwfay;&ygw,f/ (if udk
ajymif;jyefjyef,lxm;wmyg) Oyrmjyxm;wJh script(arg_test)udk avhvmMunfhyg-

47

Moscow Institute of Electronic Technology

Capt.ZayYarWin

#!/bin/bash
if [ $# -eq 0 ]
then
echo You have no argument.
else
echo You have $# argument(s).
echo Your arguments are
echo $*
fi

'D script udk atmufygtwdkif; execute vkyfMunfhyg[myn@panda myn]$ chmod +x arg_test


[myn@panda myn]$ arg_test
You have no argument
[myn@panda myn]$ arg_test a b c
You have 3 argument(s).
Your arguments are
abc
[myn@panda myn]$

oabmaygufr,fvdkU ,lqygw,f/

command case
case uawmh

multiple-choice branch trsdK;tpm;jzpfygw,f/ if eJUa&;wJhtcg


tqifhawGtrsm;BuD;eJU complex jzpfwJh problem awGtwGuf case ukd toHk;jyKwJhtcg
tqifajyapygw,f/ toHk;jyKwJhyHkpHu tenf;i,f simple jzpfygw,f/ command format

uawmh atmufygtwdkif;jzpfygw,fSyntax:
case $variable in

pattern1 ) commands ;;
pattern2 ) commands ;;
patternN ) commands ;;
* ) commands ;;
esac

48

Moscow Institute of Electronic Technology

Capt.ZayYarWin

command tvkyfvkyfyHkuawmh user assign vkyfvkdufwJh variable ukd atmufrSm&SdwJh


pattern awGxJu wlnDwm(match jzpfwm)eJU compare vdkufvkyfNyD;awmh tJ'Dh wlnDwJh
pattern wpfckrSm&SdwJh command awGudk execute vkyfygw,f/ tu,f variable eJU
match jzpfwJh pattern wpfckrS rawGUbl;qdk&ifawmh atmufqHk;rSm&SdwJh wildcard * rSm&SdwJh
command ukd execute vkyfrSmjzpfygw,f/ pattern wpfckeJU wpfckukd semicolons (2)ck
;; eJU ydkif;jcm;xm;ygw,f/ tm;vHk;NyD;oGm;wJhaemufrSmawmh case ukd ajymif;jyefjyef,lxm;
wJh esac eJU jyefNyD;ydwfay;&ygw,f/ Oyrmjyxm;wJh script ukd avhvmMunfhygExample:
#!/bin/bash
echo ----------------------------------------------------
echo

Main menu

echo ----------------------------------------------------
echo [1] Show today date and time
echo [2] Show files in current directory
echo [3] Show the calendar for 1980
echo [4] Show my network information
echo [5] Exit/stop
echo ==========================================
echo n Please enter your choice [1-5]:
read choice
case $choice in
1)
echo Today is $(date)
;;
2)
echo Files in $(pwd) is $(ls -al)
;;
3)
cal 1980
;;
4)
ifconfig
;;
5)
exit 0
;;

49

Moscow Institute of Electronic Technology

Capt.ZayYarWin

*)
echo You did not enter a number between 1 and 5.
esac

Oyrmudk vufawGUa&;NyD;avhvmMunfhyg/ user input jzpfwJh variable(choice) tay:


rlwnfNyD;awmh oleJU match jzpfwJh pattern(1, 2, 3, 4, 5) wpfck&JU command udk execute
vkyfoGm;rSmjzpfygw,f/ pattern awGuawmh tu&mudef;pOfawGomru wildcard awGvnf;
jzpfEdkifygw,f/ atmufrSm Oyrmjyxm;wJh script(case_example)udk avhvmMunfhygExample:
#!/bin/bash
echo n Type a digit of a letter:
read character
case $character in
[a-z] | [A-Z] )
echo You typed the letter $character.
;;
[0-9] )
echo You typed the digit $character.
;;
*)
echo You did not type a letter or a digit.
esac

vufawGUa&;om;NyD; avhvmMunfhyg/ oabmaygufr,fvdkU arQmfvifhygw,f/

command while
while [mvnf; looping command wpfckygyJ/ expression uaeNyD; exit status
0 (true) &aeoa&GU do eJU done statement Mum;rSm&SdaewJh command awGudk execute

vkyfaerSmyJ jzpfygw,f/
Syntax:
while expression
do

commands
done

Oyrmjyxm;wJh script(while_example1) udk avhvmMunfhyg50

Moscow Institute of Electronic Technology

Capt.ZayYarWin

#!/bin/bash
Number=1
while [ $number le 5 ]
do
echo $number
number=$((number+1))
done
[myn@panda myn]$ chmod +x while_example1
[myn@panda myn]$ while_example1
1
2
3
4
5
[myn@panda myn]$

aemufxyf Oyrmudk avhvmMunfhygOD;#!/bin/bash


ans=y
while [ $ans = y ]
do
echo n Please enter a name:
read name
echo The name you entered is $name.
echo Do you wish to continue?(y/n):
read ans
done
echo FINISHED

'DOyrmrSmqdk&if user uaeNyD; y udk&dkufaeoa&GU while loop tvkyfvkyfaerSmyJ


jzpfygw,f/ vufawGUjyKvkyfNyD; avhvmMunfhyg/

51

Moscow Institute of Electronic Technology

Capt.ZayYarWin

command for-in
for uawmh tjcm; programming language awGrSmuJhodkU looping vkyf&mrSm
toHk;jyKwJh flow control statement wpfckyg/ toHk;jyKwJh yHkpHuawmhSyntax:
for loop-index in argument-list
do

commands
done

argument list rSm&SdwJh yxrqHk; item udk for &JU loop-index rSm pNyD; assign
vkyfygw,f/ tJ'Dhaemuf do eJU done statement Mum;rSm&SdwJh command awGudk execute
vkyfygw,f/ do eJU done statement awGu for looping &JU tpeJU tqHk;ukd azmfjyyg
w,f/ program tvkyfvkyfvmNyD; done statement ukd pass jzpfoGm;wJhtcgrSm
aemufwpfBudrf argument list rSm&SdwJh 'kwd, item udk assign vkyfNyD; a&SUrSmvkyfoGm;wJh
twdkif;yJ tvkyfqufvkyfoGm;ygw,f/ argument list rSm&SdwJh item ukefwJhtxd tJ'Dhtwdkif;
looping ywfaerSmyJ jzpfygw,f/ Oyrmjyxm;wJh script(for_example1) udk avhvm

Munfhyg#!/bin/bash
for country in Myanmar Thailand Singapore
do
echo $country is in South-East Asia.
done

'D script udk execute vkyfMunfhygr,f[myn@panda myn]$ chmod +x for_example1


[myn@panda myn]$ for_example1
Myanmar is in South-East Asia.
Thailand is in South-East Asia.
Singapore is in South-East Asia.
[myn@panda myn]$

aemufxyfOyrmjyxm;wJh script(for_example2) udk avhvmMunfhyg#!/bin/bash


echo Your arguments are:
for i in $@

52

Moscow Institute of Electronic Technology

Capt.ZayYarWin

do
echo $i
done

'D script(for_example2) udk atmufygtwdkif; execute vkyfNyD;avhvmMunfhyg[myn@panda myn]$ chmod +x for_example2


[myn@panda myn]$ for_example2 aa bb cc
Your arguments are:
aa
bb
cc
[myn@panda myn]$

shell variable jzpfwJh $@ uawmh uRefawmfwdkU command line rSm toHk;jyKwJh


argument awGukd assign vkyfay;ygw,f/ ,ckazmfjyxm;wJh OyrmxJrSm command line
argument (3)ckjzpfwJh aa, bb eJU cc wdkUudk for loop toHk;jyKNyD; wpfckcsif; display vkyfjy

xm;wmjzpfygw,f/ oabmaygufr,fvdkU ,lqygw,f/


vufawG>av>usifhcef;rsm;
File wpfckrS tjcm;wpfckokdU copy vkyfaom shell script wpfyk'fa&;om;NyD;
myprog trnfjzifh save yg/ copy vkyf&mrSm toHk;jyK&r,fh source file eJU receive
file udk user input tjzpfa&;om;yg/ xdkUtjyif atmufazmfjyyg condition rsm;yg0ifatmif

1/

a&;om;yg/
9 tu,f user rS source file ESifh receive file name udk wpfckwnf; input
vkyfcJhygu error message jyNyD; exit vkyfyg/
9 source file onf directory xJwGif &Sdr&SdESifh regular file [kwfr[kwf ppfaq;yg/
r&Sdvsif error message jyNyD; exit vkyfyg/
9 user input vkyfvdkufaom receive file ESifhtrnfwl trnfwl file &Sdr&Sdppfaq;yg/
r&Sdvsif copy vkyfNyD;? user odkUNyD;qHk;aMumif; message jyyg/ tu,f&SdcJhygu
overwrite vkyfrvkyf user okdU confirm vkyfyg/
2/

User input number (10)vHk;\ aygif;v'fukd&Smaom script wpfyk'fa&;om;NyD;


summ trnfjzifh save yg/ Input number rsm;&dkufoGif;&mwGif number wpfvHk;
&dkufNyD;onfESifhwpfNydKifeuf &&Sdonfhaygif;v'ftm; screen wGifvnf; azmfjyay;yg/

3/ User tm; input number wpfvHk;awmif; xdk number tm; (2) jzifhajrSmufyg/
&&dSonfh result udk screen wGifjyyg/ program udk double trnfjzifh save yg/
53

Moscow Institute of Electronic Technology

Capt.ZayYarWin

4/ menu trnfjzifh script wpfyk'fa&;om;yg/ screen wGifazmfjy&r,fh menu wGif


yg0if&r,fh tcsuf(4)csufrSm atmufygtwdkif;jzpf&ygrnf9 myprog program udk execute vkyf&ef
9 summ program udk execute vkyf&ef
9 double program udk execute vkyf&ef
9 menu program rSexit vkyf&ef
User rS exit pattern udk ra&G;rcsif; menu ukd aemufwpfBudrfazmfjyap&ef loop
jzifha&;om;yg/

enf;]y]zpfoludk]yoI ar;cGef;rsm;tm; ajzqdkyg/

LITERATURE
1. Norman Matloff. UNIX Shell Scripts, 2002.
2. Ken Steube. UNIX Borune Shell Scripting
3. Machtelt Garrels. Bash Guide for Beginners, 2005.
4. Mendel Cooper. Advaned Bash-Scripting guide, 18 June 2006.
5. http://www.linuxcommand.org/learning_the_shell.php

54

You might also like