Command course แพทเทิร์นของการสั่ง


Posted in:
gumara's picture

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

  1. คำสั่ง
  2. ออพชั่นของคำสั่ง
  3. พาธหรือไฟล์ (บางคำสั่งจะใช้พาธต้นทางประกอบกับพาธปลายทาง)

ในการใช้งานเราจะเอาสิ่งที่ใช้ป้อนตามลิสท์ข้างบนนั้นมาเรียงกันครับ แล้วก็คั่นด้วย space แค่นี้เองครับ โดยการสั่งจะต้องขึ้นต้นด้วยคำสั่งเสมอตามด้วย ออพชั่นแล้วพาธ หรือพาธแล้วออพชั่นก็แล้วแต่
ตัวอย่างของคำสั่ง
(อย่าเพิ่งใส่ใจคำสั่งนะครับ ในบทนี้ขอให้นักเรียนดูเรื่องแพทเทิร์นของการสั่งก่อน)

  1. ls -a -l /home
  2. sudo ls -a -l /home
  3. ls /home -a -l
  4. ls -al /home
  5. cp /tmp/abc.txt /tmp/def.txt

อ.ยกขึ้นมาให้ดู 5 ตัวอย่างก่อนนะครับ ซึ่ง อ.จะขอแยกให้ดูเป็นอย่างๆก่อน

  • ls คือคำสั่ง
  • cp คือคำสั่ง
  • sudo คือคำสั่ง
  • -a เป็นออพชั่นของคำสั่ง ls
  • -l เป็นออพชั่นของคำสั่ง ls
  • /home เป็นพาธครับผม
  • /tmp/xxx.txt เป็นพาธที่ระบุตำแหน่งของไฟล์

อธิบายตามลำดับนะครับ

  • จากคำสั่งแรก จะเห็นว่า อ.ใช้ คำสั่งตามด้วยออพชั่น สองออพชั่น ตามด้วยพาธ ที่จะให้คำสั่งนั้นทำงาน
  • คำสั่งสอง อ.ใช้คำสั่งซ้อนคำสั่ง อันนี้สังเกตุนะครับ จะมีไม่บ่อยที่เราจะได้ใช้คำสั่งซ้อนคำสั่งครับ แต่ให้ดูไว้ว่ามันมีและมันเป็นแบบนี้
  • คำสั่งที่สาม อ.ใส่คำสั่งก่อน แล้วตามด้วยพาธ แล้วค่อยตามด้วยออพชั่นสองออพชั่น ซึ่งก็ได้ผลเหมือนคำสั่งแรกเช่นกัน
  • คำสั่งที่สี่ เหมือนคำสั่งแรกครับ เพียงแต่ อ.รวบออพชั่นมาไว้ให้ติดกัน
  • คำสั่งที่ห้า อ.ใส่คำสั่งก่อน แล้วตามด้วยพาธต้นทาง และพาธปลายทางครับ

ถ้าเป็นนักเรียนที่เพิ่งเคยลงทะเบียนแรกๆอาจจะงงนะครับ แต่ขอร้องว่าอย่าเพิ่ง drop ไปก่อน ค่อยๆเรียนไปเรื่อยๆ เดี๋ยวชินเอง สำหรับคาบนี้ อ.ก็ต้องขอตัวก่อนครับ ไว้เจอกันคาบหน้าคับนักเรียน

อธิบายเข้าใจง่ายดีครับ

อธิบายเข้าใจง่ายดีครับ

จะติดตาม

จะไม่โดดเรียนครับ 555+

รวมคำสั่ง

เราสามารถรวมคำสั่งทั้งหมดด้วยการพิมพ์คราวเดียว โดยใช้ semi colon (เครื่องหมาย ;) ช่วยนะครับ เช่นห้าคำสั่งข้างบน รวมเป็นบรรทัดเดียวดังนี้

ls -a -l /home; sudo ls -a -l /home; ls /home -a -l; ls -al /home; cp /tmp/abc.txt /tmp/def.txt

ข้อดีคือเราสามารถพิมพ์เพื่อสั่งให้ทำงานรวดเดียว (แล้วไปทำอย่างอื่นก่อนได้) แต่ข้อเสียคือ ต้องละเอียดรอบคอบจริงๆ อย่าพิมพ์คำสั่งผิดเด็ดขาด ;)

อ้อ ถ้าเข้าใจไม่ผิด ออปชั่นของ ls ที่เป็น -a -l สามารถรวมกันได้เป็น ls -al ด้วยนะครับ :)

ของแถม ไปเจอคำสั่ง sudo su มาจากเว็บเมืองนอก ผมว่าเจ๋งดี ไม่ต้องไปเปลี่ยน password ของ root อีกต่อไป :D

