.bashrc
และ.bash_profile
มีไม่สคริปต์ พวกเขากำลังกำหนดค่าไฟล์ที่ได้รับมาทุกครั้งbash
จะดำเนินการในหนึ่งใน 2 วิธี
ภาวนาส่วนของหน้าคนทุบตีเป็นสิ่งที่เกี่ยวข้อง
เปลือกเข้าสู่ระบบเป็นหนึ่งที่มีตัวอักษรตัวแรกของการโต้แย้งเป็นศูนย์-
หรือหนึ่งเริ่มต้นด้วย--login
ตัวเลือก
โต้ตอบเปลือกเป็นหนึ่งที่ตั้งขึ้นโดยไม่ขัดแย้งไม่ใช่ตัวเลือกและไม่มี-c
ตัวเลือกที่มีมาตรฐานการป้อนข้อมูลและข้อผิดพลาดจะมีทั้งการเชื่อมต่อกับขั้ว (ตามที่กำหนดโดยisatty(3))
หรือหนึ่งเริ่มต้นด้วย-i
ตัวเลือก. PS1 มีการตั้งค่าและ $-
รวมถึงi
หากbash
มีการโต้ตอบที่ช่วยให้เชลล์สคริปต์ หรือไฟล์เริ่มต้นเพื่อทดสอบสถานะนี้
ย่อหน้าต่อไปนี้อธิบายวิธีbash
เรียกใช้งานไฟล์เริ่มต้น หากไฟล์ใด ๆ ที่มีอยู่ แต่ไม่สามารถอ่านได้ bash จะรายงานข้อผิดพลาด Tildes ถูกขยายในชื่อไฟล์ตามที่อธิบายไว้ด้านล่างภายใต้
Tilde Expansionใน ส่วนการขยาย
เมื่อ bash ถูกเรียกใช้เป็นเชลล์ล็อกอินแบบโต้ตอบหรือเป็นเชลล์ที่ไม่มีการโต้ตอบพร้อมกับ--login
ตัวเลือกมันจะอ่านและเรียกใช้คำสั่งจากไฟล์ /etc/profile
ก่อนหากไฟล์นั้นมีอยู่ หลังจากที่ได้อ่านแฟ้มที่จะมองหา~/.bash_profile
,
~/.bash_login
และ ~/.profile
ในลำดับที่และอ่านและรันคำสั่งจากคนแรกที่มีอยู่และสามารถอ่านได้
--noprofile
ตัวเลือกที่อาจจะนำมาใช้เมื่อเปลือกจะเริ่มต้นในการยับยั้งการทำงานนี้
เมื่อเชลล์ล็อกอินออกจาก bash จะอ่านและดำเนินการคำสั่งจากไฟล์~/.bash_logout
หากมีอยู่
เมื่อเชลล์เชิงโต้ตอบที่ไม่ใช่เชลล์ล็อกอินเริ่มทำงาน bash จะอ่านและดำเนินการคำสั่งจาก~/.bashrc
หากไฟล์นั้นมีอยู่ สิ่งนี้อาจถูกยับยั้งโดยใช้--norc
ตัวเลือก ตัวเลือกที่จะบังคับทุบตีอ่านและรันคำสั่งจากไฟล์แทน--rcfile file
~/.bashrc
คุณสามารถควบคุมเมื่อพวกเขาได้รับการโหลดผ่านบรรทัดคำสั่งสวิทช์และ--norc
--noprofile
นอกจากนี้คุณยังสามารถแทนที่ตำแหน่งที่พวกเขาจะโหลดจากการใช้--rcfile
สวิตช์
ดังที่คนอื่น ๆ พูดถึงคุณสามารถเลียนแบบวิธีการโหลดไฟล์เหล่านี้ผ่านการใช้source <file>
คำสั่งหรือการใช้. <file>
คำสั่ง
เป็นการดีที่สุดที่จะคิดถึงฟังก์ชั่นนี้ดังนี้:
- ทุบตีเริ่มต้นด้วยสภาพแวดล้อมที่เปลือยเปล่า
- bash จากนั้นเปิดหนึ่งในไฟล์เหล่านี้ (ขึ้นอยู่กับว่ามันถูกเรียกใช้แบบโต้ตอบหรือเข้าสู่ระบบแล้ว ...
- ... ทีละบรรทัดดำเนินการแต่ละคำสั่งภายในไฟล์ ...
- เมื่อเสร็จสมบูรณ์จะให้การควบคุมในรูปแบบของการแจ้งให้รอการป้อนข้อมูล
วิธีการเรียกใช้
หัวข้อนี้ดูเหมือนจะเกิดขึ้นทุกครั้งดังนั้นนี่เป็นสูตรโกงเล็ก ๆ น้อย ๆ ของวิธีการต่าง ๆ ในการเรียกใช้bash
และสิ่งที่เกิดขึ้นหมายเหตุ:เพื่อช่วยฉันเพิ่มข้อความ "sourced $ HOME / .bashrc" และ "sourced $ HOME / .bash_profile "ไปยังไฟล์ที่เกี่ยวข้อง
การโทรพื้นฐาน
ทุบตี -i
$ bash -i
sourced /home/saml/.bashrc
ทุบตี -l
$ bash -l
sourced /home/saml/.bashrc
sourced /home/saml/.bash_profile
ทุบตี - หรือ - ทุบตี - ลี่
$ bash -il
sourced /home/saml/.bashrc
sourced /home/saml/.bash_profile
ทุบตี -c "..cmd .. "
$ bash -c 'echo hi'
hi
หมายเหตุ:ขอให้สังเกตว่า-c
สวิตช์ไม่ได้ส่งไฟล์ทั้งไฟล์!
ปิดใช้งานไฟล์ config จากการอ่าน
ทุบตี - หรือ
$ bash --norc
bash-4.1$
ทุบตี - ไม่มีโปรไฟล์
$ bash --noprofile
sourced /home/saml/.bashrc
bash --norc -i
$ bash --norc -i
bash-4.1$
bash --norc -l
$ bash --norc -l
sourced /home/saml/.bashrc
sourced /home/saml/.bash_profile
ทุบตี - noprofile -i
$ bash --noprofile -i
sourced /home/saml/.bashrc
ทุบตี - noprofile -l
$ bash --noprofile -l
bash-4.1$
bash --norc -i -or- bash --norc -l
$ bash --norc -c 'echo hi'
hi
วิธีที่ลึกลับกว่านี้ในการโทรทุบตี
bash --rcfile $ HOME / .bashrc
$ bash -rcfile ~/.bashrc
sourced /home/saml/.bashrc
bash --norc --rcfile $ HOME / .bashrc
$ bash --norc -rcfile ~/.bashrc
bash-4.1$
สิ่งเหล่านี้ล้มเหลว
bash -i -rcfile ~ / .bashrc
$ bash -i -rcfile ~/.bashrc
sourced /home/saml/.bashrc
sourced /home/saml/.bash_profile
bash: /home/saml/.bashrc: restricted: cannot specify `/' in command names
bash -i -rcfile .bashrc
$ bash -i -rcfile .bashrc
sourced /home/saml/.bashrc
sourced /home/saml/.bash_profile
bash: .bashrc: command not found
อาจมีมากกว่านี้ แต่คุณได้รับจุดหวังว่า ....
มีอะไรอีกบ้าง?
ท้ายสุดหากคุณสนใจในหัวข้อนี้ที่คุณต้องการอ่าน / สำรวจเพิ่มเติมเกี่ยวกับเรื่องนี้ฉันขอแนะนำให้ดูที่คู่มือผู้เริ่มต้นใช้งาน Bash ส่วนเฉพาะ: 1.2 ข้อดีของ Bourne Again SHell ส่วนย่อยต่างๆภายใต้หนึ่ง"1.2.2.1. การภาวนา"ผ่าน"1.2.2.3.3. พฤติกรรมเปลือก Interactive"bash
อธิบายความแตกต่างในระดับต่ำระหว่างรูปแบบต่างๆที่คุณสามารถเรียกใช้