วิธีรีเซ็ต Bash บน Mac OSX, .bash_profile เสียหายและ bash ไม่สามารถใช้งานได้อีกต่อไป


17

ฉันใช้ MacBook Pro กำลังใช้งาน Mountain Lion เวอร์ชันล่าสุด

ฉันต้องการความช่วยเหลือจริงๆฉันได้จัดการวิธีการสร้างความเสียหาย. bash_profile ของฉัน (ฉันคิดว่า) ดังนั้นทุกครั้งที่ฉันเปิดเครื่อง

-bash: export: `/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/go/bin': not a valid identifier
-bash: export: `/Users/rob/Applications/sbt/bin:': not a valid identifier
env: bash: No such file or directory
env: bash: No such file or directory
env: bash: No such file or directory
env: bash: No such file or directory
env: bash: No such file or directory
-bash: tar: command not found
-bash: grep: command not found
-bash: cat: command not found
-bash: find: command not found

ฉันไม่แน่ใจว่าเกิดอะไรขึ้นฉันไม่มีคำสั่ง sudo, cd หรือคำสั่งปกติใด ๆ วิธีเดียวที่ฉันสามารถเข้าถึงไดเรกทอรีหลักใด ๆ คือผ่านคำสั่งไปที่โฟลเดอร์ในตัวค้นหาและพยายามค้นหาไฟล์ที่ไม่มีประโยชน์

ฉันคิดว่าฉันได้สร้างไฟล์ที่อาจทำให้เกิดปัญหาฉันต้องการแก้ไข. bash_profile ดังนั้นฉันจึงพิมพ์

sudo nano ./bash_profile

เปิดไฟล์ใหม่ใน nano ซึ่งฉันคิดว่าถูกบันทึกแล้ว หลังจากนี้ฉันเปิด. bash_profile จริงเพื่อเพิ่มในเส้นทางสำหรับ node.js

หากฉันไปถึง. bash_profile ฉันคิดว่าฉันสามารถกลับไปสู่เส้นทางเดิมได้ แต่ฉันหาไม่พบฉันควรติดตั้ง bash ใหม่หรือไม่ ถ้าเป็นเช่นนั้นฉันจะทำอย่างไรกับ mac ฉันลองใช้ดู

brew install bash

ที่ฉันได้รับ

-bash: brew: command not found

สิ่งแรกที่ผมจะพยายามคือการเปลี่ยนแปลงที่จะมีเปลือกที่แตกต่างกันเพื่อให้สามารถที่จะสังคายนาปัญหา: ดูที่นี่เกี่ยวกับวิธีการทำที่support.apple.com/kb/TA27005 นี้จะช่วยให้คุณแก้ไข / bashลบไฟล์ที่กระทำผิดและเปลี่ยนเปลือกกลับไป
Gjallar

ขอบคุณฉันได้ลองติดตั้ง bash ใหม่แล้ว แต่สิ่งเดียวที่เปลี่ยนไปคือมัน-bash: export: '/Users/rob/Applications/sbt/bin:': not a valid identifierหายไปแล้ว สิ่งหนึ่งที่ฉันกำลังดิ้นรนคือบรรทัดแรกอาจถูกเก็บไว้ฉันได้ดูใน. bash_profile, .profile และ. bashrc แต่ไม่มีอะไร
Strangeone

ตกลงดังนั้นฉันเพิ่ม/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/go/binใน. bash_profile ของฉันและดูเหมือนว่าจะมีการแก้ไขทุบตี แต่ฉันยังคงได้รับข้อผิดพลาดนี้ -bash: export: '/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/go/bin': not a valid identifierความคิดใด ๆ ?
Strangeone

คุณสามารถลองต่อไปนี้: และในบรรทัดใหม่PATH="/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/go/bin:$PATH" # Make sure to use double quotes not single quotes export PATH
Gjallar

ขอบคุณดูเหมือนว่าจะได้ผล ได้โปรดถามฉันหน่อยได้ไหมว่าทำไมคุณถึงคิดว่ามันใช้ได้
Strangeone

คำตอบ:


12

เพียงแค่ใส่ความคิดเห็นทั้งหมดของฉันเข้าด้วยกันเพื่อหาคำตอบ:

สิ่งแรกที่คุณควรทำคือเปลี่ยนเชลล์ด้วยวิธีนี้คุณสามารถตั้งค่าเชลล์ที่จะไม่โหลด bash init-สคริปต์ ( .bashrc, .bash_profile) - วิธีการทำสิ่งนี้สำหรับแอปเทอร์มินัล Mac OS X สามารถดูได้ที่นี่: ฝ่ายสนับสนุนของ Apple

