Wie verstecke ich Befehle, die in eine Linux-Shell eingegeben wurden?

14

Gibt es eine Möglichkeit, das auszublenden, was ich in eine Shell schreibe, damit das Terminal meine Tastenanschläge nicht wiederholt, während die Ausgabe des Befehls beibehalten wird?

Wenn ich zum Beispiel laufe ip addr show, sollte das einzige, was auf dem Bildschirm angezeigt wird, die Ausgabe dieses Befehls sein - nicht die von mir eingegebene "ip addr show".

Mughil
quelle
1
Hallo. Können Sie etwas genauer sein content?
Nikhil Mulley
1
Meinen Sie damit, die Standardeingabe auszublenden, wie beim Eingeben des Kennworts login? Benutzt du bash? Bitte geben Sie weitere Informationen an.
content bedeutet befehle, wenn ich zum beispiel einen befehl "ip addr show" eingebe, darf im bash terminal nicht sichtbar sein, was ich eingebe. Aber es kann ich die Ausgabe davon sehen
Mughil
3
Das ist eine komische Anforderung. Was versuchst du zu erreichen? Beachten Sie, dass bei typischen Shells der Befehl auch in den Verlauf eingegeben und auf der Festplatte gespeichert wird.
Gilles 'SO- hör auf böse zu sein'

Antworten:

25

Wenn Sie das Echo der eingegebenen Befehle deaktivieren möchten, versuchen Sie Folgendes:

stty -echo

Sie können das Echo mit dem folgenden Befehl wieder aktivieren:

stty echo

Beachten Sie, dass die Ausgabe von Befehlen auf etwas andere Weise angezeigt wird. Siehe diese Beispielsitzung:

$ pwd
/tmp
$ stty -echo
$ /tmp

Dies resultiert aus der Eingabe pwd, Rückkehr stty -echo, Rückkehr pwd, Rückkehr.

Adam Zalcman
quelle
2
Beachten Sie, dass dies abhängig von Ihrer Shell und möglicherweise von den Kuriositäten, die Sie in Ihre Eingabeaufforderung eingegeben haben, möglicherweise funktioniert oder nicht. Die Einstellung gilt auch für alles in diesem Terminal. Wenn Sie einen Vollbild-Befehl ausführen, wird dieser wahrscheinlich auf zurückgesetzt stty +echo.
Gilles 'SO- hör auf böse zu sein'