[gelöst] Console: "![ZAHL]" holt history substitution

Alle weiteren Dienste, die nicht in die drei oberen Foren gehören.
Antworten
Gramry
Beiträge: 5
Registriert: 10.02.2016 13:46:49

[gelöst] Console: "![ZAHL]" holt history substitution

Beitrag von Gramry » 10.02.2016 14:15:14

Hallo.

Ich benutze das aktuelle stabile Debian für meinen kleinen Server im Keller.

########## unbedeutende Vorgeschichte: Anfang ##########

Der ist auch am Internet angeschlossen und bietet mir ein paar Sachen zum Zugriff für Unterwegs.

Nun kam ich einmal heim und sah am Router verdächtig häufig die LED zu diesen Blinkern.

Also hab ich mich schnell meinen normalen Computer gestartet (der Server ist ohne Bildschirm) und mich per SSH eingeloggt.

Dann habe ich gleich tail auf alle Logverzeichnisse gestartet doch nichts gefunden. Das viele geblickere ging aber weiter.

Ok, dachte ich mir. Installiere ich mal tshark. Bis das fertig war, hatte die blinkerei aber schon aufgehört. *seufz*

Auf jedenfall hatte ich bei der Bedienung von tshark ein sehr merkwürdiges Verhalten bemerkt, welches mir noch nie auf der virtuellen Console (mit putty nebenbei) auffiehl:

Startet man Wireshark remote, muss man sich selbst ja ausfiltern.


########## unbedeutende Vorgeschichte: Ende ##########

Ich dachte dabei an was ganz einfaches...

Code: Alles auswählen

tshark -f "port !22"
Doch dieser Befehl wird gar nicht ausgeführt. Die !22 wird einfach durch Zeile 22 aus der Befehls-History ersetzt. 8O

Zwar lässt sich das mit

Code: Alles auswählen

tshark -f 'port !22'[code]
unterbinden. Doch würde ich doch gerne dieses Verhalten nun loswerden. 

Löst das Putty, SSH oder BASH selbst aus?

Wonach müsste ich Suchen, wie könnte ich das abschalten?

Ich wollte nach dem Feature/Problem suchen, doch irgendwie .... wie sucht man danach, vielleicht "! und bash"...  Das ist wohl zu speziel.

Vielen Dank für jede Hilfe und Hinweis.
Zuletzt geändert von Gramry am 10.02.2016 14:31:34, insgesamt 1-mal geändert.

Liffi
Beiträge: 2346
Registriert: 02.10.2004 01:33:05

Re: Console: "![ZAHL]" holt history - wie deaktivieren?

Beitrag von Liffi » 10.02.2016 14:19:17

Gramry hat geschrieben: Löst das Putty, SSH oder BASH selbst aus?
Die Bash. Das feature heißt "history substitution".
Evtl. kannst du "histchars" so manipulieren, dass das Verhalten nicht mehr auftritt.

Gramry
Beiträge: 5
Registriert: 10.02.2016 13:46:49

Re: Console: "![ZAHL]" holt history - wie deaktivieren?

Beitrag von Gramry » 10.02.2016 14:30:21

Liffi hat geschrieben:
Gramry hat geschrieben: Löst das Putty, SSH oder BASH selbst aus?
Die Bash. Das feature heißt "history substitution".
Evtl. kannst du "histchars" so manipulieren, dass das Verhalten nicht mehr auftritt.
Ahhh :-) Danke. Endlich habe ich einen Namen dafür - dank dir :-)

Code: Alles auswählen

set +o histexpand
Und könnte es so dank dir mit 10 Sekunden Suchaufwand nun lösen :-)

Dank dir nochmal und Beste Grüße :-)

Benutzeravatar
MSfree
Beiträge: 11741
Registriert: 25.09.2007 19:59:30

Re: [gelöst] Console: "![ZAHL]" holt history substitution

Beitrag von MSfree » 10.02.2016 14:56:51

Eine alternative Lösung wäre, vor ein Steuerzeichen einfach einen Backslash zu tippen:

Code: Alles auswählen

tshark -f "port \!22"
Dann muß man nicht die ganze Historyexpansion abschalten.

Gramry
Beiträge: 5
Registriert: 10.02.2016 13:46:49

Re: [gelöst] Console: "![ZAHL]" holt history substitution

Beitrag von Gramry » 10.02.2016 15:11:46

MSfree hat geschrieben:Eine alternative Lösung wäre, vor ein Steuerzeichen einfach einen Backslash zu tippen:

Code: Alles auswählen

tshark -f "port \!22"
Dann muß man nicht die ganze Historyexpansion abschalten.
Zustimmt. Das hätte auch klappen können. Aber wer denkt schon immer an sowas ;-)

Erinnert mich an expr. Hier funktioniert auch * oder / (bin mir nicht mehr sicher, welches von beiden) nur durch escapen. Inzwischen aber scheint das allgemein wohl behoben worden zu sein.


Was mich aber wundert ist, wozu man "history substitution" überhaupt braucht. Die Historie ändert sich doch ständig. Und es scheint mehr eher ein Glückfall, dass man gerade die richtige Nummer erwischt.
Da Bau ich mir doch lieber es aus mehren Variablen selbst zuasmmen.

Früher hatte ich auch nie so ein Problem (bemerkt). Vielleicht wurde das erst mit jessie eingeführt.


Nicht desto trotz Danke :-) - nun bin ich es wieder los.

Benutzeravatar
MSfree
Beiträge: 11741
Registriert: 25.09.2007 19:59:30

Re: [gelöst] Console: "![ZAHL]" holt history substitution

Beitrag von MSfree » 10.02.2016 15:19:58

Gramry hat geschrieben:Was mich aber wundert ist, wozu man "history substitution" überhaupt braucht.
Naja, heutzutage ist das wirklich etwas veraltet, weil die Shells ja inzwischen Editiermechanismen mitbringen, mit denen man zuletzt ausgeführte Befehle suchen, verändern und dann ausführen kann.

Die ersten Unixkisten, an denen ich 1989 gesessen bin, kannten noch keinen Kommandozeilenedetor. Da war man froh, wenn ein langer Befehl noch in der History stand und man ihn mit ![n] nochmal ausführen konnte.

Befehle wie:

Code: Alles auswählen

find /home \( -name \*.c -or -name \*.cpp -or -name \*.h -or -name \*.hpp \) -exec grep -Hi printf {} \;
will man einfach nicht immer wieder eintippen müssen, wenn man das mit !4711 auch kann. :mrgreen:

Liffi
Beiträge: 2346
Registriert: 02.10.2004 01:33:05

Re: [gelöst] Console: "![ZAHL]" holt history substitution

Beitrag von Liffi » 10.02.2016 15:38:07

Ich benutze das feature andauernd, nur nie mit Zahlen :-).
Aber !bla um das letzte Kommando, das mit bla anfängt nochmal auszuführen, ist schon nett. Oder auch die Ersetzungen, die man dabei noch machen kann.

dufty2
Beiträge: 1714
Registriert: 22.12.2013 16:41:16

Re: [gelöst] Console: "![ZAHL]" holt history substitution

Beitrag von dufty2 » 10.02.2016 17:39:14

Man könnte auch

Code: Alles auswählen

tshark port not 22
benutzen ;)

Antworten