เท่ดี ^^ คล้ายกะพวก echo2
exam ajax
Unix เป็นระบบปฏิบัติการที่นิยมใช้กับแพร่หลายบนระบบขนาดใหญ่ และในปัจจุบันยังมีระบบปฏิบัติการในลักษณะของ Unix-like เกิดขึ้นมากมาย และ เริ่มเป็นที่นิยมใช้กันมากหลายยิ่งขึ้นบนเครื่องคอมพิวเตอร์ส่วนบุคคล เอกสารชุดนี้จึงสรุปคำสั่งบน Unix ที่มักใช้เป็นประจำโดยมีการยกตัวอย่างเปรียบเทียบกับ DOS/Windows พร้อมกับอธิบายถึงส่วนขยายเพิ่มเติมของคำสั่ง เพื่ออำนวยความสะดวกให้กับผู้เริ่มหัดใช้ Unix ทั่วไป
เป็นคำสั่งที่ใช้สำหรับแสดงแฟ้มข้อมูล (ในทำนองเดียวกับ dir) มากจากคำว่า list
โครงสร้างคำสั่ง
ls [option]... [file]...
โดย option ที่มักใช้กันใน ls คือ
-l จะแสดงผลลัพธ์แบบ Long Format ซึ่งจะแสดง Permission ของแฟ้มด้วย
-a จะแสดงแฟ้มข้อมูลทั้งหมด
-F จะแสดง / หลัง Directory และ * หลังแฟ้มข้อมูลที่ execute ได้
ตัวอย่าง
ls -l
ls -al
ls -F
ls /usr/bin
แหล่งข้อมูลเพิ่มเติม : ls --help และ man ls
เป็นคำสั่งที่ใช้สำหรับสำเนาแฟ้มข้อมูล (ในทำนองเดียวกับ copy) มาจากคำว่า copy
โครงสร้างคำสั่ง
cp source target
ตัวอย่าง
cp test.txt test1.bak
แหล่งข้อมูลเพิ่มเติม : cp --help และ man cp
เป็นคำสั่งที่ใช้สำหรับการย้ายแฟ้มข้อมูลและ Directory รวมถึงการเปลี่ยนชื่อด้วย (ในทำนองเดียวกับ move) มาจากคำว่า move
โครงสร้างคำสั่ง
mv source target
ตัวอย่าง
mv *.tar /backup
mv test.txt old.txt
mv bin oldbin
แหล่งข้อมูลเพิ่มเติม : mv --help และ man mv
เป็นคำสั่งที่ใช้สำหรับลบแฟ้มข้อมูล (ในทำนองเดียวกับ del) มาจากคำว่า remove
โครงสร้างคำสั่ง
rm [option]... [file]...
โดย option ที่มักใช้กันใน rm คือ
-r ทำการลบข้อมูลใน directory ย่อยทั่งหมด
-i โปรแกรมจะถามยืนยันก่อนทำการลบ
-f โปรแกรมจะลบข้อมูลทันที โดยไม่ถามยืนยันก่อน
ตัวอย่าง
rm -rf test/
rm test.doc
แหล่งข้อมูลเพิ่มเติม : rm --help และ man rm
คำสั่งเกี่ยวกับการจัดการ Directory / Folder
เป็นคำสั่งที่ใช้สำหรับแสดง Directory ปัจจุบัน (ในทำนองเดียวกับการพิมพ์ cd บน DOS) มาจากคำว่า print work directory
โครงสร้างคำสั่ง / ตัวอย่าง
pwd
เป็นคำสั่งที่ใช้สำหรับเปลี่ยน directory ปัจจุบัน (ในทำนองเดียวกับ cd) มาจากคำว่า change directory
โครงสร้างคำสั่ง
cd directory
โดย directory ในที่นี้อาจเป็น relative หรือ absolute path ก็ได้
ตัวอย่าง
cd /usr
cd ~ (เป็นการเข้าสู่ home directory)
cd - (เป็นการยกเลิกคำสั่ง cd ครั้งก่อน)
cd .. (เป็นการออกจาก directory 1 ชั้น
ข้อควรระวัง : คำสั่ง cd บน UNIX จะต้องมีเว้นวรรคเสมอ
เป็นคำสั่งที่ใช้สำหรับการสร้าง directory (ในทำนองเดียวกับ dos) มาจากคำว่า make directory
โครงสร้างคำสั่ง
mkdir [option]... [file]...
โดย option ที่มักใช้กันใน mkdir คือ
-m จะทำการกำหนด Permissioin (ให้ดูคำสั่ง chmod เพิ่มเติม)
-p จะทำการสร้าง Parent Directory ให้ด้วยกรณีที่ยังไม่มีการระบุ
directory ในที่นี้อาจเป็น relative หรือ absolute path ก็ได้
ตัวอย่าง
mkdir /home
mkdir -p -m755 ~/local/bin
แหล่งข้อมูลเพิ่มเติม : mkdir --help และ man mkdir
เป็นคำสั่งที่ใช้สำหรับการลบ directory (ในทำนองเดียวกับ dos) มาจากคำว่า remove directory
โครงสร้างคำสั่ง
rmdir [option]... [file]...
โดย option ที่มักใช้กันใน mkdir คือ
-p จะทำการลบ Child และ Parent Directory ตามลำดับ
directory ในที่นี้อาจเป็น relative หรือ absolute path ก็ได้
ตัวอย่าง
rmdir /home
mkdir -p /home/local/data
แหล่งข้อมูลเพิ่มเติม : rmdir --help และ man rmdir
บนระบบ DOS/Windows นั้น ประเภทของแฟ้มข้อมูลจะถูกระบุด้วยนามสกุล แต่ใน UNIX จะไม่มีนามสกุลเพื่อใช้ระบุประเภทของแฟ้มข้อมูล ดังนั้นการหาประเภทของแฟ้มข้อมูลจะดูจาก Context ภายในของแฟ้ม ซึ่งคำสั่ง file จะทำการอ่าน Content และบอกประเภทของแฟ้มข้อมูลนั้นๆ
โครงสร้างคำสั่ง
file [option]... file
ตัวอย่าง
file /bin/sh
file report.doc
แหล่งข้อมูลเพิ่มเติม : file --help และ man file
เป็นคำสั่งที่ใช้สำหรับค้นหาแฟ้มข้อมูล
โครงสร้างคำสั่ง
find [path].. expression
ลักษณะของ expression เช่น
-name [pattern] เพื่อใช้หาชื่อ file ตาม pattern ที่ระบุ
-perm [+-] mode เพื่อใช้หา file ตาม mode ที่ต้องการ
-user NAME หา file ที่เป็นของ user ชื่อ NAME
-group NAME หา file ที่เป็นของ group ชื่อ NAME
ตัวอย่าง
find -name *.doc
find /usr -perm +111 (หาแฟ้มที่มี Permission อย่างน้อยเป็น 111)
แหล่งข้อมูลเพิ่มเติม : file --help และ man file
ใช้สำหรับเปลี่ยนเจ้าของแฟ้มข้อมูลหรือ Directory
โครงสร้างคำสั่ง
chown [option]... owner[:group] file หรือ
chown [option]... :group file
โดย option ที่มักใช้กันใน chown คือ
-R เปลี่ยน Permission ของทุกๆ แฟ้มย่อยใน Directory
ตัวอย่าง
chown krerk:users /home/krerk
chown nobody data.txt
แหล่งข้อมูลเพิ่มเติม : chown --help และ man chown
ใช้สำหรับเปลี่ยนกลุ่มเจ้าของแฟ้มข้อมูลหรือ Directory
โครงสร้างคำสั่ง
chgrp [option]... group file
โดย option ที่มักใช้กันใน chgrp คือ
-R เปลี่ยน Permission ของทุกๆ แฟ้มย่อยใน Directory
ตัวอย่าง
chgrp users /home/krerk
chown nobody data.txt
แหล่งข้อมูลเพิ่มเติม : chgrp --help และ man chgrp
ใช้สำหรับเปลี่ยนเจ้าของแฟ้มข้อมูลหรือ Directory
โครงสร้างคำสั่ง
chmod [option]... mode[mode] file หรือ
chmod [option]... octalmode file
โดย option ที่มักใช้กันใน chown คือ
-R เปลี่ยน Permission ของทุกๆ แฟ้มย่อยใน Directory
และการอ้างอิง mode จะใช้ตัวอักษร u g o a + - r w x X s t u g o โดย
u หมายถึง User ผู้เป็นเจ้าของแฟ้ม
g หมายถึง Group ผู้เป็นเจ้าของแฟ้ม
o หมายถึง บุคคลอื่นๆ
a หมายถึง ทุกๆ กลุ่ม
r หมายถึง สิทธิในการอ่าน
w หมายถึง สิทธิในการเขียน/แก้ไข
w หมายถึง สิทธิในการ execute หรือ ค้นหา (ในกรณีของ Directory)
ส่วน s t u g และ o นั้น จะขอกล่าวถึงในเอกสารเรื่อง Unix Permission ต่อไป
เนื่องจากผลลัพธ์ของคำสั่ง ls -l จะแสดงเป็นลำดับ ดังตัวอย่างต่อไปนี้
$ ls -l krerk.jpg
-rw-r--r-- 1 pok pok 13201 เม.ย. 21 2000 krerk.jpgดังนั้น การเขียน Permission อาจจะเขียนได้เป็นเลขฐาน 8 เช่น 644 หมายถึง 110100100 ซึ่งจะตรงกับ rw-r--r- เป็นต้น
ตัวอย่าง
chmod 750 /home/krerk (แก้ไขได้(เขียน)ได้เฉพาะเจ้าของแฟ้ม และสามารถ execute ได้เฉพาะกลุ่มและเจ้าของเท่านั้น)
chmod 644 data.txt (rw-r--r-- เจ้าของแฟ้ม อ่านและเขียนได้ กลุ่มเจ้าของแฟ้มและบุคคลอื่นๆ อ่านได้ )
(เพื่อประกอบความเข้าใจ ให้ผู้ใช้ลองเปลี่ยน mode และดูผลลัพธ์ด้วย ls -l)
แหล่งข้อมูลเพิ่มเติม : chmod --help และ man chmod
คำสั่งเกี่ยวกับการดู และ แก้ไขข้อมูลในแฟ้มข้อมูล
ใช้สำหรับดูข้อมูลภายในแฟ้มข้อมูล หรือ Standard Input และแสดงผลออกมาทาง Standard Output (ในทำนองเดียวกันกับคำสั่ง type) มาจากคำว่า concatinate
โครงสร้างคำสั่ง
cat [optioin]... [file]
โดย option ที่มักใช้กันใน chown คือ
-n เพื่อทำการแสดงเลขบรรทัด
ตัวอย่าง
cat data.txt
cat file1.txt file2.txt > file3.txt (นำข้อมูลใน file1.txt และ file2.txt มาต่อกัน แล้วเก็บไว้ใน file3.txt)
แหล่งข้อมูลเพิ่มเติม : cat --help และ man cat
สืบเนื่องจากคำสั่ง cat ไม่เหมาะกับการดูข้อมูลที่มีความยาวมากๆ ดังนั้น จึงได้มีการพัฒนา more ขึ้น เพื่อช่วยให้สามารถดูข้อมูลที่มีขนาดยาวได้เป็นช่วงๆ
โครงสร้างคำสั่ง
more file
ภายในโปรแกรม more จะมีคำสั่งเพื่อใช้งานคราวๆ ดังนี้
= แสดงเลขบรรทัด
q ออกจากโปรแกรม
เลื่อนไปยังหน้าถัดไป
เลื่อนไปยังบรรทัดถัดไป h แสดง help
ตัวอย่าง
more data.txt
แหล่งข้อมูลเพิ่มเติม : man more และ help ของ more
less เป็นการพัฒนาคำสั่ง more ให้มีประสิทธิภาพมากขึ้น เนื่องจาก more จะไม่สามารถดูข้อมูลย้อนหลังได้ less จึงเป็นปรับปรุงและเพิ่มเติมเงื่อนไขบางอย่างให้ more
โครงสร้างคำสั่ง
less file
ตัวอย่าง
less data.txt
แหล่งข้อมูลเพิ่มเติม : man less และ help ของ less
จะแสดงส่วนหัวของแฟ้มข้อมูล ตามจำนวนบรรทัดที่ต้องการ
โครงสร้างคำสั่ง
head [option] file
โดย option ที่มักใช้กันใน chown คือ
-n เพื่อทำการระบุบรรทัดที่ต้องการ (หากไม่ระบุจะเป็น 10 บรรทัด)
ตัวอย่าง
head data.txt
head -n 10 data.txt
แหล่งข้อมูลเพิ่มเติม : head --help และ man head
จะแสดงส่วนท้ายของแฟ้มข้อมูล ตามจำนวนบรรทัดที่ต้องการ
โครงสร้างคำสั่ง
tail [option] file
โดย option ที่มักใช้กันใน chown คือ
-n เพื่อทำการระบุบรรทัดที่ต้องการ (หากไม่ระบุจะเป็น 10 บรรทัด)
-c เพื่อระบุจำนวน byte
ตัวอย่าง
tail data.txt
tail -n 10 data.txt
แหล่งข้อมูลเพิ่มเติม : tail --help และ man tail
คำสั่งเกี่ยวกับผู้ใช้ และ การสื่อสาร
ใช้เพื่อแสดงว่าผู้ใช้ซึ่ง login เข้าสู่ระบบนั้น (ตัวเราเอง) login ด้วยชื่ออะไร
โครงสร้างคำสั่ง/ตัวอย่าง
whoami หรือ
who am i (บน SUN OS หรือ UNIX บางตัวเท่านั้น)
ใช้เพื่อแสดงว่ามีผู้ใช้ใดบ้างที่กำลังทำงานอยู่บนระบบ
โครงสร้างคำสั่ง/ตัวอย่าง
who
ใช้สำหรับแสดงรายละเอียดของผู้ใช้
โครงสร้างคำสั่ง
finger [user@host] หรือ
finger [@host]
กรณีไม่ระบุชื่อ finger จะแสดงรายละเอียดของ User ที่กำลัง logon อยู่บนเครื่องนั้นๆ ทั้งหมด ซึ่งหากไม่ระบุ host ด้วย โปรแกรมจะถือว่าหมายถึงเครื่องปัจจุบัน
ตัวอย่าง
finger
finger krerk@vwin.co.th
finger krerk
finger @student.netserv.chula.ac.th
แหล่งข้อมูลเพิ่มเติม : man finger
ใช้สำหรับการพูดคุยระหว่างผู้ใช้ด้วยกันบนระบบ ซึ่งผู้ใช้ทั้งทั้ง 2 ฝ่ายจะต้องพิมพ์คำสั่ง Talk ถึงกันก่อน จึงจะเริ่มการสนทนาได้
โครงสร้างคำสั่ง
talk user[@host] [tty]
กรณีไม่ระบุ host โปรแกรมจะถือว่าหมายถึงเครื่องปัจจุบัน (นอกจากนี้ยังมีคำสั่ง ytalk ซึ่งสามารถพูดคุยได้พร้อมกันมากกว่า 2 คน) ซึงบางกรณีเราอาจจะต้องระบุ tty ด้วยหากมีผู้ใช้ Log in เข้าสู่ระบบด้วยชื่อเดียวกันมากกว่า 1 หน้าจอ
ตัวอย่าง
talk krerk@vwin.co.th
แหล่งข้อมูลเพิ่มเติม : man talk
จะใช้เพื่อการส่งข้อมูลทางเดียวจากผู้เขียนไปถึงผู้รับบนเครื่องเดียวกันเท่านั้น
โครงสร้างคำสั่ง
write user [tty]
เมื่อมีการพิมพ์คำสั่ง write ผู้ใช้จะเห็นข้อความซึ่งจะแสดงว่าข้อความดังกล่าวถูกส่งมาโดยใคร ซึ่งหากผู้รับต้องการตอบกลับ ก็จะต้องใช้คำสั่ง write เช่นกัน เมื่อพิมพ์เสร็จแล้วให้พิมพ์ตัวอักษร EOF หรือ กด CTRL+C เพื่อเป็นการ interrupt ทั้งนี้ข้อความที่พิมพ์หลังจาก write จะถูกส่งหลังจากการกด Enter เท่านั้น
ตัวอย่าง
write krerk
แหล่งข้อมูลเพิ่มเติม : man write
จะใช้เพื่อควบคุมว่าผู้อื่นมีสิทธิที่จะส่งข้อความ write ถึงเราหรือไม่
โครงสร้างคำสั่ง
mesg [y | n]
โดย option มีความหมายคือ
y - หมายถึงผู้อื่นมีสิทธิที่จะส่งข้อความถึงเรา
n - หมายถึงผู้อื่นมีไม่สิทธิที่จะส่งข้อความถึงเรา
ตัวอย่าง
mesg y
mesg n
แหล่งข้อมูลเพิ่มเติม : man mesg
เพื่อใช้แสดงรายละเอียดข้อมูลของคำสั่ง หรือ วิธีการใช้แฟ้มข้อมูลต่างๆ มาจากคำว่า manual
โครงสร้างคำสั่ง
man [section]... manpage
โดย section ต่างๆ ของ manpage คือ
1 จะเป็น User Command
2 จะเป็น System Calls
3 จะเป็น Sub Routines
4 จะเป็น Devices
5 จะเป็น File Format
ตัวอย่าง
man printf
man 1 ls
แหล่งข้อมูลเพิ่มเติม : man man
ใช่เพื่อการ backup และ restore file ทั้งนี้การ tar จะเก็บทั้งโครงสร้าง directory และ file permission ด้วย (เหมาะสำหรับการเคลื่อนย้าย หรือแจกจ่ายโปรแกรมบนระบบ UNIX) มาจากคำว่า tape archive
โครงสร้างคำสั่ง
tar [option]... [file]...
โดย option ที่มักใช้กันใน echo คือ
-c ทำการสร้างใหม่ (backup)
-t แสดงรายชื่อแฟ้มข้อมูลในแฟ้มที่ backup ไว้
-v ตรวจสอบความถูกต้องของการประมวลผล
-f ผลลัพธ์ของมาที่ file
-x ทำการ restore
ตัวอย่าง
tar -cvf mybackup.tar /home/*
tar -tf mybackup.tar
tar -xvf mybackup.tar
แหล่งข้อมูลเพิ่มเติม : tar --help และ man tar
เพื่อกำหนด macro ให้ใช้คำสั่งได้สะดวกมากขึ้น (แบบเดียวกันกับการกำหนด macro ด้วย doskey)
โครงสร้างคำสั่ง
alias macroname='command'
ตัวอย่าง
alias ll='ls -F -l'
แหล่งข้อมูลเพิ่มเติม : man ของ Shell ที่ใช้อยู่
แสดงข้อความออกทาง standard output
โครงสร้างคำสั่ง
echo [option]... msg
โดย option ที่มักใช้กันใน echo คือ
-n ไม่ต้องขึ้นบรรทัดใหม่
ตัวอย่าง
echo -n "Hello"
echo "Hi.."
free -k
แหล่งข้อมูลเพิ่มเติม : man echo
แสดงหน่วยความจำที่เหลืออยู่บนระบบ
โครงสร้างคำสั่ง
free [-b|-k|-m]
โดย option ที่มักใช้กันใน free คือ
-b แสดงผลลัพธ์เป็นหน่วย byte
-k แสดงผลลัพธ์เป็นหน่วย kilobyte
-m แสดงผลลัพธ์เป็นหน่วย megabyte
ตัวอย่าง
free
free -b
free -k
แหล่งข้อมูลเพิ่มเติม : free--help และ man free
ใช้เพื่อทำการจัดเรียงข้อมูลในแฟ้มตามลำดับ (ทั้งนี้จะถือว่าข้อมูลแต่ละบรรทัดเป็น 1 record และจะใช้ field แรกเป็น key)
โครงสร้างคำสั่ง
sort [option] file
ตัวอย่าง
sort data.txt
แหล่งข้อมูลเพิ่มเติม : sort --help และ man sort
ทั้ง DOS/Windows และ UNIX ต่างก็มีความสามารถในการ Redirection และ Pipe ด้วยกันทั้งสิ้น ซึ่งประโยชน์ของการ Redirection และ การ Pipe คือการที่สามารถนำโปรแกรมเล็กๆ หลายโปรแกรมมาช่วยกันทำงานที่ซับซ้อนมายิ่งขึ้นได้
การ Pipe คือการนำผลลัพธ์ที่ได้จากโปรแกรมหนึ่ง ไปเป็นอินพุทของอีกโปรแกรมหนึ่ง เช่น
ls | sort
เป็นการนำผลลัพธ์ที่ได้จาก ls ส่งเป็นอินพุตให้โปรแกรม sort ทำงานต่อเป็นต้น
การ Redirection คือการเปลี่ยนที่มาของอินพุต และ เอาพุตที่แสดงผลลัพธ์ จาก Keyboard หรือ จอ Monitor เป็นแฟ้มข้อมูล หรือ Device ต่างๆ เช่น
ls >list.txt
เป็นการนำผลลัพธ์ที่ได้จาก ls เก็บลงในแฟ้มข้อมูลชื่อ list.txt เป็นต้น
ทั้งนี้ การ Redirection จะเป็นการสร้างแฟ้มข้อมูลใหม่เสมอ ในกรณีที่ต้องการเขียนข้อมูลต่อท้ายอาจทำได้โดยการใช้ >> แทน > เช่น
ls >list.txt
pwd >> list.txt
ผลลัพธ์จากคำสั่ง pwd จะแสดงต่อท้ายผลลัพธ์จากคำสั่ง ls ใน list.txt
ในทำนองเดียวกัน เราสามารถใช้ Redirection เพื่อรับข้อมูลจาก File ได้ซึ่งจะช่วยให้เราสามารถ Run Program ที่ต้องการ Input แบบ Batch ได้ (ซึ่งจะกล่าวถึงในการเขียน Shell Script ต่อไป)
ปัจจุบันได้มีผู้ Port โครงสร้างและ Utility ของ Unix ไปยัง Window หรือ WindowNT ภายใต้ชื่อ Project “Cygwin” ซึ่งผู้ใช้สามารถทำงานบน Window ได้เหมือนกับการทำงานบน Unix ทุกประการ ทั้งนี้รวมถึงการพัฒนาโปรแกรมด้วย ซึ่งในปัจจุบัน Project ดังกล่าวดูแลโดย RedHat ดังนั้นหากผู้อ่านท่านใดมีความสนใจ สามารถหาข้อมูลเพิ่มเติมและ Download ได้จาก http://www.cygwin.com/ หรือ http://www.cygnus.com/
นอกจากนี้ยังมีการ Port โปรแกรมต่างๆ ในโครงการของ GNU ไปยังระบบ DOS ภายใต้ชื่อ DJGPP ซึ่งประกอบไปด้วย Compiler และโปรแกรมต่างๆ บน Unix โดยสามารถหาข้อมูลเพิ่มเติมได้จาก http://www.gnu.org/
ตารางเปรียบเทียบการใช้คำสั่งระหว่าง DOS และ UNIX
DOS | UNIX | หมายเหตุ |
ATTRIB +-attrib file | chmod mode file | ระบบ Permission แตกต่างกัน |
BACKUP | tar cvf file file | การทำงานแตกต่างกัน |
CD dir | cd dir/ | คล้ายคลึงกัน |
COPY file1 file2 | cp file1 file2 | เหมือนกัน |
DEL file | rm file | เหมือนกัน |
DELTREE | rm -R file | เหมือนกัน |
DIR | ls หรือ ls -al และ du , df | dir จะแสดงเนื้อที่ที่ใช้ และ เนื้อที่ที่เหลือด้วย ซึ่ง UNIX ต้องดูด้วย du และ df แทน |
DIR file /S | find . -name file | บน Unix จะทำงานได้ดีกว่า |
DOSKEY name command | alias name='command' | เป็นการสร้าง macro ในทำนองเดียวกัน |
ECHO msg | echo "msg" | เหมือนกัน |
FC file1 file2 | diff file1 file2 | เหมือนกัน |
HELP command | man command | ทำนองเดียวกัน |
MEM | free | ทำนองเดียวกัน |
MD dir หรือ MKDIR dir | mkdir dir | เหมือนกัน |
MORE <> | more file หรือ less file | less จะทำงานได้ดีกว่า |
MOVE file1 file2 | mv file1 file2 | เหมือนกัน |
RD dir หรือ RMDIR dir | rmdir dir หรือ rm -d dir | เหมือนกัน |
RESTORE | tar xvf file | การทำงานแตกต่างกัน |
SORT file | sort file | เหมือนกัน |
TYPE file | more file หรือ less file | less จะทำงานได้ดีกว่า |