สื่อสำหรับนักเรียน/นักศึกษาเกี่ยวกับบรรทัดคำสั่ง

บรรทัดคำสั่งเป็นวิธีควบคุมคอมพิวเตอร์โดยไม่ใช้ GUI ในหน่วยการเรียนรู้นี้ เราจะเรียนรู้คำสั่งพื้นฐานในการโต้ตอบกับคอมพิวเตอร์

สิ่งสำคัญที่เรียนรู้

  • นักเรียนจะเลื่อนไปมาในคอมพิวเตอร์ด้วยคำสั่ง
  • นักเรียนจะสร้าง ย้าย คัดลอก และลบไฟล์และโฟลเดอร์

บรรทัดคำสั่งคืออะไร

ผู้ใช้ส่วนใหญ่ใช้อินเทอร์เฟซผู้ใช้แบบกราฟิก (GUI) ในการโต้ตอบกับคอมพิวเตอร์ โดยปกติแล้ว GUI จะใช้เมาส์หรือการสัมผัสเพื่อจัดการหน้าต่างที่มีไอคอน ปุ่ม แถบเลื่อน ฯลฯ

บรรทัดคำสั่งเป็นมุมมองอื่นของคอมพิวเตอร์ บางครั้งเรียกว่า "เชลล์" "เทอร์มินัล" "Bash" หรือ "อินเทอร์เฟซข้อความ" บรรทัดคำสั่งคือ

  • วิธีการโต้ตอบกับโปรแกรมคอมพิวเตอร์ที่ผู้ใช้พิมพ์คำสั่ง เช่น
open README.txt
  • วิธีไปยังส่วนต่างๆ และใช้งานคอมพิวเตอร์โดยไม่ต้องใช้เมาส์
  • วิธีที่ไม่ใช่กราฟิกในการสร้าง อ่าน อัปเดต ดำเนินการ และลบไฟล์และไดเรกทอรี เช่น
mv README.txt readme.txt

GUI และบรรทัดคำสั่งจะแสดงข้อมูลเดียวกัน ซึ่งเป็นวิธีโต้ตอบกับคอมพิวเตอร์ที่แตกต่างกัน

เมื่อใดที่เราใช้บรรทัดคำสั่ง

นักพัฒนามักชอบใช้อินเทอร์เฟซบรรทัดคำสั่ง

  • ซึ่งเป็นวิธีที่กระชับกว่าในการควบคุมโปรแกรมหรือระบบปฏิบัติการ เหตุผล เนื่องจากทุกอย่างเกิดขึ้นในหน้าต่างเดียวกัน และเมื่อฝึกฝนแล้ว การใช้แป้นพิมพ์ก็ง่ายกว่าการค้นหาและจัดการสิ่งต่างๆ ด้วยเมาส์
  • ซึ่งจะแสดงตัวเลือกสำหรับการควบคุมคำสั่งได้อย่างง่ายดาย เหตุผล เมนูใน GUI มีตัวเลือกจำนวนน้อยมาก ในบรรทัดคำสั่งมีคำสั่งหลายร้อยคำสั่ง และการเพิ่มอักขระเพียงไม่กี่ตัวลงในคำสั่งก็สามารถทำให้คำสั่งนั้นทำสิ่งต่างๆ ได้มากมาย เช่น
  • ls ไฟล์รายการพื้นฐาน
  • ls -a แสดงไฟล์ทั้งหมด รวมถึงไฟล์ที่ซ่อนตามปกติ
  • ls -l รายการแบบยาวที่แสดงข้อมูลเกี่ยวกับแต่ละไฟล์
  • ls -R แสดงเนื้อหาของไดเรกทอรีแบบเรียกซ้ำ
  • ls -la แสดงรายการไฟล์ทั้งหมดแบบยาว
  • ซึ่งช่วยให้คุณดำเนินการกับไฟล์จำนวนมากพร้อมกันได้อย่างง่ายดายในรูปแบบที่ซับซ้อน
for i in *.png; do pngtogif $i `echo $i | sed s/png/gif/`; done
  • ซึ่งเป็นวิธีในการเขียนโปรแกรมระบบปฏิบัติการ (โปรแกรมเชลล์) เช่น ตัวอย่างด้านบนเป็นโปรแกรมเชลล์ที่เรียบง่ายมากซึ่งออกแบบมาเพื่อแก้ไขรูปภาพที่มีชื่อไฟล์ลงท้ายด้วย .png

บรรทัดคำสั่งในการดำเนินการ

ส่วนต่างๆ ของคำสั่งบรรทัดคำสั่ง

คำสั่งทั้งหมดมี 3 ส่วน ได้แก่

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

การแบ่งพื้นที่หน้าจอ

บริบทและวัตถุประสงค์

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

ในฐานะนักพัฒนาซอฟต์แวร์ เราใช้บรรทัดคำสั่งเนื่องจากเร็วกว่าและมีประสิทธิภาพมากกว่า GUI มาก จึงไม่ต้องเสียเวลาคลิกไปมา บรรทัดคำสั่งช่วยให้คุณโต้ตอบกับคอมพิวเตอร์ได้แทบทุกอย่าง

เนื่องจากเทอร์มินัลเป็นอินเทอร์เฟซที่เรียบง่ายกว่ามาก จึงมีข้อได้เปรียบมากกว่า GUI เมื่อคุณต้องการเชื่อมต่อกับคอมพิวเตอร์จากระยะไกลผ่านลิงก์เครือข่าย ซึ่งเป็นสิ่งที่นักพัฒนาแอปทำบ่อยมาก เช่น เมื่อเดินทาง

ในบทเรียนนี้ เราจะมาเรียนรู้คำสั่งพื้นฐานในการโต้ตอบกับคอมพิวเตอร์โดยการสร้างไฟล์และไดเรกทอรี ย้ายโฟลเดอร์ เปลี่ยนไดเรกทอรี และแสดงเนื้อหาของโฟลเดอร์

วัตถุประสงค์การเรียนรู้

นักเรียนจะทำสิ่งต่อไปนี้ได้

  • ใช้เทอร์มินัลเพื่อไปยังส่วนต่างๆ ของไฟล์และโฟลเดอร์
  • แสดงรายการเนื้อหาของโฟลเดอร์
  • สร้างไฟล์และโฟลเดอร์ในบรรทัดคำสั่ง
  • ย้ายไฟล์และโฟลเดอร์
  • คัดลอกไฟล์และโฟลเดอร์
  • ลบไฟล์และโฟลเดอร์

เริ่มต้นใช้งาน

การเข้าถึงเทอร์มินัล

การจัดเฟรมและวัตถุประสงค์ของส่วน

เทอร์มินัลมีอินเทอร์เฟซบรรทัดคำสั่ง (CLI) สำหรับระบบปฏิบัติการ ซึ่งจะช่วยให้คุณสั่งงานคอมพิวเตอร์โดยตรงด้วยข้อความได้

เราจำเป็นต้องเปิดใช้เทอร์มินัลตามระบบที่คุณใช้เพื่อดำเนินการนี้

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

เมื่อพูดถึงโลกของเราภายในเทอร์มินัล Directory จะเหมือนกับโฟลเดอร์ (บางครั้งเราอาจเรียกโฟลเดอร์ว่า Directory)

การเปลี่ยนไดเรกทอรี

การจัดเฟรมและวัตถุประสงค์ของส่วน