เพิ่มเติมครับ

@หน่อย SNC: ผมใช้ sudo bash ครับ น่าจะได้ผลเหมือนกับ sudo su (แต่พิมพ์ยาวกว่า :P)

เพิ่มเติมส่วนออพชันนิดนึงครับ คำสั่งส่วนใหญ่จะรับออพชันได้สองรูปแบบ คือแบบสั้น กับแบบยาว แบบสั้นจะใช้เครื่องหมาย - แล้วตามดัวยตัวอักษรหนึ่งตัว ส่วนแบบยาวจะใช้เครื่องหมาย -- แล้วตามด้วยคำ

ตัวอย่างออพชันแบบสั้นก็เหมือนด้านบน เช่น ls -la
ตัวอย่างออพชันแบบยาวก็เช่น ls --help

ออพชันบางอย่างสามารถเลือกใช้ได้ระหว่างแบบสั้นกับแบบยาว เช่น ls -a กับ ls --all จะให้ผลลัพธ์เหมือนกัน
แต่ออพชันบางอย่างจะมีเฉพาะแบบสั้น เช่น ls -l
หรือบางอย่างก็มีเฉพาะแบบยาว เช่น ls --help หรือ ls --color ครับ

ทุกออพชันถามได้จากชายคนนั้น (man)

gumara's picture

ผมใช้ sudo sudo su

ผมใช้ sudo sudo su ครับ

อ่าห์ รู้สึกเป็นผู้ชนะ :P

อ้าว

กลายเป็นแข่งวัดความยาว ใครยาวกว่าชนะซะงั้น :D

sudo su sudo bash

sudo su sudo bash กับ sudo sudo su
มันมีผลยังไงเหรอครับ..

ต่างกับ sudo ธรรมดายังไง??

ขอแอบเรียนก่อนอาจารย์มาสอนหน่อยครับ :)

gumara's picture

sudo

sudo เป็นคำสั่งเฉพาะกิจที่ทำให้เรากลายเป็น root ในขณะนั้นๆครับ

ส่วน su เป็นคำสั่ง switch user ครับ ซึ่งเม่อสั่ง su โดยไม่มีชื่อ user ต่อท้ายก็จะหมายถึงให้กลายเป็น root นั่นเอง

ส่วน bash เป็นการเรียกใช้ shell ครับ และเมื่อสั่งด้วย sudo bash ก็คือ ให้เรีก shell ด้วยสิทธิ์ root นั่นเองครับ

ส่วน sudo sudo su ก็หมายถึง ให้ root ใช้ คำสั่ง sudo เพื่อสั่ง su แค่นี้ครับ งงๆเล็กน้อย แต่ได้ผลลัพธ์คือ root นั่นเอง

กรณีถ้าเป็นดิสโทรอื่น เราสามารถสั่ง su แล้วใส่พาสเวิร์ด root เพื่อเป็น root ได้เลย แต่สำหรับ ubuntu เขาจะไม่เปิดใช้งานสิทธิ์ root มาให้ ดังนั้นจึงใช้วิธีให้คนที่มีสิทธิ์สั่ง sudo จำลองตัวเองเป็น root เพื่อสั่งให้แปลงร่างเป็น root ครับ

รู้สึกว่าผมจะอธิบายงงๆ

o_O

ตั้งใจเรียนครับทุกท่าน

จะติดตามม

จะติดตามมาเรียนรู้เรื่อยๆ ครับ
เพราะอยากจะเริ่มเรียนรู้ ubuntu แต่ไม่รู้จะเริ่มตรงไหน
งั้นขอเริ่มที่ อ. เลยก็แล้วกันนะครับ

(จะติดตามบทต่อไป)
ขอบคุณครับ

ลงเรียนด้

ลงเรียนด้วยคนค้าบ

ลงเรียนด้

ลงเรียนด้วยคนครับ

เยี่ยมครับ

เยี่ยมเลย

Cool

ขอบคุณมากเลย คับ สอนต่อนะ คับ

จะเป็นกำลังใจให้ครับผม

ทำลิงค์เป

ทำลิงค์เป็นสัดส่วนไปเลยดีไหมครับ แบบแปะไว้หน้าแรกเลย เวลาเข้าจะได้เข้าง่ายๆ ครับ

pintoesiamu's picture

เยี่ยมเลย

จะตั้งใจเรียนนะคับ

Post new comment

The content of this field is kept private and will not be shown publicly.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Lines and paragraphs break automatically.
  • Allowed HTML tags: <i> <center> <span> <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <br> <dt> <dd> <object> <embed> <hr> <img> <blockquote> <b> <u> <del> <div> <p> <table> <tr> <td> <font>

More information about formatting options