21
การใชงานคําสั่ง 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 ที่คนอื่นไมสามารถเขามากระทําไดโดยมิไดรับอนุญาต การติดตอกันเปนเครือขายเพื่อใชทรัพยากรรวมกัน

Unix

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Unix

การใชงานคําสั่ง 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 ท่ีคนอ่ืนไมสามารถเขามากระทําไดโดยมิไดรับอนุญาต การติดตอกันเปนเครือขายเพื่อใชทรัพยากรรวมกัน

Page 2: Unix

คําสั่ง

คําสั่ง 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

Page 3: Unix

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

Page 4: Unix

คําสั่ง 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 ช่ือเคร่ือง

Page 5: Unix

$ 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 ไฟลหนึ่ง ไปยังอกไฟลหนึ่ง

Page 6: Unix

รูปแบบ $ cp [-irfp] file_source file_target option -i หากมีการทับขอมูลเดิมจะรอถามกอนท่ีจะทับ option -r copy ไฟลท้ังหมดรวมท้ัง directory ดวย option -f ไมแสดงขอความความผิดพลาดออกหนาจอ option -p ยืนยนัเวลาและความเปนเจาของเดิม $ cp file_test /tmp/file_test คําสั่ง mv ใช move หรือเปล่ียนช่ือไฟล รูปแบบ $ mv [-if] file_source file_target ความหมายของ option เชนเดียวกับ cp $ mv index.html main.html เปล่ียนช่ือไฟล index.html เปน main.html คําสั่ง rm ใชลบไฟลหรือ directory โดยท่ียังมีขอมูลภายในเทียบเทา del และ deltree ของ dos รูปแบบ $ rm [-irf] filename $ rm -r dir_name ลบ dir_name โดยท่ี dir_name เปน directory วางหรือไมวางก็ได $ rm -i * ลบทุกไฟลโดยรอถามตอบ คําสั่ง rmdir ใชลบ directory ท่ีวาง เทียบเทากับ rd ของ Dos $ rmdir dir_name คําสั่ง alias ใชยอคําส่ังใหส้ันลง $ alias l = ls -l $ alias c = clear คําสั่ง unalias ใชยกเลิก alias เชน $ unalias c

Page 7: Unix

คําสั่ง type ใชตรวจสอบวาคําส่ังท่ีใชเกบ็อยูท่ีใดของระบบ รูปแบบ $ type command $ type clear คําสั่ง find ใชคนหาไฟลท่ีตองการ เชน $ find /usr/bin -name "*sh" -print หาไฟลท่ีลงทายดวย sh จาก /usr/bin คําสั่ง grep ใชคนหาขอความท่ีตองการจากไฟล $ grep ขอความ file คําสั่ง man man เปนคําส่ังท่ีเปนคูมือการใชคําส่ังแตละคําส่ังเชน $ man ls $ man cp คําสั่ง write ใชสงขอความไปปรากฎท่ีหนาจอของเคร่ืองท่ีระบุในคําส่ังไมสามารถใชขาม host ได เชน $ write s0460003 คําสั่ง mesg $ mesg ด ูstatus การรับการติดตอของ terminal $ mesg y เปดให terminal สามารถรับการติดตอได $ mesg n ปดไมให terminal สามารถรับการติดตอได คําสั่ง talk ใชติดตอส่ือสารแบบสองทาง เหมือนกับการคุยโดยผูสง ๆ ไปแลวรอการตอบกลับจาก ผูรับ สามารถหยุดการติดตอโดย Ctrl + c สามารถใชขาม host ได

Page 8: Unix

