บางครั้ง คุณอาจพบ "ไม่พบคำสั่ง " เกิดข้อผิดพลาดบน Mac เมื่อพยายามเรียกใช้คำสั่งบางคำสั่งในหน้าต่างเทอร์มินัล
เนื่องจาก Apple เปลี่ยนเชลล์เริ่มต้นจาก bash เป็น zsh ใน macOS Catalina ผู้ใช้ที่ใช้ macOS Catalina หรือใหม่กว่ามักจะเห็นข้อความ "zsh:command not found:brew" แต่ผู้ใช้ที่ใช้ macOS Mojave หรือรุ่นก่อนหน้ามักจะเห็นข้อผิดพลาดเช่น "bash:brew:command not found"
เมื่อ Terminal แจ้งว่า "command not found" หมายความว่าคำสั่งที่คุณป้อนไม่อยู่ในเส้นทางการค้นหาของคุณ สิ่งนี้สามารถเกิดขึ้นได้จากหลายสาเหตุดังที่เราจะอธิบายต่อไป
แก้ไขข้อผิดพลาด "ไม่พบคำสั่ง" บน Mac:
- 1. เหตุใดข้อผิดพลาด 'ไม่พบคำสั่ง' จึงปรากฏขึ้นบน Terminal ของ Mac
- 2. วิธีแก้ไขข้อผิดพลาดไม่พบคำสั่ง Mac
เหตุใดข้อผิดพลาด 'command not found' จึงปรากฏขึ้นบน Terminal ของ Mac
คุณสามารถรับข้อผิดพลาดไม่พบคำสั่ง Mac เมื่อเกิดสิ่งต่อไปนี้:
- ป้อนคำสั่งไม่ถูกต้อง
- ไม่ได้ติดตั้งคำสั่งบน Mac ของคุณ
- คำสั่งถูกลบโดยไม่ได้ตั้งใจ หรือไดเร็กทอรีระบบถูกแก้ไขหรือถูกลบ
- $PATH ที่ระบุไดเร็กทอรีที่จำเป็นต้องค้นหาคำสั่งไม่สมบูรณ์ ตั้งค่าหรือล้างไม่ถูกต้อง
ไม่ว่าจะด้วยเหตุผลใดก็ตาม คุณสามารถทำตามคำแนะนำทั่วไปด้านล่างเพื่อแก้ไขข้อผิดพลาด "ไม่พบคำสั่ง" บน Mac
จะแก้ไขข้อผิดพลาดคำสั่ง Mac ได้อย่างไร
มีหลายกรณีเกี่ยวกับข้อผิดพลาด "ไม่พบคำสั่ง" บน Mac คุณสามารถสัมผัสข้อความ "zsh:command not found" บน Mac Monterey หรือ macOS เวอร์ชันอื่นๆ ที่ใช้ zsh ปัญหาอาจเกิดขึ้นกับคำสั่งใดก็ได้ ต่อไปนี้คือข้อความแสดงข้อผิดพลาดที่รายงานโดยทั่วไปที่ผู้ใช้ได้รับ:
- zsh:ไม่พบคำสั่ง:$
- zsh:ไม่พบคำสั่ง:ls
- zsh:ไม่พบคำสั่ง:brew
- zsh:ไม่พบคำสั่ง:นำเข้า
- bash:brew:ไม่พบคำสั่ง
- -bash:$:ไม่พบคำสั่ง
- sudo:ไม่พบคำสั่ง
- sudo:nano:ไม่พบคำสั่ง
โชคดีที่ข้อผิดพลาดเหล่านี้สามารถแก้ไขได้โดยวิธีแก้ไขปัญหาต่อไปนี้ ขอแนะนำให้ลองใช้ทีละตัวจนกว่าจะสามารถดำเนินการคำสั่งได้สำเร็จ
- แก้ไข 1:ตรวจสอบไวยากรณ์ของคำสั่ง
- แก้ไข 2:ตั้งค่า $PATH เป็นพาธเริ่มต้นของ macOS
- แก้ไข 3:เพิ่มไดเรกทอรีของคุณใน PATH
- แก้ไข 4:ติดตั้ง macOS ใหม่หรือกู้คืนจาก Time Machine
ตรวจสอบไวยากรณ์ของคำสั่ง
ผู้ใช้ที่ไม่คุ้นเคยกับคำสั่งมักจะทำผิดพลาด เช่น ลืมใส่ช่องว่างตรงจุดที่จำเป็นหรือเพิ่มสัญลักษณ์ที่ไม่จำเป็นลงในคำสั่ง ตัวอย่างเช่น คุณอาจป้อน sudo nano/private/etc/hosts เพื่อแก้ไขไฟล์ Host ด้วย Nano เมื่อไวยากรณ์ที่ถูกต้องมีช่องว่างหลัง nano ซึ่งควรเป็น sudo nano /private/etc/hosts
หรือคุณอาจคัดลอกและวางบรรทัดเช่น $ brew install pyqt ลงใน Terminal ซึ่งจะส่งคืนข้อผิดพลาด:"-bash:$:command not found" บน Mac นั่นเป็นเพราะ $ เป็นเพียงตัวอย่างพรอมต์เทอร์มินัลในเอกสารประกอบที่ไม่จำเป็นต้องปรากฏในคำสั่ง
ดังนั้น สิ่งแรกที่คุณควรตรวจสอบเมื่อพบข้อผิดพลาด "ไม่พบคำสั่ง" ใน Terminal ของ Mac คือไวยากรณ์ของคำสั่ง ทางที่ดีควรคัดลอกข้อความต้นฉบับไปยัง Terminal แทนที่จะพิมพ์เอง นอกจากนี้ การเปรียบเทียบคำสั่งของคุณกับตัวอย่างอื่นๆ โดยใช้คำสั่งเดียวกันจะช่วยได้เช่นกัน
ตั้งค่า $PATH เป็นพาธเริ่มต้นของ macOS
พาธหมายถึงตำแหน่งเฉพาะในระบบไฟล์ ในทำนองเดียวกัน ตัวแปรระบบ PATH ($PATH) สำหรับคำสั่ง Terminal จะระบุหลายไดเร็กทอรีที่มีโปรแกรมปฏิบัติการอยู่ ด้วย $PATH Mac ของคุณจะรู้ว่าต้องค้นหาการดำเนินการคำสั่งจากที่ใด ดังนั้นคุณไม่จำเป็นต้องป้อนพาธสัมบูรณ์ของคำสั่งแต่ให้ป้อนชื่อเช่น ls เท่านั้น
อย่างไรก็ตาม หากไม่ได้ตั้งค่าเส้นทางที่คำสั่งที่คุณต้องการดำเนินการ คุณจะได้รับข้อผิดพลาด "command not found" บน Mac เช่น "zsh:command not found" หรือ "zsh:command not found ls" .
ในกรณีนี้ คุณต้องตรวจสอบให้แน่ใจก่อนว่า $PATH ที่คำสั่งอยู่ได้รับการกำหนดค่าตามขั้นตอนต่อไปนี้:
- เปิดเทอร์มินัล
- ดำเนินการคำสั่งต่อไปนี้เพื่อตั้งค่าพาธมาตรฐานที่ macOS ใช้ใน command line:export PATH="/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"
- พิมพ์รหัสผ่านของคุณแล้วกด Enter
ลองเรียกใช้คำสั่งที่คุณล้มเหลวก่อนหน้านี้อีกครั้งเพื่อดูว่าข้อผิดพลาด "zsh:command not found" เกิดขึ้นอีกใน macOS Monterey หรือไม่ หากปัญหายังคงอยู่ ให้ดำเนินการแก้ไขต่อไป
เพิ่มไดเร็กทอรีของคุณไปที่ PATH
ปัญหาอื่นที่อาจส่งผลให้ "ไม่พบคำสั่ง zsh:" บน M1 Mac คือเมื่อคำสั่งที่คุณป้อนไม่ได้รับการบันทึกในค่าเริ่มต้น $PATH คุณสามารถตรวจสอบค่าเริ่มต้นปัจจุบันของ $PATH ได้โดยดำเนินการคำสั่งต่อไปนี้ใน Terminal:echo $PATH
คำสั่งนี้น่าจะให้ค่าเริ่มต้น $PATH เป็น /usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin ซึ่งเป็นไดเรกทอรีห้าไดเรกทอรีที่ Mac ของคุณใช้กับบรรทัดคำสั่ง
- usr/local/bin
- /usr/bin
- /bin
- /usr/sbin
- /sbin
หากคำสั่งที่คุณใช้ถูกเก็บไว้ในไดเร็กทอรีที่ไม่รวมอยู่ในคำสั่งเริ่มต้น ให้ทำตามขั้นตอนด้านล่างเพื่อเพิ่มลงใน $PATH ตัวอย่างเช่น หากคุณพบข้อผิดพลาด "zsh:command not found:brew" บน Mac และคุณสังเกตเห็นว่า Homebrew ของคุณถูกเก็บไว้ที่ /opt/homebrew/bin แทนที่จะเป็นไฟล์ /usr/local/ ปกติ ปฏิบัติตามแนวทางแก้ไขเหล่านี้:
- เปิดเทอร์มินัล
- ดำเนินการคำสั่งต่อไปนี้เพื่อเพิ่มไดเร็กทอรีใหม่ชั่วคราว (เช่น /opt/homebrew/bin) ไปยัง $PATH:export PATH=$PATH:/opt/homebrew/bin
- ตรวจสอบว่าไดเร็กทอรีใหม่ถูกเพิ่มด้วยคำสั่ง echo:echo $PATH
คุณสามารถทดสอบว่าคำสั่งที่คุณต้องการใช้ใช้งานได้ทันทีหรือไม่ หากคุณต้องการให้การเปลี่ยนแปลงพาธยังคงอยู่ คุณต้องเพิ่มลงในไฟล์ .zshrc, .bash_profile หรือ .bashrc ขึ้นอยู่กับว่าคุณใช้เชลล์ขณะใด ทำตามขั้นตอนเหล่านี้:
- ดำเนินการคำสั่งนี้ใน Terminal เพื่อย้ายไปยังโฮมไดเร็กทอรี.cd
- ใช้คำสั่งด้านล่างเพื่อแสดงรายการไฟล์ในโฮมไดเร็กทอรีของคุณและตรวจสอบว่าคุณมีไฟล์ .zshrc หรือไม่ หากคุณเรียกใช้ zsh.ls -la
- หากไม่มี ให้สร้างด้วยตัวแก้ไข nano โดยใช้คำสั่งนี้ มิฉะนั้น ให้ข้ามไปยังขั้นตอนที่ 4.touch .zshrc
- เรียกใช้คำสั่งนี้เพื่อแก้ไข .zshrc ด้วย nano.nano .zshrc
- ดำเนินการคำสั่งอื่นเพื่อเพิ่มไดเร็กทอรีใหม่ (เช่น /opt/homebrew/bin) ไปยัง .zshrc.export PATH=$PATH:/opt/homebrew/bin
- ออกจาก Terminal แล้วเปิดใหม่
สมมติว่าวิธีนี้ใช้ไม่ได้ผล ให้อ่านวิธีถัดไปเพื่อแก้ไขข้อผิดพลาด "zsh:command not found" ใน M1 Mac หรือ Intel Mac
ติดตั้ง macOS ใหม่หรือกู้คืนจาก Time Machine
หากคุณกำลังค้นหาข้อมูลในระบบและบังเอิญลบไฟล์หรือโฟลเดอร์ของระบบ คุณอาจเผลอลบไฟล์ที่จำเป็นต่อคำสั่ง Terminal หากเป็นเช่นนั้น คุณจะต้องกู้คืนไฟล์ระบบเหล่านี้
คุณสามารถเลือกกู้คืนเป็นสถานะก่อนหน้าได้ หากคุณสำรองข้อมูล Mac ของคุณด้วย Time Machine มิเช่นนั้น คุณสามารถติดตั้ง macOS ใหม่โดยไม่ต้องฟอร์แมตไดรฟ์ โปรดทราบว่าแม้ว่าการติดตั้งระบบปฏิบัติการใหม่จะไม่ทำให้ข้อมูลสูญหาย แต่ควรทำสำเนาไฟล์สำคัญก่อนที่จะดำเนินการ