Monday, August 6, 2012

Ubuntu : คำสั่งการใช้งาน Unix/Linux เบื้องต้น

   สำหรับบทความนี้จะเป็นการรวบรวมคำสั่งและตัวอย่างการใช้งานคำสั่ง บนระบบปฏิบัติการ Unix/Linux นะครับซึ่งการใช้งานคำสั่งต่างๆจะมีประโยชน์มากต่อผู้ใช้งานทั้งผู้ใช้ที่เริ่มต้นกับ Linux ไปจนถึงผู้เชีั่ยวชาญเลยทีเดียว เรามาดูกันครับว่าคำสั่งต่างๆนั้นมีอะไรกันบ้าง ผมขอแยกเป็นหมวดหมู่ให้ง่ายต่อการอ่านและค้นหานะครับ

1. คำสั่งเกี่ยวกับการจัดการไดเรกทอรี่ คำสั่งในหมวดนี้ ได้แก่

  • cd
  • pwd
  • mkdir
  • rmdir

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

  • ls
  • cp
  • mv
  • rm
  • tar
  • gzip
  • gunzip





1. คำสั่งเกี่ยวกับการจัดการไดเรกทอรี่

   การจัดการ Directory ของระบบปฏิบัติการณ์ Ubuntu เราสามารถที่จะใช้เครื่องมือพื้นฐานที่มี
อยู่แล้วในการจัดการการทำงานต่างๆได้ นั่นคือ


ใช่แล้วครับโปรแกรมการจัดการไฟล์ที่มีมาพร้อมระบบปฏิบัติการ แต่มันจะไปสนุกอะไรหากเราใช้แต่เครื่องมือที่เป็น GUI (Graphic User Interface) เพราะสุดท้ายแล้วโค้ดเบื้องหลังของ GUI นั้นก็คือสิ่งที่เรากำลังจะทำกันนี่หล่ะครับ
 


  1.1 cd : เป็นคำสั่งที่ใช้สำหรับเปลี่ยนไดเรกทอรี่ที่อยู่ปัจจุบัน ย่อมาจากคำว่า change directory โดยการใช้งานคำสั่งมีรูปแบบดังนี้ครับ

       $ cd [directory]  หมายถึง การเปลี่ยนเข้าสู่ ไดเรกทอรี่ที่กำหนด
   หรือ 
       $ cd ~  หมายถึง การเปลี่ยนเข้าสู่ home directory 
   หรือ 
       $ cd ..  หมายถึง การเปลี่ยนกลับไปไดเรกทอรี่ก่อนหน้า 1 ขั้น
   หรือ
       $ cd /  หมายถึง การเปลี่ยนเข้าสู่ root directory

ตัวอย่าง เช่น ผมต้องการเข้าไปที่ไดเรกทอรี่ที่ชื่อ abc ผมสามารถที่จะใช้คำสั่งได้ดังนี้

  $ cd abc 

ดูการใช้งานคำสั่งตามภาพเลยนะครับ ( pwd คือคำสั่ง แสดงไดเรกทอรี่ที่เราอยู่ในปัจจุบัน จะได้เรียนในหัวข้อถัดไปครับ )


คำอธิบาย :

1. เริ่มแรกผมทำการตรวจสอบที่อยู่ในปัจจุบันของผมก่อนว่าอยู่ที่ไหนด้วยคำสั่ง pwd ก็จะเห็นว่าปัจจุบันผมอยู่ที่ /home/somkiat (somkiat เป็นชื่อ ไดเรกทอรี่ประจำตัวของผมเอง ท่านอาจเป็นชื่ออื่นตามที่ตั้งไว้)
2. ต่อมาผมทำการเปลี่ยนตำแหน่งไปที่ไดเรกทอรี่ root โดยพิมพ์คำสั่ง cd / จากนั้นก็ตรวจสอบที่อยู่ปัจจุบันตามเดิมคือพิมพ์ pwd ก็จะแสดงที่อยู่ root เป็น /
3.เมื่อผมอยู่ที่อยู่ root แล้วผมจะเข้าไดเรกทอรี่ home ผมก็ต้องพิมพ์คำสั่งว่า cd home
4.ต่อมาผมต้องการเข้า ไดเรกทอรี่ somkiat อีกผมก็พิมพ์คำสั่งอีกว่า cd somkiat ซึ่งจะทำให้ผมมาอยู่ที่  /้home/somkiat อันที่จริงแล้วสามารถพิมพ์ในข้อที่แล้วได้ว่า cd home/somkiat ก็ได้
5.ต่อมาผมใช้คำสั่งว่า cd .. เพื่อแสดงว่าจะเปลี่ยนไปที่ไดเรกทอรี่ก่อนหน้า ตรวจสอบดูด้วยคำสั่ง pwd จะพบว่าเรามาอยู่ที่ไดเรกทอรี่ home อย่างถูกต้อง
6.เมื่อผมใช้คำสั่ง cd ~ ก็จะเป็นการเปลี่ยนไดเรกทอรี่มาสู่ home directory ซึ่งก็คือ home/somkiat  นั่นเอง

   1.2 pwd : เป็นคำสั่งที่ใช้สำหรับแสดงไดเรกทอรี่ที่อยู่ในปัจจุบัน ย่อมาจากคำว่า print work directory มีการใช้งานดังนี้

       $ pwd 

