1. การใชงานคําสั่ง UNIX เบื้องตน
ระบบปฏิบัติการ (Operating System) คือ กลุมของคําสั่งที่รวมกันทํางาน เพื่อควบคุมการทํางานของ
Hardware และ software Applucation อื่นๆ ของคอมพิวเตอร เราอาจจะแบง OS ตามลักษณะการใชงาน
ออกเปน 2 จําพวกคือ
1.Single-User เปน OS ที่ในขณะใดขณะหนึ่งจะใหบริการแกผูใชเพียงคนเดียว เปน
ระบบปฏิบัติการขนาดเล็ก สะดวกในการควบคุมการทํางาน เชน DOS Windows95/98 ฯลฯ
2.Multi-User เปน OS ที่ใหผูใชมากกวาหนึ่งคนเขาทํางานไดพรอม ๆ กัน โดยการตอออกเปน
terminal ยอยๆ ใชกับระบบขนาดใหญ เปน OS ที่ไมยึดติดกับระบบเครื่องระบบใดระบบหนึ่ง เปน OS
ที่เปน Multi-user และ Multi-tasking เชน Unix , Novell , Linux , SunOS ฯลฯ
หนาที่ของ OS ที่เปน Multi User
I/O คือการนําเขาและจัดเก็บขอมูลลงบนอุปกรณของคอมพิวเตอร เชน การบันทึกลง disk หรือการ
แสดงผลทาง จอภาพหรือ พริ้นเตอร
การจัดการขอมูล คือการจัดเก็บขอมูลเปนไฟล(files)หรือรวมกันเปน directory
Command คือคําสั่งที่จะใหผูใชพิมพให คอมพิวเตอรประมวลผล
Time Sharing การบริหารเวลาสําหรับการทํางานพรอมกันหลายๆ งานหรือหลายๆ คน
โปรแกรมที่ชวยในการพัฒนาโปรแกรม เชน Complier ตางที่มีอยูบน OS แตละตัว เชนใน linux ก็จะมี
ภาษาตางๆเชน C , C++ และอื่นๆอีกหลายภาษา
ระบบความปลอดภัยของขอมูลของแตละ user ที่คนอื่นไมสามารถเขามากระทําไดโดยมิไดรับอนุญาต
การติดตอกันเปนเครือขายเพื่อใชทรัพยากรรวมกัน
2. คําสั่ง
คําสั่ง telnet
เปนคําสั่งที่เปลี่ยน host ที่ใชอยูไปยัง host อื่น (ใน Windows 95 ก็มี)
รูปแบบ $ telnet hostname
เชน c:> telnet student.rit.ac.th เปลี่ยนไปใช host ชื่อ student.rit.ac.th
$ telnet 202.44.130.165 เปลี่ยนไปใช host ที่มี IP = 202.44.130.165
$ telnet 0 telnet เขา host ที่ใชอยูนะขณะนั้น
เมื่อเขาไปไดแลวก็จะตองใส login และ password และเขาสูระบบยูนิกสนั้นเอง
คําสั่ง ftp
ftp เปนคําสั่งที่ใชถายโอนไฟลขอมูลจากที่หนึ่ง ไปยังอีกที่หนึ่ง โดยการติดตอกับ host ที่เปน ftp นั้น
จะตองมี user name และมี password ที่สรางขึ้นไวแลว แตก็มี ftp host ที่เปน public อยูไมนอยเชนกัน
ดังนั้นจะมี user name ที่เปน publicเชนกัน คือ user ที่ชื่อวา anonymous สวน password ของ user
anonymous นี้จะใชเปน E-mail ของผูที่จะ connect เขาไปและโปรแกรมสวนใหญก็จะอยูใน directory
ชื่อ pub
รูปแบบ $ ftp hostname
เชน c:windows> ftp wihok.itgo.com
$ ftp ftp.nectec.or.th
คําสั่ง ftp จะมีคําสั่งยอยที่สําคัญๆ ไดแก
ftp> help ใชเมื่อตองการดูคําสั่งที่มีอยูใในคําสั่ง ftp
ftp> open hostname ใชเมื่อตองการ connect ไปยัง host ที่ตองการ
ftp> close ใชเมื่อตองการ disconnect ออกจาก host ที่ใชงานอยู
ftp> bye หรือ quit ใชเมื่อตองการออกจากคําสั่ง ftp
ftp> ls หรีอ dir ใชแสดงชื่อไฟลที่มีอยูใน current directory ของ host นั้น
ftp> get ใชโอนไฟลทีละไฟลจาก host ปลายทางมายัง localhost หรือเครื่องของเรานั้นเอง
ftp> mget ใชโอนไฟลทีละหลายๆไฟลจาก host ปลายทางมายัง localhost
ftp> put ใชโอนไฟลทีละไฟลจาก localhost ไปเก็บยัง host ปลายทาง
ftp> mput ใชโอนไฟลทีละหลายๆไฟลจาก localhost ไปเก็บยัง host ปลายทาง
ftp> cd ใชเปลี่ยน directory
3. ftp> delete และ mdelete ใชลบไฟล
คําสั่ง ls
มีคาเหมือนกับ คําสั่ง dir ของ dos
รูปแบบ $ ls [-option] [file]
option ที่สําคัญ
l แสดงแบบไฟลละบรรทัด แสดง permission , เจาของไฟล , ชนิด , ขนาด , เวลาที่สราง
a แสดงไฟลที่ซอนไว ( dir /ah)
p แสดงไฟลโดยมี / ตอทาย directory
F แสดงไฟลโดยมีสัญญลักษณชนิดของไฟลตอทายไฟลคือ
/ = directory
* = execute file
@ = link file
ld แสดงเฉพาะ directory (dir /ad)
R แสดงไฟลที่อยูใน directory ดวย (dir /s)
เชน
$ ls
$ ls -la
คําสั่ง more
แสดงขอมูลทีละหนาจอ อาจใชรวมกับเครื่องหมาย pipe line ( | ) หากตองการดูหนาถัดไปกด space ดู
บรรทัดถัดไปกด Enter เชน
$ ls -la | more
$ more filename
คําสั่ง cat
มีคาเหมือนกับ คําสั่ง type ของ dos ใชดูขอมูลในไฟล เชน
$ cat filename
4. คําสั่ง clear
มีคาเหมือนกับ คําสั่ง cls ของ dos ใชลบหนาจอ terminal ใหวาง
$ clear
คําสั่ง date
ใชแสดง วันที่ และ เวลา
$ date 17 May 1999
คําสั่ง cal
ใชแสดง ปฏิทินของระบบ
รูปแบบ $ cal month year เชน
$ cal 07 1999
คําสั่ง logname
คําสั่งแสดงชื่อผูใชขณะใชงาน
$ logname
คําสั่ง id
ใชแสดงชื่อและกลุมมของผูใชงาน
$ id
คําสั่ง tty
แสดงหมายเลข terminal ที่ใชงานอยู
$ tty
คําสั่ง hostname
คําสั่งแสดงชื่อเครื่องที่ใชอยู
$ hostname
คําสั่ง uname
คําสั่งแสดง ชื่อและรุนของ OS ชื่อและรุนของ cpu ชื่อเครื่อง
5. $ uname -a
คําสั่ง history
คําสั่งที่ใชดูคําสั่งที่ใชไปแลวกอนหนานี้
$ history
เวลาเรียกใชตองมี ! แลวตามดวยหมายเลขคําสั่งที่ตองการ
คําสั่ง echo และ banner
$ echo "Hello" ใชแสดงขอความ "Hello" ขนาดปกติ
$ banner "Hello" ใชแสดงขอความ "Hello" ขนาดใหญ
คําสั่ง who , w และ finger
ใชแสดงวาใครใชงานอยูบางขณะนั้น
$ who
$ w
$ finger ดูผูใชที่ host เดียวกัน
$ finger @daidy.bu..ac.th ดูผูใชโดยระบุ Host ที่จะดู
$ finger wihok ดูผูใชโดยระบุคนที่จะดูลงไป
$ who am i แสดงชื่อผูใช เวลาที่เขาใชงาน และ หมายเลขเครื่อง
$ whoami เหมือนกับคําสั่ง logname
คําสั่ง pwd
แสดง directory ที่เราอยูปจจุบัน
$ pwd
คําสั่ง mkdir
ใชสราง directory เทียบเทา MD ใน DOS
$ mkdir dir_name
คําสั่ง cp
ใช copy ไฟลหนึ่ง ไปยังอกไฟลหนึ่ง
14. เปนบล็อก
Unix demain seckets ใน BSD Unix หรือ Name pipes ใน AT&T Unix
Symbolic Link files หรือไฟลเชื่อมตอ การเชื่อมตอของไฟลมี 2 ลักษณะคือ
1. Hard Link การเชื่อมตอแบบนี้จะใช I-node เดียวกับไฟล็ตนฉบับ เหมือนกับมีการสราง
ไฟลใหม แตใชคา I-node เดิม และ I-node จะมีตัวนับจํานวนไฟลที่เชื่อมตอดวย หากแกไขไฟลใดไฟล
หนึ่งจะมีผลกระทบสงถึงกัน เพราะขอมูลเก็บที่เดียวกัน แตขอมูลตองอยูที่ partition เดียวกัน ทําให
ประหยัดเนื้อที่ สามารถอางถึงขอมูลไดจากหลายๆที่
2. Symbolic Link การเชื่อมตอแบบนี้จะสราง I-node ของตัวเองขึ้นมาใหม เหมือนกับ shutcut
ของ windows 95 โดยที่หากเปลี่ยนแปลงตนฉบับจะมีผลกับ link file แตหากลบ link file จะไมมีผล
ใดๆตอไฟลตนฉบับ สามารถใชไดทั้งที่อยู partition เดียวกัน หรือตาง partition กันก็ได
เราสามารถที่จะแยกประเภทของไฟลตางไดโดยใชคําสั่ง ls -l แลวจะแสดงสัญลักษณ โดยจะแสดงดังนี้
Type Sysbol Create Remove
Text file - cp , mv ,etc rm
Directory p mkdir rm -r , rmdir
Character device v mknod rm
Block device b mknod rm
Unix domain socket s socket rm
Name pipes p mknod rm
link file l ln -s rm
โครงสรางไฟลไดเรคเทอรีของระบบยูนิกซสวนใหญจะเปนแบบ Filesystem Hierarchy Standard
(FHS) โดยการจัดลําดับชั้นจะเปนแบบตนไมหัวกลับ โดยเริ่มจากชั้นแรกที่เปน ราก หรือ root เขียน
แทนดวย / ไฟลแตละไฟลอาจจะสรางขึ้นมาเองหรือเปนโปรแกรมก็ได ไฟลลักษณะนี้จะเปนไฟลไดเร
คเทอรี การจัดไฟลระบบนี้จะทําใหการจัดไฟลเปนระบบ งายตอการดูแลรักษา โดยจะมีโครงสรางหลัก
เปนดังนี้
15. / เปนไดเรคเทอรี root ที่เก็บไฟล kernel ของระบบ
/bin เปนไดเรคเทอรีที่ใชเก็บคําสั่งทั่วไปของระบบ
/dev เปนไดเรคเทอรีที่ใชเก็บไฟลที่เกี่ยวกับอุปกรณตางๆ
/etc เปนไดเรคเทอรีที่ใชเก็บไฟลที่เปน config files ของเครื่อง
/etc/X11 เปนไดเรคเทอรีที่ใชเก็บไฟลที่เปน config files ของ x windows
/etc/skel เปนไดเรคเทอรีที่ใชเก็บไฟลที่เปนไฟลตนฉบับที่จะถูกสําเนาไปยัง home user
/lib เปนไดเรคเทอรีที่ใชเก็บไฟลไลบรารี สําหรับใหโปรแกรมตางๆเรียกใช
/sbin เปนไดเรคเทอรีที่ใชเก็บไฟลคําสั่งของผูดูแลระบบ
/usr เปนไดเรคเทอรีที่ใชเก็บไฟลโปรแกรมของผูใชทั่วไป
/var เปนไดเรคเทอรีที่ใชเก็บไฟลขอมูลทั่วไปของระบบ
PERMISSION
ยูนิกซเปนระบบ OS ที่ใชไฟลตางๆ รวมกันหากทุกคน มีสิทธิที่จะกระทําตอทุกไฟลเทากัน ยอมจะทํา
ใหเกิดความวุนวาย ดังนั้นในระบบยูนิกซจึงมี user id และ group id ประจํา user แตละคน จึงทําใหที่
home directory ของแตละ user จะเปนที่ ที่ user แตละคนมีสิทธิมากที่สุด เมื่อ user สรางไฟลขึ้นมาก็จะ
ทําให มีชื่อของผูสรางติดอยูดวย การจํากัดสิทธิการเขาถึงไฟลออกเปน 3 กลุมคือ
Owner เจาของไฟลหรือผูที่สรางไฟล
Group ผูใชกลุมเดียวกับผูใชไฟล คือ ผูใชที่มี gid เดียวกับเจาของไฟล
Other คนอื่นๆหรือใครก็ได
16. สิทธิในไฟลจะประกอบไปดวย
Read Permission สิทธิในการอาน แทนดวย r
Write Permission สิทธิในการเขียน แทนดวย w
Execute Permission สิทธิในการ Run แทนดวย x
user สามารถที่จะดู Permission ของไฟลและชนิดของไฟลไดโดยคําสั่ง
$ ls -la
-rwxr--r-- 1 wihok Special 5223 May 12 10:10 .profile
-rwxr--r-- 1 wihok Special 2022 May 12 10:13 .kshrc
drwx------ 2 wihok Special 1024 May 12 10:34 mail
-rw-r--r-- 1 wihok Special 11211 May 12 11:01 test
จากตัวอยางจะเห็นวา มีทั้งหมด 7 filed ดังนี้
Field
ความหมาย
1 File Type และ Permission
2 จํานวน link
3 เจาของ (owner)
4 กลุม (group)
5 ขนาดของไฟล (byte)
6 วัน-เวลาที่ update
7 ชื่อไฟล
มาดูกันที่ field ที่ 1 ที่เปน Permission โดย
อักษรตัวที่ 1 แสดงชนิดของไฟล
อักษรตัวที่ 2-4 แสดง Owner
อักษรตัวที่ 5-7 แสดง Group
อักษรตัวที่ 8-10 แสดง Other
17. เชนจากตัวอยาง ไฟล .kshrc มี permission เปน -rwxr--r-- หมายความวา Owner สามารถที่จะ อาน เขียน
และ Run ได แต user กลุมเดียวกับ owner และ other อานไดเพียงอยางเดียว สังเกตุไดวาหากไมมี
permission จะแสดงดวย
--------------------------------------------------------------------------------
คําสั่งเปลี่ยน Permission
การเปลี่ยน permission ของไฟลกระทําไดโดยผูที่เปน Admin ของระบบ หรือเจาของไฟลนั้น โดยมี
คําสสั่งคือ
1.คําสั่ง chmod ใชเปลียน permission ของไฟลมีวิธีการเปลี่ยนได 2 วิธี คือ
Absolute Permission
รูปแบบ $ chmod ตัวเลข filename
โดยสามารถหาตัวเลขที่มาใสไดจากการแทนคาน้ําหนักของแตละบิทลงไปคือ
บิท r แทนน้ําหนักดวย 4
บิท w แทนน้ําหนักดวย 2
บิท x แทนน้ําหนักดวย 1
บิท - แทนน้ําหนักดวย 0
โดยหากตองการให permission ใดก็แทนคาของบิทนั้นลงไปแลวนําเลขน้ําหนักของแตละบิทมารวมกัน
(คิดทีละสวนโดยแยกเปน owner , group และ other) เชน
จะกําหนดสิทธิไฟล test ให owner สามารถอาน เขียน และ Run ได group สามารถอานและ run ได
สวน other สามารถ run ไดเพียงอยางเดียวคิดไดดังนี้
Permission rwx r-x --x
Number 7 5 1
ใชคําสั่ง : $ chmod 751 test
18. Relative Permission
ผูใชไฟล เครื่องหมาย สิทธิ
u (เจาของไฟล) + เพิ่มสิทธิ r (อาน)
g (กลุมเดียวกับเจาของไฟล)
- ลดสิทธิ w (เขียน)
o (คนทั่วไปใครก็ได)
= กําหนดสิทธิ x (Run)
a (ทุกคนทุกกลุมที่กลาวมา)
เชนจะเปลี่ยน permission ของไฟล .kshrc จาก rwxr--r-- เปน rwxrw-r--
$ chmod g+w .kshrc
หรือจะเปลี่ยน permission ของไฟล .profile จาก rwxr--r-- เปน rwxrw-rw-
$ chmod go+w .profile
2.คําสั่ง chown ใชเปลี่ยนผูเปนเจาของไฟล เชน
$ chown newuser test คือเปลี่ยน field ที่ 3 จากการใชคําสั่ง ls -la จากเจาของเดิมคือ wihok เปน
newuser
3.คําสั่ง chgrp ใชเปลี่ยนกลุมผูเปนเจาของไฟล เชน
$ chgrp newgroup test คือเปลี่ยน field ที่ 4 จากการใชคําสั่ง ls -la จากเจาของเดิมคือ Special เปน
newgroup
Text Editor
Text Editor ที่ใชในระบบยูนิกซที่เห็นบอยคือ โปรแกรม pico และโปรแกรม vi แต pico ไมไดมมีอยู
ใใน unix ทุกตัว การใชงานงาย ไมตองจําคําสั่งตางเพราะมีอธิบายอยูแลวที่ดานลางหนาจอภาพ สามารถ
พิมพ text ไดเลย แต text editor ที่ชื่อ vi จะเปน text editor ที่มีอยูในทุกยูนิกซ การใชงานคอนขางยาก
ดังนั้นผูเขียนจะแนะนําเฉพาะการใช vi เทานั้น
การเรียกใชงาน text editor
$ pico filename หรือ $ pico
19. $vi filename หรือ $ vi
การใชงาน vi
vi เปน text editor ที่มีบนยูนิกซ จะแบงการทํางานออกเปน 3 mode คือ
Command Mode เปนการทํางานของการเคลื่อนยาย cursor ( editor ตัวอื่นจะใชคียลูกศร ,Home ,End
,insert , delete แตใน vi คียเหลานี้จะไมมีผล )
Edit Mode เปนการทํางานของการแกไขขอความ
Last Line Mode เปนการ save , open , quit , คนหา , ฯลฯ
การเปลี่ยน mode ใน vi จะใชปุม Esc ยกเวนเปลี่ยนไปสู Last line Mode จะตองกด Esc แลวกด Shift +
: จะปรากฎ : ที่บรรทัดลางสุด
Command Mode
การทํางานใน mode นี้จะเปนการเคลื่อนยายเคอเซอรไปยังตําแหนงที่ตองการ แตหากยายไปตําแหนงที่
ไมมีขอมูล มันจะสงเสียงเตือน ตัวอักษรที่ใชใน mode นี้ที่สําคัญไดแก
h เลื่อน cursor ไปทางซายทีละตัวอักษร
j เลื่อน cursor ลง 1 บรรทัด
k เลื่อน cursor ขึ้น 1 บรรทัด
l เลื่อน cursor ไปทางฃวาทีละตัวอักษร
w เลื่อน cursor ไปทางฃวาทีละคํา
b เลื่อน cursor ไปทางซายทีละคํา
$ เลื่อน cursor ไปทายบรรทัด
0 เลื่อน cursor ไปตนบรรทัด
nG ไปยังบรรทัดที่ n หากไมใส n จะไปบรรทัดสุดทาย
Ctrl+f เลื่อน cursor ลง 1 หนาจอ
Ctrl+b เลื่อน cursor ขึ้น 1 หนาจอ
Ctrl+L Refresh หนาจอ
[[ ไปยังตนไฟล
20. ]] ไปยังทายไฟล
ัyy Copy ขอความทั้งบรรทัด
ัyw Copy ขอความทั้งคํา
ัyG Copy ถึงทายไฟล
y$ Copy ถึงทายบรรทัด
p Paste หลัง cursor
P Paste หนา cursor
cw พิมพทับทีละ word
c$ พิมพทับจนถึงทายบรรทัด
cG พิมพทับจนถึงทายไฟล
r พิมพทับทีละ 1 ตัว
R พิมพทับจนกวาจะกด Esc
u Undo การกระทําครั้งลาสุด
x ลบตรง cursor
X ลบหนา cursor
dw ลบคํา
dd ลบบรรทัด
d$ ลบจาก cursor จนทายบรรทัด
d0 ลบจาก cursor จนตนบรรทัด
dG ลบจาก cursor จนทายไฟล
Edit Mode
ตัวอักษรที่ใชใน mode นี้ที่สําคัญไดแก
a เพิ่มขอมูลตอจาก cursor
A เพิ่มขอมูลตอจากทายบรรทัด
i เพิ่มขอมูลหนา cursor
I เพิ่มขอมูลที่ตนบรรทัด
o แทรกบรรทัดดานลาง cursor
O แทรกบรรทัดดานบน cursor
Last Line Mode
21. การใชงาน mode นี้ก็กด Esc แลวกด : ก็จะปรากด : ที่ทายบรรทัด และสามารถที่จะปอนคําสั่งตอไปนี้
ได
:q! quit
:w! save
:wq! save and quit
:w! filename save as filename
:e! filename open filename
:/string คนหาขอความที่ตองการ
:help ดูคําสั่งตางๆ
:set nu แสดงหมายเลขบรรทัด
:set nonu ไมแสดงหมายเลขบรรทัด