ความแตกต่างระหว่าง /etc/bash.bashrc และ ~ / .bashrc คืออะไร ฉันควรใช้อันไหนดี


20

เมื่อใดที่ฉันควรใช้ไฟล์. bashrc สองไฟล์เพื่อตั้งชื่อแทนพร้อมท์และอื่น ๆ

คำตอบ:


34

/etc/bash.bashrc ใช้กับผู้ใช้ทั้งหมด

~/.bashrc ใช้กับผู้ใช้ที่เป็นโฮมโฟลเดอร์เท่านั้น


3
และโดยนัยในคำตอบของ dex คือ ... ใช้ local ~ / .bashrc ของคุณในทุกกรณียกเว้นที่คุณต้องการบังคับใช้เจตจำนงของคุณกับทุกคนที่ใช้เครื่องนั้น
dacracot

พูดอย่างเคร่งครัดคุณไม่ได้บังคับอะไรใน /etc/bash.bashrc เนื่องจากผู้ใช้สามารถเปลี่ยนได้ในของตัวเอง ~ / .bashrc
คิม

... ยกเว้นเมื่อมีคนตัดสินใจสร้างตัวแปรทั้งหมดreadonlyใน/etc/bash.bashrc: \
grawity

1
ภายใต้ Ubuntu ไฟล์นี้ตามความเห็นที่จุดเริ่มต้นจะต้องมี "แหล่งที่มา" จากไฟล์ / etc / profile ฉันเพิ่มคำสั่ง alias ที่ท้ายไฟล์ /etc/bash.bashrc และต่อท้ายคำสั่ง "source /etc/bash.bashrc" ที่ท้ายไฟล์ / etc / profile ทำงานเหมือนจับใจ
jfmessier

2

ตามเอกสาร GNU Bash :

เมื่อ Bash ถูกเรียกใช้เป็นเชลล์ล็อกอินแบบโต้ตอบหรือเป็นเชลล์ที่ไม่มีการโต้ตอบกับตัวเลือก --login มันจะอ่านและเรียกใช้คำสั่งจากไฟล์/ etc / profileก่อนหากไฟล์นั้นมีอยู่ หลังจากอ่านไฟล์นั้นจะค้นหา~ / .bash_profile , ~ / .bash_login และ ~ / .profile ตามลำดับและอ่านและเรียกใช้คำสั่งจากไฟล์แรกที่มีอยู่และอ่านได้ ตัวเลือก --noprofile อาจถูกใช้เมื่อเชลล์เริ่มต้นเพื่อยับยั้งพฤติกรรมนี้

เรียกใช้เป็นเชลล์แบบ non-login แบบโต้ตอบเมื่อเชลล์แบบโต้ตอบที่ไม่ใช่เชลล์ล็อกอินเริ่มทำงาน Bash จะอ่านและดำเนินการคำสั่งจาก~ / .bashrcหากไฟล์นั้นมีอยู่ สิ่งนี้อาจถูกยับยั้งโดยใช้ตัวเลือก --norc ตัวเลือกไฟล์ --rcfile จะบังคับให้ Bash อ่านและดำเนินการคำสั่งจากไฟล์แทน ~ / .bashrc

ดังนั้นโดยทั่วไปแล้ว ~ / .bash_profile ของคุณจะมีบรรทัด

หาก [-f ~ / .bashrc]; จากนั้น ~ / .bashrc; Fi

หลัง (หรือก่อนหน้า) การกำหนดค่าเริ่มต้นเฉพาะสำหรับการเข้าสู่ระบบใด ๆ


1
ไม่ได้จริงๆ ดูไฟล์นี้git.savannah.gnu.org/cgit/bash.git/tree/shell.cในฟังก์ชัน run_startup_files () ซึ่งมีการใช้SYS_BASHRC
mloskot

1

สำหรับการตั้งค่าส่วนตัวของคุณและสคริปต์ส่วนตัวหรือฟังก์ชั่นทุบตีคุณควรใช้. bashrc (นามแฝง, เพิ่มฟังก์ชั่นเพื่อทุบตี ... )

ช่วงเวลาที่คุณต้องการแบ่งปันบางสิ่งกับผู้ใช้ทั้งหมด (หรือผู้ใช้ส่วนใหญ่) หรือสำหรับการใช้งานทั่วไป (เส้นทางสำหรับไฟล์ที่ใช้ร่วมกันได้เส้นทางสำหรับเอกสาร ... ) วางไว้ใน /etc/bash.bashrc

ฉันกล่าวว่าส่วนใหญ่ของผู้ใช้เพราะแม้สมมติว่าคุณระบุ greetings.sh สคริปต์ซึ่งพิมพ์"Hello world!"สำหรับผู้ใช้ทั้งหมด แต่ผู้ใช้ Pepe ต้องการที่จะใช้แทน greetings.sh "Hola el mundo!"สคริปต์ที่พิมพ์ เขาสามารถปรับเปลี่ยนเส้นทางของเขาใน. bashrc เพื่อชี้ไปที่สคริปต์ของเขาแทนที่จะเป็นของคุณ กล่าวอีกนัยหนึ่งผู้ใช้สามารถปรับแต่งเซสชันของเขาใน. bashrc ได้ตามที่ต้องการ

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