SlideShare a Scribd company logo
1 of 21
Download to read offline
การใชงานคําสั่ง 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 ที่คนอื่นไมสามารถเขามากระทําไดโดยมิไดรับอนุญาต
การติดตอกันเปนเครือขายเพื่อใชทรัพยากรรวมกัน
คําสั่ง
คําสั่ง 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
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
คําสั่ง 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 ชื่อเครื่อง
$ 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 ไฟลหนึ่ง ไปยังอกไฟลหนึ่ง
รูปแบบ $ 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
คําสั่ง 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 ได
รูปแบบ $ 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
คําสั่ง 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
สามารถมองเห็นดิสกกอนที่ใหญมากมีขนาดถึง 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 อื่น ๆ
เขียน 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 ลักษณะคือ
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 เปนไดเรคเทอรีที่ใชเก็บไฟลที่เกี่ยวกับอุปกรณตางๆ
/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 จะรับสงขอมูล
เปนบล็อก
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 เขียน
แทนดวย / ไฟลแตละไฟลอาจจะสรางขึ้นมาเองหรือเปนโปรแกรมก็ได ไฟลลักษณะนี้จะเปนไฟลไดเร
คเทอรี การจัดไฟลระบบนี้จะทําใหการจัดไฟลเปนระบบ งายตอการดูแลรักษา โดยจะมีโครงสรางหลัก
เปนดังนี้
/ เปนไดเรคเทอรี 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 คนอื่นๆหรือใครก็ได
สิทธิในไฟลจะประกอบไปดวย
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
เชนจากตัวอยาง ไฟล .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
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
$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 หนาจอ
[[ ไปยังตนไฟล
]] ไปยังทายไฟล
ั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
การใชงาน 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 ไมแสดงหมายเลขบรรทัด

More Related Content

What's hot

การใช้เครื่องมือต่างๆ1
การใช้เครื่องมือต่างๆ1การใช้เครื่องมือต่างๆ1
การใช้เครื่องมือต่างๆ1guestdfabcfa
 
การใช้เครื่องมือต่างๆ1
การใช้เครื่องมือต่างๆ1การใช้เครื่องมือต่างๆ1
การใช้เครื่องมือต่างๆ1guestdfabcfa
 
การใช้เครื่องมือต่างๆ12
การใช้เครื่องมือต่างๆ12การใช้เครื่องมือต่างๆ12
การใช้เครื่องมือต่างๆ12guest7878b9
 
การใช้เครื่องมือต่างๆ
การใช้เครื่องมือต่างๆการใช้เครื่องมือต่างๆ
การใช้เครื่องมือต่างๆguest3f77f6
 
การพัฒนาเอกสารออนไลน์ขั้นสูง Lect 05
การพัฒนาเอกสารออนไลน์ขั้นสูง Lect 05การพัฒนาเอกสารออนไลน์ขั้นสูง Lect 05
การพัฒนาเอกสารออนไลน์ขั้นสูง Lect 05Jenchoke Tachagomain
 
ระบบ MS-DOS
ระบบ MS-DOSระบบ MS-DOS
ระบบ MS-DOSssuseraa96d2
 
Tiptlog 2
Tiptlog 2Tiptlog 2
Tiptlog 2sm1nok
 

What's hot (15)

ระบบ UNIX
ระบบ UNIXระบบ UNIX
ระบบ UNIX
 
Ch05 name-services
Ch05 name-servicesCh05 name-services
Ch05 name-services
 
การใช้เครื่องมือต่างๆ1
การใช้เครื่องมือต่างๆ1การใช้เครื่องมือต่างๆ1
การใช้เครื่องมือต่างๆ1
 
การใช้เครื่องมือต่างๆ1
การใช้เครื่องมือต่างๆ1การใช้เครื่องมือต่างๆ1
การใช้เครื่องมือต่างๆ1
 
การใช้เครื่องมือต่างๆ12
การใช้เครื่องมือต่างๆ12การใช้เครื่องมือต่างๆ12
การใช้เครื่องมือต่างๆ12
 
การใช้เครื่องมือต่างๆ
การใช้เครื่องมือต่างๆการใช้เครื่องมือต่างๆ
การใช้เครื่องมือต่างๆ
 
การพัฒนาเอกสารออนไลน์ขั้นสูง Lect 05
การพัฒนาเอกสารออนไลน์ขั้นสูง Lect 05การพัฒนาเอกสารออนไลน์ขั้นสูง Lect 05
การพัฒนาเอกสารออนไลน์ขั้นสูง Lect 05
 
Hotspotubuntu8
Hotspotubuntu8Hotspotubuntu8
Hotspotubuntu8
 
Coovaubuntu904
Coovaubuntu904Coovaubuntu904
Coovaubuntu904
 
