การเติมข้อความอัตโนมัติไม่ทำงานในขณะที่บันทึกเป็นรูท


23

ฉันเพิ่งเจอสิ่งที่รบกวนฉันจริงๆ การเติมข้อความอัตโนมัติบน Ubuntu ทำงานได้อย่างมีเสน่ห์ แต่เมื่อฉันเข้าสู่ระบบในฐานะผู้ใช้เช่นsuฉันได้รับการtabเติมข้อความอัตโนมัติในบางครั้งเท่านั้น

ทำไมมันถึงเป็นเช่นนั้น สามารถเปลี่ยนแปลงได้หรือไม่


คุณเข้าสู่ระบบในฐานะรูทหรือใช้ sudo su หรือไม่?
Marty ผัด

@MartyFried ใช่ฉันเป็นดิออsudo suน อะไรคือความแตกต่าง?
Patryk

ดูเหมือนว่าจะใช้งานได้สำหรับฉันคุณช่วยให้เราได้รับอินสแตนซ์ที่เฉพาะเจาะจงเมื่อมันไม่ทำงานสิ่งที่เราสามารถทำซ้ำได้
ste_kwr

1
@lordmonkey: อาจจะไม่มีฉันไม่แน่ใจจริงๆ ฉันคิดว่า su หรือ sudo su ด้วยตัวของฉันเองนั้นแตกต่างกันเล็กน้อยในบางวิธีที่ฉันจำไม่ได้ดังนั้นฉันจึงต้องการตรวจสอบให้แน่ใจว่าฉันสามารถตรวจสอบได้ภายใต้เงื่อนไขเดียวกัน ดูเหมือนว่าจะใช้งานได้ แต่คุณพูดว่า "บางครั้ง" ดังนั้นฉันจึงสามารถแนะนำให้คุณตรวจสอบซ้ำและลองทำซ้ำหรือตรวจสอบให้แน่ใจว่าไม่มีสิ่งใดเกิดขึ้นที่หลอกคุณ - นั่นคือข้อผิดพลาดของผู้ใช้ - เฮ้ มันเกิดขึ้นกับทุกคน! :)
มาร์ตี้ผัด

คำตอบ:


41

ตรวจสอบ/root/.bashrcไฟล์ของคุณสำหรับบรรทัดเหล่านี้

if [ -f /etc/bash_completion ]; then
  . /etc/bash_completion
fi

หากไม่มีอยู่ให้เพิ่มลงในส่วนท้ายของไฟล์โดยใช้โปรแกรมแก้ไขข้อความที่คุณชื่นชอบ


Mine .bashrc มีบรรทัดที่กล่าวถึง แต่พวกเขาถูกคอมเม้นท์; uncommented บรรทัดและที่มาใหม่. bashrc; สิ่งที่ดูดีในตอนนี้
Ankit

bash_completionบรรทัดอย่างน้อยในกรณีของฉันถูกออกความเห็นเพราะมันอ้างว่าbash_completionมีการใช้งานอยู่แล้วใน/etc/bash.bashrcแต่ไฟล์ที่มียังว่าสายออกความเห็น แทนที่จะเป็นการยกเลิกการทำเครื่องหมายetcไฟล์จะเป็นการดีกว่า/root/.bashrcถ้าคุณไม่ใส่หมายเหตุในบรรทัด
Peregring-lk

7

คุณยังไม่ได้พูดถึงเวอร์ชั่นของ Ubuntu ที่คุณใช้

  • ตรวจสอบว่าคุณได้bash-completionติดตั้งแพ็คเกจหรือไม่:

    sudo apt-get install bash-completion
  • ฉันทำงานได้ถ้าฉันเข้าสู่ระบบโดยใช้: sudo -i


จุดใดในการลบ. bashrc ของรูท
geirha

ฉันคิดว่ามันจะสร้างค่าเริ่มต้น. bashrc อีกครั้งเมื่อออกจากระบบ / เข้าสู่ระบบ หรือบางทีมันอาจมี "การปิดใช้งาน" บางอย่างสำหรับการเติมข้อความอัตโนมัติ (ไม่รู้ว่าเป็นไปได้หรือไม่) ฉันจำไม่ได้ว่าเหตุผลที่แท้จริงคืออะไร
Savvas Radevic

2
ไม่ใหม่.bashrcจะไม่ถูกสร้างขึ้นและ/etc/bash_completionจะไม่ได้มาจากแหล่งข้อมูลเริ่มต้นของการทุบตีเท่านั้นจะใช้ได้
geirha

ตกลงแก้ไขและลบออก ขอบคุณสำหรับข้อมูลของคุณ! แม้ว่าฉันจะสงสัยว่า ~ / .bashrc สามารถ "unsource" ไฟล์หรือถ้าdisable-completionยังมีอยู่: superuser.com/questions/37148/…
Savvas Radevic

3

สำหรับ Ubuntu 13.10 ตรวจสอบ/etc/bash.bashrcสำหรับ

# enable bash completion in interactive shells
if ! shopt -oq posix; then
  if [ -f /usr/share/bash-completion/bash_completion ]; then
    . /usr/share/bash-completion/bash_completion
  elif [ -f /etc/bash_completion ]; then
    . /etc/bash_completion
  fi
fi

พวกเขาอาจถูกวิจารณ์ ยกเลิกการแสดงความคิดเห็นพวกเขาทำงาน


0

พบว่าสิ่งนี้ทำงานได้ (คล้ายกับคำตอบข้างต้น แต่มีการบิด)

ไฟล์ที่ต้องแก้ไข (อย่างน้อยในกรณีของฉันกับ 12.04) คือ /root/.bashrc สิ่งนี้สมเหตุสมผลในกรณีของฉันเนื่องจากผู้ใช้ปกติของฉันทำการเติมข้อมูลอัตโนมัติได้ดี แต่รากของฉันไม่ได้

อย่างไรก็ตามในไฟล์ดังกล่าวฉันพบรหัสที่จำเป็นทั้งหมด แต่มันถูกคอมเม้นท์:

# enable programmable completion features (you don't need to enable
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
# sources /etc/bash.bashrc).
#if [ -f /etc/bash_completion ] && ! shopt -oq posix; then
    #. /etc/bash_completion
#fi

เพียงยกเลิกการแสดงความคิดเห็น:

# enable programmable completion features (you don't need to enable
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
# sources /etc/bash.bashrc).
if [ -f /etc/bash_completion ] && ! shopt -oq posix; then
    . /etc/bash_completion
fi

บันทึกแล้วมันใช้ได้ดี

หวังว่านี่จะช่วยใครซักคน


0

ใน Linux Mint 18 (อิงจาก Xenial) คุณต้องแก้ไข bashrc ของคุณ:

sudo nano /etc/bash.bashrc

และใส่ความคิดเห็น (ลบ#ด้านหน้าของแต่ละบรรทัด) ส่วนนี้:

if ! shopt -oq posix; then
  if [ -f /usr/share/bash-completion/bash_completion ]; then
     . /usr/share/bash-completion/bash_completion
  elif [ -f /etc/bash_completion ]; then
     . /etc/bash_completion
  fi
fi

นั่นคือทั้งหมดที่

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