วิธีซ่อนคำสั่งที่พิมพ์ในเชลล์ Linux


14

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

ตัวอย่างเช่นถ้าฉันรันip addr showสิ่งเดียวบนหน้าจอควรเป็นผลลัพธ์จากคำสั่งนั้นไม่ใช่ "ip addr show" ที่ฉันพิมพ์


1
สวัสดี คุณจะเจาะจงเจาะจงมากขึ้นเกี่ยวกับcontent?
Nikhil Mulley

1
คุณหมายถึงการซ่อนอินพุตมาตรฐานเช่นเมื่อพิมพ์รหัสผ่านloginใช่หรือไม่ คุณกำลังใช้bash? โปรดให้ข้อมูลเพิ่มเติม

content หมายถึงคำสั่งตัวอย่างเช่นถ้าฉันพิมพ์คำสั่ง "ip addr show" จะต้องไม่ปรากฏในเทอร์มินัล bash ที่ฉันกำลังพิมพ์ แต่ฉันสามารถดูผลลัพธ์ของมันได้
Mughil

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

คำตอบ:


25

หากคุณต้องการปิดการใช้งาน echo ของคำสั่งที่คุณพิมพ์ลองสิ่งนี้:

stty -echo

คุณสามารถเปิดใช้งาน echo อีกครั้งโดยใช้คำสั่งนี้:

stty echo

โปรดทราบว่าผลลัพธ์ของคำสั่งจะปรากฏขึ้นในวิธีที่แตกต่างกันบ้างดูตัวอย่างนี้:

$ pwd
/tmp
$ stty -echo
$ /tmp

สิ่งนี้เป็นผลมาจากการพิมพ์pwdกลับstty -echoมาส่งคืนpwdและส่งคืน


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