เหตุใดฉันต้องแหล่ง. bashrc ทุกครั้งที่ฉันเปิด terminal เพื่อให้ aliases ทำงาน [ซ้ำ]


25

ฉันเพิ่มบรรทัดนี้ลงใน~/.bashrcไฟล์ของฉัน

alias myserver='ssh davidfaux@davidfaux.com'

อย่างไรก็ตามเมื่อฉันเปิดเทอร์มินัลและรันmyserverเทอร์มินัลก็บ่น

-bash: myserver: command not found

เมื่อฉันแหล่งที่มาของไฟล์. bashrc อย่างไรก็ตาม ( . .bashrc) นามแฝงจะทำงาน

อย่างไรก็ตามฉันไม่ต้องการแหล่งไฟล์ทุกครั้งที่ฉันเปิด terminal เพื่อให้นามแฝงทำงาน ฉันจะทำให้เกิดขึ้นได้อย่างไร


3
ความคิดเห็นนี้อธิบายถึงเหตุผลของเรื่องนี้ คำถามนั้นบอกวิธีการแก้ไข
ughoavgfhw

ขอบคุณมาก! ฉันไม่ทราบว่าการเริ่มเชลล์ดำเนินการไฟล์เหล่านั้นตามลำดับ แน่นอนเพิ่ม. .bashrcเข้าไปใน.bash_profileงาน
David Faux

@ughoavgfhw สามารถ / คุณควรเปลี่ยนความคิดเห็นของคุณเป็นคำตอบหรือไม่? ด้วยวิธีนี้สามารถทำเครื่องหมายเป็นคำตอบ
soxman

คำตอบ:


25

กล่าวโดยย่อคือคุณกำลังใส่นามแฝงในไฟล์ที่ไม่ถูกต้อง.bashrcนั่นคือสาเหตุที่คุณต้องให้แหล่งที่มาทำงานต่อเพื่อให้นามแฝงทำงานในอินสแตนซ์เทอร์มินัลการเข้าสู่ระบบใหม่

จากความคิดเห็นของ Chris Johnsen ที่ทำไมจึงไม่. bashrc ทำงานโดยอัตโนมัติ

โดยค่าเริ่มต้นเทอร์มินัลเริ่มเชลล์ผ่าน / usr / bin / login ซึ่งทำให้เชลล์เป็นเชลล์ล็อกอิน ในทุกแพลตฟอร์ม (ไม่ใช่แค่ Mac OS X) bash ไม่ได้ใช้. bashrc สำหรับล็อกอินเชลล์ (เฉพาะ / etc / profile และตัวแรกของ. bash_profile, .bash_login, .profile ที่มีอยู่และอ่านได้) นี่คือเหตุผลที่“ ใส่ซอร์ส ~ / .bashrc ใน. bash_profile ของคุณ” เป็นคำแนะนำมาตรฐาน

สำหรับข้อมูลเพิ่มเติมดูหน้าคู่มือสำหรับbash:

man bash

จากนั้นดูที่หัวข้อ INVOCATION


ฉันต้องรีบู๊ตเพื่อให้การทำงานมีประสิทธิภาพหรือไม่ เพราะฉันเพิ่มลงsource ~/.bashrcใน. bash_profile ของฉัน แต่ฉันยังคงเผชิญกับปัญหาเดียวกัน ...
Michiel

1
ไม่ในกรณีส่วนใหญ่คุณเพียงแค่ต้องเปิดหน้าต่างเทอร์มินัลใหม่เพื่อให้การเปลี่ยนแปลงมีผลการเปลี่ยนแปลงจะมีผลเฉพาะในหน้าต่างที่เพิ่งเปิดใหม่
MrDaniel

11

คุณสามารถใส่ได้เสมอ

if [ -n "$BASH_VERSION" ] && [ -f $HOME/.bashrc ];then
    source $HOME/.bashrc
fi

ฉันคิดว่าเป็นไฟล์~/.profileหรือ~/.bash_profilemac

Oooor คุณก็สามารถใส่ข้อมูลของคุณในหรือ.profile.bash_profile


สิ่งนี้ถูกบันทึกไว้ในคำตอบอื่น ๆ - ทำไมคุณไม่แน่ใจเกี่ยวกับสิ่งเหล่านี้
user151019

โปรดอ่านคำถามที่คล้ายกันนี้: apple.stackexchange.com/q/12993/22003และเพิ่มการกระทำแบบใด ๆ
แดน

@danielAzuelos เดี๋ยวก่อน คุณต้องการให้ฉันแสดงความคิดเห็นในหน้าอื่นหรือปรับปรุงคำตอบของฉันตามคำถามอื่น ๆ ?
Dylan

@ ทำเครื่องหมายฉันแค่คิดในแง่ที่เป็นสมมุติมาก - เช่นเดียวกับถ้ากระบวนการเทอร์มินัลของใครบางคนไม่รู้จักแหล่งที่มาของ. profile? เทอร์มินัลของพวกเขาอาจจะไม่เริ่มต้นตั้งแต่แรก แต่ก็ยังเป็นไปได้ .... เช่นถ้ามีคนแฮ็คข้อมูลที่ / usr / bin / login หรืออะไรบางอย่าง
Dylan

→ดีแลน: โปรดอ่านคำถามที่คล้ายกันนี้มาก: apple.stackexchange.com/q/12993/22003และคุณจะพบคำตอบสำหรับ "อาจ?" ของคุณ
แดน
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.