ฉันเปลี่ยนตัวแปร“ HOME” และไม่สามารถหา“ ~ / .bash_profile” เพื่อเปลี่ยนกลับได้


15

ฉันยุ่งกับตัวแปรสภาพแวดล้อมบน Mac ของฉันพยายามที่จะเรียนรู้วิธีการใช้และฉันใช้คำสั่งnano ~/.bash_profileที่ฉันเพิ่มบรรทัดHOME=/Users/MyCompName/Desktopเพื่อปรับปรุงตัวแปรบ้านของฉัน

การเปลี่ยนแปลงนี้ใช้งานได้และสามารถมองเห็นได้เมื่อฉันใช้printenvเพื่อดูตัวแปรสภาพแวดล้อมทั้งหมด แต่เมื่อฉันเปลี่ยนHOMEกลับฉันไม่พบ~/.bash_profileอีกต่อไป มันไปไหน


9
โดยทั่วไป~หมายถึง$HOME
el.pescado

6
... ดังนั้นหากคุณกำหนดใหม่$HOMEอีกครั้ง~จะได้รับการนิยามใหม่ด้วย
el.pescado

คำตอบ:


32

มันอยู่ในที่เดียวกัน

ก่อนที่การเปลี่ยนแปลง~จะขยายออกไปเป็นสิ่งที่ชอบ/Users/YourUserNameเชลล์จะค้นหาสิ่งที่คุณ.bash_profileมีอยู่ หลังจากไฟล์ได้รับการ~ขยายไปยังพา ธ อื่นดังนั้นจะ~/.bash_profileไม่ชี้ไปยังไฟล์ที่เกี่ยวข้องอีกต่อไป นี้เป็นเพราะในบริบทนี้หมายถึง~$HOME

~ถ้าคุณรู้ว่าเส้นทางแบบเต็มไปยังไดเรกทอรีที่บ้านของคุณจริงคุณสามารถใช้มันแทน ใน Mac อาจมีลักษณะเช่นนี้:

nano /Users/YourUserName/.bash_profile

$HOMEหรือให้ทุบตีคุณมองขึ้นไดเรกทอรีบ้านของคุณในฐานข้อมูลผู้ใช้มากกว่าแค่มองไปที่ สิ่งนี้ไม่ต้องการให้คุณจดจำอะไร:

nano ~YourUserName/.bash_profile

การปรับเปลี่ยนHOMEตัวแปรของคุณโดยไม่เปลี่ยนโฮมไดเร็กตอรี่จริงไม่ใช่ความคิดที่ดีที่สุด การเปลี่ยนโฮมไดเร็กตอรี่ของผู้ใช้ใด ๆ เป็นภารกิจการจัดการโดยปกติผู้ใช้ปกติจะไม่สามารถทำได้


เยี่ยมมากฉันสามารถค้นหาได้อีกครั้งขอบคุณ! คุณจะช่วยอธิบายเพิ่มเติมเกี่ยวกับสิ่งที่คุณหมายถึง "หลังจากไฟล์ได้รับ"? ฉันไม่คุ้นเคยกับความหมายของไฟล์ที่จะได้รับแหล่งที่มา
Matt

6
@Matt .bash_profileมีรูปแบบของสคริปต์ Bash คุณสามารถเรียกใช้สคริปต์หรือแหล่งที่มา การรันหมายถึงการสร้างเชลล์ย่อยและดำเนินการสคริปต์บรรทัดต่อบรรทัดที่นั่น การจัดหาหมายถึงการรันสคริปต์ในเชลล์ปัจจุบัน งานบางอย่างที่มีผลกระทบต่อเชลล์ปัจจุบันไม่สามารถดำเนินการในเชลล์ย่อยได้ การเปลี่ยนตัวแปรสำหรับเชลล์ปัจจุบันเป็นหนึ่งในนั้น นั่นเป็นสาเหตุที่ทำให้ไฟล์บางไฟล์มีแหล่งที่มาไม่ถูกดำเนินการใน subshell แหล่งที่มาด้วยตนเองการใช้ไฟล์. file( .ระบุโดย POSIX) หรือsource file( sourceเป็นส่วนขยายที่ไม่ใช่ POSIX ที่เข้าใจโดยเชลล์จำนวนน้อย)
Kamil Maciorowski


2
หากคุณ (แมตต์) ไม่ทราบว่าโฮมไดเร็กตอรี่ของคุณเคยอยู่ที่ใดคุณสามารถใช้nano ~YourUserName/.bash_profileแทน นี่จะค้นหาโฮมไดเร็กตอรี่ของคุณในฐานข้อมูลผู้ใช้แทนที่จะมองที่ $ HOME
เฮมเมอร์

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