¿Cómo crear un alias para eliminar procesos que se ejecutan en un puerto TCP/IP?

¿Cómo crear un alias para eliminar procesos que se ejecutan en un puerto TCP/IP?

Lo que tengo:

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

Problema:

Sin embargo , ejecutar, por killport 8000ejemplo, no parece funcionar. Sin embargo, simplemente ejecutando...

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

... Funciona. No puedo entender dónde me estoy equivocando.

Por lo que puedo ver, la principal diferencia entre las versiones que funcionan y las que no funcionan es que la versión con alias implica una variable y la ejecuta el shell por mí... Pero tal vez alguien haya visto este tipo de problema antes y lo sepa. justo donde mirar.

Respuesta1

Deberías usar una función en lugar de un alias, ya que los alias no admiten parámetros, haz algo como esto:

killport(){ 

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

}

Ahora coloque esta función en su archivo de configuración de bash, por ejemplo ~/.bashrc y luego ejecute:

source  ~/.bashrc

Y tu estas listo

HT

información relacionada