หากต้องการพูดคุยกับคอมพิวเตอร์ในเทอร์มินัลและบอกสิ่งที่ต้องการทำ เราต้องพูดภาษาเดียวกัน บรรทัดคำสั่งเข้าใจคำสั่งที่เขียนด้วยภาษาสคริปต์ Bash คำสั่งเหล่านี้เป็นตัวย่อหรือคำย่อของคำภาษาอังกฤษ

เมื่อไปยังส่วนต่างๆ ในเทอร์มินัล คุณควรทราบว่าคุณอยู่ที่ใด (ซึ่งเทียบได้กับชีวิตจริงด้วยเช่นกัน หากต้องการไปที่ใดที่หนึ่ง คุณต้องทราบตำแหน่งปัจจุบันก่อน)

# See your current location - abbreviation for 'print working directory'
pwd

แสดงรายการไฟล์และไดเรกทอรีที่พร้อมใช้งาน

ภายในไดเรกทอรีการทำงาน คุณอาจมีไฟล์หลายไฟล์ที่เข้าถึงได้ โดยปกติแล้ว เราจะใช้สัญญาณภาพ เช่น ไอคอน เพื่อบอกว่ามีอะไรบ้าง แต่คงจะนำทางในคอมพิวเตอร์ได้ยากหากเราเพียงแค่คาดเดาว่าไฟล์และโฟลเดอร์อยู่ที่ไหน ในบรรทัดคำสั่ง เราจะใช้คำสั่งเฉพาะเพื่อแสดงสิ่งที่เข้าถึงได้จากไดเรกทอรีที่ทำงานอยู่หรือตำแหน่งใดก็ตาม

หากต้องการดูว่ามีไฟล์หรือโฟลเดอร์ใดอยู่ในไดเรกทอรีปัจจุบัน ให้ใช้คำสั่ง ls (ตัวย่อของ list) เพื่อดูมุมมองรายการของเนื้อหา

# See files and folders in current location - abbreviation for 'list'
ls

เปลี่ยนไดเรกทอรีที่ใช้งานอยู่

หากต้องการเข้าถึงไฟล์หรือไดเรกทอรีที่ไม่มีในรายการ คุณอาจต้องเปลี่ยนไดเรกทอรีการทำงานเพื่อให้เข้าถึงได้ง่ายขึ้น

ไวยากรณ์ที่ใช้บอกบรรทัดคำสั่งให้ย้ายไปยังไดเรกทอรีใหม่ (หรือที่เรียกว่าโฟลเดอร์) คือ cd ตามด้วยเส้นทางไปยังโฟลเดอร์ใหม่ (ในบรรทัดเดียวกัน)

หากคุณไปยังไดเรกทอรีที่อยู่ภายในไดเรกทอรีที่คุณอยู่ในปัจจุบัน (เช่น โฟลเดอร์ย่อยของไดเรกทอรีที่ทำงานอยู่) ให้ใช้คำสั่ง cd ตามด้วยชื่อโฟลเดอร์

# Change your current working directory (current location)
# Abbreviation for 'change directory'
cd Documents

นอกจากนี้ คุณยังไปยังไดเรกทอรีเริ่มต้นที่ ~ ได้ด้วย

# Add a `~/` to begin from the home directory.
cd ~/Downloads

หากเปลี่ยนไดเรกทอรีแล้วแต่ต้องการเปลี่ยนกลับไปที่ไดเรกทอรีหน้าแรก ให้ทำได้โดยไปที่หน้าแรกโดยตรงโดยใช้ ~ หรือใช้ .. เพื่อไปยังระดับที่สูงขึ้น 1 ระดับ

# Option 1: navigate directly to the home directory
cd ~

# Option 2: navigate back one level
cd ..

โปรดทราบว่า cd .. จะขึ้น (กลับ) ไปได้เพียง 1 ระดับเท่านั้น ดังนั้นหากคุณเปลี่ยนไดเรกทอรีมาแล้ว 3 ครั้ง (ลงไป 3 ระดับ) คุณจะต้องใช้ cd .. 3 ครั้งเพื่อกลับไปที่หน้าแรก แต่จะใช้ cd ~ เพียงครั้งเดียว

มินิชาเลนจ์

  • ใช้ ls เพื่อดูสิ่งที่อยู่ในไดเรกทอรีปัจจุบัน
  • กลับไปที่ไดเรกทอรีหน้าแรก แล้วใช้ ls เพื่อดูเนื้อหาของโฟลเดอร์หน้าแรก
  • เลือกชื่อโฟลเดอร์ใดโฟลเดอร์หนึ่งที่อยู่ภายในไดเรกทอรีบ้าน แล้วไปที่โฟลเดอร์ใหม่นี้
  • ใช้คำสั่ง list เพื่อดูว่ามีอะไรอยู่ภายใน

เคล็ดลับ: การเติมข้อความอัตโนมัติด้วย tab

เมื่อเปลี่ยนไดเรกทอรีด้วยคำสั่ง cd การพิมพ์ผิดเพียงครั้งเดียวจะทำให้คำสั่งทำงานไม่ถูกต้อง อย่างไรก็ตาม การใช้ปุ่ม tab จะทำให้ระบบเติมชื่อไดเรกทอรีที่มีอยู่ซึ่งอยู่ภายในไดเรกทอรีปัจจุบันโดยอัตโนมัติ ดังนั้นแทนที่จะพิมพ์ cd Documents ให้พิมพ์แค่ cd Do แล้วกดปุ่ม tab จากนั้นเทอร์มินัลจะเติมคำสั่ง cd Documents/ ให้คุณโดยอัตโนมัติ (/ ที่ท้ายเป็นตัวเลือก แต่จะช่วยให้คุณทราบว่าปลายทางเป็นไดเรกทอรี)

การเติมข้อความอัตโนมัตินี้ไม่เพียงช่วยประหยัดเวลาเมื่อใช้งานได้ แต่ยังให้ข้อมูลที่เป็นประโยชน์เมื่อใช้งานไม่ได้ด้วย หากปุ่ม Tab ไม่เติมข้อความอัตโนมัติ คุณอาจเจอปัญหาที่พบบ่อย 3 อย่างต่อไปนี้

  1. คุณเข้าถึงไดเรกทอรีที่ต้องการไปยังไม่ได้จากไดเรกทอรีการทำงานปัจจุบัน
  2. มี 2 ไดเรกทอรีที่มีชื่อเริ่มต้นคล้ายกัน (เช่น Documents และ Downloads) และคุณไม่ได้ให้ข้อมูลเพียงพอเพื่อให้การเติมข้อความอัตโนมัติทราบว่าคุณต้องการไดเรกทอรีใด กด tab อีกครั้งเพื่อดูรายการไดเรกทอรีที่อาจตรงกับสิ่งที่คุณพิมพ์ จากนั้นพิมพ์เพิ่มอีกเล็กน้อย (ให้มีรายการที่ตรงกันเพียงรายการเดียว) แล้วกด tab อีกครั้ง
  3. คุณสะกดคำครึ่งแรกผิดไปแล้ว

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

ไดเรกทอรีหลักและไดเรกทอรีย่อย

ไดเรกทอรีและไฟล์มีความสัมพันธ์แบบย่อยและหลักซึ่งกันและกันได้ หาก directory_b อยู่ภายใน directory_a เราจะเรียก directory_b ว่าองค์ประกอบย่อยของ directory_a directory_a จึงเป็นหลักของ directory_b หากรายการที่ 3 ซึ่งคือ my_file อยู่ภายใน directory_b จะถือว่าเป็นรายการย่อยของ directory_b และเป็นหลานของ directory_a

ความสัมพันธ์เหล่านี้มักจะแสดงในฟอรัมด้วยแผนภาพข้อความ เช่น

