บรรทัดคำสั่งเป็นวิธีควบคุมคอมพิวเตอร์โดยไม่ใช้ 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 คำสั่งเหล่านี้เป็นตัวย่อหรือคำย่อของคำภาษาอังกฤษ
พิมพ์ไดเรกทอรีที่ทำงาน (pwd
)
เมื่อไปยังส่วนต่างๆ ในเทอร์มินัล คุณควรทราบว่าคุณอยู่ที่ใด (ซึ่งเทียบได้กับชีวิตจริงด้วยเช่นกัน หากต้องการไปที่ใดที่หนึ่ง คุณต้องทราบตำแหน่งปัจจุบันก่อน)
# 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 อย่างต่อไปนี้
- คุณเข้าถึงไดเรกทอรีที่ต้องการไปยังไม่ได้จากไดเรกทอรีการทำงานปัจจุบัน
- มี 2 ไดเรกทอรีที่มีชื่อเริ่มต้นคล้ายกัน (เช่น
Documents
และDownloads
) และคุณไม่ได้ให้ข้อมูลเพียงพอเพื่อให้การเติมข้อความอัตโนมัติทราบว่าคุณต้องการไดเรกทอรีใด กดtab
อีกครั้งเพื่อดูรายการไดเรกทอรีที่อาจตรงกับสิ่งที่คุณพิมพ์ จากนั้นพิมพ์เพิ่มอีกเล็กน้อย (ให้มีรายการที่ตรงกันเพียงรายการเดียว) แล้วกดtab
อีกครั้ง - คุณสะกดคำครึ่งแรกผิดไปแล้ว
ยิ่งคุณสร้างนิสัยในการใช้แท็บเพื่อป้อนคำสั่งให้เสร็จสมบูรณ์ได้เร็วเท่าใด คุณก็ยิ่งมีแนวโน้มที่จะรับมือกับสถานการณ์ที่น่าหงุดหงิดซึ่งคำสั่งดูเหมือนจะไม่ทำงานได้มากขึ้นเท่านั้น
ไดเรกทอรีหลักและไดเรกทอรีย่อย
ไดเรกทอรีและไฟล์มีความสัมพันธ์แบบย่อยและหลักซึ่งกันและกันได้ หาก 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 สิ่งต่อไปนี้เสมอ
- เราใช้คำสั่ง
mv
ซึ่งเป็นคำย่อของ move - ตามด้วยคำสั่งย้ายและชื่อไฟล์หรือโฟลเดอร์ที่ต้องการย้าย
- ตามด้วยชื่อไฟล์และปลายทางที่ต้องการย้าย
เช่น หากคุณมีโครงสร้างไฟล์ดังนี้
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
ด้วย ซึ่งหมายความว่าหากคุณย้ายไฟล์ไปยังไดเรกทอรีที่ไม่มีอยู่ หรือหากคุณสะกดชื่อปลายทางผิด ระบบจะเปลี่ยนชื่อไฟล์แทนที่จะย้าย
มินิชาเลนจ์
- สร้างไฟล์ข้อความ (.txt) 5 ไฟล์
- สร้างไดเรกทอรีใหม่
- ย้ายไฟล์ 5 ไฟล์ที่คุณสร้างไปยังโฟลเดอร์
- สร้างโฟลเดอร์แล้วย้ายโฟลเดอร์ใหม่นี้ไปไว้ในโฟลเดอร์อื่น
การคัดลอกไฟล์และไดเรกทอรี
การจัดเฟรมและวัตถุประสงค์ของส่วน
เมื่อสร้างเว็บแอป เราอาจต้องการทำซ้ำไฟล์ (หากสร้างหน้าเว็บที่คล้ายกัน 2 หน้า เราอาจไม่ต้องการเริ่มต้นใหม่ตั้งแต่ต้น) และไวยากรณ์สำหรับคำสั่ง cp
(คัดลอก) จะคล้ายกับไวยากรณ์ mv
มาก
การคัดลอกไฟล์
คำสั่งคัดลอกมี 3 ส่วน ดังนี้
- คำสั่ง
cp
- ตัวย่อของคัดลอก - ชื่อของไฟล์ที่จะคัดลอก
- ชื่อของสำเนา (หากอยู่ในโฟลเดอร์เดียวกัน) หรือตำแหน่งและชื่อ (หากย้ายไปยังโฟลเดอร์อื่น)
# 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/
การมีไฟล์จำนวนมากที่มีชื่อเดียวกันอาจทำให้เกิดความสับสน ดังนั้นให้ใช้วิธีนี้เฉพาะในกรณีที่คุณแน่ใจว่าต้องการทำเช่นนั้น
การคัดลอกไดเรกทอรี
การคัดลอกโฟลเดอร์หรือไดเรกทอรีจะซับซ้อนกว่าเล็กน้อย เนื่องจากคุณอาจต้องการคัดลอกไม่เพียงแค่โฟลเดอร์ แต่ยังรวมถึงทุกอย่างที่อยู่ภายในด้วย
- คำสั่ง
cp -R
ซึ่งเป็นคำย่อของ copy recursive ใช้สำหรับทั้งโฟลเดอร์ที่ว่างเปล่าและโฟลเดอร์ที่มีข้อมูล - ชื่อแหล่งที่มา (โฟลเดอร์หรือไฟล์ที่ต้องการย้าย)
- ชื่อของสำเนา (หากอยู่ในโฟลเดอร์เดียวกัน) หรือตำแหน่งและชื่อ (หากย้ายไปยังโฟลเดอร์อื่น)
คำเตือน: เมื่อระบุชื่อสำหรับสำเนา หากไม่ได้สร้างไฟล์หรือโฟลเดอร์ไว้ก่อนหน้านี้ ระบบจะสร้างไฟล์หรือโฟลเดอร์เมื่อคุณทำสำเนา หากสร้างไฟล์ก่อนที่จะเรียกใช้คำสั่งคัดลอก ระบบจะเขียนทับทุกอย่างที่อยู่ในไฟล์ก่อนหน้านี้ ดังนั้นโปรดระมัดระวัง
# 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
เรียกว่าแฟล็ก โดยแฟล็กจะขึ้นต้นด้วยเครื่องหมายขีดคั่นเสมอ และใช้ร่วมกับคำสั่งเพื่อให้คำสั่งที่เฉพาะเจาะจงมากขึ้นเกี่ยวกับวิธีเรียกใช้คำสั่งนั้น
มินิชาเลนจ์
- สร้างไฟล์ชื่อ
my_original.txt
- ทำสำเนาของ
my_original.txt
โดยตั้งชื่อใหม่ในโฟลเดอร์เดียวกัน - สร้างไดเรกทอรีใหม่
- คัดลอกไดเรกทอรีนั้น แต่ตั้งชื่อให้แตกต่าง
- ทำสำเนาไฟล์ที่คัดลอก (จากขั้นตอนที่ 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
ไม่เหมือนกับถังขยะหรือส่วนที่ถูกลบของอีเมล เนื่องจากไฟล์เหล่านี้กู้คืนได้ยาก โปรดระมัดระวังอย่างยิ่งเมื่อลบไฟล์ด้วยวิธีนี้
มินิชาเลนจ์
- สร้างไฟล์ 4 ไฟล์
- ลบ 2 ไฟล์
- สร้างโฟลเดอร์
- สร้างโฟลเดอร์อื่นและสร้างไฟล์ภายในโฟลเดอร์นี้
- ลบทั้ง 2 ไดเรกทอรี
คุณดูโค้ดสำหรับ Lab นี้ได้ในโฟลเดอร์ต่อไปนี้ภายในที่เก็บของนักเรียนที่ดาวน์โหลดจาก GitHub: command-line/labs/around-the-world
ฉากหลัง
อีกไม่นานคุณก็จะได้ไปเรียนที่ต่างประเทศแล้ว และถึงเวลาที่คุณควรเริ่มวางแผนการเดินทางในยุโรปแล้ว...
ในอีก 3 เดือนข้างหน้า คุณจะใช้ชีวิตอย่างเต็มที่ ดังนั้นคุณจึงต้องการใช้ประโยชน์จากการเดินทางในช่วงสุดสัปดาห์ทุกครั้งอย่างเต็มที่
โชคดีที่คุณไม่ต้องเริ่มจากศูนย์ เพราะเพื่อนๆ ได้แนะนำกิจกรรมโปรดบางอย่างที่พวกเขาทำในช่วงที่ไปเรียนต่อต่างประเทศ ขออภัย ไฟล์บางส่วนอาจปะปนกัน...
ไม่ต้องกังวล เพราะบรรทัดคำสั่งจะช่วยให้คุณแก้ไขปัญหาเหล่านี้ได้ในเวลาไม่นาน
งาน
ตรวจสอบว่าทุกเมืองอยู่ในประเทศที่ถูกต้อง และโฟลเดอร์ของแต่ละเมืองมีอนุสาวรีย์ที่ถูกต้องอยู่ภายใน โปรดระมัดระวัง มิฉะนั้นคุณอาจไปโผล่ที่อัมสเตอร์ดัมเพื่อมองหาหอไอเฟล
หากคุณมั่นใจกับเรื่องนี้ ให้ซ่อน GUI แล้วเผชิญกับความท้าทายนี้จากบรรทัดคำสั่งโดยตรง คุณควรอยู่ในโฟลเดอร์ทั่วไปที่อยู่ทั่วโลกขณะทำสิ่งเหล่านี้ ซึ่งหมายถึงการใช้เส้นทางสัมบูรณ์เมื่ออ้างอิงถึงโฟลเดอร์และไฟล์
เมื่อแน่ใจว่าทุกอย่างอยู่ในที่ที่ถูกต้องแล้ว ก็ถึงเวลาที่คุณจะควบคุมช่วง 2-3 เดือนข้างหน้า ระดมความคิดเกี่ยวกับเมือง ประเทศ และอนุสาวรีย์ใหม่ๆ ที่คุณต้องไปให้ได้ แล้วเพิ่มลงในแผนผังไฟล์
ยินดีด้วย ตอนนี้คุณก็รู้วิธีพูดภาษากับคอมพิวเตอร์อย่างเป็นทางการแล้ว พร้อมที่จะยกระดับไปอีกขั้นแล้วใช่ไหม มาพูดถึงส่วนขยายกัน
ส่วนขยาย
- ผสมไฟล์ทั้งหมดอีกครั้ง แล้วเดินทางไปยังเมืองที่คุณเลือก จัดระเบียบไฟล์อีกครั้งขณะอยู่ในเมืองนั้น
- ลองเล่นเกมบรรทัดคำสั่งสนุกๆ ที่ลิงก์ไว้ด้านล่าง
เกม Terminus
เกมขั้นสูง (เตรียมพร้อมค้นหาใน Google) - คุณเป็นแฟนตัวยงของ 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 ที่ดีที่สุดของคุณ เขียนและเรียกใช้สคริปต์ที่ทำสิ่งต่อไปนี้
ภารกิจหลัก
- เพิ่มคำสั่งลงในไฟล์ที่สร้างไว้ด้านบนซึ่งจะไปยังโฟลเดอร์ที่คุณกำลังสร้าง (เราใช้คำสั่งใดในการเปลี่ยนไดเรกทอรี)
- ประทับวันที่ชื่อโฟลเดอร์ใหม่ เช่น โปรแกรมควรสร้างโฟลเดอร์ชื่อ "
2017-12-07my_super_cool_folder
"
- พิมพ์ "ไดเรกทอรีปัจจุบันของฉันคือ: " ตามด้วยไดเรกทอรีการทำงาน และ "นี่คือรายการทุกอย่างในไดเรกทอรีนี้ " ตามด้วยเนื้อหาของไดเรกทอรีปัจจุบัน
- หาวิธีป้อนข้อมูลให้กับสคริปต์ Bash และสร้างไฟล์ตามสตริงอินพุตนั้น บทแนะนำที่ลิงก์ไว้ก่อนหน้านี้ใน Lab มีตัวอย่างที่ยอดเยี่ยมในส่วนตัวแปรให้คุณลองดู
- ถามชื่อผู้ใช้ แล้วพิมพ์ข้อความ "สวัสดี ยินดีที่ได้รู้จัก ใส่ชื่อผู้ใช้ที่นี่"
- ลองขอข้อมูลเพิ่มเติมจากผู้ใช้และสร้างข้อความที่ปรับแต่งสำหรับผู้ใช้
บริบท
บรรทัดคำสั่ง (หรือเทอร์มินัล) ช่วยให้โต้ตอบกับระบบปฏิบัติการ (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
คุณจะใช้อะไรในการระบุไดเรกทอรีการทำงานปัจจุบัน
pwd
ls
cd
mkdir
touch
คำถามที่ 2
คุณจะย้ายขึ้นไป 2 ระดับจากไดเรกทอรีการทำงานปัจจุบันได้อย่างไร
mv ~
cd ../..
mv up/up
cd ^(2)
คำถามที่ 3
คุณจะใช้คำสั่งใดในการเปลี่ยนชื่อไฟล์
mv
cd
ls
python
rename
คำถามที่ 4
เหตุใดคำสั่ง mv script.py
จึงแสดงข้อผิดพลาด
- เนื่องจาก "
script.py
" เป็นชื่อไฟล์ที่ไม่ถูกต้อง - เนื่องจาก
mv
ตามด้วยข้อมูลอื่นไม่ได้ - นี่เป็นคำถามหลอก ซึ่งจะไม่ทำให้เกิดข้อผิดพลาด
- เนื่องจากการย้ายไฟล์ต้องมีอาร์กิวเมนต์อย่างน้อย 2 รายการ ได้แก่ เป้าหมายและปลายทาง
คำถามที่ 5
คำสั่ง cd ~
จะทำอะไร
- เปลี่ยนไดเรกทอรีที่ใช้งานอยู่เป็นไดเรกทอรีหน้าแรก
- ทำซ้ำคำสั่งก่อนหน้า
- ใช้อัลกอริทึมเพื่อกำหนดคำสั่งที่มีประโยชน์มากที่สุดในขณะนี้
- แสดงข้อผิดพลาด
คำถามที่ 6
ข้อใดต่อไปนี้ไม่ใช่เหตุผลที่ควรใช้แท็บเพื่อเติมชื่อไฟล์ให้สมบูรณ์โดยอัตโนมัติ
- เพราะช่วยประหยัดเวลา
- เนื่องจากช่วยกำจัดข้อผิดพลาดในการสะกดคำ
- เนื่องจากใช้พลังการประมวลผลน้อยกว่า
คำถามที่ 7
หากนักพัฒนาแอปรายใหม่พยายามสร้างไฟล์ชื่อ "my script.py
" เหตุใดคำสั่ง touch my script.py
จึงใช้ไม่ได้
- เนื่องจาก
touch
สร้างไฟล์ใหม่ไม่ได้ - เนื่องจาก
.py
ไม่ใช่นามสกุลไฟล์ที่ถูกต้อง - เนื่องจากจะสร้างไฟล์ 2 ไฟล์ ไฟล์หนึ่งชื่อ "
my
" และอีกไฟล์หนึ่งชื่อ "script.py
" แทนที่จะสร้างเพียงไฟล์เดียว - เนื่องจากสร้างไฟล์ใหม่จากบรรทัดคำสั่งไม่ได้
คำถามที่ 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
คำสั่งเทอร์มินัลสำหรับการเปลี่ยนไดเรกทอรีคือ
move
mkdir
pwd
cd
คำถามที่ 2
คุณจะเรียกใช้คำสั่งใดหากต้องการไปยังโฟลเดอร์หลักของไดเรกทอรีการทำงานปัจจุบัน
cd up
cd .
cd ..
cd ~
คำถามที่ 3
ใช้คำสั่งใดในการสร้างไฟล์
touch
mkdir
create
pwd
คำถามที่ 4
คำสั่งใดต่อไปนี้ที่จะสร้างไฟล์ 2 ไฟล์ชื่อ index.html
และ style.css
touch index.html, touch style.css
touch index.html, style.css
touch index.html style.css
touch index.html + style.css
คำถามที่ 5
คุณใช้คำสั่งใดในการเปลี่ยนชื่อไฟล์หรือโฟลเดอร์
rename
move
mv
rm
คำถามที่ 6
คำสั่ง rm
และ cp
ต้องใช้แฟล็กใดจึงจะทำงานกับโฟลเดอร์ได้
-f
-r
-x
-d
คำถามที่ 7
หากต้องการย้าย projects
ไปยัง ~/Documents
และเปลี่ยนชื่อเป็น Projects
คุณต้องป้อนคำสั่งใดในช่องว่าง
cd ~
mv projects ~/Documents
# fill in the blank here
mv projects Projects
pwd
cd projects
mv ~ projects
cd ~/Documents
ls
คำถามที่ 8
คำสั่งต่อไปนี้จะทำอะไร
rm -r projects
- ลบไฟล์ชื่อ
projects
- ลบโฟลเดอร์ชื่อ
projects
- เปลี่ยนชื่อไฟล์ที่ชื่อ
projects
- ค้นหาเนื้อหาของไดเรกทอรีปัจจุบันสำหรับ
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
หรือแฟล็กแบบเรียกซ้ำ หากไม่มีแฟล็กดังกล่าว คำสั่งนี้จะใช้ได้เฉพาะการลบไฟล์ที่มีชื่อนั้นเท่านั้น