วันจันทร์ที่ 9 กุมภาพันธ์ พ.ศ. 2552

unix เบื้องต้น

unix เบื้องต้น
1. Unix
เป็นโปรแกรมจัดการระบบงาน (Operating system) ในเครือข่ายคอมพิวเตอร์ระบบหนึ่ง ได้รับการออกแบบโดยห้องปฏิบัติการเบลล์ของบริษัท AT&T ในปี คศ. 1969 ถึงแม้ว่าระบบ Unix จะคิดค้นมานานแล้ว แต่ยังเป็นที่นิยมใช้กันมากมาจนถึงปัจจุบัน โดยเฉพาะระบบ พื้นฐานของอินเตอร์เนต เนื่องจากมีความคล่องตัวสูง ตลอดจนสามารถใช้ได้กับเครื่องคอมพิวเตอร์หลายชนิด นอกจากนั้น Unix ยังเป็นระบบ ใช้ในลักษณะผู้ใช้ร่วมกันหลายคน (Mutiuser) และงานหลายงานในขณะเดียวกัน (Mutitasking) ผู้ใช้สามารถดัดแปลง หรือเพิ่มคำสั่งใน Unix ด้วยตนเองเพื่อความสะดวกได้ ในปัจจุบันพบว่าระบบ Unix ไม่จำเป็นต้องใช้เครื่องที่มีขนาดใหญ่ราคาแพง เช่น SunOS IBM AIX HP เนื่องจากได้มีกลุ่มคิดค้นระบบ Unix ที่สามารถใช้กับเครื่อง PC 486 ธรรมดา เราเรียกระบบปฏิบัติการนี้ว่า Linux เขียนได้ใช้ระบบดังกล่าวเป็นระบบหลักในการศึกษาและเขียนเป็นตำราใน http://passkorn.hypermart.net
2. Unix Kernel
Kernel เป็นส่วนของ Unix ที่ทำหน้าที่จัดการ Hardware ต่างๆของคอมพิวเตอร์ เช่น จอภาพ แป้นพิมพ์ CPU เครื่องพิมพ์ CD ROM ฯลฯ
ในปัจจุบันจะพบว่ามี Unix Kernel Programes ผลิตออกมาหลายบริษัทด้วยกัน เช่น Unix System V , BSD Unix ฯลฯ
3.Shell
โดยปกติผู้ใช้จะไม่สามารถติดต่อหรือใช้ Unix Kernel โดยตรง แต่จะมี software ที่เป็นตัวตีความหมายคำสั่งของผู้ใช้ให้กับ Unix Kernael อีกทีหนึ่ง ดังภาพ

Software ที่ทำหน้าที่นี้เรียกโดยทั่วไปว่า "Shell" เช่นกันก็จะมีผู้ผลิต Shell ขึ้มาอย่างมากมาย แต่ที่นิยมใช้งานมากที่สุดคือ "Bourne Shell" ซึ่งถูกเรียกตามผู้คิด คนแรกก็คือ Steven Bourne จะสามารถสังเกตได้โดยเครื่องคอมพิวเตอร์ที่อยู่ใน Bourne Shell จะมี "พร้อม" (prompt) เป็น $ "C shell" เป็น shell ที่นิยมใช้กันมากเช่นกัน โดยผู้เขียนคนแรก ก็คือ Bill Joy (เป็นคนเขียน vi บนยูนิกซ์ด้วยเช่นกัน) ปัจจุบัน Bill Joy ทำงาน ให้กับบริษัท Sun Microsystems (เขาเป็นผู้ร่วมก่อตั้งบริษัทคนหนึ่งด้วย) "C shell" จะมีเครื่องหมาย prompt เป็น % และยังมี "Korn shell" มี prompt เป็น $ Korn shell เป็นการนำเอาข้อดีของ Bourne และ C shell มารวมกัน ถ้าจะเข้าสู่ C shell ให้พิมพ์ csh ถ้าจะเข้าสู่ Korn shell ให้พิมพ์ ksh ส่วนใหญ่เมื่อผู้ใช้ login ระบบเข้ามามักจะเป็น Bourne กล่าวนำก่อนเข้าเรื่อง

