“ -bash: ls: ไม่พบคำสั่ง”


30

ฉันติดตั้งอัปเดตล่าสุดเป็น OS X Lion (10.7) หลังจากที่ฉันทำเช่นนั้นเทอร์มินัลของฉันจะไม่รู้จักคำสั่งปกติ ฉันพิมพ์lsและรับ:

-bash: ls: command not found

ฉันคิดว่าฉันพยายามที่จะเพิ่ม usr / bin ไปยังเส้นทางของฉัน แต่ฉันไม่สามารถหา. bash_profile เพื่อแก้ไขได้เนื่องจากการพิมพ์edit .bash_profileไม่ทำงาน ฉันไม่สามารถตั้งค่า Finder ให้แสดงไฟล์ทั้งหมดได้เนื่องจากเทอร์มินัลของฉันไม่รู้จักคำสั่งที่จำเป็นในการทำเช่นนั้น

ฉันต้องทำอะไร


2
มาดูเส้นทางและดูว่ามีอะไรสั่นไหวบ้าง export PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/binวางส่วนที่มืด (หรือพิมพ์อย่างระมัดระวัง) - เนื่องจากคำสั่งสองคำขาดหายไป - มีบางอย่างที่พาคุณไป ก่อนที่จะทำอะไรที่ยิ่งใหญ่การเริ่มต้นการสำรองข้อมูลอาจเป็นเรื่องที่รอบคอบ
bmike

1
@bmike ขอบคุณ! เพิ่มไปที่. bash_profile และตอนนี้ก็ทำงานได้แล้ว ต้องเปิด. bash_profile เช่นนี้: /usr/bin/vi ~/.bash_profileใส่นั่นเป็นคำตอบและฉันยอมรับได้!
LuxuryMode

คำตอบ:


42

เนื่องจากทั้งสองคำสั่งขาดบางสิ่งที่ "กระทืบ" เส้นทางของคุณ

ก่อนที่จะทำอะไรที่ยิ่งใหญ่การเริ่มต้นการสำรองข้อมูลอาจเป็นเรื่องที่รอบคอบ

เส้นทางเริ่มต้นบน Mac OS X 10.7 (Lion) เป็นดังนี้:

PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin

หากคุณรีเซ็ตพา ธ โดยการพิมพ์ด้านบนลงในหน้าต่างเชลล์และจากนั้นให้พิมพ์พา ธexport PATHนั้นเพื่อแก้ไขหนึ่งหน้าต่าง

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

ความแตกแยกนี้มักจะเป็นสิ่งที่คุณต้องแก้ไขในไฟล์จุดของคุณ สำหรับทุบตีแก้ไขและแก้ไข.bash_profileและ / หรือ.bashrcโดยการเลิกทำการเปลี่ยนแปลงล่าสุดเพียงแค่ตั้งค่า $ PATH ที่คุณต้องการอีกครั้ง ข้อผิดพลาดปกติคือการกำหนดเส้นทางใหม่และไม่ได้อ้างถึงค่าก่อนหน้าของตัวแปรทางด้านขวามือของ =


2
สำหรับฉันนี่เป็นวิธีแก้ปัญหาชั่วคราว
Etienne Low-Décarie

2
ขอขอบคุณ! ฉันซ่อนตัวอยู่เล็กน้อยเมื่อlsไม่ได้ทำงานหลังจากอัปเดต.bash_profile😂
เอเดรียน

ใช่ @Adrian เป็นข้อผิดพลาดทางไวยากรณ์หรือ PATH ที่ว่างเปล่าอาจทำให้เกิดความกังวลอย่างมาก😅🤭🤬🔥
bmike

นี่เป็นวิธีแก้ไขชั่วคราว ฉันต้องทำซ้ำทุกขั้นตอนเมื่อฉันรีสตาร์ท CMD
Pawan

ยังใช้งานได้กับ Mac OS 10.14.3
Stephen Romero

11

การดำเนินการนี้จะแก้ไขปัญหาได้อย่างสมบูรณ์และถาวร

ก่อนอื่นให้ส่งออกพา ธ สภาวะแวดล้อมโดยใช้คำสั่งด้านล่างในเทอร์มินัล

export PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/b‌​in

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

ไปที่โฮมไดเร็กตอรี่

cd ~

เปิดไฟล์. bash_profile เป็น nano / vim (ฉันใช้ nano อยู่ที่นี่)

nano .bash_profile

นี่จะเป็นการเปิดโปรแกรมแก้ไขนาโน ในบรรทัดใหม่วางต่อไปนี้;

export PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:$PATH

กด 'control' + 'o' เพื่อบันทึก (WriteOut) และ 'control' + 'x' เพื่อออกจากนาโน

เสร็จเรียบร้อย ! ตอนนี้ลองคำสั่ง


3

ฟังดูราวกับว่าฉัน/etc/profileไม่ได้ทำงานเมื่อเริ่มต้นเชลล์ มันเป็นไฟล์เริ่มต้นทั่วโลกที่รับผิดชอบในการเริ่มต้นเส้นทาง ตรวจสอบว่า/etc/profileมีอยู่และสามารถอ่านได้และสามารถเรียกใช้งานได้ด้วยคำสั่งต่อไปนี้:

. /etc/profile

หากไม่มีคุณจะต้องกู้คืนจากข้อมูลสำรองหรือเครื่องอื่นที่ติดตั้ง Lion หรือติดตั้ง Lion อีกครั้ง หากมีอยู่ แต่ไม่สามารถใช้งานได้ให้ลองใช้ Disk Utility เพื่อซ่อมแซมสิทธิ์ดิสก์