directory_a/
  directory_b/
    my_file

โปรดสังเกตว่าชื่อไดเรกทอรีจะลงท้ายด้วย / แต่ชื่อไฟล์จะไม่ลงท้ายด้วย / โดยทั่วไปแล้ว การจัดระเบียบแบบลำดับชั้นนี้เรียกว่าโครงสร้างแบบต้นไม้ของระบบไฟล์

พี่น้อง

หากมีไฟล์หรือโฟลเดอร์หลายรายการในระดับเดียวกัน เราจะเรียกว่ารายการที่อยู่ระดับเดียวกัน เช่น หาก file_b และ file_c อยู่ภายใน directory_a จะถือว่าเป็นองค์ประกอบย่อย

แผนภาพข้อความจะมีลักษณะดังนี้

directory_a/
  file_b
  file_c

โปรดทราบว่าเนื่องจาก file_b และ file_c เป็นไฟล์ระดับเดียวกัน จึงมีการเยื้องในระดับเดียวกัน

เส้นทางไฟล์

ต่อไปนี้เป็นแผนภาพข้อความที่ซับซ้อนมากขึ้นซึ่งแสดงทั้งความสัมพันธ์ระดับบน/ย่อยและความสัมพันธ์แบบพี่น้อง

north_america/
  united_states/
    new_york/
      new_york_city/
        manhattan
        queens
        staten_island
        bronx
        brooklyn
    california/
      mountain_view
      los_angeles
    illinois/
      chicago
  mexico/
    mexico_city

ในตัวอย่างนี้ new_york_city/ คือชื่อไดเรกทอรี แต่ก็มีเส้นทางที่อธิบายรายละเอียดวิธีไปที่นั่นด้วย ~/north_america/united_states/new_york/new_york_city/

หากต้องการเปลี่ยนไดเรกทอรีเป็น new_york_city/, คุณจะไปยังไดเรกทอรีนั้นได้โดยทำตามขั้นตอนโดยใช้ชื่อ หรือจะไปยังไดเรกทอรีนั้นในคำสั่งเดียวโดยใช้เส้นทางก็ได้

# Option 1: in four steps, using directory names.
cd ~ # navigate home, where these folders are located
cd north_america/
cd united_states/
cd new_york/
cd new_york_city/

# Option 2: in one step, using the path.
cd ~/north_america/united_states/new_york/new_york_city/

สรุปคำสั่งการนำทาง

# See your current location - abbreviation for 'print working directory'
pwd

# Change to a new location - abbreviation for 'change directory'
cd ~/Downloads

# Navigates into a child directory called `some_directory`
# Only works if `some_directory` is a child of the current directory
cd some_directory

# Navigates into the parent of the current directory
# `..` is shorthand for parent.
cd ..

# Will take you back home
cd

มินิชาเลนจ์

  • ใช้ pwd เพื่อดูโฟลเดอร์ปัจจุบันที่คุณอยู่
  • เปลี่ยนเป็นไดเรกทอรีอื่นและยืนยันตำแหน่งใหม่
  • โปรดลองอีกครั้งและไปที่โฟลเดอร์อื่น ใช้คำสั่งใหม่เพื่อดูตำแหน่งของคุณและดูไฟล์ภายในไดเรกทอรีนี้

การสร้างไฟล์และไดเรกทอรี

การจัดเฟรมและวัตถุประสงค์ของส่วน

ในฐานะนักพัฒนาแอป เราจะต้องสร้างไฟล์ที่มีโค้ด หากต้องการจัดระเบียบไฟล์เหล่านั้น เราจะต้องสร้างโฟลเดอร์ / ไดเรกทอรีเพื่อจัดเก็บไฟล์

โปรดทราบตำแหน่งของคุณในเทอร์มินัลก่อนสร้างไฟล์และโฟลเดอร์

# See your current location.
pwd

หากต้องการสร้างไฟล์ ให้ใช้คำสั่ง touch ตามด้วยชื่อไฟล์

# `touch` creates a new file.
touch style.css

เมื่อสร้างไฟล์ ให้เพิ่มนามสกุลไฟล์เพื่อระบุประเภท ตัวอย่างประเภทไฟล์

  • .js สร้างเป็นไฟล์ JavaScript
  • .html สร้างไฟล์ HTML
  • .css สร้างไฟล์ CSS
  • .md สร้างไฟล์มาร์กดาวน์

ชื่อไฟล์ต้องไม่มีการเว้นวรรค

# make a file - this will create a file in the current folder
touch my_text_file.txt

# make a file - this will create a file on the desktop
touch ~/Desktop/my_new_style_sheet.css

การสร้างหลายไฟล์

คุณสร้างไฟล์หลายไฟล์พร้อมกันได้โดยเว้นวรรคระหว่างชื่อแต่ละชื่อ

# make multiple files - this will create multiple files in the current folder
touch my_new_js_file.js my_new_html_file.html my_second_html_file.html

การสร้างไดเรกทอรี

หากต้องการสร้างไดเรกทอรี / โฟลเดอร์ ให้ใช้คำสั่ง mkdir ซึ่งเป็นคำย่อของ "make directory" ตามด้วยชื่อโฟลเดอร์

# make a folder - this will create a directory in the current folder
mkdir my_new_folder

# make a folder - this will create a directory on your desktop
mkdir ~/Desktop/my_new_desktop_folder

การสร้างไดเรกทอรีหลายรายการ

คุณสร้างโฟลเดอร์หลายโฟลเดอร์พร้อมกันได้โดยเว้นวรรคระหว่างชื่อแต่ละชื่อ

# make multiple folders - this will create multiple folders in the current
# directory
mkdir folder_one folder_two folder_three

มินิชาเลนจ์

  • สร้างไฟล์ใหม่
  • สร้างไฟล์หลายไฟล์ในคำสั่งเดียว
  • สร้างไดเรกทอรีใหม่
  • สร้างไดเรกทอรีใหม่เพิ่มอีก 2-3 ไดเรกทอรี ลองใช้เพียงคำสั่งเดียวเพื่อดำเนินการนี้
  • สร้าง "แผนผังครอบครัว" บนเดสก์ท็อปโดยใช้ไฟล์และโฟลเดอร์ตามความรู้เกี่ยวกับการไปยังส่วนต่างๆ ของไดเรกทอรีและการสร้างไฟล์และโฟลเดอร์

การย้ายและคัดลอก

การย้ายไฟล์และไดเรกทอรี

การจัดเฟรมและวัตถุประสงค์ของส่วน

เราสามารถย้ายไฟล์หรือโฟลเดอร์ในบรรทัดคำสั่งได้ แต่ต้องระบุ 3 สิ่งต่อไปนี้เสมอ

  1. เราใช้คำสั่ง mv ซึ่งเป็นคำย่อของ move
  2. ตามด้วยคำสั่งย้ายและชื่อไฟล์หรือโฟลเดอร์ที่ต้องการย้าย
  3. ตามด้วยชื่อไฟล์และปลายทางที่ต้องการย้าย

เช่น หากคุณมีโครงสร้างไฟล์ดังนี้

my_child_folder/
my_parent_folder/

คุณจะเห็นว่าไม่ได้จัดระเบียบตามที่ควรจะเป็น โดยเป็นพี่น้องในขณะที่ควรจะเป็นพ่อแม่และลูก ใช้คำสั่งต่อไปนี้

# move a directory - this will move the folder `my_child_folder` into the
# folder named `my_parent_folder` that is in the current folder
mv my_child_folder/ my_parent_folder/

โครงสร้างที่ได้จะมีลักษณะดังนี้