ระบบปฏิบัติการ (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 ไม่แสดงหมายเลขบรรทัด

คำสั่ง Unix ที่ใช้ประจำ
Unix เป็นระบบปฏิบัติการที่นิยมใช้กับแพร่หลายบนระบบขนาดใหญ่ และในปัจจุบันยังมีระบบปฏิบัติการในลักษณะของ Unix-like เกิดขึ้นมากมาย และ เริ่มเป็นที่นิยมใช้กันมากหลายยิ่งขึ้นบนเครื่องคอมพิวเตอร์ส่วนบุคคล เอกสารชุดนี้จึงสรุปคำสั่งบน Unix ที่มักใช้เป็นประจำโดยมีการยกตัวอย่างเปรียบเทียบกับ DOS/Windows พร้อมกับอธิบายถึงส่วนขยายเพิ่มเติมของคำสั่ง เพื่ออำนวยความสะดวกให้กับผู้เริ่มหัดใช้ Unix ทั่วไป
ความรู้พื้นฐานเกี่ยวกับ Unix ที่ควรทราบ

1. Unix เป็นระบบปฏิบัติการแบบ Multi User และ Multi Tasking ซึ่งแตกต่างจาก Window ที่เป็นระบบปฏิบัติการแบบ Multi Tasking แต่ไม่เป็น Multi User กล่าวคือ ณ เวลาหนึ่งๆ บนระบบ Unix จะมีผู้ใช้งานเครื่องคอมพิวเตอร์ได้มากกว่า 1 คนพร้อมกัน ทำให้ Unix มีระบบการจัดการ Permission และระบบรักษาความปลอดภัยของข้อมูลดีกว่าและซับซ้อนกว่า DOS/Window
2. ระบบ File System ของ Unix นั้นจะเป็นระบบ Single Root กล่าวคือจะมี Logical Driver เพียง Drive เดียวเท่านั้น และกรณีมี Harddisk หลายตัวหรือหลาย Partition แต่ละ Partition จะถูกกำหนดให้เป็นเพียง Directory ย่อยของระบบ ซึ่งจะต่างกับ DOS/Window ที่เป็นระบบ Multiple Root ที่จะแยก Drive / Parition ตามตัวอักษร เช่น A: , C: เป็นต้น
3. เนื่องจาก Unix เป็นระบบปฏิบัติการที่พัฒนาด้วยภาษา C ดังนั้นชื่อต่างๆ บน Unix จึงมีลักษณะเป็น Case-sensitive เช่น กรณีแฟ้มข้อมูลชื่อ MyFile กับ myfile จะเป็นแฟ้มข้อมูลคนละชื่อกัน
4. ระบบ Permission ของ Unix จะแบ่งเป็น 3 ระดับคือ ระดับเจ้าของ (User หรือ Owner) ระดับกลุ่ม (Group) และ ระดับบุคคลอื่น (Other) โดยในแต่ละระดับจะแบ่งออกเป็นสิทธิในการประมวลผล (execute) การอ่าน (read) และ การเขียน (write) ทั้งรายละเอียดเพิ่มเติมให้ดูจากคำสั่ง chmod
5. กรณีที่ผู้ใช้กระทำคำสั่งใดผิดพลาดนั้น บน Unix เราสามารถที่จะ Interrupt เพื่อยกเลิกการทำงานของคำสั่งหรือโปรแกรมนั้นๆ ได้โดยการกด CTRL + C
6. มาตรฐานของระบบ Keyboard บนเครื่อง Unix บางเครื่องอาจจะแตกต่างกับมาตรฐาน Keyboard บนเครื่องที่เราใช้อยู่ ดังนั้นในบางกรณี เช่น การ telnet จากเครื่องอื่นเข้าสู่ระบบ Unix เราจึงไม่อาจใช้ Key บางอันตามปกติได้ เช่น backspace ดังนั้นเพื่ออำนวยความสะดวกให้เราสามารถใช้ backspace ได้ตามปกติจึงต้องมีการ map key ใหม่ด้วยการเรียกคำสั่ง stty erase [backspace]

คำสั่งเกี่ยวกับการจัดการแฟ้มข้อมูล

ls

เป็นคำสั่งที่ใช้สำหรับแสดงแฟ้มข้อมูล (ในทำนองเดียวกับ dir) มากจากคำว่า list

โครงสร้างคำสั่ง

ls [option]... [file]...

โดย option ที่มักใช้กันใน ls คือ

-l จะแสดงผลลัพธ์แบบ Long Format ซึ่งจะแสดง Permission ของแฟ้มด้วย

-a จะแสดงแฟ้มข้อมูลทั้งหมด + ข้อมูลที่ซ่อนอยู่

-F จะแสดง / หลัง Directory และ * หลังแฟ้มข้อมูลที่ execute ได้

ตัวอย่าง

ls -l - แสดงแฟ้มข้อมูลทั้งหมด แบบ Long Format (แต่ไม่แสดงข้อมูลที่ซ่อนอยู่)

ls -al - แสดงแฟ้มข้อมูลทั้งหมด รวมทั้งข้อมูลที่ซ่อนอยู่ แบบ Long Format

ls -F

ls /usr/bin

แหล่งข้อมูลเพิ่มเติม : ls --help และ man ls

cp

เป็นคำสั่งที่ใช้สำหรับสำเนาแฟ้มข้อมูล (ในทำนองเดียวกับ copy) มาจากคำว่า copy

โครงสร้างคำสั่ง

cp source target

ตัวอย่าง

cp test.txt test1.bak

แหล่งข้อมูลเพิ่มเติม : cp --help และ man cp

mv

เป็นคำสั่งที่ใช้สำหรับการย้ายแฟ้มข้อมูลและ Directory รวมถึงการเปลี่ยนชื่อด้วย (ในทำนองเดียวกับ move) มาจากคำว่า move

โครงสร้างคำสั่ง

mv source target

ตัวอย่าง

mv *.tar /backup

mv test.txt old.txt

mv bin oldbin

แหล่งข้อมูลเพิ่มเติม : mv --help และ man mv

rm

เป็นคำสั่งที่ใช้สำหรับลบแฟ้มข้อมูล (ในทำนองเดียวกับ del) มาจากคำว่า remove

โครงสร้างคำสั่ง

rm [option]... [file]...

โดย option ที่มักใช้กันใน rm คือ

-r ทำการลบข้อมูลใน directory ย่อยทั่งหมด

-i โปรแกรมจะถามยืนยันก่อนทำการลบ

-f โปรแกรมจะลบข้อมูลทันที โดยไม่ถามยืนยันก่อน

ตัวอย่าง

rm -rf test/

rm test.doc

แหล่งข้อมูลเพิ่มเติม : rm --help และ man rm



คำสั่งเกี่ยวกับการจัดการ Directory / Folder

pwd

เป็นคำสั่งที่ใช้สำหรับแสดง Directory ปัจจุบัน (ในทำนองเดียวกับการพิมพ์ cd บน DOS) มาจากคำว่า print work directory

โครงสร้างคำสั่ง / ตัวอย่าง

pwd

cd

เป็นคำสั่งที่ใช้สำหรับเปลี่ยน directory ปัจจุบัน (ในทำนองเดียวกับ cd) มาจากคำว่า change directory

โครงสร้างคำสั่ง

cd directory

โดย directory ในที่นี้อาจเป็น relative หรือ absolute path ก็ได้

ตัวอย่าง

cd /usr

cd ~ (เป็นการเข้าสู่ home directory)

cd - (เป็นการยกเลิกคำสั่ง cd ครั้งก่อน)

cd .. (เป็นการออกจาก directory 1 ชั้น

ข้อควรระวัง : คำสั่ง cd บน UNIX จะต้องมีเว้นวรรคเสมอ

mkdir

เป็นคำสั่งที่ใช้สำหรับการสร้าง 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

rmdir

เป็นคำสั่งที่ใช้สำหรับการลบ 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



คำสั่งเกี่ยวกับการค้นหาแฟ้มข้อมูล และ Permission

file

บน ระบบ DOS/Windows นั้น ประเภทของแฟ้มข้อมูลจะถูกระบุด้วยนามสกุล แต่ใน UNIX จะไม่มีนามสกุลเพื่อใช้ระบุประเภทของแฟ้มข้อมูล ดังนั้นการหาประเภทของแฟ้มข้อมูลจะดูจาก Context ภายในของแฟ้ม ซึ่งคำสั่ง file จะทำการอ่าน Content และบอกประเภทของแฟ้มข้อมูลนั้นๆ

โครงสร้างคำสั่ง

file [option]... file

ตัวอย่าง

file /bin/sh

file report.doc

แหล่งข้อมูลเพิ่มเติม : file --help และ man file

find

เป็นคำสั่งที่ใช้สำหรับค้นหาแฟ้มข้อมูล

โครงสร้างคำสั่ง

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

chown

ใช้สำหรับเปลี่ยนเจ้าของแฟ้มข้อมูลหรือ 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

chgrp

ใช้สำหรับเปลี่ยนกลุ่มเจ้าของแฟ้มข้อมูลหรือ Directory

โครงสร้างคำสั่ง

chgrp [option]... group file

โดย option ที่มักใช้กันใน chgrp คือ

-R เปลี่ยน Permission ของทุกๆ แฟ้มย่อยใน Directory

ตัวอย่าง

chgrp users /home/krerk

chown nobody data.txt

แหล่งข้อมูลเพิ่มเติม : chgrp --help และ man chgrp

chmod

ใช้สำหรับเปลี่ยนเจ้าของแฟ้มข้อมูลหรือ 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


คำสั่งเกี่ยวกับการดู และ แก้ไขข้อมูลในแฟ้มข้อมูล

cat

ใช้ สำหรับดูข้อมูลภายในแฟ้มข้อมูล หรือ 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

more

สืบ เนื่องจากคำสั่ง cat ไม่เหมาะกับการดูข้อมูลที่มีความยาวมากๆ ดังนั้น จึงได้มีการพัฒนา more ขึ้น เพื่อช่วยให้สามารถดูข้อมูลที่มีขนาดยาวได้เป็นช่วงๆ

โครงสร้างคำสั่ง

more file

ภายในโปรแกรม more จะมีคำสั่งเพื่อใช้งานคราวๆ ดังนี้

= แสดงเลขบรรทัด

q ออกจากโปรแกรม

เลื่อนไปยังหน้าถัดไป

เลื่อนไปยังบรรทัดถัดไป

h แสดง help

ตัวอย่าง

more data.txt

แหล่งข้อมูลเพิ่มเติม : man more และ help ของ more

less

less เป็นการพัฒนาคำสั่ง more ให้มีประสิทธิภาพมากขึ้น เนื่องจาก more จะไม่สามารถดูข้อมูลย้อนหลังได้ less จึงเป็นปรับปรุงและเพิ่มเติมเงื่อนไขบางอย่างให้ more

โครงสร้างคำสั่ง

less file

ตัวอย่าง

less data.txt

แหล่งข้อมูลเพิ่มเติม : man less และ help ของ less

head

จะแสดงส่วนหัวของแฟ้มข้อมูล ตามจำนวนบรรทัดที่ต้องการ

โครงสร้างคำสั่ง

head [option] file

โดย option ที่มักใช้กันใน chown คือ

-n เพื่อทำการระบุบรรทัดที่ต้องการ (หากไม่ระบุจะเป็น 10 บรรทัด)

ตัวอย่าง

head data.txt

head -n 10 data.txt

แหล่งข้อมูลเพิ่มเติม : head --help และ man head

tail

จะแสดงส่วนท้ายของแฟ้มข้อมูล ตามจำนวนบรรทัดที่ต้องการ

โครงสร้างคำสั่ง

tail [option] file

โดย option ที่มักใช้กันใน chown คือ

-n เพื่อทำการระบุบรรทัดที่ต้องการ (หากไม่ระบุจะเป็น 10 บรรทัด)

-c เพื่อระบุจำนวน byte

ตัวอย่าง

tail data.txt

tail -n 10 data.txt

แหล่งข้อมูลเพิ่มเติม : tail --help และ man tail



คำสั่งเกี่ยวกับผู้ใช้ และ การสื่อสาร

whoami

ใช้เพื่อแสดงว่าผู้ใช้ซึ่ง login เข้าสู่ระบบนั้น (ตัวเราเอง) login ด้วยชื่ออะไร

โครงสร้างคำสั่ง/ตัวอย่าง

whoami หรือ

who am i (บน SUN OS หรือ UNIX บางตัวเท่านั้น)

who

ใช้เพื่อแสดงว่ามีผู้ใช้ใดบ้างที่กำลังทำงานอยู่บนระบบ

โครงสร้างคำสั่ง/ตัวอย่าง

who

finger

ใช้สำหรับแสดงรายละเอียดของผู้ใช้

โครงสร้างคำสั่ง

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

talk

ใช้สำหรับการพูดคุยระหว่างผู้ใช้ด้วยกันบนระบบ ซึ่งผู้ใช้ทั้งทั้ง 2 ฝ่ายจะต้องพิมพ์คำสั่ง Talk ถึงกันก่อน จึงจะเริ่มการสนทนาได้

โครงสร้างคำสั่ง

talk user[@host] [tty]

กรณี ไม่ระบุ host โปรแกรมจะถือว่าหมายถึงเครื่องปัจจุบัน (นอกจากนี้ยังมีคำสั่ง ytalk ซึ่งสามารถพูดคุยได้พร้อมกันมากกว่า 2 คน) ซึงบางกรณีเราอาจจะต้องระบุ tty ด้วยหากมีผู้ใช้ Log in เข้าสู่ระบบด้วยชื่อเดียวกันมากกว่า 1 หน้าจอ

ตัวอย่าง

talk krerk@vwin.co.th

แหล่งข้อมูลเพิ่มเติม : man talk

write

จะใช้เพื่อการส่งข้อมูลทางเดียวจากผู้เขียนไปถึงผู้รับบนเครื่องเดียวกันเท่านั้น

โครงสร้างคำสั่ง

write user [tty]

เมื่อ มีการพิมพ์คำสั่ง write ผู้ใช้จะเห็นข้อความซึ่งจะแสดงว่าข้อความดังกล่าวถูกส่งมาโดยใคร ซึ่งหากผู้รับต้องการตอบกลับ ก็จะต้องใช้คำสั่ง write เช่นกัน เมื่อพิมพ์เสร็จแล้วให้พิมพ์ตัวอักษร EOF หรือ กด CTRL+C เพื่อเป็นการ interrupt ทั้งนี้ข้อความที่พิมพ์หลังจาก write จะถูกส่งหลังจากการกด Enter เท่านั้น

ตัวอย่าง

write krerk

แหล่งข้อมูลเพิ่มเติม : man write

mesg

จะใช้เพื่อควบคุมว่าผู้อื่นมีสิทธิที่จะส่งข้อความ write ถึงเราหรือไม่

โครงสร้างคำสั่ง

mesg [y | n]

โดย option มีความหมายคือ

y - หมายถึงผู้อื่นมีสิทธิที่จะส่งข้อความถึงเรา

n - หมายถึงผู้อื่นมีไม่สิทธิที่จะส่งข้อความถึงเรา

ตัวอย่าง

mesg y

mesg n

แหล่งข้อมูลเพิ่มเติม : man mesg


คำสั่งทั่วไป / อื่นๆ

man

เพื่อใช้แสดงรายละเอียดข้อมูลของคำสั่ง หรือ วิธีการใช้แฟ้มข้อมูลต่างๆ มาจากคำว่า 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

tar

ใช่ เพื่อการ 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

alias

เพื่อกำหนด macro ให้ใช้คำสั่งได้สะดวกมากขึ้น (แบบเดียวกันกับการกำหนด macro ด้วย doskey)

โครงสร้างคำสั่ง

alias macroname='command'

ตัวอย่าง

alias ll='ls -F -l'

แหล่งข้อมูลเพิ่มเติม : man ของ Shell ที่ใช้อยู่

echo

แสดงข้อความออกทาง standard output

โครงสร้างคำสั่ง

echo [option]... msg

โดย option ที่มักใช้กันใน echo คือ

-n ไม่ต้องขึ้นบรรทัดใหม่

ตัวอย่าง

echo -n "Hello"

echo "Hi.."

free -k

แหล่งข้อมูลเพิ่มเติม : man echo

free

แสดงหน่วยความจำที่เหลืออยู่บนระบบ

โครงสร้างคำสั่ง

free [-b|-k|-m]

โดย option ที่มักใช้กันใน free คือ

-b แสดงผลลัพธ์เป็นหน่วย byte

-k แสดงผลลัพธ์เป็นหน่วย kilobyte

-m แสดงผลลัพธ์เป็นหน่วย megabyte

ตัวอย่าง

free

free -b

free -k

แหล่งข้อมูลเพิ่มเติม : free--help และ man free

sort

ใช้เพื่อทำการจัดเรียงข้อมูลในแฟ้มตามลำดับ (ทั้งนี้จะถือว่าข้อมูลแต่ละบรรทัดเป็น 1 record และจะใช้ field แรกเป็น key)

โครงสร้างคำสั่ง

sort [option] file

ตัวอย่าง

sort data.txt

แหล่งข้อมูลเพิ่มเติม : sort --help และ man sort

การ Redirection และ Pipe

ทั้ง 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



ที่มาครับ คัดลอกมาจาก : http://cpe-ru.exteen.com/20060523/unix เพื่อมาเก็บไว้ในห้องสมุดของตัวเองครับ

ใน ทำนองเดียวกัน เราสามารถใช้ Redirection เพื่อรับข้อมูลจาก File ได้ซึ่งจะช่วยให้เราสามารถ Run Program ที่ต้องการ Input แบบ Batch ได้ (ซึ่งจะกล่าวถึงในการเขียน Shell Script ต่อไป)

ใช้คำสั่ง Unix บน DOS/Windows

ปัจจุบัน ได้มีผู้ 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 < file 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 จะทำงานได้ดีกว่า

ไม่มีความคิดเห็น:

สบายๆสไตล์ของฉัน