ตอนนี้คุณควรจะสามารถเปิดเทอร์มินัลอีกครั้งและใช้เครื่องมือแก้ไขบรรทัดคำสั่งที่คุณชื่นชอบเพื่อเปิด.bash_profileไฟล์ (เช่นnanoหรือvi):

ในไฟล์นี้คุณต้องรีเซ็ตPATHตัวแปรที่เทอร์มินัลใช้เพื่อค้นหาโปรแกรมที่สามารถทำงานได้

สามารถทำได้ด้วยสองบรรทัดต่อไปนี้:

PATH="/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:$PATH" # Make sure to use double quotes not single quotes And on a new line 
export PATH

นี่เป็นครั้งแรกที่จะตั้งไดเรกทอรีที่คุณต้องการบนเส้นทางของคุณและส่งออกเส้นทางนี้เพื่อให้สามารถใช้ได้กับทุกโปรแกรมที่เริ่มต้นจากเปลือกนี้ (ผ่านการส่งออก)


21

⇧⌘ แสดงไฟล์ที่ซ่อนอยู่ในกล่องโต้ตอบไฟล์ คุณสามารถลองเปิด ~ / .bash_profile ด้วย TextEdit และทำให้ว่างไว้ชั่วคราว


+1 สำหรับแป้นพิมพ์ลัดที่มีประโยชน์ฉันไม่รู้ :)
มิเชล

หมายเหตุ: .bash_profile อยู่ที่โฮมไดเร็กตอรี่ของคุณ (ผู้ใช้ / [ชื่อผู้ใช้] /. bash_profile
Amos

ขอบคุณ @Lri ช่วยชีวิตฉันไว้!
Vicky_Vignesh

4

ฉันกำลังทำงานกับปัญหาเดียวกันและฉันเพิ่งพบวิธีแก้ปัญหาที่ง่ายกว่า:

/usr/bin/nano .bash_profile

ลบความยุ่งเหยิงทั้งหมดของคุณแล้วบันทึกไฟล์


คำตอบที่ดีที่สุด ใช้งานง่ายและรับประกันการทำงาน
nikk wong

3

ฉันรู้ว่านี่เป็นเธรดเก่า แต่เพิ่งต้องการออกจากที่นี่เพื่อแก้ไขปัญหาด้วยความหวังว่ามีบางคนที่มีปัญหาเดียวกัน

เมื่อฉันรัน terminal จาก MacOS มันก็โอเคกับผู้ใช้ของฉันเอง แต่เมื่อเปลี่ยนเป็น sudo มันไม่สามารถทำงานได้ (ไม่พบคำสั่ง)

ฉันสิ้นสุดการแก้ไขด้วย:

nano ~/.bashrc

เพิ่งลบเส้นทางที่ทำให้เกิดข้อผิดพลาด รีสตาร์ทเทอร์มินัลและทุกอย่างทำงานได้ดีในขณะนี้


0

ฉันค้นพบเมื่อเร็ว ๆ นี้ว่าไฟล์สไตล์ DOS ทำให้เกิดปัญหากับสคริปต์. bash * ทั้งสองใน OS-X ฉันต้องใช้การสิ้นสุดไฟล์ DOS สำหรับรหัสบางอย่างที่ใช้ร่วมกับผู้ใช้ Windows ดังนั้นหากฉันแก้ไข. bash_profile ในขณะที่อยู่ใน git repo ฉันได้รับข้อความแสดงข้อผิดพลาดจำนวนมากเมื่อเรียกใช้สคริปต์ (ที่เข้าสู่ระบบ) ยูทิลิตี้ dos2unix แก้ไข


-1

นอกเหนือจากการแสดงไฟล์ที่ซ่อนไว้ก่อนหน้านี้และการใช้โปรแกรมแก้ไขข้อความแล้วยังมีวิธีที่ง่ายกว่าในการเปิดเชลล์ใหม่โดยไม่เปลี่ยนเชลล์เริ่มต้นของคุณ คุณสามารถคลิกแอพ Terminal แล้วเลือก "New Command ... " จากนั้นพิมพ์ "sh" ลงในกล่องโต้ตอบและเรียกใช้ นี่เป็นการเปิดเชลล์ที่ไม่ใช่ bash และคุณสามารถแก้ไขไฟล์ได้ ในอนาคตจะเป็นความคิดที่ดีที่จะเปิดเชลล์หรือทดสอบการใช้. bash_profile ใหม่ก่อนที่จะออก

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