my_parent_folder/
  my_child_folder/

คำสั่ง mv รูปแบบอื่นๆ มีดังนี้

# move a directory - this will move the folder `my_folder` into the file named
# `my_desktop_folder` that is located on the Desktop
mv my_folder ~/Desktop/my_desktop_folder

# move a file - this will move the file `my_file.txt` into the file named
# `my_folder` that is in the current folder
mv my_file.txt my_folder

# move a file - this will move the file `my_file.txt` into the file named
# `my_desktop_folder` that is located on the Desktop
mv my_file.txt ~/Desktop/my_desktop_folder

คำเตือน: mv ยังเป็นคำสั่งในการเปลี่ยนชื่อไฟล์โดยใช้ไวยากรณ์ mv old_name new_name ด้วย ซึ่งหมายความว่าหากคุณย้ายไฟล์ไปยังไดเรกทอรีที่ไม่มีอยู่ หรือหากคุณสะกดชื่อปลายทางผิด ระบบจะเปลี่ยนชื่อไฟล์แทนที่จะย้าย

มินิชาเลนจ์

  1. สร้างไฟล์ข้อความ (.txt) 5 ไฟล์
  2. สร้างไดเรกทอรีใหม่
  3. ย้ายไฟล์ 5 ไฟล์ที่คุณสร้างไปยังโฟลเดอร์
  4. สร้างโฟลเดอร์แล้วย้ายโฟลเดอร์ใหม่นี้ไปไว้ในโฟลเดอร์อื่น

การคัดลอกไฟล์และไดเรกทอรี

การจัดเฟรมและวัตถุประสงค์ของส่วน

เมื่อสร้างเว็บแอป เราอาจต้องการทำซ้ำไฟล์ (หากสร้างหน้าเว็บที่คล้ายกัน 2 หน้า เราอาจไม่ต้องการเริ่มต้นใหม่ตั้งแต่ต้น) และไวยากรณ์สำหรับคำสั่ง cp (คัดลอก) จะคล้ายกับไวยากรณ์ mv มาก

การคัดลอกไฟล์

คำสั่งคัดลอกมี 3 ส่วน ดังนี้

  1. คำสั่ง cp - ตัวย่อของคัดลอก
  2. ชื่อของไฟล์ที่จะคัดลอก
  3. ชื่อของสำเนา (หากอยู่ในโฟลเดอร์เดียวกัน) หรือตำแหน่งและชื่อ (หากย้ายไปยังโฟลเดอร์อื่น)
# Copy a file named `my_file.txt` to a file called `my_file_copy.txt`
# The copy will be located in your Documents folder.
cp my_file.txt ~/Documents/my_file_copy.txt

# Copy a file named `my_file.txt` to a file called `my_file_copy.txt`.
# Since no directory was specified, this will occur within the same folder.
cp my_file.txt my_file_copy.txt

หากต้องการให้สำเนามีชื่อเดียวกับต้นฉบับ คุณสามารถระบุตำแหน่งสำเนาโดยไม่ต้องระบุชื่อไฟล์

# Copy a file named `my_file.txt` to your Documents folder.
# The destination ends with a directory, so the copy will have the same name.
cp my_file.txt ~/Documents/

การมีไฟล์จำนวนมากที่มีชื่อเดียวกันอาจทำให้เกิดความสับสน ดังนั้นให้ใช้วิธีนี้เฉพาะในกรณีที่คุณแน่ใจว่าต้องการทำเช่นนั้น

การคัดลอกไดเรกทอรี

การคัดลอกโฟลเดอร์หรือไดเรกทอรีจะซับซ้อนกว่าเล็กน้อย เนื่องจากคุณอาจต้องการคัดลอกไม่เพียงแค่โฟลเดอร์ แต่ยังรวมถึงทุกอย่างที่อยู่ภายในด้วย

  1. คำสั่ง cp -R ซึ่งเป็นคำย่อของ copy recursive ใช้สำหรับทั้งโฟลเดอร์ที่ว่างเปล่าและโฟลเดอร์ที่มีข้อมูล
  2. ชื่อแหล่งที่มา (โฟลเดอร์หรือไฟล์ที่ต้องการย้าย)
  3. ชื่อของสำเนา (หากอยู่ในโฟลเดอร์เดียวกัน) หรือตำแหน่งและชื่อ (หากย้ายไปยังโฟลเดอร์อื่น)

คำเตือน: เมื่อระบุชื่อสำหรับสำเนา หากไม่ได้สร้างไฟล์หรือโฟลเดอร์ไว้ก่อนหน้านี้ ระบบจะสร้างไฟล์หรือโฟลเดอร์เมื่อคุณทำสำเนา หากสร้างไฟล์ก่อนที่จะเรียกใช้คำสั่งคัดลอก ระบบจะเขียนทับทุกอย่างที่อยู่ในไฟล์ก่อนหน้านี้ ดังนั้นโปรดระมัดระวัง

# copy a directory named `my_folder` from your Desktop folder to a folder
# called `my_folder_copy` in your Documents folder
cp -R ~/Desktop/my_folder ~/Documents/my_folder_copy

# copy a file named `my_file.txt` from your Desktop folder to your Documents
# folder
cp -R my_folder my_folder_copy

หมายเหตุ: -R คอมโพเนนต์ของ cp -R เรียกว่าแฟล็ก โดยแฟล็กจะขึ้นต้นด้วยเครื่องหมายขีดคั่นเสมอ และใช้ร่วมกับคำสั่งเพื่อให้คำสั่งที่เฉพาะเจาะจงมากขึ้นเกี่ยวกับวิธีเรียกใช้คำสั่งนั้น

มินิชาเลนจ์

  1. สร้างไฟล์ชื่อ my_original.txt
  2. ทำสำเนาของ my_original.txt โดยตั้งชื่อใหม่ในโฟลเดอร์เดียวกัน
  3. สร้างไดเรกทอรีใหม่
  4. คัดลอกไดเรกทอรีนั้น แต่ตั้งชื่อให้แตกต่าง
  5. ทำสำเนาไฟล์ที่คัดลอก (จากขั้นตอนที่ 2) แต่ให้วางลงในไดเรกทอรีที่คัดลอก (จากขั้นตอนที่ 4)

การนำไฟล์และโฟลเดอร์ออก

การจัดเฟรมและวัตถุประสงค์ของส่วน

เราสามารถลบไฟล์และโฟลเดอร์ในบรรทัดคำสั่งได้ แต่การดำเนินการนี้จะมีผลถาวร

การนำไฟล์ออก

หากต้องการนำไฟล์ออก เราสามารถใช้คำสั่ง rm (ตัวย่อของ remove) ตามด้วยชื่อไฟล์

# delete a file in the working directory
rm unwanted_file.txt

# delete a file not in the working directory
rm ~/Desktop/unwanted_file.txt

การนำไดเรกทอรีที่ว่างเปล่าออก

หากต้องการนำไดเรกทอรี ที่ว่างเปล่าออก เราสามารถใช้คำสั่ง rmdir ซึ่งเป็นตัวย่อของremove directory ตามด้วยชื่อโฟลเดอร์

# delete an empty folder
rmdir empty_directory

# delete an empty folder
rmdir ~/Documents/my_files/empty_directory

การนำไดเรกทอรีที่มีข้อมูลออก

