ฉันจะรีเซ็ตตัวแปร $ PATH บน Mac OS X ได้อย่างไร


17

ฉันได้ messed up ตัวแปรเส้นทางของฉันและตอนนี้ปพลิเคชันบางอย่างที่ผมทำงานข้อผิดพลาดยกคำพูดคำสั่งไม่พบข้อผิดพลาด (127)สำหรับคำสั่งเช่นวันและการนอนหลับ คำสั่งเหล่านี้ทำงานได้ดีเมื่อดำเนินการโดยตรงในเปลือก

ฉันคาดเดาว่าสิ่งนี้เกี่ยวข้องกับตัวแปร $ PATH ที่ไม่ถูกต้องและจำเป็นต้องรู้วิธีรีเซ็ต ฉันได้ลบไฟล์~ / .bashrc , ~ / .bash_profile , /etc/bash.bashrcและ~ / .bashrcและ~ / .profile

ไฟล์อื่นใดที่สามารถเก็บ$ PATHของฉันได้? มีวิธีที่ง่ายกว่าในการรีเซ็ต Path มากกว่าที่จะขุดลงในไฟล์ myriad ซึ่งสามารถเก็บพา ธ ของฉันได้หรือไม่?

หมายเหตุปัญหาเส้นทางนี้เกิดขึ้นกับผู้ใช้ของฉันเท่านั้น ฉันสร้างผู้ใช้ทดสอบบนระบบของฉันและเส้นทางก็ใช้ได้ดีกลับมาเป็นปกติ

อัปเดต: ขอบคุณ ฉันไม่รู้ว่าไฟล์ใดที่ฉันลบไปแล้ว แต่สิ่งต่าง ๆ ทำงานได้อีกครั้ง พวกคุณทำในสิ่งที่ 'ผู้เชี่ยวชาญ' ทำไม่ได้ และใช่คริสคุณพูดถูก การปรับแต่ง PATH ที่ฉันทำนั้นอยู่ใน bash_login แต่อย่างใดมันก็ทำงานได้โดยที่ฉันลบการปรับแต่ง ฉันคิดว่ามันอาจจะเป็นเพราะฉันใช้ prefpane นี้เรียกว่า 'RCEnvironment' และฉันได้ป้อนเส้นทางด้วยเครื่องหมายคำพูดและ: PATH ในนั้น ฉันไม่ทราบว่าจะใช้ราคาและไม่ได้แทนที่: $ PATH ดังนั้นอาจเป็นสาเหตุของข้อผิดพลาด ฉันลืมว่าฉันมี prefpane นั่นด้วย!


1
/ etc / profile เป็นสถานที่ที่เป็นไปได้มากที่สุดสำหรับการตั้งค่าเริ่มต้นสำหรับ PATH แต่มีบางอย่างที่มีผลกระทบต่อผู้ใช้ทั้งหมด นอกจากนี้ยังมี ~ / .bash_login ซึ่งคุณไม่ได้แสดงรายการไว้ (แม้ว่าคุณอาจจะลบมันไปแล้ว)
Chris Johnsen

คำตอบ:


19

หากคุณมีไฟล์ ~ / .MacOSX / environment.plist ให้ตรวจสอบเพื่อดูว่ามีค่า PATH เริ่มต้นหรือไม่

หากอยู่ในรูปแบบ XML (สามารถมีได้หลายรูปแบบ) คุณสามารถแก้ไขด้วยโปรแกรมแก้ไขข้อความใดก็ได้ ตรวจสอบด้วยplutil -lint ~/.MacOSX/environment.plistหากคุณแก้ไขด้วยมือ

หรือคุณสามารถใช้คำสั่งเช่นค่าเริ่มต้นหรือPlistBuddyเพื่อทำการแก้ไขควบคุม XML หรือไฟล์ plist รูปแบบไบนารี


คุณสามารถตั้งค่า PATH ของคุณเองในไฟล์เริ่มต้นเชลล์ใด ๆ

ใส่สิ่งต่อไปนี้ในไฟล์เริ่มต้นเชลล์ของคุณ ( .bashrcหรือ.bash_profile/ .bash_login/ .profile):

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

# add custom, local installations to PATH
PATH=/usr/local/bin:/usr/local/sbin:"$PATH"

# add MacPorts to PATH
PATH=/opt/local/bin:/opt/local/sbin:"$PATH"

