การเติมเต็มของแท็บ Bash จะขยาย“ ~” ไปเป็น“ / home / ___” เมื่อไม่เคยมีมาก่อน


13

ก่อนหน้านี้หากผมพิมพ์ก่อนที่มันจะกลายเป็น~/biTab ~/binแต่วันนี้มันเริ่มเปลี่ยนเข้าสู่~/biTab/home/username/bin

ฉันอยากได้มันมาก่อน แต่ฉันไม่แน่ใจว่าเกิดอะไรขึ้น ... ฉันเพิ่มสคริปต์เพื่อแก้ไขการทุบตีของฉัน แต่ฉันลบมันออกจาก~./bashrcเซิร์ฟเวอร์แล้วรีสตาร์ทเซิร์ฟเวอร์

ไม่มีใครรู้ว่าสิ่งนี้จะทำให้เกิดขึ้น? หรือว่าฉันจะเปลี่ยนมันกลับมา?

แก้ไข ดังนั้นฉันจึงพบสิ่งที่อาจทำให้เกิดสิ่งนี้ ... มันเกี่ยวข้องกับ/etc/bash_completionและสิ่งต่าง ๆ เช่นนั้น เมื่อฉันทำbind -vมันแสดงให้เห็นการขยายตัวตัวหนอนที่จะปิด

ดังนั้นฉันคิดว่าถ้าฉันแก้ไข (เช่นแฮ็ค) มันจะหายไป แต่นั่นไม่ได้ตอบสนองอะไรเลย - การเปลี่ยนแปลงนี้เกิดขึ้นได้อย่างไรในตอนแรก? ฉันไม่เคยวิ่งอะไรเลยsudoและหลังจากปิดหลายครั้งและเริ่มต้นพฤติกรรมนี้ใหม่อีกครั้ง

คำตอบ:


8

คุณไม่ได้พูดถึงการกระจายที่คุณใช้ (โปรดระบุข้อมูลนั้นในคำถามของคุณ) แต่ฉันเห็นพฤติกรรมที่คล้ายกันหลังจากใช้งานการอัปเดตในระบบของฉัน

การคาดเดาที่ดีที่สุดของฉันคือเมื่อคุณรันการอัปเดตระบบหรือถ้ามันรันโดยอัตโนมัติแพ็คเกจ "bash-complete" ได้รับการอัปเดตซึ่งเพิ่มลักษณะการทำงานนี้ ใน Red Hat Derivatives คุณสามารถค้นหาเอกสารแพ็คเกจ/usr/share/doc/PACKAGENAMEได้ที่ ในฉัน/usr/share/doc/bash-completion-1.3/CHANGESการเปลี่ยนแปลงใหม่จะแสดงรายการผ่านรูปแบบบันทึกการเปลี่ยนแปลง

แทนที่จะทำการปรับเปลี่ยน/etc/bash_completionซึ่งสามารถเขียนทับได้ในการอัปเกรดแพ็คเกจถัดไปคุณสามารถสร้าง~/.inputrcเพื่อปิดใช้งานการขยายตัวหนอน ฉันยืนยันว่า bash_completion-1.3.6 จะให้เกียรติกับกล่อง Fedora 16 ของฉัน

set expand-tilde off

แก้ไข

~/.inputrcไมล์สะสมของคุณอาจแตกต่างกัน Bash มีฟังก์ชั่นที่อาจแทนที่พฤติกรรมนั้นขึ้นอยู่กับสิ่งที่คุณพยายามทำให้เสร็จ (เช่นโปรแกรมกับไฟล์หรือไดเรกทอรี) นี้การอภิปรายเกี่ยวกับ Super User SE อยู่คำถามที่คล้ายกันเมื่อเติมข้อความอัตโนมัติvimคำสั่ง ในกรณีนี้โปสเตอร์เดิมแก้ปัญหาของเขา~/.bashrcโดยการเพิ่มฟังก์ชั่นที่กำหนดเองเพื่อเขา


1
บิตสุดท้ายยังขึ้นอยู่กับ distro distros บางตัว (เช่น Gentoo) ทำสิ่งที่ถูกต้องจริง ๆ และไม่เขียนทับไฟล์ภายใต้/etcหากมีการเปลี่ยนแปลง
njsg

1
อนุพันธ์ Red Hat ก็เช่นกัน ไฟล์การกำหนดค่าการแทนที่จะxxxถูกเรียกใช้xxx.rpmnewหากการเปลี่ยนแปลงการกำหนดค่าไม่สำคัญ หากจำเป็นต้องเปลี่ยนการกำหนดค่าจริงๆแล้วต้นฉบับจะถูกเปลี่ยนชื่อxxx.rpmsaveและxxxเป็นไฟล์จากแพ็คเกจ
vonbrand

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