หากต้องการนำโฟลเดอร์ที่ไม่ว่างเปล่าออก เราต้องใส่แฟล็ก -R ซึ่งเป็นตัวย่อของ recursive ไว้หลังคำสั่ง rm เพื่อบอกให้คอมพิวเตอร์ลบเนื้อหาภายในโฟลเดอร์ นักพัฒนาแอปบางรายใช้แฟล็ก -Rf เป็นทางลัด ซึ่งจะบังคับให้นำทุกอย่างออก (มิเช่นนั้น คุณอาจได้รับข้อความแจ้งเกี่ยวกับการลบไฟล์หรือโฟลเดอร์ย่อยบางรายการ)

# delete a folder which contains other files or folders
rm -R directory_which_isnt_empty

# delete a folder which contains other files or folders
rm -R ~/Downloads/directory_which_isnt_empty

คำเตือน: การใช้คำสั่ง rm ไม่เหมือนกับถังขยะหรือส่วนที่ถูกลบของอีเมล เนื่องจากไฟล์เหล่านี้กู้คืนได้ยาก โปรดระมัดระวังอย่างยิ่งเมื่อลบไฟล์ด้วยวิธีนี้

มินิชาเลนจ์

  1. สร้างไฟล์ 4 ไฟล์
  2. ลบ 2 ไฟล์
  3. สร้างโฟลเดอร์
  4. สร้างโฟลเดอร์อื่นและสร้างไฟล์ภายในโฟลเดอร์นี้
  5. ลบทั้ง 2 ไดเรกทอรี

คุณดูโค้ดสำหรับ Lab นี้ได้ในโฟลเดอร์ต่อไปนี้ภายในที่เก็บของนักเรียนที่ดาวน์โหลดจาก GitHub: command-line/labs/around-the-world

ฉากหลัง

อีกไม่นานคุณก็จะได้ไปเรียนที่ต่างประเทศแล้ว และถึงเวลาที่คุณควรเริ่มวางแผนการเดินทางในยุโรปแล้ว...

ในอีก 3 เดือนข้างหน้า คุณจะใช้ชีวิตอย่างเต็มที่ ดังนั้นคุณจึงต้องการใช้ประโยชน์จากการเดินทางในช่วงสุดสัปดาห์ทุกครั้งอย่างเต็มที่

โชคดีที่คุณไม่ต้องเริ่มจากศูนย์ เพราะเพื่อนๆ ได้แนะนำกิจกรรมโปรดบางอย่างที่พวกเขาทำในช่วงที่ไปเรียนต่อต่างประเทศ ขออภัย ไฟล์บางส่วนอาจปะปนกัน...

ไม่ต้องกังวล เพราะบรรทัดคำสั่งจะช่วยให้คุณแก้ไขปัญหาเหล่านี้ได้ในเวลาไม่นาน

งาน

ตรวจสอบว่าทุกเมืองอยู่ในประเทศที่ถูกต้อง และโฟลเดอร์ของแต่ละเมืองมีอนุสาวรีย์ที่ถูกต้องอยู่ภายใน โปรดระมัดระวัง มิฉะนั้นคุณอาจไปโผล่ที่อัมสเตอร์ดัมเพื่อมองหาหอไอเฟล

หากคุณมั่นใจกับเรื่องนี้ ให้ซ่อน GUI แล้วเผชิญกับความท้าทายนี้จากบรรทัดคำสั่งโดยตรง คุณควรอยู่ในโฟลเดอร์ทั่วไปที่อยู่ทั่วโลกขณะทำสิ่งเหล่านี้ ซึ่งหมายถึงการใช้เส้นทางสัมบูรณ์เมื่ออ้างอิงถึงโฟลเดอร์และไฟล์

เมื่อแน่ใจว่าทุกอย่างอยู่ในที่ที่ถูกต้องแล้ว ก็ถึงเวลาที่คุณจะควบคุมช่วง 2-3 เดือนข้างหน้า ระดมความคิดเกี่ยวกับเมือง ประเทศ และอนุสาวรีย์ใหม่ๆ ที่คุณต้องไปให้ได้ แล้วเพิ่มลงในแผนผังไฟล์

ยินดีด้วย ตอนนี้คุณก็รู้วิธีพูดภาษากับคอมพิวเตอร์อย่างเป็นทางการแล้ว พร้อมที่จะยกระดับไปอีกขั้นแล้วใช่ไหม มาพูดถึงส่วนขยายกัน

ส่วนขยาย

  1. ผสมไฟล์ทั้งหมดอีกครั้ง แล้วเดินทางไปยังเมืองที่คุณเลือก จัดระเบียบไฟล์อีกครั้งขณะอยู่ในเมืองนั้น
  2. ลองเล่นเกมบรรทัดคำสั่งสนุกๆ ที่ลิงก์ไว้ด้านล่าง
    เกม Terminus
    เกมขั้นสูง (เตรียมพร้อมค้นหาใน Google)
  3. คุณเป็นแฟนตัวยงของ Star Wars ใช่ไหม ลองเรียกใช้ telnet towel.blinkenlights.nl ในบรรทัดคำสั่งแล้วกด Enter... (โปรดทราบว่าใน macOS เวอร์ชันล่าสุด ระบบจะไม่ติดตั้งคำสั่ง telnet โดยค่าเริ่มต้นอีกต่อไป ในกรณีนี้ คุณสามารถใช้คำสั่ง nc towel.blinkenlights.nl 23 แทนได้)

คุณดูโค้ดสำหรับ Lab นี้ได้ในโฟลเดอร์ต่อไปนี้ภายในที่เก็บของนักเรียนที่ดาวน์โหลดจาก GitHub: command-line/labs/bashing-away-repetition

พร้อมที่จะกำจัดความซ้ำซากในการใช้งานบรรทัดคำสั่งประจำวันแล้วหรือยัง เยี่ยมเลย ฉันก็เช่นกัน

ฉากหลัง

หากมีสิ่งหนึ่งที่โปรแกรมเมอร์เกลียด ก็คือการทำซ้ำ ในฐานะนักวิทยาการคอมพิวเตอร์ หน้าที่ของเราคือการทำให้คอมพิวเตอร์ทำงานให้เราได้มากที่สุดเท่าที่จะทำได้ การเขียนสคริปต์ Bash จะช่วยให้เราใช้บรรทัดคำสั่งได้อย่างมีประสิทธิภาพมากขึ้น

ก่อนอื่นมาดูกันว่าสคริปต์ Bash คืออะไร

เป็นคำถามที่ยอดเยี่ยม โชคดีที่ Ryan Chadwick เพื่อนของเราจากแหล่งข้อมูลที่ยอดเยี่ยมนี้ในการค้นหาบทแนะนำเกี่ยวกับบรรทัดคำสั่งมีคำตอบให้เรา

สคริปต์ Bash ช่วยให้เรากำหนดชุดการดำเนินการที่คอมพิวเตอร์จะทำได้โดยไม่ต้องป้อนคำสั่งด้วยตนเอง หากงานใดงานหนึ่งต้องทำบ่อยๆ หรือเป็นงานที่ ทำซ้ำๆ สคริปต์ก็จะเป็นเครื่องมือที่มีประโยชน์

ไม่มีการทำซ้ำ นั่นคือสิ่งที่ฉันกำลังพูดถึง

บทแนะนำ

ก่อนอื่น คุณจะต้องให้สิทธิ์แก่คอมพิวเตอร์เพื่อให้เรียกใช้สคริปต์ได้ โดยเรียกใช้คำสั่งด้านล่าง

chmod 755 myScript.sh

เอาล่ะ ถึงเวลาเขียนโปรแกรมแรกแล้ว ไปที่ myScript.sh (ดูว่าคุณเปิดไฟล์จากบรรทัดคำสั่งได้หรือไม่) เพิ่มข้อความต่อไปนี้ที่ส่วนท้ายของไฟล์

