ฉันใช้ iTerm ใน Mac OS X 10.6 ดูเหมือนว่าเมื่อเปิด iTerm ทั้ง.bashrcมิได้.bash_profileมีที่มา ฉันบอกได้เพราะ.bashrcไม่ได้ตั้งชื่อแทนไว้ จะแก้ไขอย่างไร
ฉันใช้ iTerm ใน Mac OS X 10.6 ดูเหมือนว่าเมื่อเปิด iTerm ทั้ง.bashrcมิได้.bash_profileมีที่มา ฉันบอกได้เพราะ.bashrcไม่ได้ตั้งชื่อแทนไว้ จะแก้ไขอย่างไร
คำตอบ:
Bash จะมา EITHER .bash_profile หรือ. bashrc ขึ้นอยู่กับว่ามันถูกเรียก หากเป็นเชลล์การเข้าสู่ระบบ Bash จะค้นหา ~ / .bash_profile, ~ / .bash_login หรือ ~ / .profile ตามลำดับและแหล่งแรกที่พบ (และที่หนึ่งเท่านั้น) หากไม่ใช่เชลล์ล็อกอิน แต่เป็นแบบโต้ตอบ (เช่นเซสชันเทอร์มินัลส่วนใหญ่) Bash จะมา ~ / .bashrc
ดูเหมือนว่า iTerm จะมองหา ~ / .bashrc หากได้รับการกำหนดค่าให้เริ่มต้นเป็นเชลล์การเข้าสู่ระบบเชลล์จะค้นหา ~ / .bash_profile มันเกือบจะเป็นข้อผิดพลาดในไฟล์ปรับแต่งมากกว่าที่เชลล์จะไม่ได้หามัน
ฉันจะใส่บรรทัดที่จุดเริ่มต้นของแต่ละไฟล์ ที่ด้านบนของ ~ / .bash_profile:
export BASH_CONF="bash_profile"
และที่ด้านบนของ ~ / .bashrc:
export BASH_CONF="bashrc"
จากนั้นเปิด iTerm ใหม่แล้วพิมพ์
$ echo $BASH_CONF
ควรยืนยันว่าไฟล์นั้นมีแหล่งที่มาและคุณสามารถตรวจสอบไวยากรณ์ของไฟล์ได้
ใน iTerm2 ไม่มีวิธีแก้ปัญหาใดที่เหมาะกับฉัน ฉันสามารถอ่านไฟล์. bashrc ของฉันได้อย่างถูกต้องโดยการเพิ่มคำสั่ง
source ~/.bashrc
ไปที่ฟิลด์ส่งข้อความเมื่อเริ่มต้น:ในการตั้งค่า / ทั่วไปสำหรับโปรไฟล์ iTerm ของฉัน

