ไฟล์. bashrc คืออะไรและทำหน้าที่อะไร


21

ฉันไม่สามารถหาข้อมูลที่ชัดเจนเกี่ยวกับ.bashrcไฟล์และสิ่งที่ทำ


ขอบคุณสำหรับความช่วยเหลือทั้งหมดที่ผ่านมา ดูเหมือนว่าสคริปต์นี้จะทำทุกอย่างตั้งแต่การระบายสีเสร็จสมนามและประวัติเชลล์ ฯลฯ มีอะไรที่ดูเหมือนจะไม่เป็นประโยชน์หรือไม่?


4
.bashrcเป็นหนึ่งในไฟล์การกำหนดค่า bash จำนวนมาก ดูเอกสารอย่างเป็นทางการเกี่ยวกับการทุบตีไฟล์เริ่มต้น
muru

คำตอบ:


21

.bashrcไฟล์เป็นสคริปต์ที่จะดำเนินการเมื่อใดก็ตามที่เซสชั่นขั้วใหม่จะเริ่มต้นในโหมดโต้ตอบ นี่คือสิ่งที่เกิดขึ้นเมื่อคุณเปิดหน้าต่างเทอร์มินัลใหม่โดยกดCtrl+ Alt+ Tหรือเพียงเปิดแท็บเทอร์มินัลใหม่

ตรงกันข้ามเทอร์มินัลเซสชันในโหมดเข้าสู่ระบบจะถามชื่อผู้ใช้และรหัสผ่านและดำเนินการ~/.bash_profileสคริปต์ นี่คือสิ่งที่เกิดขึ้นเช่นเมื่อคุณเข้าสู่ระบบระยะไกลผ่าน SSH

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

คุณสามารถปรับแต่ง.bashrcความชอบของคุณ ที่นี่คุณสามารถรับตัวอย่างพร้อมคุณสมบัติพิเศษมากมาย


ลิงก์เสีย
กระต่าย

1
ลิงก์ใช้งานได้
Luís de Sousa

ในไฟล์ดาวน์โหลดหน้านั้นไม่ทำงาน
rab

1
ทั้งลิงค์และดาวน์โหลดทำงานได้ดี
M. Becerra

5

คำถามเกี่ยวกับ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)จากโปรแกรม C bashฉันคิดว่าวิธีการเริ่มต้นใช้งานได้รับการออกแบบให้มีหนึ่งไฟล์ที่การตั้งค่าเอาต์พุตและพรอมต์เป็น OK และหนึ่งไฟล์ที่ไม่มี โดยปกติแล้วการทดสอบรันไทม์จะทำเพื่อแยกความแตกต่างระหว่างการโต้ตอบตัวอย่างเช่นการตรวจสอบเพื่อดูว่ามีการตั้งค่าให้

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