echo "Hello World"

ตอนนี้ให้เรียกใช้คำสั่งต่อไปนี้

./myScript.sh

ในเทอร์มินัล ** แท่น แท๊น ** คุณควรเห็นข้อความ "Hello World" ปรากฏในเทอร์มินัล

การเฉลิมฉลอง

ทุกสิ่งที่คุณเขียนในสคริปต์ Bash จะทำงานราวกับว่าคุณพิมพ์ลงในเทอร์มินัล มาดูอีกตัวอย่างหนึ่งก่อนที่จะไปดูส่วนขยายกัน ก่อนอื่นให้สร้างไฟล์สำหรับสคริปต์ โดยตั้งชื่อไฟล์เป็นอะไรก็ได้ แต่ควรมีนามสกุลเป็น .sh ถัดไป ตรวจสอบว่าได้ให้สิทธิ์แก่สคริปต์ในการเรียกใช้โดยพิมพ์ chmod 755 แล้วตามด้วยชื่อสคริปต์ในเทอร์มินัล แล้วกด Enter ทุกครั้งที่เริ่มสคริปต์ Bash ใหม่ คุณควรตรวจสอบว่าได้ทำตาม 2 ขั้นตอนดังกล่าวจนเสร็จสมบูรณ์แล้ว

ความท้าทายเบื้องต้น

ตอนนี้มาลองเขียนสคริปต์ที่สร้างโฟลเดอร์ใหม่กัน เราทราบว่าคำสั่งใดที่สร้างโฟลเดอร์ใหม่ หากคุณกำลังคิดถึงคำที่ขึ้นต้นด้วย m และลงท้ายด้วย kdir แสดงว่าคุณมาถูกทางแล้ว เขียนคำสั่งที่จะสร้างโฟลเดอร์ใหม่และตั้งชื่อให้ดูดีในไฟล์ .sh ใหม่ แล้วเรียกใช้ในเทอร์มินัล

หากได้ผล ให้ไปที่ความท้าทายอื่นๆ ที่ระบุไว้ด้านล่าง หากยังสับสนอยู่บ้าง ให้ลองย้อนกลับไปดูที่แล็บ "รอบโลก" แล้วคิดถึงวิธีที่คุณสร้างโฟลเดอร์ประเทศและเมืองใหม่

อย่ากลัวที่จะใช้บทแนะนำที่ลิงก์ไว้ด้านบน และเตรียมพร้อมที่จะใช้ทักษะการค้นหาด้วย Google ที่ดีที่สุดของคุณ เขียนและเรียกใช้สคริปต์ที่ทำสิ่งต่อไปนี้

ภารกิจหลัก

  1. เพิ่มคำสั่งลงในไฟล์ที่สร้างไว้ด้านบนซึ่งจะไปยังโฟลเดอร์ที่คุณกำลังสร้าง (เราใช้คำสั่งใดในการเปลี่ยนไดเรกทอรี)
  • ประทับวันที่ชื่อโฟลเดอร์ใหม่ เช่น โปรแกรมควรสร้างโฟลเดอร์ชื่อ "2017-12-07my_super_cool_folder"
  1. พิมพ์ "ไดเรกทอรีปัจจุบันของฉันคือ: " ตามด้วยไดเรกทอรีการทำงาน และ "นี่คือรายการทุกอย่างในไดเรกทอรีนี้ " ตามด้วยเนื้อหาของไดเรกทอรีปัจจุบัน
  2. หาวิธีป้อนข้อมูลให้กับสคริปต์ Bash และสร้างไฟล์ตามสตริงอินพุตนั้น บทแนะนำที่ลิงก์ไว้ก่อนหน้านี้ใน Lab มีตัวอย่างที่ยอดเยี่ยมในส่วนตัวแปรให้คุณลองดู
  3. ถามชื่อผู้ใช้ แล้วพิมพ์ข้อความ "สวัสดี ยินดีที่ได้รู้จัก ใส่ชื่อผู้ใช้ที่นี่"
  • ลองขอข้อมูลเพิ่มเติมจากผู้ใช้และสร้างข้อความที่ปรับแต่งสำหรับผู้ใช้

บริบท

บรรทัดคำสั่ง (หรือเทอร์มินัล) ช่วยให้โต้ตอบกับระบบปฏิบัติการ (OS) ของคอมพิวเตอร์ได้โดยตรง ซึ่งก็คือทุกอย่างที่อินเทอร์เฟซแบบกราฟิก (GUI) ทำ แต่จะทำผ่านคำสั่งข้อความ ตั้งแต่การไปยังส่วนต่างๆ การสร้างไฟล์ใหม่ ไปจนถึงการเรียกใช้สคริปต์ ระบบจะใช้บรรทัดคำสั่งเพื่อเปิดไฟล์และเริ่มต้นสภาพแวดล้อมการพัฒนาเมื่อใช้ Google App Engine

บรรทัดคำสั่งในการดำเนินการ

การเข้าถึงเทอร์มินัล

แป้นพิมพ์ลัดสำหรับ Mac

  • เปิด Spotlight ด้วย Command + Space
  • พิมพ์ Terminal ในการค้นหา Spotlight
# See your current location - abbreviation for 'print working directory'.
pwd

# Change to a new location - abbreviation for 'change directory'.
cd /Users/jsmith/Downloads

# Navigate into a child directory called `some_directory`. This only works if
# `some_directory` is a child of the current directory.
cd some_directory

# Navigate into the parent of the current directory. `..` is shorthand for parent.
cd ..

# Return home.
cd

# Change directories to a folder called `my_folder` that is within the current
# directory.
cd my_folder ```

#### File Path Shorthand `~`

The `~` is generally short for "home". Home can be configured to mean different
things for different users and across different operating systems, but in the
example above, for a Mac user named "jsmith", the `~` is short for that user's
home directory: `/Users/jsmith`.

This means that `~/Downloads` and `/Users/jsmith/Downloads` are the same for
this user. But starting with a `~` allows us to specify absolute file paths
(agnostic of your current working directory, and starting at the root `/`)
without having to write out a full path each time.

### <a id="view"></a>Viewing the Contents of Folders

```bash
# See files and folders in current location - this is an abbreviation for 'list'.
ls

การสร้างไฟล์และโฟลเดอร์

การสร้างไฟล์

# Make a file - this will create a file in the current folder.
touch my_text_file.txt

# Make a file - this will create a file on the Desktop.
touch ~/Desktop/my_new_style_sheet.css

# Make multiple files - this will create multiple files in the current folder.
touch my_new_js_file.js my_new_html_file.html my_second_html_file.html

การสร้างโฟลเดอร์

# Make a folder - this will create a directory in the current folder.
mkdir my_new_folder

# Make a folder - this will create a directory on your Desktop.
mkdir ~/Desktop/my_new_desktop_folder

# Make multiple folders - this will create multiple folders in the current
# directory.
mkdir folder_one folder_two folder_three

การย้ายไฟล์และโฟลเดอร์

การย้ายไฟล์

# Move a file - this will move the file `my_file.txt` into the folder named
# `my_folder` that is in the current folder.
mv my_file.txt my_folder
# Note that this will rename the file instead of moving it if the destination
# folder does not yet exist.  Read below for more details on renaming.

# Move a file - this will move the file `my_file.txt` into the folder named
# `my_desktop_folder` that is located on the Desktop.
mv my_file.txt ~/Desktop/my_desktop_folder

การย้ายโฟลเดอร์

