Wie erstelle ich einen Alias, um Prozesse zu beenden, die auf einem TCP/IP-Port laufen?

Wie erstelle ich einen Alias, um Prozesse zu beenden, die auf einem TCP/IP-Port laufen?

Was ich habe:

alias killport='sudo kill -9 `sudo fuser -n tcp $1 2> /dev/null`'

Problem:

Das Ausführen von eg killport 8000scheint jedoch nicht zu funktionieren. Das einfache Ausführen von ...

sudo kill -9 `sudo fuser -n tcp 8000 2> /dev/null` 

... FUNKTIONIERT. Ich kann nicht herausfinden, wo ich einen Fehler mache.

Der größte Unterschied zwischen der funktionierenden und der nicht funktionierenden Version besteht meines Erachtens darin, dass die Alias-Version eine Variable beinhaltet und von der Shell für mich ausgeführt wird … Aber vielleicht hat jemand dieses Problem schon einmal gesehen und weiß, wo er suchen muss.

Antwort1

Sie sollten anstelle eines Alias ​​eine Funktion verwenden, da Aliase keine Parameter unterstützen. Machen Sie etwa Folgendes:

killport(){ 

sudo kill -9 $(sudo fuser -n tcp $1 2> /dev/null);

}

Fügen Sie diese Funktion nun in Ihre Bash-Konfigurationsdatei ein, z. B. ~/.bashrc, und führen Sie dann Folgendes aus:

source  ~/.bashrc

Und du bist fertig

HTH

verwandte Informationen