รูปแบบ $ talk username@hostname คําสั่ง pine ใชอานและสงจดหมายขางในจะมี menu ใหใช คําส่ัง tar ใชสําหรับ รวมไฟลยอยใหเปนไฟล Packet คลายๆกับการ zip หลายๆไฟลใหเปนไฟลเดียวแตขนาดไฟลไมไดลดลงอยางการ zip โดยไฟล output ท่ีไดจะต้ังชื่อเปน filename.tar หรือการแตกไฟล packet จาก filename.tar ใหเปนไฟลยอยมักจะใชคูกับ gzip หรือ compress เพื่อทําการลดขนาด packet ใหเล็กลง รูปแบบการใช $ tar -option output input -option ประกอบดวย -cvf , -tvf , -xvf แสดงดังดานลาง output คือ ไฟล.tar หรืออาจจะเปน device เชน tape ก็ได input คือ ไฟลหรือกลุมไฟลหรือ directory หรือรวมกันท้ังหมดท่ีกลาวมา $ tar -cvf Output_file.tar /home/myhome/* Option -cvf ใชสําหรับการรวมไฟลยอยไปสูไฟล .tar จากตัวอยาง รวมไฟลทุกไฟลท่ีอยูใน /home/myhome/ เขาสูไฟลช่ือ Output_file.tar $ tar -tvf filename.tar Option -tvf ใชแตกไฟล .tar เปนไฟลยอยๆแบบ preview คือแสดงใหดไูมไดแตกจริงอาจใชคูกับ คําส่ังอ่ืน เพื่อใหไดประโยชนตามตองการ เชน tar -tvf filename.tar |more $ tar -xvf filename.tar Option -xvf ใชแตกไฟล .tar เปนไฟลยอยๆ โดยจะแตกลง ณ current directory คําสั่ง gzip ใช zip หรือ Unzip ไฟล packet โดยมากแลวจะเปน .tar เชน $ gzip filename.tar ผลท่ีไดจะไดไฟลซ่ึงมีการ zip แลวช่ือ filename.tar.gz $ gzip -d filename.tar.gz ใช unzip ไฟลผลท่ีไดจะเปน filename.tar

Page 9: Unix

คําสั่ง Compress และ Uncompress หลังจากการ compress แลวจะไดเปนช่ือไฟลเดิมแตตอทายดวย .Z การใชงานเหมือนกับ gzip และ gzip -d เชน $ compress -v file.tar จะไดไฟลช่ือ file.tar.Z โดย Option -v จะเปนการ verify การ compress $ uncompress -v file.tar.Z

Operating System Component

1.Kernel คือหัวใจของระบบจะควบคุมการทํางานภายในท้ังหมดของระบบคอมพิวเตอร เชน การเตรียมทรัพยากรตางๆของระบบ การจัดเก็บขอมูล การบริหารหนวยความจํา การควมคุมอุปกรณตางๆท่ีตออยู ตัว kernel จะข้ึนกับ ชนิดของเคร่ืองดังนัน้เราตองใช kernel คนละตัวกันหากใชเคร่ืองคนละตระกูลกนั 2.File System (FS) คือโครงสรางการจัดเก็บขอมูลในฮาร็ดดสิก เพื่อให OS สามารถอานเขียน ใชไฟลท่ีตองการไดอยางมีประสิทธิภาพ โดยท่ี OS แตละตัวจะมี FS ท่ีแตกตางกัน เชน Operating System File System DOS/Windows95 FAT12,FAT16 Windows98/95-osr FAT12,FAT16,FAT32 Windows NT NTFS,FAT16,HPFS OS/2 FAT12,FAT16,HPFS Linux EXT2,VFAT,HPFS,NTFS,etc. SunOS UFS ฯลฯ ฯลฯ หมายเหตุ เนื่องจาก Linux ใช File System แบบ Ext2 (Extended Files System 2) จึงทําให Linux

Page 10: Unix

สามารถมองเห็นดิสกกอนท่ีใหญมากมีขนาดถึง 4 เทราไบต(Tbytes) หรือขนาด 4000 Gbytes นั้นละ 3.Shell เปน command Interpreter เปนตัวกลางติดตอระหวาง user กับ kernel คอยรับคําส่ังท่ีจะพิมพเขาไปแลวแปลคําส่ังนั้นตอไป นอกจากนี้แลวยังสามารถท่ีจะนําเอาคําส่ังตางๆ มาเขียนเปนโปรแกรมเรียกวา Shell Script และ shell ยงัสามารถกําหนดทิศทาง Input / Output ไดดวย การเปล่ียนทิศทางจะมีเคร่ืองหมายท่ีจําเปนคือ > การเปล่ียนทิศทางของ output < การเปล่ียนทิศทางของ input >> การเปล่ียนทิศทางของ output ไปตอทายไฟล การทํางานผาน shell มี 2 ลักษณะคือ Synchronous execution เปนการทํางานตามลําดับของคําส่ังทีละคําส่ังจนเสร็จแลวจึงจะข้ึน prompt เพื่อปอนคําส่ังตอไป เรียกวาการทํางานแแบบฉากหนา ( foreground mode) เชน $ ls -l (เปนการ list ดูไฟลแบบยาวใน directory ปจจุบัน) Asynchronous execution จะทํางานตามคําส่ังโดยท่ีงานเกาจะเสร็จแลวหรือยังไมเสร็จก็ตามแต shell จะกําหนด prompt และสราง shell ใหมข้ึนมาเพื่อรองรับงานใหมตอไป เรียกวาการทํางานแบบฉากหลัง (background mode) การทํางานแบบนี้ทําไดโดยเติมเคร่ืองหมาย ampersand (&) ไวท่ีทายคําส่ังนัน้เชน $ netscape & (เรียกโปรแกรม netscape แลวข้ึน prompt โดยไมตองรอใหออกจาก netscape กอน) Shell ท่ีนิยมใช Bourne Shell (sh) เปน starndard shell ท่ีมีใใน unix ทุกตัวสามารถยาย shell script ไปยัง unix ระบบอ่ืนไดโครงสรางเปนแบบ Algol สามารถใชงาน Procedure ได จะมี default prompt เปน "$" C Shell (csh) มีโครงสรางคลายภาษา C ทํางานไดดกีวา bourne shell มีไฟลท่ีเก็บคําส่ังท่ีใชไปแลว ทํางานกับ shell script ของ bourne shell ไมได default prompt เปน "%" Korn Shell (ksh) ทํางานไดดีกวา sh และ csh แตไมไดมีใน unix ทุกตัว ksh มีขนาดใหญกวา shell อ่ืน ๆ

Page 11: Unix

เขียน shell script ไดงายข้ึนและรัดกุม เปน Standard IEEE PDSIX 1003.2 default prompt เปน "$" Bourne Again Shell (bash) เปนการพัฒนา sh ใหสามารถมีแฟมคําส่ังท่ีใชไปแลว และเพิ่มขีดความสามารถเพ่ิมข้ึนอีกหลายอยาง (default of Linux) default prompt เปน "$" ฯลฯ 4.Utilities คําส่ังตางท่ีทํางานไดบน ระบบงาน unix จึงทําให kernel มีขนาดเล็ก เพราะจะมีเฉพาะหนาท่ีสําคัญเทานั้น ประเภทของไฟลใน Unix ไฟลในระบบยูนิกซนัน้จะข้ึนอยูกับผูสรางยูนิกซแตละตัวซ่ึงมีท้ังแตกตางและเหมือนกัน และการตั้งช่ือไฟลในระบบยูนิกซสวนใหญจะสามารถต้ังช่ือไดยาวถึง 255 ตัวอักษรโดยท่ีตวัอักษรตัวเล็ก และตัวอักษรตัวใหญนั้นมีความแตกตางกัน สามารถใชตัวเลขหรือขีดเสนใตรวมดวยกไ็ด แตไมควรใชเคร่ืองหมายเหลานี้มาต้ังช่ือ เชน ^ " ' , - ? ] () ~ ! $ @ # <> $ / และหากไฟลใดที่ตั้งช่ือข้ึนตนดวยจดุ "." จะทําใหไฟลนั้นเปน hidden file คือไฟลท่ีถูกซอนไว จะไมสามารถมองเห็นไดโดยใชคําส่ังท่ัวไปจะตองมี option เพิ่มเติม Regular files คือไฟล็ท่ัวไปที่สรางข้ึนไดดวย Text Editor หรืออาจจะสําเนามาจากไฟลอ่ืน หรืออาจจะเปนโปรแกรมใชงานตางๆกไ็ด Directory files คือไฟลท่ีเก็บไฟลท่ัวไปหรือจะเก็บไฟลท่ีเปน Directory ดวยกัน ท่ีเรียกวา Sub Directory ก็ได โดยท่ี Directory บนสุด (root) ของ ยูนกิซจะแทนดวย " / " Special files เปนไฟลพิเศษจะมีอยูสองแบบคือ Character device file และ Block device file ท้ังสองแบบจะเปนไฟล device driverโดยสวนใหญจะเก็บไวท่ี /dev แตไฟลท้ังสองจะแตกตางกัน ท่ีการรับสงขอมูล นั่นคือ Character device file จะรับสงขอมูลท่ีละตัวอักษร แต Block device file จะรับสงขอมูลเปนบล็อก Unix demain seckets ใน BSD Unix หรือ Name pipes ใน AT&T Unix Symbolic Link files หรือไฟลเช่ือมตอ การเช่ือมตอของไฟลมี 2 ลักษณะคือ

Page 12: Unix

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 เขียนแทนดวย / ไฟลแตละไฟลอาจจะสรางข้ึนมาเองหรือเปนโปรแกรมก็ได ไฟลลักษณะน้ีจะเปนไฟลไดเรคเทอรี การจัดไฟลระบบนี้จะทําใหการจัดไฟลเปนระบบ งายตอการดแูลรักษา โดยจะมีโครงสรางหลักเปนดังนี ้ / เปนไดเรคเทอรี root ท่ีเก็บไฟล kernel ของระบบ /bin เปนไดเรคเทอรีท่ีใชเกบ็คําส่ังท่ัวไปของระบบ /dev เปนไดเรคเทอรีท่ีใชเกบ็ไฟลท่ีเกี่ยวกบัอุปกรณตางๆ

Page 13: Unix

/etc เปนไดเรคเทอรีท่ีใชเกบ็ไฟลท่ีเปน config files ของเคร่ือง /etc/X11 เปนไดเรคเทอรีท่ีใชเก็บไฟลท่ีเปน config files ของ x windows /etc/skel เปนไดเรคเทอรีท่ีใชเก็บไฟลท่ีเปนไฟลตนฉบับท่ีจะถูกสําเนาไปยัง home user /lib เปนไดเรคเทอรีท่ีใชเก็บไฟลไลบรารี สําหรับใหโปรแกรมตางๆเรียกใช /sbin เปนไดเรคเทอรีท่ีใชเกบ็ไฟลคําส่ังของผูดูแลระบบ /usr เปนไดเรคเทอรีท่ีใชเกบ็ไฟลโปรแกรมของผูใชท่ัวไป /var เปนไดเรคเทอรีท่ีใชเกบ็ไฟลขอมูลท่ัวไปของระบบ ประเภทของไฟลใน Unix ไฟลในระบบยูนิกซนัน้จะข้ึนอยูกับผูสรางยูนิกซแตละตัวซ่ึงมีท้ังแตกตางและเหมือนกัน และการตั้งช่ือไฟลในระบบยูนิกซสวนใหญจะสามารถต้ังช่ือไดยาวถึง 255 ตัวอักษรโดยท่ีตวัอักษรตัวเล็ก และตัวอักษรตัวใหญนั้นมีความแตกตางกัน สามารถใชตัวเลขหรือขีดเสนใตรวมดวยกไ็ด แตไมควรใชเคร่ืองหมายเหลานี้มาต้ังช่ือ เชน ^ " ' , - ? ] () ~ ! $ @ # <> $ / และหากไฟลใดท่ีตั้งช่ือข้ึนตนดวยจดุ "." จะทําใหไฟลนั้นเปน hidden file คือไฟลท่ีถูกซอนไว จะไมสามารถมองเห็นไดโดยใชคําส่ังท่ัวไปจะตองมี option เพิ่มเติม Regular files คือไฟล็ท่ัวไปที่สรางข้ึนไดดวย Text Editor หรืออาจจะสําเนามาจากไฟลอ่ืน หรืออาจจะเปนโปรแกรมใชงานตางๆกไ็ด Directory files คือไฟลท่ีเก็บไฟลท่ัวไปหรือจะเก็บไฟลท่ีเปน Directory ดวยกัน ท่ีเรียกวา Sub Directory ก็ได โดยท่ี Directory บนสุด (root) ของ ยูนกิซจะแทนดวย " / " Special files เปนไฟลพิเศษจะมีอยูสองแบบคือ Character device file และ Block device file ท้ังสองแบบจะเปนไฟล device driverโดยสวนใหญจะเก็บไวท่ี /dev แตไฟลท้ังสองจะแตกตางกัน ท่ีการรับสงขอมูล นั่นคือ Character device file จะรับสงขอมูลท่ีละตัวอักษร แต Block device file จะรับสงขอมูล

Page 14: Unix

เปนบล็อก 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 เขียนแทนดวย / ไฟลแตละไฟลอาจจะสรางข้ึนมาเองหรือเปนโปรแกรมก็ได ไฟลลักษณะน้ีจะเปนไฟลไดเรคเทอรี การจัดไฟลระบบนี้จะทําใหการจัดไฟลเปนระบบ งายตอการดแูลรักษา โดยจะมีโครงสรางหลักเปนดังนี ้

Page 15: Unix

/ เปนไดเรคเทอรี 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 คนอ่ืนๆหรือใครก็ได

Page 16: Unix

สิทธิในไฟลจะประกอบไปดวย 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

Page 17: Unix

เชนจากตัวอยาง ไฟล .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

Page 18: Unix

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

Page 19: Unix

$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 หนาจอ [[ ไปยังตนไฟล

Page 20: Unix

]] ไปยังทายไฟล ั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

Page 21: Unix

การใชงาน 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 ไมแสดงหมายเลขบรรทัด