# Move a directory - this will move the folder `my_child_folder` into the
# folder named `my_parent_folder` that is in the current folder.
mv my_child_folder my_parent_folder

# Move a directory - this will move the folder `my_folder` into the folder
# named `my_desktop_folder` that is located on the Desktop.
mv my_folder ~/Desktop/my_desktop_folder

การย้ายคือการเปลี่ยนชื่อ

โปรดทราบว่า mv เป็นคำสั่งเดียวกันที่ใช้เปลี่ยนชื่อไฟล์หรือโฟลเดอร์ด้วย

# Rename a file from `old_name.txt` to `new_name.txt`.
mv old_name.txt new_name.txt

การคัดลอกไฟล์และโฟลเดอร์

การคัดลอกไฟล์

# Copy a file named `my_file.txt` from your Desktop folder to your Documents
# folder.
cp ~/Desktop/my_file.txt ~/Documents

# Copy a file named `my_file.txt` to a file called `my_file_copy.txt` within
# the same folder.
cp my_file.txt my_file_copy.txt

การคัดลอกโฟลเดอร์

# Copy a directory named `my_folder` (and its contents) from your Desktop
# folder to a folder called `my_folder_copy` in your Documents folder.
cp -r ~/Desktop/my_folder ~/Documents/my_folder_copy

# Copy a directory named `my_folder` (and its contents) from the current
# working directory to a folder called `my_folder_copy` in the current working
# directory.
cp -r my_folder my_folder_copy

การลบไฟล์และโฟลเดอร์

การลบไฟล์

# Delete a file in the current working directory.
rm unwanted_file.txt

# Delete a file using its exact location and name.
rm ~/Desktop/unwanted_file.txt

การลบโฟลเดอร์

# Delete an empty folder.
rmdir empty_directory

# Delete a folder which contains other files or folders.
rm -r directory_which_isnt_empty

เคล็ดลับและคำแนะนำ

  • ฝึกใช้บรรทัดคำสั่งแม้ว่าคุณจะคิดว่าไม่จำเป็นก็ตาม คุณจะทำได้ดีขึ้นเรื่อยๆ
  • ปุ่ม tab จะเติมชื่อไฟล์หรือโฟลเดอร์ให้โดยอัตโนมัติ (อาจคำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่)
  • หากมีไฟล์หรือโฟลเดอร์ที่ตรงกันเหลืออยู่เพียงรายการเดียว ระบบจะเติมข้อความอัตโนมัติ
  • หากมีไฟล์หรือโฟลเดอร์ที่ตรงกันหลายรายการ ให้กด Tab 2 ครั้งเพื่อดูรายการที่เหลือ
  • ลูกศรขึ้น / ลงจะหมุนเวียนประวัติคำสั่งเพื่อให้คุณไม่ต้องพิมพ์คำสั่งซ้ำ
  • ใช้คำสั่ง clear เพื่อล้างหน้าต่างเทอร์มินัล ซึ่งจะช่วยเก็บงานก่อนหน้าทั้งหมดไว้ เพียงเลื่อนขึ้นเพื่อดู
  • ใช้ reset เพื่อรีสตาร์ทเทอร์มินัล การดำเนินการนี้จะไม่เก็บงานก่อนหน้าไว้บนหน้าจอ แต่จะช่วยแก้ไขปัญหาหลายอย่างได้หากเทอร์มินัลเริ่มทำงานในลักษณะที่คาดเดาไม่ได้
  • กด option + arrow เพื่อย้ายเคอร์เซอร์ทีละคำ

สรุปแนวทางปฏิบัติแนะนำ

  • ไปยังส่วนต่างๆ ของ Terminal โดยใช้ cd, cd .. หรือ cd <folder name>
  • ดูเนื้อหาของโฟลเดอร์โดยใช้ ls
  • สร้างไฟล์โดยใช้ touch และสร้างโฟลเดอร์โดยใช้ mkdir
  • ย้ายไฟล์และโฟลเดอร์โดยใช้ mv <item to move> <destination>
  • คัดลอกไฟล์และโฟลเดอร์โดยใช้ cp <item to copy> <destination>
  • ลบไฟล์และโฟลเดอร์โดยใช้ rm <item to remove>

คำถามที่ 1

คุณจะใช้อะไรในการระบุไดเรกทอรีการทำงานปัจจุบัน

  1. pwd
  2. ls
  3. cd
  4. mkdir
  5. touch

คำถามที่ 2

คุณจะย้ายขึ้นไป 2 ระดับจากไดเรกทอรีการทำงานปัจจุบันได้อย่างไร

  1. mv ~
  2. cd ../..
  3. mv up/up
  4. cd ^(2)

คำถามที่ 3

คุณจะใช้คำสั่งใดในการเปลี่ยนชื่อไฟล์

  1. mv
  2. cd
  3. ls
  4. python
  5. rename

คำถามที่ 4

เหตุใดคำสั่ง mv script.py จึงแสดงข้อผิดพลาด

  1. เนื่องจาก "script.py" เป็นชื่อไฟล์ที่ไม่ถูกต้อง
  2. เนื่องจากmvตามด้วยข้อมูลอื่นไม่ได้
  3. นี่เป็นคำถามหลอก ซึ่งจะไม่ทำให้เกิดข้อผิดพลาด
  4. เนื่องจากการย้ายไฟล์ต้องมีอาร์กิวเมนต์อย่างน้อย 2 รายการ ได้แก่ เป้าหมายและปลายทาง

คำถามที่ 5

คำสั่ง cd ~ จะทำอะไร

  1. เปลี่ยนไดเรกทอรีที่ใช้งานอยู่เป็นไดเรกทอรีหน้าแรก
  2. ทำซ้ำคำสั่งก่อนหน้า
  3. ใช้อัลกอริทึมเพื่อกำหนดคำสั่งที่มีประโยชน์มากที่สุดในขณะนี้
  4. แสดงข้อผิดพลาด

คำถามที่ 6

ข้อใดต่อไปนี้ไม่ใช่เหตุผลที่ควรใช้แท็บเพื่อเติมชื่อไฟล์ให้สมบูรณ์โดยอัตโนมัติ

  1. เพราะช่วยประหยัดเวลา
  2. เนื่องจากช่วยกำจัดข้อผิดพลาดในการสะกดคำ
  3. เนื่องจากใช้พลังการประมวลผลน้อยกว่า

คำถามที่ 7

หากนักพัฒนาแอปรายใหม่พยายามสร้างไฟล์ชื่อ "my script.py" เหตุใดคำสั่ง touch my script.py จึงใช้ไม่ได้

  1. เนื่องจาก touch สร้างไฟล์ใหม่ไม่ได้
  2. เนื่องจาก .py ไม่ใช่นามสกุลไฟล์ที่ถูกต้อง
  3. เนื่องจากจะสร้างไฟล์ 2 ไฟล์ ไฟล์หนึ่งชื่อ "my" และอีกไฟล์หนึ่งชื่อ "script.py" แทนที่จะสร้างเพียงไฟล์เดียว
  4. เนื่องจากสร้างไฟล์ใหม่จากบรรทัดคำสั่งไม่ได้

คำถามที่ 1

คุณจะใช้อะไรในการระบุไดเรกทอรีการทำงานปัจจุบัน

pwd

คำถามที่ 2

คุณจะย้ายขึ้นไป 2 ระดับจากไดเรกทอรีการทำงานปัจจุบันได้อย่างไร

cd ../.. จะเลื่อนขึ้น 2 ระดับ (.. แต่ละรายการแสดงถึง 1 ระดับที่สูงขึ้น)