~/.bashrcข้อมูลที่สองก็ควรที่จะเข้าไป แก้ไขมัน
ฉันแค่สงสัยว่าคุณใช้ Bash จริงๆเหรอ? คุณอาจจะสามารถใช้echo $SHELLมันค่อนข้างเป็นไปได้ว่าคุณกำลังใช้zshคุณได้ติดตั้งบน-zh ของฉัน ?
ฉันพบปัญหาเดียวกันกับคุณฉันแก้ไขมันด้วยการกำหนดค่า~ / .zshrcแทน~ / .bash_profileสำหรับ login shell หรือ~ / .bashrcสำหรับ non-login shell
บางทีคุณสามารถลอง
บนเครื่อง 10.6 ของฉัน~/.profileมีที่มา ดังนั้นsource .bashrcรายการใน~/.profileควรทำงาน
แก้ไขได้ง่าย
1.เปิด~/.zshrcไฟล์ของคุณ
2.เพิ่มบรรทัดต่อไปนี้ที่ท้ายไฟล์
source ~/.bash_profile
ในเครื่อง 10.9 ของฉัน ~ / .bash_profile มีที่มา ดังนั้นรายการ. bashrc ต้นทางใน ~ / .bash_profile ควรทำงาน
ใส่คำจำกัดความนามแฝงของคุณในไฟล์โปรไฟล์ bash คุณต้องสร้างไฟล์ แต่มันจะถูกจัดทำโดยอัตโนมัติ ฉันสร้างไฟล์แยกต่างหากชื่อ alias.configuration และแหล่งที่มาใน. bash_profile เพียงเพราะฉันมีผู้ใช้คนอื่นกำหนดไว้และต้องการให้มีนามแฝงชุดเดียวกัน
.bashrcมิได้.bash_profileมีที่มา
เพิ่ม
set -x
/etc/profileจุดเริ่มต้นของ นี้จะช่วยให้คุณมีบัญชีบรรทัดโดยบรรทัดของทุกอย่างที่ได้รับการดำเนินการเมื่อbashเริ่มต้นขึ้นรวมถึงไฟล์ที่มาจากภายใน/etc/profile, ~/.bash_profileฯลฯ มันเป็นบิตที่น่ากลัวถ้าคุณไม่เข้าใจbashการเขียนสคริปต์ดีมาก แต่คุณอาจจะสามารถที่จะดูว่า มีข้อผิดพลาดในไฟล์เริ่มต้นและผลลัพธ์จะมีประโยชน์สำหรับบางคนที่เชี่ยวชาญในbashการช่วยคุณค้นหาปัญหาของคุณ
คุณสามารถลบset -xบรรทัดได้เมื่อแก้ไขปัญหาเสร็จแล้ว
วันที่ 10.10 และ iTerm2 2.0 โปรไฟล์ที่กำหนดเอง
ใน iTerm2 ตรวจสอบให้แน่ใจว่าคุณใช้ "login shell" แทนคำสั่งกำหนดเองรวมถึง "login" ซึ่งไม่ได้ทำตามที่คุณคาดหวัง
ทำการเปลี่ยนแปลงต่อไปนี้และ iTerm จะทำการ bashrc
iTerm> ค่ากำหนด> ทั่วไป> [x] คำสั่ง: / bin / bash
ปัญหาสามารถแก้ไขได้โดยการเพิ่มบรรทัดด้านล่างลงใน / etc / bashrc
[-r "$ HOME / .bashrc"] && "$ HOME / .bashrc"
ฉันรวมวิธีแก้ปัญหาคู่เข้าด้วยกันเพื่อทำงานอย่างที่คาด
.bash_profile แหล่งที่มาและเรียกใช้บน zsh
Preferences -> Profiles -> General .
เลือกคำสั่งภายใต้คำสั่ง และเพิ่มในกล่องข้อความ
/bin/bash --login
จากนั้นใน. bash_profile เพิ่มบรรทัด
/bin/zsh --login
แค่นั้นแหละ.
bashวิ่งตลอดเวลาzshนั่นไม่ใช่สิ่งที่ทุกคนคาดหวัง
source ~/.bash_profileด้วยตนเอง @Scott หลังจากทำสิ่งต่าง ๆ ข้างต้นฉันมี zsh ในวิธีที่ต้องการ
zshอาจจะมีสิ่งที่คุณต้องการ ,แต่มันก็ไม่จำเป็นต้องใช้หรือถามด้วยคำถามนี้ซึ่งแท็ก [ทุบตี] zshและไม่ได้พูดอะไรเกี่ยวกับ (2) หากคุณกำหนดฟังก์ชันนามแฝงและเชลล์และตั้งค่าตัวแปร (โดยไม่ส่งออก) ในของคุณ.bashrcและ / หรือ.bash_profileพวกเขามีให้ในzshเชลล์หรือไม่?
~/.bash_profile~/.bashrcปัญหานี้สามารถเกิดขึ้นได้โดยไม่คาดคิดถ้าโปรแกรมโกงเพิ่มคำแนะนำบางอย่างเพื่อให้คุณเมื่อก่อนหน้านี้ไฟล์ไม่ได้อยู่และคุณได้วางทุกทุบตีของคุณในคำสั่ง~/.bash_profile~/.bashrcวิธีแก้ไขคือลบ ~ / .bash_profile ของคุณหรือมี ~ / .bash_profile แหล่งที่มาของคุณ ~ / .bashrc สิ่งนี้สามารถทำได้โดยการเพิ่มคำสั่ง:source ~/.bashrcที่ส่วนท้ายของคุณ~/.bash_profileและรีสตาร์ทเครื่อง