ซึ่งจะแทนที่เส้นทางเริ่มต้นใด ๆ ที่ถูกตั้งค่าเมื่อเชลล์เริ่มต้น ( PATH=ไม่ได้ใช้ครั้งแรก$PATHดังนั้นมันจะเริ่มต้นด้วยสิ่งที่คุณให้ไว้เสมอ)

เพียงคนเดียวของ 'เข้าสู่ระบบ' ไฟล์จะเคยใช้ (คนแรกที่มีอยู่และสามารถอ่านได้จาก~/.bash_profile, ~/.bash_loginและ~/.profileจะใช้) .profileสำหรับความเข้ากันได้ย้อนหลังกับคนอื่น ๆ เปลือกหอย-ถ้าคุณใช้มันให้แน่ใจว่าจะให้มันฟรีไวยากรณ์ที่เป็นเฉพาะกับทุบตี หากคุณไปด้วย.bash_loginหรือ.bash_profile(มันเทียบเท่ากับการใช้งานได้ยกเว้นชื่อ) ให้ใช้บรรทัดที่[[ -e ~/.bashrc -a -r ~/.bashrc ]] && source ~/.bashrc ]]อยู่ใกล้ด้านบนเพื่อให้เชลล์การเข้าสู่ระบบจะได้รับการปรับแต่งตามที่คุณ.bashrcต้องการ

หากคุณต้องการทุกกรณีทุบตี.bashrcที่จะมีเส้นทางเดียวกันจากนั้นใช้ หากคุณมักจะพบว่าตัวเองมีการปรับเปลี่ยน PATH ของเชลล์เดี่ยวจากบรรทัดคำสั่งและต้องการใช้ PATH ที่แก้ไขใน subshells (กรณีที่อาจไม่ธรรมดามาก) คุณควรใส่คำสั่งลงในไฟล์ 'login' แทน . เลือกไฟล์เข้าสู่ระบบเพียงไฟล์เดียวและใช้งานได้


8

1. เปิดเทอร์มินัลของคุณ

2.You สามารถแรกเพียงแค่ตรวจสอบปัจจุบันของคุณ$PATHชนิด

echo $ PATH

ไปยังสถานี

3. หาก$PATHเทอร์มินัลนั้นให้กลับมาเป็นเส้นทางที่คุณต้องการคุณก็จะดี ถ้าไม่พิมพ์

ส่งออก PATH = / usr / bin: / bin: / usr / sbin: / sbin

จากนั้นพิมพ์

แตะ ~ / .bash_profile

แล้วพิมพ์

เปิด ~ / .bash_profile

จากนั้นคุณจะพบ EditText เปิดขึ้นตอนนี้ให้พิมพ์เส้นทางที่คุณต้องการใน EditText นั้น ตัวอย่างเช่นพิมพ์

PATH = / usr / bin: / bin: / usr / sbin: / sbin

(ซึ่งเป็นค่าเริ่มต้น$PATHสำหรับ mac โดยพิจารณาว่าคุณต้องการรีเซ็ต$PATHดังนั้นคุณควรพิมพ์สิ่งนี้) บันทึกไว้แล้วปิด EditText จากนั้นปิด Terminal

4. ตอนนี้คุณได้เปลี่ยน$PATHหรือรีเซ็ตค่าเริ่มต้นของ mac แล้ว$PATH!


2
ฉันรู้สึกว่ามีจำนวนมากที่ไม่มีผลกระทบ ทำไมคุณถึงคิดว่าtouchจำเป็น นอกจากนี้ในขณะที่คุณกำลังปิดเทอร์มินัลเหตุใดจึงเรียกใช้exportบนบรรทัดคำสั่งแทนที่จะเพิ่มเฉพาะลงใน~/.bash_profile(ซึ่งต้องการexportด้วย) และสามารถทำได้ด้วย (หรือเรียกใช้source ~/.bash_profileเพื่อใช้การเปลี่ยนแปลงกับหน้าต่างปัจจุบัน)
Arjan

จริงบางอย่างมันซ้ำซ้อน การบันทึกค่า PATH ใด ๆ ใน. bash_profile ควรทำ
ThinkCode

1

คริสจอห์นสันแก้ไขยังแสดงให้เห็นการทำงานที่ดีในrc/profile/etc/profile

ฉันเพิ่งต่อท้าย:

export PATH="/usr/local/mariadb/bin:$PATH"

/etc/profileไฟล์ของฉันใน Mac OS X 10.9 Mavericks เพื่อทำการติดตั้ง MariaDB ให้เสร็จสมบูรณ์


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