อะไรคือความแตกต่างระหว่าง. bashrc และ. inputput


14

ฉันใหม่เพื่อระบบยูนิกซ์และพบว่ามันน่าสนใจที่จะสร้างฟังก์ชั่นที่กำหนดเองและการกำหนดค่าในแฟ้มการตั้งค่าเหมือนและ.bashrc.inputrc

อย่างไรก็ตามฉันไม่เข้าใจความแตกต่างระหว่างทั้งสอง .bashrcตัวอย่างเช่นเมื่อฉันสร้างนามแฝงผมใส่ไว้ใน

Example 1: alias ...='cd ../../'

.inputrcเมื่อฉันสร้างการดำเนินงานเช่นการใช้ปุ่มลูกศรที่จะมองหาคำสั่งก่อนหน้าหรือถัดไปผมใส่คำสั่งใน

Example 2: "\e[A": history-search-backward

ทำไมฉันต้องใส่มันในไฟล์การตั้งค่าที่ต่างกัน วิธีผมไม่เห็นความแตกต่างเมื่อจะนำสิ่งที่?

ขอบคุณล่วงหน้า!

คำตอบ:


18

การตั้งค่าที่อยู่ใน.inputrcแฟ้มที่ส่งผลกระทบต่อโปรแกรมทั้งหมดที่ใช้ห้องสมุด ReadLine GNUbashไม่เพียง คิดว่า.inputrcไฟล์เป็นไฟล์กำหนดค่าสำหรับ GNU Readline คล้ายกับ.bashrcไฟล์กำหนดค่าbashอย่างไร

GNU Readline อธิบายว่า:

... ชุดฟังก์ชั่นสำหรับใช้งานโดยแอพพลิเคชั่นที่อนุญาตให้ผู้ใช้แก้ไขบรรทัดคำสั่งเมื่อพิมพ์

ชี้แจงบิตต่อการตั้งค่าที่อยู่ใน.bashrcไฟล์เพียงbashส่งผลกระทบต่อ หากคุณต้องการที่จะเรียกใช้ตัวเลือกbashโดยการสนับสนุน GNU Readline หรือการใช้งานคุณสามารถเรียกใช้bashกับตัวเลือกดังต่อไปนี้:--noediting bash --noeditingคุณสามารถหาข้อมูลเพิ่มเติมเกี่ยวกับbashตัวเลือกที่นี่

เพื่อตอบคำถามสุดท้ายของคุณ

ฉันจะแยกแยะว่าอะไรจะอยู่ที่ไหนเมื่อไหร่?

หากคุณต้องการตัวเลือกที่จะส่งผลกระทบต่อโปรแกรมทั้งหมดในระบบของคุณที่ใช้ไลบรารี GNU Readline .inputrcจะเป็นตัวเลือกหลัก ถ้าคุณเพียงแค่ต้องการกำหนดค่าbashเซสชันของคุณ.bashrcก็จะเป็นตัวเลือกที่ดีที่สุด


ขอบคุณ @aliceinpalth คุณหมายถึง bash เป็นของห้องสมุด GNU Readline หรือไม่ มีอะไรอีกบ้างในห้องสมุด GNU Readline
Counter10000

5
@ Counter10000 ในแง่นี้ไลบรารีไม่ใช่ "ชุดเครื่องมือ" (ฉันเห็นได้ว่าทำไมคุณถึงคิดเช่นนั้น) แต่ "ฟังก์ชั่นการใช้งานที่เครื่องมือต่าง ๆ สามารถใช้งานได้" ในกรณีนี้มันเป็นฟังก์ชั่นสำหรับทำงานกับบรรทัดคำสั่ง (รวมถึง scrollback, การแก้ไขบรรทัดและอื่น ๆ ) Bash ใช้ค่านี้สำหรับเชลล์พรอมต์ บนระบบของฉันอยู่ตรงหน้าฉันมันยังใช้สำหรับbc(เครื่องคิดเลขบรรทัดคำสั่ง), xfsprogs(โปรแกรมผู้ดูแลระบบไฟล์), sqlite(ระบบฐานข้อมูลขนาดเล็กมาก), lftp(ไคลเอนต์บรรทัดคำสั่ง ftp) และอื่น ๆ
mattdm

1
ไม่มีปัญหา @ Counter10000! ฉันดีใจที่ได้ช่วย @attatt ตอบคำถามของคุณเป็นอย่างดี ต้องการเรียนรู้เพิ่มเติมเกี่ยวกับวิธีการใช้โปรแกรมเหล่านี้ GNU Readline มีดีเขียนขึ้นสามารถใช้ได้ที่นี่
aliceinpalth

1
ดูเหมือนว่าย่อหน้าสุดท้ายในคำตอบของคุณอย่างน้อยก็ไม่ถูกต้อง ฉันคิดว่ามีตัวเลือกบางตัวซึ่งสามารถตั้งค่าได้เฉพาะในไฟล์ inputrc ดังนั้นไฟล์ทั้งสองจึงไม่สามารถ "ใช้แทนกันได้" อย่างสมบูรณ์ ผมพยายามที่จะตั้งค่าตัวเลือกนี้คำตอบใน.bashrcและไม่มีอะไรเกิดขึ้น พวกเขามีผลต่อการตั้งค่าใน.inputrc
user907860
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.