หากมีอยู่และสามารถเรียกใช้งานได้ (และมีรหัสบางอย่าง) อาจไม่สามารถเรียกใช้ได้เมื่อมันควรหรือสคริปต์เริ่มต้นของคุณอาจจะแทนที่ ในการหลีกเลี่ยงปัญหาลองวาง. /etc/profileจุดเริ่มต้นของคุณ~/.bash_profileเพื่อให้แน่ใจว่าทำงานได้ หากคุณยังคงพบปัญหาให้เพิ่มecho $PATHหลังจากเรียกใช้เพื่อดูว่า PATH ถูกเตรียมใช้งานอย่างถูกต้องหรือไม่ ถ้าเป็นเช่นนั้นมีบางอย่างในสคริปต์ของคุณกำลังเปลี่ยนแปลง

นี่คือเนื้อหาเริ่มต้นของ/etc/profile:

# System-wide .profile for sh(1)

if [ -x /usr/libexec/path_helper ]; then
    eval `/usr/libexec/path_helper -s`
fi

if [ "${BASH-no}" != "no" ]; then
    [ -r /etc/bashrc ] && . /etc/bashrc
fi

path_helperสร้างเส้นทางเริ่มต้น คุณสามารถลองใช้งานได้

unset PATH; /usr/libexec/path_helper -s

เพื่อดูว่ามันผลิตอะไร

ในกรณีใด ๆ หากปัญหาไม่ได้อยู่ในสคริปต์เริ่มต้นของคุณโปรดติดต่อฝ่ายสนับสนุนของ Apple http://www.apple.com/th/support/contact/หรือรายงานข้อผิดพลาดที่https://bugreport.apple.com /เพื่อให้ Apple ทราบว่ามีปัญหา


unset PATH; /usr/libexec/path_helper -s/etc/profileแสดงให้เห็นว่าฉันเส้นทางที่ไม่ได้มีอยู่ในของฉัน ข้อเสนอแนะใด ๆ
Etienne Low-Décarie

การเรียกใช้. /etc/profileแก้ไขปัญหาชั่วคราว ฉันได้วางลงบนจุดสูงสุดของฉัน~/.bash_profileแล้ว แต่ดูเหมือนว่านี่จะไม่ทำงานเช่นกัน
Etienne Low-Décarie

1
ตรวจสอบหน้า bash man เพื่อดูรายการทั้งหมดของไฟล์เริ่มต้นและลำดับการค้นหา หากคุณมีไฟล์เข้าสู่ระบบจะมีความสำคัญมากกว่าโปรไฟล์เช่น ตรวจสอบไฟล์เริ่มต้นอื่น ๆ
Chris หน้า

1

ในการตรวจสอบว่าเป็นปัญหากับเส้นทางของคุณจริง ๆ แล้วผลลัพธ์ของ/bin/lsอะไร

หากการทำงานกว่าที่คุณควรเรียกคืนเส้นทางของคุณไป/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/binคุณสามารถใช้ตัวอย่างเช่นVIมีเส้นทาง (บน Mac /usr/bin/viของฉัน)


0

ฉันคิดถึงการแบ่งปันข้อผิดพลาดที่ทำให้ฉันเกิดข้อผิดพลาดนี้ - อย่างน้อยในกรณีของฉัน

เมื่อฉันเพิ่มใหม่PATHใน~/.bash_profileฉันลืมที่จะเพิ่ม:$PATHที่จุดสิ้นสุดของเส้นทางที่ฉันเพิ่งเพิ่ม

ฉันใช้การแก้ไขชั่วคราว (คำสั่งต่อไปนี้ในเครื่องเทอร์มินัล) ที่ผู้เชี่ยวชาญที่นี่ชี้ไปแล้วเพื่อกลับไปที่ bash_profile เนื่องจากฉันไม่สามารถใช้คำสั่ง vi เพื่อเปิดมันในตอนแรก

export PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin

เมื่อฉันเข้าไปฉันก็แก้ไขข้อผิดพลาดของฉัน

(ข้อมูลเชิงลบมีความสำคัญ!)


-1

ฉันกำลังพยายามตั้งเส้นทาง maven ของฉันเป็นตัวแปรสภาพแวดล้อมเมื่อสิ่งนี้เกิดขึ้น ดังนั้นฉันเพิ่งย้ายไฟล์. profile และ. bash_profile ไปที่ถังขยะและลองอีกครั้งและใช้งานได้


-1

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

รีเซ็ตเครื่องของคุณ จากการนำทางด้านบนไปที่ Shell >> รีเซ็ต

ป้อนคำอธิบายรูปภาพที่นี่


1
การรีเซ็ตเทอร์มินัลจะแก้ไขปัญหาได้bashอย่างไร
nohillside

-2

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


-3

คุณสามารถส่งออกเส้นทางดังต่อไปนี้:

ส่งออก PATH = $ PATH: / bin: / usr / local / bin


3
ยินดีต้อนรับสู่ถามที่แตกต่างกัน! คำถามนี้มีคำตอบที่ยอมรับแล้วและคำตอบของคุณไม่แตกต่างจากคำตอบที่ยอมรับอย่างมาก โปรดดูคำถามที่พบบ่อยต่อไปนี้เกี่ยวกับวิธีการให้คำตอบที่ดี: apple.stackexchange.com/help/how-to-answer
fsb
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.