ฉันใช้ PuTTY เพื่อเชื่อมต่อกับเซิร์ฟเวอร์ Ubuntu (VPS) ฉันต้องการใช้ Tab-Completion เมื่อฉันทำงานกับบรรทัดคำสั่งบนเซิร์ฟเวอร์ Ubuntu ... ฉันจะกำหนดค่าได้อย่างไร
ฉันใช้ PuTTY เพื่อเชื่อมต่อกับเซิร์ฟเวอร์ Ubuntu (VPS) ฉันต้องการใช้ Tab-Completion เมื่อฉันทำงานกับบรรทัดคำสั่งบนเซิร์ฟเวอร์ Ubuntu ... ฉันจะกำหนดค่าได้อย่างไร
คำตอบ:
ความสมบูรณ์ของแท็บควรทำงานใน PuTTY การเติมแท็บให้โดยเชลล์ที่คุณใช้บนเซิร์ฟเวอร์ไม่ใช่ PuTTY โปรดแก้ไขคำถามของคุณและให้รายละเอียดเพิ่มเติมรวมถึงสิ่งที่เปลือกหอยที่คุณใช้และสิ่งที่เกิดขึ้นโดยเฉพาะเมื่อคุณพยายามที่จะใช้แท็บเสร็จ
echo $SHELL
ดูว่าคุณกำลังใช้เปลือกอะไรอยู่
bash
แทนsh
หรือไม่ (ผมคิดว่าในอูบุนตู/bin/sh
เป็น symlink ไป/bin/bash
แต่ผมอาจจะผิด)
chsh /bin/bash
ฉันมีความแตกต่างที่น่าสนใจเกี่ยวกับเรื่องนี้ซึ่งทำงานเพื่อรูท แต่ไม่ใช่สำหรับผู้ใช้ส่วนบุคคล มันเป็น VM ท้องถิ่นตามที่แนะนำ krowe บน VirtualBox ที่ใช้ Debian ฉันใช้การเชื่อมต่อเดียวกันดังนั้นปัญหาต้องอยู่ฝั่งเซิร์ฟเวอร์
ตามที่ปรากฏความแตกต่างคือรูทนั้นมี / bin / bash ใน / etc / passwd ในขณะที่ผู้ใช้ส่วนบุคคลมี / bin / sh
การเปลี่ยนเชลล์เริ่มต้นเป็น / bin / bashแก้ปัญหาให้ฉันได้
ฉันมีปัญหาเดียวกันที่ใช้สีโป๊วบน Windows และบางครั้งการกดปุ่มเพียงแค่ใช้เวลาโฟกัสออกไปจากหน้าต่างสีโป๊วและไม่ได้ทำป้อนอัตโนมัติที่ว่ามันมักจะไม่อยู่ภายใต้Tab /bin/bash
ฉันได้ลองวิธีแก้ปัญหาทั้งหมดที่กล่าวถึงข้างต้นแล้วและดูเหมือนว่าไม่มีวิธีใดที่จะแก้ไขปัญหานี้ได้
นี่คือวิธีที่ฉันแก้ไขของฉัน ไปที่หน้าจอ Windows Desktop แล้วกดAlt- TabและCtrl- Tabแป้นผสมสองสามครั้งและดูเหมือนว่าจะแก้ไขให้ฉัน ตอนนี้กลับไปที่หน้าจอ Putty แล้วลองTabอีกครั้ง
พิมพ์คำสั่งต่อไปนี้:
sudo vi /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
ยกเลิกการใส่เครื่องหมายข้อคิดเห็นบางบรรทัดเพื่อให้มีลักษณะดังนี้:
# 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
บันทึกปิดโป๊วแล้วเปิดใหม่
/bin/sh
เปลือกของคุณอาจจะเริ่มต้น
คุณสามารถแก้ไขได้โดยใช้/bin/bash
แทนโดยใช้คำสั่งต่อไปนี้:
chsh
/bin/bash
ฉันรู้ว่านี่เป็นคำถามเก่า แต่ฉันพบปัญหานี้สองสามครั้งและพบว่าทางออกที่แท้จริงไม่ใช่ฝั่งเซิร์ฟเวอร์เลย แต่อยู่ที่ฝั่งไคลเอ็นต์และนี่เป็นสิ่งแรกที่เกิดขึ้นเมื่อฉันค้นหา วิธีแก้ไขปัญหา
ตกลง OP กล่าวว่าเขาใช้เวอร์ชั่น VPS ของ Ubuntu นี่ทำให้ฉันสงสัยว่าเขาใช้เซิร์ฟเวอร์เสมือนและเพราะเขามีปัญหานี้ฉันจึงพนันได้เลยว่าเซิร์ฟเวอร์กำลังโฮสต์อยู่ในพื้นที่ เมื่อฉันพบสิ่งนี้ในอดีตมันเกิดจากปัญหากับเครื่องมือ VM มันน่ารำคาญเพราะคุณจะต้องรีสตาร์ทระบบปฏิบัติการของโฮสต์อย่างสมบูรณ์ แต่หลังจากนั้นคุณควรจะดี คุณอาจต้องการลองปิดระบบ VMware หรืออาจเพียงแค่ถอดปลั๊กแป้นพิมพ์ของคุณจะทำงานได้ แต่เดสก์ท็อปของฉันเริ่มทำงานได้อย่างรวดเร็วจริง ๆ ดังนั้นฉันมักจะเริ่มต้นใหม่แบบเต็ม
ในกรณีเฉพาะของฉันปัญหานี้เกิดขึ้นทุกครั้งที่ฉันพยายามติดตั้ง Kubuntu ล่าสุดโดยใช้คุณสมบัติการติดตั้งด่วนของ VMware (ซึ่งก็ล้มเหลวด้วยเช่นกัน) มันเกิดขึ้นเมื่อเซิร์ฟเวอร์ที่ฉันกำลังเชื่อมต่อเป็นเซิร์ฟเวอร์ระยะไกล หวังว่านี่จะช่วยใครซักคน
ในสีโป๊วภายใต้แป้นพิมพ์เลือก Linux จากนั้นภายใต้คุณลักษณะให้เลือกปิดใช้งานการสลับเป็นหน้าต่างสำรอง
ทำงานให้ฉันใน ADBPutty