ฉันไม่สามารถหาข้อมูลที่ชัดเจนเกี่ยวกับ.bashrc
ไฟล์และสิ่งที่ทำ
ขอบคุณสำหรับความช่วยเหลือทั้งหมดที่ผ่านมา ดูเหมือนว่าสคริปต์นี้จะทำทุกอย่างตั้งแต่การระบายสีเสร็จสมนามและประวัติเชลล์ ฯลฯ มีอะไรที่ดูเหมือนจะไม่เป็นประโยชน์หรือไม่?
ฉันไม่สามารถหาข้อมูลที่ชัดเจนเกี่ยวกับ.bashrc
ไฟล์และสิ่งที่ทำ
ขอบคุณสำหรับความช่วยเหลือทั้งหมดที่ผ่านมา ดูเหมือนว่าสคริปต์นี้จะทำทุกอย่างตั้งแต่การระบายสีเสร็จสมนามและประวัติเชลล์ ฯลฯ มีอะไรที่ดูเหมือนจะไม่เป็นประโยชน์หรือไม่?
คำตอบ:
.bashrc
ไฟล์เป็นสคริปต์ที่จะดำเนินการเมื่อใดก็ตามที่เซสชั่นขั้วใหม่จะเริ่มต้นในโหมดโต้ตอบ นี่คือสิ่งที่เกิดขึ้นเมื่อคุณเปิดหน้าต่างเทอร์มินัลใหม่โดยกดCtrl+ Alt+ Tหรือเพียงเปิดแท็บเทอร์มินัลใหม่
ตรงกันข้ามเทอร์มินัลเซสชันในโหมดเข้าสู่ระบบจะถามชื่อผู้ใช้และรหัสผ่านและดำเนินการ~/.bash_profile
สคริปต์ นี่คือสิ่งที่เกิดขึ้นเช่นเมื่อคุณเข้าสู่ระบบระยะไกลผ่าน SSH
.bashrc
ไฟล์ตัวเองมีชุดของการกำหนดค่าสำหรับเซสชันขั้ว ซึ่งรวมถึงการตั้งค่าหรือเปิดใช้งาน: การระบายสีการทำให้สมบูรณ์ประวัติเชลล์, นามแฝงคำสั่งและอื่น ๆ .bashrc
ไฟล์กระจายกับอูบุนตูจะแสดงความคิดเห็นได้ดีและคุณจะสามารถที่จะเข้าใจมากที่สุดของสิ่งที่มันไม่เพียงแค่อ่านมัน
คุณสามารถปรับแต่ง.bashrc
ความชอบของคุณ ที่นี่คุณสามารถรับตัวอย่างพร้อมคุณสมบัติพิเศษมากมาย
คำถามเกี่ยวกับsuperuser - ไฟล์. bashrc คืออะไร โดย @pineapple และตอบกลับโดย @DigitalRoss
ที่จริงแล้วมัน
bash
อ่าน.bashrc
(และ/etc/bash.bashrc
) โดยเฉพาะ มีเปลือกหอยที่แตกต่างกันมากมายหน้าคนทุบตี (โดยไบรอันฟ็อกซ์และเมย์เชษฐ์; ยังหน้าข้อมูล "ทุบตีเริ่มต้น Files" ) คือการอ้างอิงเผด็จการ:
เมื่อเชลล์เชิงโต้ตอบที่ไม่ใช่เชลล์ล็อกอินเริ่มทำงาน bash จะอ่านและดำเนินการคำสั่งจาก
~/.bashrc
หากไฟล์นั้นมีอยู่ สิ่งนี้อาจถูกยับยั้งโดยใช้--norc
ตัวเลือก ตัวเลือกไฟล์จะบังคับทุบตีอ่านและรันคำสั่งจากไฟล์แทน--rcfile
~/.bashrc
เมื่อ bash เริ่มต้นแบบไม่โต้ตอบเพื่อรันเชลล์สคริปต์ตัวอย่างเช่นจะค้นหาตัวแปร
BASH_ENV
ในสภาพแวดล้อมขยายค่าของมันหากปรากฏขึ้นที่นั่นและใช้ค่าที่ขยายเป็นชื่อของไฟล์เพื่ออ่านและดำเนินการ Bash จะทำงานเหมือนกับว่าคำสั่งต่อไปนี้ถูกดำเนินการ:if [ -n "$BASH_ENV" ]; then . "$BASH_ENV"; fi
แต่ค่าของ
PATH
ตัวแปรไม่ได้ถูกใช้เพื่อค้นหาชื่อไฟล์ไฟล์นี้เป็นเพียงคำสั่งของเชลล์ โดยทั่วไปจะใช้เพื่อเปลี่ยนพรอมต์ตั้งค่าตัวแปรสภาพแวดล้อมและกำหนดโพรซีเดอร์เชลล์ โดยปกติแล้วไฟล์
.profile
จะถูกใช้เพื่อจุดประสงค์นี้ แต่bash
มีส่วนขยายจำนวนมากที่ต้องการไฟล์เริ่มต้นของตนเองสำหรับผู้ใช้ที่ต้องการใส่bashisms ในไฟล์เริ่มต้น" ไม่ใช่เชลล์การเข้าสู่ระบบ " หมายถึงสิ่งต่าง ๆ เช่นการเปิดตัวสคริปต์และโดยปกติแล้วเทอร์มินัล windows จะเริ่มต้นโดยตัวจัดการหน้าต่าง บางครั้งฉันจะตั้งค่าระบบ * ระวังจะมี
.bashrc
และแหล่งที่มาเพียงBASH_ENV
.profile
ตราบใดที่คุณไม่หลงทางนอกคำสั่งเชลล์ POSIX คุณก็จะได้ค่าเริ่มต้นเหมือนกันในเชลล์ใด ๆมันมีคุณค่าอย่างยิ่งเมื่อ
sh
เป็นจริงbash
ซึ่งบางครั้งเกิดขึ้น หากต้องการใช้สิ่งนี้:. .profile
เหตุผลหนึ่งที่ซับซ้อนเช่นนี้ก็เพราะว่าบางครั้งคนใส่สิ่งที่สร้างผลลัพธ์ลงในไฟล์เริ่มต้นของเชลล์หรือตั้งค่าพรอมต์โดยไม่มีเงื่อนไข สิ่งนี้ทำให้เกิดปัญหามากมายเมื่อเรียกใช้โปรแกรมเชลล์และคำสั่ง backtick ภายในภาษาไม่ต้องพูดถึง
system(3)
จากโปรแกรม Cbash
ฉันคิดว่าวิธีการเริ่มต้นใช้งานได้รับการออกแบบให้มีหนึ่งไฟล์ที่การตั้งค่าเอาต์พุตและพรอมต์เป็น OK และหนึ่งไฟล์ที่ไม่มี โดยปกติแล้วการทดสอบรันไทม์จะทำเพื่อแยกความแตกต่างระหว่างการโต้ตอบตัวอย่างเช่นการตรวจสอบเพื่อดูว่ามีการตั้งค่าให้
.bashrc
เป็นหนึ่งในไฟล์การกำหนดค่า bash จำนวนมาก ดูเอกสารอย่างเป็นทางการเกี่ยวกับการทุบตีไฟล์เริ่มต้น