ตัวอย่างดังภาพก่อนหน้านี้เลยนะครับ

   1.3 mkdir : เป็นคำสั่งที่ใช้สำหรับการสร้าง ไดเรกทอรี่ ย่อมาจากคำว่า make directory มีรูปแบบคำสั่งดังนี้


       $ mkdir [option] directory name 


option : ประกอบไปด้วย
       -m คือการกำหนด permission ของไดเรกทอรี่
       -p คือการกำหนดเป็น parent directory


ตัวอย่างการใช้งานคำสั่ง

       $ mkdir abc  สร้างไดเรกทอรี่ชื่อ abc

   1.4 rmdir : เป็นคำสั่งสำหรับการลบไดเรกทอรี่ที่ว่างเปล่า ย่อมาจาก remove directory มีรูปแบบการใช้งานดังนี้


       $ rmdir [option] directory name 


option : -p คือการไล่ลบไดเรกทอรี่ที่เป็น Child ก่อนแล้วลบถัดลำดับมาสูู่ Parent Directory


ตัวอย่างการใช้งานคำสั่ง


       $ rmdir abc  หมายถึงลบไดเรกทอรี่เปล่าขื่อ abc


       $ rmdir /home/abc/a1  หมายถึงลบไดเรกทอรี่ a1 abc home ตามลำดับ

หากว่าผมต้องการลบไดเรกทอรี่ชื่อ xyz ที่มีข้อมูลอยู่ภายในแล้วจะต้องใช้คำสั่งดังนี้

       $ rm -r xyz  ต้องใช้คำสั่ง rm -r แทนเพราะเป็น directory ที่มีข้อมูลอยู่ไม่ใช่ ไดเรกทอรี่เปล่า ที่จะใช้คำสั่ง rmdir ในการลบ



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


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


       $ ls [option] [file] 


option : ที่มักใช้กันได้แก่
       -l  จะแสดงผลลัพธ์แบบละเอียดรวมถึงการแสดงสิทธิ (permission)
       -a  จะแสดงรายละเอียด
       -f  จะแสดงเครื่องหมาย / หลังไดเรกทอรี่ และเครื่องหมาย * หลังแฟ้มข้อมูลที่ execute ได้


ตัวอย่างการใช้คำสั่ง 






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

       $ cp [source] [target]          โดยที่ source คือที่อยู่ต้นทางของเอกสารที่จะสำเนา และ target  คือที่อยู่ปลายทางของเอกสารที่จะทำสำเนาไว้

ตัวอย่างการใช้คำสั่ง

       $ cp file1.txt file2.txt    คือการสำเนาเอกสารชื่อ file1.txt ไปเป็นเอกสารชื่อ file2.txt ณ ที่อยู่เดิม


       $ cp file1.txt /tmp    คือการสำเนาเอกสารชื่อ file1.txt ไปอยู่ที่ /tmp ชื่อเดิมคือ file1.txt


       $ cp file1.txt /tmp/file2.txt   คือการสำเนาเอกสารชื่อ file1.txt ไปอยู่ที่ /tmp ชื่อ file2.txt


สำหรับการทำสำเนา ไดเรกทอรี่ ให้ใช้คำสั่ง cp -r นะครับ ตามตัวอย่าง


       $ cp -r abc /tmp/abc2    คือการสำเนาไดเรกทอรี่ชื่อ abc ไปอยู่ที่ /tmp ชื่อใหม่ว่า abc2


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


       $ mv [source] [target]     โดยที่ source คือที่อยู่ต้นทางของเอกสารที่จะย้าย และ target  คือที่อยู่ปลายทางของเอกสารที่จะย้ายไปไว้

ตัวอย่างการใช้คำสั่ง

       $ mv file1.txt file2.txt    กรณีคำสั่งนี้หมายถึงการเปลี่ยนชื่อจาก file1.txt เป็น file2.txt

       $ mv file1.txt /tmp/file2.txt   คือการย้าย file1.txt ไปที่อยู่ /tmp ในชื่อใหม่ว่า file2.txt

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


       $ rm [option] file  


option : ที่มักใช้กัน ได้แก่
       -r  ทำการลบในไดเรกทอรี่ย่อยทั้งหมด
       -i  โปรแกรมจะมีการถามยืนยันก่อนทำการลบ
       -f  โปรแกรมจะลบทันทีโดยไม่ถามยืนยันก่อน

