ฉันจะโหลดซ้ำ
.bash_profile
จากบรรทัดคำสั่งได้อย่างไร
ฉันสามารถรับเชลล์เพื่อรับรู้การเปลี่ยนแปลง.bash_profile
โดยออกและเข้าสู่ระบบกลับ แต่ฉันต้องการที่จะสามารถทำมันได้ตามต้องการ
ฉันจะโหลดซ้ำ
.bash_profile
จากบรรทัดคำสั่งได้อย่างไร
ฉันสามารถรับเชลล์เพื่อรับรู้การเปลี่ยนแปลง.bash_profile
โดยออกและเข้าสู่ระบบกลับ แต่ฉันต้องการที่จะสามารถทำมันได้ตามต้องการ
คำตอบ:
เพียงพิมพ์ source ~/.bash_profile
หรือถ้าคุณชอบการบันทึกการกดแป้นพิมพ์คุณสามารถพิมพ์ . ~/.bash_profile
alias reload='source ~/.bash_profile && echo "File .bash_profile reloaded correctly" || echo "Syntax error, could not import the file"';
. ~/.bash_profile
ตรวจสอบให้แน่ใจว่าคุณไม่มีการอ้างอิงใด ๆ เกี่ยวกับสถานะปัจจุบันในนั้น
.
คำสั่งในกรณีนี้คืออะไร?
.
เป็นเพียงนามแฝงสำหรับsource
คำสั่ง
.
เก่ากว่าsource
คือ
source
เป็นการใช้งานเฉพาะของ bash.
.
และsource
เป็นสิ่งเดียวกันในทุบตี จากลิงค์: " source
เป็นคำพ้องความหมายสำหรับจุด / จุด ' .
' ในทุบตี แต่ไม่ใช่ใน POSIX sh ดังนั้นเพื่อความเข้ากันได้สูงสุดให้ใช้ช่วงเวลา"
เพียงพิมพ์:
. ~/.bash_profile
แต่ถ้าคุณต้องการแหล่งที่มาให้ทำงานโดยอัตโนมัติเมื่อเริ่มต้นสถานีแทนการใช้มันทุกครั้งที่คุณเปิด terminal คุณอาจจะเพิ่ม. ~/.bash_profile
ไปยัง~/.bashrc
ไฟล์
บันทึก:
เมื่อคุณเปิดสถานีที่จะเริ่มต้นในสถานีทุบตี (ยังไม่ได้เข้าสู่ระบบ) ~/.bashrc
โหมดโต้ตอบซึ่งหมายความว่ามันจะแหล่งที่มา
~/.bash_profile
มีที่มาโดยเฉพาะทุบตีเมื่อเริ่มต้นในโหมดเข้าสู่ระบบแบบโต้ตอบ นั่นคือมักจะเฉพาะเมื่อคุณเข้าสู่ระบบที่คอนโซล ( Ctrl+ Alt+ F1.. F6) ssh
หรือเชื่อมต่อผ่าน
คุณยังสามารถใช้คำสั่งนี้เพื่อรีโหลด ~ / .bash_profile สำหรับผู้ใช้นั้น ตรวจสอบให้แน่ใจว่าใช้เส้นประ
su - username
cd
. .bash_profile
cd
เพียงแค่ไปที่บ้านด้วย ~
ไม่จำเป็นต้อง
cd
- คุณสามารถโหลดซ้ำได้จากไดเรกทอรีที่คุณอยู่ในขณะนี้:. ~/.bash_profile
หากคุณไม่รังเกียจที่จะสูญเสียประวัติของเทอร์มินัลเชลล์ปัจจุบันคุณก็สามารถทำได้
bash -l
ที่จะแยกเปลือกของคุณและเปิดกระบวนการลูกใหม่ของการทุบตี -l
พารามิเตอร์บอกทุบตีให้ทำงานเป็นเปลือกเข้าสู่ระบบนี้ถูกต้องเนื่องจาก .bash_profile จะไม่ทำงานเป็นเปลือกที่ไม่ได้เข้าสู่ระบบสำหรับข้อมูลเพิ่มเติมเกี่ยวกับเรื่องนี้อ่านได้ที่นี่
หากคุณต้องการแทนที่เชลล์ปัจจุบันอย่างสมบูรณ์คุณสามารถทำได้:
exec bash -l
ด้านบนจะไม่แยกเปลือกปัจจุบันของคุณ แต่แทนที่อย่างสมบูรณ์ดังนั้นเมื่อคุณพิมพ์exit
มันจะยุติอย่างสมบูรณ์มากกว่าที่จะวางคุณไปที่เปลือกก่อนหน้า
เพิ่มลงalias bashs="source ~/.bash_profile"
ในไฟล์ bash ของคุณ เพื่อให้คุณสามารถโทรได้bashs
ในครั้งต่อไป
reset
- ง่ายต่อการจดจำ
หาก. bash_profile ไม่มีอยู่คุณสามารถลองเรียกใช้คำสั่งต่อไปนี้:
. ~/.bashrc
หรือ
source ~/.bashrc
แทน. bash_profile คุณสามารถค้นหาข้อมูลเพิ่มเติมเกี่ยวกับbashrc
ฉันต้องการโพสต์คำตอบอย่างรวดเร็วว่าขณะใช้งาน source ~/.bash_profile
หรือคำตอบที่กล่าวถึงข้างต้นสิ่งหนึ่งที่ต้องพูดถึงคือการโหลดโปรไฟล์ bash ของคุณใหม่ในแท็บหรือเซสชันปัจจุบันที่คุณกำลังดูอยู่เท่านั้น หากคุณต้องการโหลดโปรไฟล์ทุบตีใหม่บนทุกแท็บ / เชลล์คุณจะต้องป้อนคำสั่งนี้ด้วยตนเองในแต่ละแท็บ
ถ้าคุณใช้iTerm คุณสามารถใช้CMD⌘+ Shift+Iป้อนคำสั่งลงในแท็บปัจจุบันทั้งหมด สำหรับขั้วมันอาจจะเป็นประโยชน์ในการอ้างอิงนี้ปัญหา ;
คุณเพียงแค่ต้องพิมพ์ . ~/.bash_profile
อ้างอิง: /superuser/46139/what-does-source-do
ฉันใช้ Debian และฉันสามารถพิมพ์exec bash
เพื่อให้ได้สิ่งนี้ ฉันไม่สามารถบอกได้ว่ามันจะทำงานในการกระจายอื่น ๆ ทั้งหมด
. .bash_profile
ในขณะที่อยู่ในไดเรกทอรีบ้านของคุณบน Mac จะทำงาน เช่นเดียวกับคำตอบที่ให้ไว้ข้างต้นโดย 7urkm3n
alias reload!=". ~/.bash_profile"
หรือถ้าต้องการเพิ่มบันทึกผ่านฟังก์ชั่น
function reload! () {
echo "Reloading bash profile...!"
source ~/.bash_profile
echo "Reloaded!!!"
}
. ~/. bash_profile
มิได้source ~/.bash_profile
ฉันใช้เซียร่าและกำลังทำสิ่งนี้อยู่พักหนึ่ง (ลองใช้โซลูชันที่แนะนำทั้งหมด) ฉันเริ่มสับสนแล้วจึงลองรีสตาร์ทคอมพิวเตอร์ในที่สุด! มันได้ผล
ข้อสรุปของฉันคือบางครั้งจำเป็นต้องรีเซ็ตฮาร์ด
alias BASHRELOAD=". ~/.bash_profile"
วิธีการเกี่ยวกับbr
ถ้าคุณทำเช่นนี้บ่อยครั้งที่คุณสามารถเพียงนามแฝงว่ามันเป็น