ฉันจะใช้ Tab-Completion ใน PuTTY เชื่อมต่อกับเซิร์ฟเวอร์ Ubuntu ได้อย่างไร


12

ฉันใช้ PuTTY เพื่อเชื่อมต่อกับเซิร์ฟเวอร์ Ubuntu (VPS) ฉันต้องการใช้ Tab-Completion เมื่อฉันทำงานกับบรรทัดคำสั่งบนเซิร์ฟเวอร์ Ubuntu ... ฉันจะกำหนดค่าได้อย่างไร

คำตอบ:


13

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


โอเคขอบคุณ. ฉันจะดูว่าฉันใช้เปลือกอะไรอยู่? ฉันมี Ubuntu VPS ดังนั้นฉันคิดว่ามันเป็นค่าเริ่มต้น มันทุบตีหรือไม่
Jonas

2
ลองecho $SHELLดูว่าคุณกำลังใช้เปลือกอะไรอยู่
Kevin M

สิ่งใดที่คุณลองและพิมพ์ซึ่งไม่สมบูรณ์โดยอัตโนมัติ คุณกดแท็บหนึ่งครั้งหรือสองครั้ง คุณลองใช้bashแทนshหรือไม่ (ผมคิดว่าในอูบุนตู/bin/shเป็น symlink ไป/bin/bashแต่ผมอาจจะผิด)
จอช

4
แม้ว่ามันจะเป็นลิงก์สัญลักษณ์ไปยัง / bin / bash ไฟล์เรียกทำงานอาจเปลี่ยนแปลงฟังก์ชันการทำงานขึ้นอยู่กับวิธีการเรียกใช้ เนื่องจาก Sanoj เห็นว่าเชลล์ล็อกอินคือ / bin / sh จึงอาจทำหน้าที่คล้ายกับ Bourne shell (sh) และไม่ใช่ Bourne-again shell (bash) สิ่งที่ดีที่สุดที่ต้องทำคือเปลี่ยนเชลล์ล็อกอินของคุณ ลองchsh /bin/bash
Doug Harris


11

ฉันมีความแตกต่างที่น่าสนใจเกี่ยวกับเรื่องนี้ซึ่งทำงานเพื่อรูท แต่ไม่ใช่สำหรับผู้ใช้ส่วนบุคคล มันเป็น VM ท้องถิ่นตามที่แนะนำ krowe บน VirtualBox ที่ใช้ Debian ฉันใช้การเชื่อมต่อเดียวกันดังนั้นปัญหาต้องอยู่ฝั่งเซิร์ฟเวอร์

ตามที่ปรากฏความแตกต่างคือรูทนั้นมี / bin / bash ใน / etc / passwd ในขณะที่ผู้ใช้ส่วนบุคคลมี / bin / sh

การเปลี่ยนเชลล์เริ่มต้นเป็น / bin / bashแก้ปัญหาให้ฉันได้


6

ฉันมีปัญหาเดียวกันที่ใช้สีโป๊วบน Windows และบางครั้งการกดปุ่มเพียงแค่ใช้เวลาโฟกัสออกไปจากหน้าต่างสีโป๊วและไม่ได้ทำป้อนอัตโนมัติที่ว่ามันมักจะไม่อยู่ภายใต้Tab /bin/bashฉันได้ลองวิธีแก้ปัญหาทั้งหมดที่กล่าวถึงข้างต้นแล้วและดูเหมือนว่าไม่มีวิธีใดที่จะแก้ไขปัญหานี้ได้

นี่คือวิธีที่ฉันแก้ไขของฉัน ไปที่หน้าจอ Windows Desktop แล้วกดAlt- TabและCtrl- Tabแป้นผสมสองสามครั้งและดูเหมือนว่าจะแก้ไขให้ฉัน ตอนนี้กลับไปที่หน้าจอ Putty แล้วลองTabอีกครั้ง


1
ค่อนข้างน่าประหลาดใจที่ใช้งานได้จริง
Graeme

1
กันที่นี่! ครั้งแรกมันเกิดขึ้นกับฉันด้วย Putty
leonbloy

3

พิมพ์คำสั่งต่อไปนี้:

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

บันทึกปิดโป๊วแล้วเปิดใหม่


1

/bin/shเปลือกของคุณอาจจะเริ่มต้น

คุณสามารถแก้ไขได้โดยใช้/bin/bashแทนโดยใช้คำสั่งต่อไปนี้:

chsh
/bin/bash

0

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

ตกลง OP กล่าวว่าเขาใช้เวอร์ชั่น VPS ของ Ubuntu นี่ทำให้ฉันสงสัยว่าเขาใช้เซิร์ฟเวอร์เสมือนและเพราะเขามีปัญหานี้ฉันจึงพนันได้เลยว่าเซิร์ฟเวอร์กำลังโฮสต์อยู่ในพื้นที่ เมื่อฉันพบสิ่งนี้ในอดีตมันเกิดจากปัญหากับเครื่องมือ VM มันน่ารำคาญเพราะคุณจะต้องรีสตาร์ทระบบปฏิบัติการของโฮสต์อย่างสมบูรณ์ แต่หลังจากนั้นคุณควรจะดี คุณอาจต้องการลองปิดระบบ VMware หรืออาจเพียงแค่ถอดปลั๊กแป้นพิมพ์ของคุณจะทำงานได้ แต่เดสก์ท็อปของฉันเริ่มทำงานได้อย่างรวดเร็วจริง ๆ ดังนั้นฉันมักจะเริ่มต้นใหม่แบบเต็ม

ในกรณีเฉพาะของฉันปัญหานี้เกิดขึ้นทุกครั้งที่ฉันพยายามติดตั้ง Kubuntu ล่าสุดโดยใช้คุณสมบัติการติดตั้งด่วนของ VMware (ซึ่งก็ล้มเหลวด้วยเช่นกัน) มันเกิดขึ้นเมื่อเซิร์ฟเวอร์ที่ฉันกำลังเชื่อมต่อเป็นเซิร์ฟเวอร์ระยะไกล หวังว่านี่จะช่วยใครซักคน


0

ในสีโป๊วภายใต้แป้นพิมพ์เลือก Linux จากนั้นภายใต้คุณลักษณะให้เลือกปิดใช้งานการสลับเป็นหน้าต่างสำรอง

ทำงานให้ฉันใน ADBPutty

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