หยุดการทำงานอัตโนมัติของเทอร์มินัลเมื่อวางคำสั่ง


27

ใช่นี่เป็นคุณสมบัติที่น่ารำคาญเล็กน้อยเพราะสิ่งนี้เกิดขึ้นและบางครั้งมันก็ไม่แปลก

ฉันวางคำสั่งลงในเทอร์มินัลด้วยมุมมองเพื่อปรับแต่งอาร์กิวเมนต์ของมันและบางครั้งมันก็รันคำสั่งที่สองที่ฉันวางไว้ บางครั้งมันก็ไม่

ช่วงนี้มีตั้งแต่อาย (โพสต์ความคิดเห็นที่ไร้สาระบน IRC) ถึงอันตราย

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


อาจเป็นที่สนใจ - bbs.archlinux.org/viewtopic.php?id=95548และผู้คนต่างหาช่องโหว่โดยการซ่อนเนื้อหาไว้ในสำเนา / วางreddit.com/r/linux/comments/1bv54e/ …
Mateo

1
ว้าวควรติดตั้งฟีเจอร์ใน Ubuntu เพื่อหยุดสิ่งนี้ เมื่อใดที่คุณต้องการจะวางแคร่ตลับหมึกกลับเข้าไปในเครื่อง?
Starkers

การแก้ไขอย่างใดอย่างหนึ่งจะใช้สิ่งที่ต้องการoh-my-zshหรือการแทนที่เทอร์มินัลอื่น ๆ
Pramesh Bajracharya

คำตอบ:


28

ไม่มีการดำเนินการอัตโนมัติ คุณอาจคัดลอกตัวแบ่งบรรทัด (หรือมากกว่า) หลังจากคำสั่ง

ถ้าคุณวางคำสั่งด้วยตัวแบ่งเชลล์ (บรรทัดคำสั่ง) คิดว่าคุณกดปุ่มตัวแบ่ง (Enter, Return) ด้วยตัวเอง


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


5
จริง แต่คำถามคือวิธีที่จะหยุดมันถ้าเป็นไปได้ :)
Pawel Cioch

1
การแก้ไขสำหรับ Putty อย่างน้อยserverfault.com/questions/731022/ …
Pawel Cioch

13

ทางออกหนึ่งที่แท้จริงคือการเปิดโหมดแก้ไขด้วยctrl-x ctrl-eแล้ววางคลิปบอร์ดของคุณลงในเครื่องมือแก้ไขที่คุณเลือกได้อย่างปลอดภัย (โดยทั่วไปคือ emacs หรือ vim) หลังจากที่คุณแก้ไขคำสั่งเสร็จแล้วให้บันทึกและออกจากนั้นคำสั่งนั้นจะทำงานในบรรทัดคำสั่ง นี่เป็นนิสัยที่ดีสำหรับคำสั่งยาวหรือคำสั่งที่ซับซ้อนโดยเฉพาะอย่างยิ่งเมื่อการวางแฮชในคำสั่ง git และสามารถช่วยให้คุณหลีกเลี่ยงผลลัพธ์ที่น่ากลัวในระยะยาว

ตัวแก้ไขสามารถเปลี่ยนแปลงได้โดยการตั้งค่าตัวแปร VISUAL และ EDITOR (สิ่งเหล่านี้มีความหมายต่างกันดูที่นี่ )


ว้าวมีบางสิ่งเสมอที่จะเรียนรู้หลังจากใช้ลินุกซ์มานานหลายทศวรรษ :) ขอบคุณนี่เป็นคำตอบเดียวที่แก้ปัญหาได้จริงๆ
törzsmókus

ดูเหมือนว่ามันจะใช้งานได้กับสถานี linux จริง แต่น่าเสียดายที่นี่ไม่เป็นประโยชน์สำหรับผู้ใช้ PuTTY ทางเลือกอื่น ๆ ?
Codesmith

1
@Codesmith ฉันเชื่อว่าความคิดเห็นของ Pawel Chioch เกี่ยวกับคำตอบที่ยอมรับอาจเป็นประโยชน์กับคุณ: serverfault.com/questions/731022/…
borrascador

1
จุดดี @borrascador! ไม่แน่ใจว่าฉันพลาดอย่างไร ขอบคุณ! :)
Codesmith

5

ก่อนการวางพิมพ์ # ให้วางบรรทัดของคุณ มันจะไม่ดำเนินการและคุณสามารถลบ # และกด Enter เมื่อการปรับเปลี่ยนเสร็จสมบูรณ์


คุณสามารถใช้trueAKA :ซึ่งโดยพื้นฐานแล้วเป็นคำสั่ง no-op
wjandrea

1
@WJAndrea ฉันจะบอกว่านี่ไม่แนะนำให้เลือกเพราะมันจะปิดกั้นสถานะทางออก ( $?) ... trueไม่ใช่ nop จริง ๆ แล้วจะคืนสถานะทางออก 0 ความคิดเห็นตรงกันข้ามจะไม่สนใจทั้งหมด $?แก้ไข
brhfl

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