ตัวอย่างการใช้งานคำสั่ง มีดังนี้

       $ rm file1.txt  คือการลบไฟล์ file1.txt

       $ rm *.txt  คือคำสั่งลบไฟล์ทุกไฟล์ที่มีนามสกุล .txt ในไดเรกทอรี่ปัจจุบัน

       $ rm -r abc  คือคำสั่งลบไดเรกทอรี่ชื่อ abc 

  2.5 tar : เป็นคำสั่งใช้สำหรับ backup และ restore ไฟล์โดยคำสั่งนี้จะทำการเก็บทั้งโครงสร้างของไฟล์หรือไดเรกทอรี่ปัจจุบันนั้นๆ ซึ่งรวมถึง file permission นั้นๆด้วย จึงเหมาะสำหรับการทำการเคลื่อนย้ายหรือแจกจ่ายโปรแกรมบนระบบ Unix/Linux เป็นอย่างยิ่ง คำสั่งนี้ย่อมาจาก tape archive มีรูปแบบการใช้งานดังนี้


       $ tar [option] file 


option : ที่มักนิยมใช้กันคือ
       -c  การสร้างใหม่ (Backup)
       -t  แสดงรายชื่อแฟ้มข้อมูลในแฟ้มที่ backup ไว้
       -v  ตรวจสอบความถูกต้องของการประมวลผล
       -f  ผลลัพธ์ที่จะเกิดขึ้นของไฟล์นั้นๆ
       -x  ทำการคลายออก (Restore : Decompress)
       -z  ทำการบีบอัดข้อมูล (Compress)
ซึ่งในระบบปฏิบัติการ Ubuntu คำสั่งใน option ไม่จำเป็นต้องมีเครื่องหมาย "-" นำหน้าก็ได้

ตัวอย่างการใช้คำสั่ง

       $ tar -cvf abc.tar    รวมไฟล์ในไดเรกทอรี่ปัจจุบันเข้าด้วยกัน และสร้างเป็นไฟล์ชื่อ abc.tar

       $ tar -cvfz abc.tar    รวมไฟล์ในไดเรกทอรี่ปัจจุบันเข้าด้วยกันรวมทั้งบีบอัดข้อมูลด้วย จากนั้นสร้างเป็นไฟล์ชื่อ abc.tar

       $ tar -xvf abc.tar    คลายไฟล์ abc.tar และเก็บไว้ในไดเรกทอรี่ปัจจุบัน

       $ tar -xvfz abc.tar    คลายไฟล์ tar และคลายไฟล์ที่เกิดจากการบีบอัด

  2.6 gzip : เป็นการบีบอัดข้อมูล (Compress) ไฟล์ที่ได้จะมีนามสกุล .gz มีรูปแบบการใช้งานคำสั่งดังนี้


       $ gzip file 


ตัวอย่างคำสั่ง


       $ gzip abc.tar       ไฟล์ที่ได้ก็จะเป็น abc.tar.gz ซึ่งจะเป็นไฟล์ tar ที่ถูกบีบอัดแล้วนั่นเอง


  2.7 gunzip : เป็นคำสั่งสำหรับคลายไฟล์ที่เกิดจากการใช้ gzip บีบอัด (Decompress) มีรูปแบบการใช้คือ


       $ gunzip file 


ตัวอย่างการใช้งานคำสั่ง


       $ gunzip abc.tar.gz    ไฟล์ทีีได้ก็จะถูกคลายออกจากการบีบอัด


*********************************************************


หมายเหตุ :       


       การใช้คำสั่ง tar -cvf และ gzip จะได้ผลลัพท์เหมือนกับการใช้คำสั่ง tar -cvfz เพียงคำสั่งเดียว
       การใช้คำสั่ง tar -xvf และ gunzip จะได้ผลลัพท์เหมือนกับการใช้คำสั่ง tar -xvfz เพียงคำสั่งเดียว


       ดังนั้นจึงนิยมใช้คำสั่ง tar -cvfz ในการ Compress ไฟล์เพื่อให้ได้ผลลัพท์เป็นไฟล์ที่มีนามสกุล .tar.gz เสมอ และในทางตรงข้ามมักจะใช้คำสั่ง tar -xvfz ในการ Decompress ไฟล์ที่มีนามสกุล .tar.gz เช่นกัน




       ครับสำหรับบทความนี้ก็จบลงเป็นที่เรียบร้อย ซึ่งในบทความต่อๆไปจะมานำเสนอการใช้คำสั่ง Unix/Linux ในขั้นสูงกว่าต่อไป ช่วยติดตาม แนะนำ ติชมกันด้วยนะครับ สวัสดีครับ

2 comments:

  1. อาจารย์เป้คับ ถ้าจะเปลี่ยนเป็นภาษาไทย กด ~ สัญลักษณ์ $ จะเปลี่ยนเป็น ฿ ใช่ป่ะคับ >,<

    ReplyDelete
  2. เปลี่ยนภาษาใช้ Shift + Alt ครับ ถ้ากด ~ ขณะที่เป็นแป้นไทยจะเป็น _ แทน ส่วนถ้ากดขณะที่เป็นแป้นภาษาอังกฤษจะเป็น ` แทนครับ ถ้าติดการเปลี่ยนภาษาแบบใช้ปุ่ม ~ (Grave) แบบ Windows ต้องลงโปรแกรมเพิ่มเติมครับ ตามนี้เลยครับ http://goo.gl/OkW7I (สำหรับ Ubuntu 12.04 นะครับ)

    ReplyDelete