ระบบ MS-DOS
ระบบ MS-DOSระบบ MS-DOS
ระบบ MS-DOS
 
Tiptlog 2
Tiptlog 2Tiptlog 2
Tiptlog 2
 
ยูนิต ไลบรารี 01
ยูนิต ไลบรารี 01ยูนิต ไลบรารี 01
ยูนิต ไลบรารี 01
 
Ch02 administrators-tasks
Ch02 administrators-tasksCh02 administrators-tasks
Ch02 administrators-tasks
 
Untitled
UntitledUntitled
Untitled
 
Cent os
Cent osCent os
Cent os
 

Similar to Unix

การใช้เครื่องมือต่างๆ
การใช้เครื่องมือต่างๆการใช้เครื่องมือต่างๆ
การใช้เครื่องมือต่างๆguest3f77f6
 
Proxy fc4 web
Proxy fc4 webProxy fc4 web
Proxy fc4 webGreen Jb
 
ความรู้เกี่ยวกับระบบปฏิบัติการ
ความรู้เกี่ยวกับระบบปฏิบัติการความรู้เกี่ยวกับระบบปฏิบัติการ
ความรู้เกี่ยวกับระบบปฏิบัติการokbeer
 
ความรู้เกี่ยวกับระบบปฏิบัติการ
ความรู้เกี่ยวกับระบบปฏิบัติการความรู้เกี่ยวกับระบบปฏิบัติการ
ความรู้เกี่ยวกับระบบปฏิบัติการvgame_emagv
 
ระบบปฏิบัติการ MS-DOS
ระบบปฏิบัติการ MS-DOSระบบปฏิบัติการ MS-DOS
ระบบปฏิบัติการ MS-DOSssuseraa96d2
 
โครงสร้างโปรแกรมภาษาซี
โครงสร้างโปรแกรมภาษาซีโครงสร้างโปรแกรมภาษาซี
โครงสร้างโปรแกรมภาษาซีปณพล ดาดวง
 
รายงาน PHP - Know2pro.com
รายงาน PHP - Know2pro.comรายงาน PHP - Know2pro.com
รายงาน PHP - Know2pro.comKnow Mastikate
 
ความรู้เกี่ยวกับระบบปฏิบัติการ
ความรู้เกี่ยวกับระบบปฏิบัติการความรู้เกี่ยวกับระบบปฏิบัติการ
ความรู้เกี่ยวกับระบบปฏิบัติการokbeer
 
ความรู้เกี่ยวกับระบบปฏิบัติการ
ความรู้เกี่ยวกับระบบปฏิบัติการความรู้เกี่ยวกับระบบปฏิบัติการ
ความรู้เกี่ยวกับระบบปฏิบัติการokbeer
 
ความรู้เกี่ยวกับระบบปฏิบัติการ
ความรู้เกี่ยวกับระบบปฏิบัติการความรู้เกี่ยวกับระบบปฏิบัติการ
ความรู้เกี่ยวกับระบบปฏิบัติการokbeer
 
ความรู้เกี่ยวกับระบบปฏิบัติการ
ความรู้เกี่ยวกับระบบปฏิบัติการความรู้เกี่ยวกับระบบปฏิบัติการ
ความรู้เกี่ยวกับระบบปฏิบัติการokbeer
 
ความรู้เกี่ยวกับระบบปฏิบัติการ
ความรู้เกี่ยวกับระบบปฏิบัติการความรู้เกี่ยวกับระบบปฏิบัติการ
ความรู้เกี่ยวกับระบบปฏิบัติการokbeer
 
ความรู้เกี่ยวกับระบบปฏิบัติการ
ความรู้เกี่ยวกับระบบปฏิบัติการความรู้เกี่ยวกับระบบปฏิบัติการ
ความรู้เกี่ยวกับระบบปฏิบัติการokbeer
 
ความรู้เกี่ยวกับระบบปฏิบัติการ
ความรู้เกี่ยวกับระบบปฏิบัติการความรู้เกี่ยวกับระบบปฏิบัติการ
ความรู้เกี่ยวกับระบบปฏิบัติการokbeer
 
ความรู้เกี่ยวกับระบบปฏิบัติการ
ความรู้เกี่ยวกับระบบปฏิบัติการความรู้เกี่ยวกับระบบปฏิบัติการ
ความรู้เกี่ยวกับระบบปฏิบัติการokbeer
 
ความรู้เกี่ยวกับระบบปฏิบัติการ
ความรู้เกี่ยวกับระบบปฏิบัติการความรู้เกี่ยวกับระบบปฏิบัติการ
ความรู้เกี่ยวกับระบบปฏิบัติการokbeer
 

Similar to Unix (20)

การใช้เครื่องมือต่างๆ
การใช้เครื่องมือต่างๆการใช้เครื่องมือต่างๆ
การใช้เครื่องมือต่างๆ
 
