ฉันทำลาย PATH ของฉันโดยการแก้ไข ~ / .bash_profile ของฉันและ Bash จะไม่รู้จักคำสั่งส่วนใหญ่


15

ใน. bash_profile ฉันตั้งใจตั้งเส้นทางไปที่:

PATH="~/Tools/apache-maven-3.3.3/bin"

และตอนนี้เส้นทางเริ่มต้นจะหายไป ไม่มีอะไรใน Terminal ทำงานอีกต่อไป:

Korays-MacBook-Pro:~ koraytugay$ ls
-bash: ls: command not found
Korays-MacBook-Pro:~ koraytugay$ mkdir test
-bash: mkdir: command not found

ฉันไม่เห็นไฟล์ที่ซ่อนอยู่ใน Finder ดังนั้นฉันจึงไม่สามารถแก้ไข. bash_profile จาก Finder ได้เช่นกัน

ฉันจะแก้ไขสถานการณ์นี้ได้อย่างไร


1
สิ่งนี้อาจใช้ไม่ได้กับระบบ BSD-ish: ลองกู้คืนพา ธ เริ่มต้นด้วยPATH=$(getconf PATH)มิฉะนั้นจะทำได้PATH=/bin:/usr/bin
glenn jackman

1
คำแนะนำ "getconf PATH" ใช้งานได้ดีจริง ๆ บน 10.10 เป็นอย่างน้อย
calum_b

3
เนื่องจาก PATH ถูกทำให้ยุ่งเหยิงดังนั้นคำแนะนำของ glenn จะทำงานร่วมกับPATH=$(/usr/bin/getconf PATH)
fd0

คำตอบ:


25

วิธีที่ง่ายที่สุดคือการกู้คืนจากข้อมูลสำรองเช่นจาก Time Machine
อย่างไรก็ตามหากข้อมูลสำรองล่าสุดนานพอที่จะมีการเปลี่ยนแปลงอื่น ๆ ที่คุณต้องการให้คุณสามารถแก้ไขได้. bash_profile

ในอาคารผู้โดยสาร

ในเทอร์มินัลคุณสามารถใช้พา ธ เต็มไปยังบรรณาธิการ (/ usr / bin / emacs / usr / bin / vi หรือ / usr / bin / nano) เพื่อแก้ไข ~ / .bash_profile

เช่น

/usr/bin/nano ~/.bash_profile

หรือคุณสามารถเปิดด้วยโปรแกรมแก้ไขข้อความเริ่มต้น (โดยค่าเริ่มต้น TextEdit) ผ่าน:

/usr/bin/open ~/.bash_profile

ใน GUI - จาก Dock หรือ Finder

แต่คุณสามารถทำได้จาก TextEdit (หรือตัวแก้ไข GUI อื่น ๆ ) โดยใช้ไฟล์ -> เปิดแล้วไปที่โฮมไดเร็กตอรี่ของคุณ ขึ้นอยู่กับว่าคุณได้ตั้ง Finder ให้แสดงไฟล์ทั้งหมดหรือไม่แสดงที่ซ่อนอยู่ (ค่าเริ่มต้น) คุณจะเห็น. bash_profile ในรายการหรือคุณสามารถกด⌘ CMD+ ⇧ SHIFT+ .ซึ่งแสดงไฟล์ที่ซ่อนอยู่ในกล่องโต้ตอบเปิด / บันทึก (ทางลัดมาจากคำตอบนี้)


5
ผู้ใช้ที่ไม่สามารถแก้ไขปัญหาที่อธิบายไว้ที่ตัวเองอาจจะดีกว่าการใช้nanoแทนemacs/ การแก้ไขvi ~/.bash_profile
nohillside

12

นำ PATH ขั้นต่ำกลับมา

ป้อนคำสั่งต่อไปนี้เพื่อรีเซ็ต PATH ขั้นต่ำ:

PATH=/bin:/usr/bin

แก้ไข ~/.bash_profile

แก้ไขของคุณ~/.bash_profileด้วยโปรแกรมแก้ไขข้อความที่คุณต้องการvi, หรือemacs TextEditชอบสร้างเส้นทางสัมพัทธ์เสมอ:

PATH=${PATH}:...my_personal_added_pathes...
export PATH

ทดสอบมัน

ก่อนที่จะดำเนินการต่อกับผู้เริ่มต้นมากเกินไปโดยเริ่มต้นเซสชันใหม่เพื่อค้นพบว่าพวกเขาไม่สามารถเริ่มเชลล์ได้อีกต่อไป ทดสอบของคุณ~/.bash_profile: เปิดTerminalหน้าต่างใหม่และตรวจสอบว่ามันทำงานได้ดี:

. ~/.bash_profile
ls
uptime
date
...

1
มีความจำเป็นที่จะไม่ได้น้อยที่สุดของคุณexport PATHกระบวนการใด ๆ PATHที่ตั้งขึ้นโดยเปลือกปัจจุบันจะได้รับมรดกน้อยที่สุด แม้ว่าฉันจะใช้export PATHในไฟล์ config เปลือก
fd0

1
ขวา! ฉันคุ้นเคยกับการพิมพ์ด้วยวิธีนี้ในสภาพแวดล้อมที่มีเชลล์สคริปต์ที่ทดสอบ
แดน

2

ฉันพบข้อผิดพลาดนี้ซึ่งทำให้ฉันต้องใช้เวลาตลอดบ่ายเพื่อเอาชนะ ls, git, mkdir ฯลฯ คำสั่ง bash ไม่ถูกต้องและรายงานข้อผิดพลาด: "- bash: xx: ไม่พบไฟล์หรือไดเรกทอรี" เพราะฉันแก้ไข. bash_profile ในการติดตั้ง zsh ป้อนคำสั่งต่อไปนี้เพื่อกู้คืน ~ / .bash_profile ของคุณ

  1. ในเทอร์มินัลของ mac ให้ป้อน:

    export PATH=/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
  2. คุณสามารถใช้คำสั่ง bash ชั่วคราวให้ป้อน:

    vim ~/.bash_profile
  3. กู้คืนพารามิเตอร์ PATH โดยการแก้ไข

    export PATH=/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
  4. บันทึกเป็นกลุ่มและออกจากนั้นป้อน:

    source ~/.bash_profile

ตกลงคอมพิวเตอร์ของฉันทำงานอีกครั้ง!


อาจเป็นการเพิ่มที่ควรระวังในขั้นตอนที่ 3 อย่าทำลายเนื้อหาอื่น ๆ ในไฟล์
nohillside

.bash_profile ถูกทำลายโดยคำสั่งที่ไม่ถูกต้องของฉันไม่มีอะไรเหลือยกเว้น "ส่งออก PATH =" ที่ว่างเปล่าดังนั้นนี่เป็นวิธีเดียวที่ฉันจะต้องคืนค่า Mac ของฉันอีกครั้ง
Yongsheng Yu

-2
  1. เปิด bash_profile ของคุณโดยใช้ / usr / bin / vim ~ / .bash_profile (vim ~ / .bash_profile จะไม่ทำงานอีกต่อไปเนื่องจากเส้นทางไม่ถูกต้อง)
  2. กำจัดเส้นทางที่คุณเพิ่งเพิ่มที่ทำให้ทุกอย่างสับสน
  3. ออกและรีสตาร์ทเทอร์มินัลเพื่อให้แหล่งที่มา ~ / .bash_profile ทำงานโดยอัตโนมัติ (อีกครั้งมันจะไม่ทำงานเหมือนเดิมเพราะเส้นทางไม่ถูกต้อง)

-5

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


เขาเปิด. bash_profile อย่างไร
user151019
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.