Computer >> คอมพิวเตอร์ >  >> การแก้ไขปัญหา >> MAC

วิธีแก้ไขข้อผิดพลาดไม่พบคำสั่ง Mac ในเทอร์มินัล

บางครั้ง คุณอาจพบ "ไม่พบคำสั่ง " เกิดข้อผิดพลาดบน 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 ที่คำสั่งอยู่ได้รับการกำหนดค่าตามขั้นตอนต่อไปนี้:

  1. เปิดเทอร์มินัล
  2. ดำเนินการคำสั่งต่อไปนี้เพื่อตั้งค่าพาธมาตรฐานที่ macOS ใช้ใน command line:export PATH="/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin" วิธีแก้ไขข้อผิดพลาดไม่พบคำสั่ง Mac ในเทอร์มินัล
  3. พิมพ์รหัสผ่านของคุณแล้วกด Enter

ลองเรียกใช้คำสั่งที่คุณล้มเหลวก่อนหน้านี้อีกครั้งเพื่อดูว่าข้อผิดพลาด "zsh:command not found" เกิดขึ้นอีกใน macOS Monterey หรือไม่ หากปัญหายังคงอยู่ ให้ดำเนินการแก้ไขต่อไป

เพิ่มไดเร็กทอรีของคุณไปที่ PATH

ปัญหาอื่นที่อาจส่งผลให้ "ไม่พบคำสั่ง zsh:" บน M1 Mac คือเมื่อคำสั่งที่คุณป้อนไม่ได้รับการบันทึกในค่าเริ่มต้น $PATH คุณสามารถตรวจสอบค่าเริ่มต้นปัจจุบันของ $PATH ได้โดยดำเนินการคำสั่งต่อไปนี้ใน Terminal:echo $PATH

วิธีแก้ไขข้อผิดพลาดไม่พบคำสั่ง Mac ในเทอร์มินัล

คำสั่งนี้น่าจะให้ค่าเริ่มต้น $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/ ปกติ ปฏิบัติตามแนวทางแก้ไขเหล่านี้:

  1. เปิดเทอร์มินัล
  2. ดำเนินการคำสั่งต่อไปนี้เพื่อเพิ่มไดเร็กทอรีใหม่ชั่วคราว (เช่น /opt/homebrew/bin) ไปยัง $PATH:export PATH=$PATH:/opt/homebrew/bin
  3. ตรวจสอบว่าไดเร็กทอรีใหม่ถูกเพิ่มด้วยคำสั่ง echo:echo $PATH

คุณสามารถทดสอบว่าคำสั่งที่คุณต้องการใช้ใช้งานได้ทันทีหรือไม่ หากคุณต้องการให้การเปลี่ยนแปลงพาธยังคงอยู่ คุณต้องเพิ่มลงในไฟล์ .zshrc, .bash_profile หรือ .bashrc ขึ้นอยู่กับว่าคุณใช้เชลล์ขณะใด ทำตามขั้นตอนเหล่านี้:

  1. ดำเนินการคำสั่งนี้ใน Terminal เพื่อย้ายไปยังโฮมไดเร็กทอรี.cd
  2. ใช้คำสั่งด้านล่างเพื่อแสดงรายการไฟล์ในโฮมไดเร็กทอรีของคุณและตรวจสอบว่าคุณมีไฟล์ .zshrc หรือไม่ หากคุณเรียกใช้ zsh.ls -la
  3. หากไม่มี ให้สร้างด้วยตัวแก้ไข nano โดยใช้คำสั่งนี้ มิฉะนั้น ให้ข้ามไปยังขั้นตอนที่ 4.touch .zshrc
  4. เรียกใช้คำสั่งนี้เพื่อแก้ไข .zshrc ด้วย nano.nano .zshrc
  5. ดำเนินการคำสั่งอื่นเพื่อเพิ่มไดเร็กทอรีใหม่ (เช่น /opt/homebrew/bin) ไปยัง .zshrc.export PATH=$PATH:/opt/homebrew/bin
  6. ออกจาก Terminal แล้วเปิดใหม่

สมมติว่าวิธีนี้ใช้ไม่ได้ผล ให้อ่านวิธีถัดไปเพื่อแก้ไขข้อผิดพลาด "zsh:command not found" ใน M1 Mac หรือ Intel Mac

ติดตั้ง macOS ใหม่หรือกู้คืนจาก Time Machine

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

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