คำถามที่ 3

คุณจะใช้คำสั่งใดในการเปลี่ยนชื่อไฟล์

mv ใช้เพื่อย้ายไฟล์จากตำแหน่งหนึ่งไปยังอีกตำแหน่งหนึ่ง และใช้เพื่อเปลี่ยนชื่อไฟล์ได้ด้วย

คำถามที่ 4

เหตุใดคำสั่ง mv script.py จึงแสดงข้อผิดพลาด

คำสั่ง mv ต้องมีอาร์กิวเมนต์ 2 รายการ ได้แก่ ไฟล์ต้นทางและไฟล์ปลายทาง

คำถามที่ 5

คำสั่ง cd ~ จะทำอะไร

ซึ่งจะเปลี่ยนไดเรกทอรีที่ใช้งานอยู่เป็นไดเรกทอรีหน้าแรก อักขระพิเศษ ~ ใช้เพื่อระบุไดเรกทอรีหลักของผู้ใช้ปัจจุบัน นอกจากนี้ยังใช้ร่วมกับชื่อผู้ใช้ที่แตกต่างกันได้ด้วย เช่น ~user2 เพื่อชี้ไปยังโฟลเดอร์หน้าแรกของตนเอง

คำถามที่ 6

ข้อใดต่อไปนี้ไม่ใช่เหตุผลที่ควรใช้แท็บเพื่อเติมชื่อไฟล์ให้สมบูรณ์โดยอัตโนมัติ

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

คำถามที่ 7

หากนักพัฒนาแอปรายใหม่พยายามสร้างไฟล์ชื่อ "my script.py" เหตุใดคำสั่ง touch my script.py จึงใช้ไม่ได้

ซึ่งจะสร้างไฟล์ 2 ไฟล์แทนที่จะเป็นไฟล์เดียว คำสั่ง touch จะสร้างไฟล์ใหม่ ในเทอร์มินัล ช่องว่างคือตัวคั่น ไม่ใช่อักขระที่จะรวมไว้ในชื่อไฟล์ คุณควรหลีกเลี่ยงการใช้ตัวอักษรเหล่านี้โดยสิ้นเชิง แต่หากจำเป็นต้องใช้ ให้ใส่ชื่อไฟล์ไว้ในเครื่องหมายคำพูดคู่

touch "my script.py"

คำถามที่ 1

คำสั่งเทอร์มินัลสำหรับการเปลี่ยนไดเรกทอรีคือ

  1. move
  2. mkdir
  3. pwd
  4. cd

คำถามที่ 2

คุณจะเรียกใช้คำสั่งใดหากต้องการไปยังโฟลเดอร์หลักของไดเรกทอรีการทำงานปัจจุบัน

  1. cd up
  2. cd .
  3. cd ..
  4. cd ~

คำถามที่ 3

ใช้คำสั่งใดในการสร้างไฟล์

  1. touch
  2. mkdir
  3. create
  4. pwd

คำถามที่ 4

คำสั่งใดต่อไปนี้ที่จะสร้างไฟล์ 2 ไฟล์ชื่อ index.html และ style.css

  1. touch index.html, touch style.css
  2. touch index.html, style.css
  3. touch index.html style.css
  4. touch index.html + style.css

คำถามที่ 5

คุณใช้คำสั่งใดในการเปลี่ยนชื่อไฟล์หรือโฟลเดอร์

  1. rename
  2. move
  3. mv
  4. rm

คำถามที่ 6

คำสั่ง rm และ cp ต้องใช้แฟล็กใดจึงจะทำงานกับโฟลเดอร์ได้

  1. -f
  2. -r
  3. -x
  4. -d

คำถามที่ 7

หากต้องการย้าย projects ไปยัง ~/Documents และเปลี่ยนชื่อเป็น Projects คุณต้องป้อนคำสั่งใดในช่องว่าง

cd ~
mv projects ~/Documents
# fill in the blank here
mv projects Projects
  1. pwd
  2. cd projects
  3. mv ~ projects
  4. cd ~/Documents
  5. ls

คำถามที่ 8

คำสั่งต่อไปนี้จะทำอะไร

rm -r projects

  1. ลบไฟล์ชื่อ projects
  2. ลบโฟลเดอร์ชื่อ projects
  3. เปลี่ยนชื่อไฟล์ที่ชื่อ projects
  4. ค้นหาเนื้อหาของไดเรกทอรีปัจจุบันสำหรับ projects

คำถามที่ 1

คำสั่งเทอร์มินัลสำหรับการเปลี่ยนไดเรกทอรีคือ

คำสั่งเทอร์มินัลสำหรับการเปลี่ยนไดเรกทอรีคือ cd คำสั่งนี้เป็นตัวย่อของ "change directory"

คำถามที่ 2

คุณจะเรียกใช้คำสั่งใดหากต้องการไปยังโฟลเดอร์หลักของไดเรกทอรีการทำงานปัจจุบัน

คำสั่งสำหรับไปที่โฟลเดอร์ระดับบนคือ cd ..

คำถามที่ 3

ใช้คำสั่งใดในการสร้างไฟล์

คำสั่งในการสร้างไฟล์คือ touch

คำถามที่ 4

คำสั่งใดต่อไปนี้ที่จะสร้างไฟล์ 2 ไฟล์ชื่อ index.html และ style.css

คำสั่ง touch index.html style.css จะสร้างไฟล์ 2 ไฟล์ ไม่จำเป็นต้องใช้คอมมาและสร้างไฟล์ได้ทุกจำนวนด้วยวิธีนี้ โดยคั่นด้วยช่องว่าง

คำถามที่ 5

คุณใช้คำสั่งใดในการเปลี่ยนชื่อไฟล์หรือโฟลเดอร์

แม้ว่า mv จะย่อมาจาก "ย้าย" และใช้เพื่อย้ายไฟล์หรือโฟลเดอร์ได้ แต่ก็ใช้เพื่อเปลี่ยนชื่อไฟล์และโฟลเดอร์ได้เช่นกัน

คำถามที่ 6

คำสั่ง rm และ cp ต้องใช้แฟล็กใดจึงจะทำงานกับโฟลเดอร์ได้

rm และคำสั่ง cp ต้องใช้แฟล็ก -r เพื่อให้ทำงานในโฟลเดอร์ได้ เนื่องจากแฟล็ก -r หมายถึง "แบบเรียกซ้ำ" และจะเรียกใช้คำสั่งอีกครั้งสำหรับไฟล์และโฟลเดอร์ทั้งหมดที่อยู่ในนั้น

คำถามที่ 7

หากต้องการย้าย projects ไปยัง ~/Documents และเปลี่ยนชื่อเป็น Projects คุณต้องป้อนคำสั่งใดในช่องว่าง

cd ~
mv projects ~/Documents
# fill in the blank here
mv projects Projects

เนื่องจากเราเริ่มต้นในไดเรกทอรีหน้าแรก จึงต้องเรียกใช้ cd ~/Documents เพื่อให้ได้คำสั่งสุดท้ายที่จะเรียกใช้ในไดเรกทอรีที่ถูกต้อง

คำถามที่ 8

คำสั่งต่อไปนี้จะทำอะไร

rm -r projects

คำสั่งจะลบไฟล์หรือโฟลเดอร์ที่ชื่อ projects เนื่องจากมีการเรียกใช้ด้วย -r หรือแฟล็กแบบเรียกซ้ำ หากไม่มีแฟล็กดังกล่าว คำสั่งนี้จะใช้ได้เฉพาะการลบไฟล์ที่มีชื่อนั้นเท่านั้น