Linux diskless
Linux disklessLinux diskless
Linux diskless
 
Untitled
UntitledUntitled
Untitled
 
Proxy fc4 web
Proxy fc4 webProxy fc4 web
Proxy fc4 web
 
ความรู้เกี่ยวกับระบบปฏิบัติการ
ความรู้เกี่ยวกับระบบปฏิบัติการความรู้เกี่ยวกับระบบปฏิบัติการ
ความรู้เกี่ยวกับระบบปฏิบัติการ
 
ความรู้เกี่ยวกับระบบปฏิบัติการ
ความรู้เกี่ยวกับระบบปฏิบัติการความรู้เกี่ยวกับระบบปฏิบัติการ
ความรู้เกี่ยวกับระบบปฏิบัติการ
 
ระบบปฏิบัติการ MS-DOS
ระบบปฏิบัติการ MS-DOSระบบปฏิบัติการ MS-DOS
ระบบปฏิบัติการ MS-DOS
 
Ch06 bind9
Ch06 bind9Ch06 bind9
Ch06 bind9
 
โครงสร้างโปรแกรมภาษาซี
โครงสร้างโปรแกรมภาษาซีโครงสร้างโปรแกรมภาษาซี
โครงสร้างโปรแกรมภาษาซี
 
Ch08 mail-systems
Ch08 mail-systemsCh08 mail-systems
Ch08 mail-systems
 
รายงาน PHP - Know2pro.com
รายงาน PHP - Know2pro.comรายงาน PHP - Know2pro.com
รายงาน PHP - Know2pro.com
 
ความรู้เกี่ยวกับระบบปฏิบัติการ
ความรู้เกี่ยวกับระบบปฏิบัติการความรู้เกี่ยวกับระบบปฏิบัติการ
ความรู้เกี่ยวกับระบบปฏิบัติการ
 
ความรู้เกี่ยวกับระบบปฏิบัติการ
ความรู้เกี่ยวกับระบบปฏิบัติการความรู้เกี่ยวกับระบบปฏิบัติการ
ความรู้เกี่ยวกับระบบปฏิบัติการ
 
ความรู้เกี่ยวกับระบบปฏิบัติการ
ความรู้เกี่ยวกับระบบปฏิบัติการความรู้เกี่ยวกับระบบปฏิบัติการ
ความรู้เกี่ยวกับระบบปฏิบัติการ
 
ความรู้เกี่ยวกับระบบปฏิบัติการ
ความรู้เกี่ยวกับระบบปฏิบัติการความรู้เกี่ยวกับระบบปฏิบัติการ
ความรู้เกี่ยวกับระบบปฏิบัติการ
 
ความรู้เกี่ยวกับระบบปฏิบัติการ
ความรู้เกี่ยวกับระบบปฏิบัติการความรู้เกี่ยวกับระบบปฏิบัติการ
ความรู้เกี่ยวกับระบบปฏิบัติการ
 
ความรู้เกี่ยวกับระบบปฏิบัติการ
ความรู้เกี่ยวกับระบบปฏิบัติการความรู้เกี่ยวกับระบบปฏิบัติการ
ความรู้เกี่ยวกับระบบปฏิบัติการ
 
ความรู้เกี่ยวกับระบบปฏิบัติการ
ความรู้เกี่ยวกับระบบปฏิบัติการความรู้เกี่ยวกับระบบปฏิบัติการ
ความรู้เกี่ยวกับระบบปฏิบัติการ
 
ความรู้เกี่ยวกับระบบปฏิบัติการ
ความรู้เกี่ยวกับระบบปฏิบัติการความรู้เกี่ยวกับระบบปฏิบัติการ
ความรู้เกี่ยวกับระบบปฏิบัติการ
 
ความรู้เกี่ยวกับระบบปฏิบัติการ
ความรู้เกี่ยวกับระบบปฏิบัติการความรู้เกี่ยวกับระบบปฏิบัติการ
ความรู้เกี่ยวกับระบบปฏิบัติการ
 

Unix

  • 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 ไฟลหนึ่ง ไปยังอกไฟลหนึ่ง
  • 6. รูปแบบ $ 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
  • 7. คําสั่ง 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 ได
  • 8. รูปแบบ $ 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
  • 9. คําสั่ง 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
  • 10. สามารถมองเห็นดิสกกอนที่ใหญมากมีขนาดถึง 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 อื่น ๆ
  • 11. เขียน 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 ลักษณะคือ
  • 12. 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 เปนไดเรคเทอรีที่ใชเก็บไฟลที่เกี่ยวกับอุปกรณตางๆ
  • 13. /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 จะรับสงขอมูล
  • 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 ไมแสดงหมายเลขบรรทัด