Как создать псевдоним, чтобы убивать процессы, запущенные на порту TCP / IP?

Что у меня есть:

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

Проблема:

Однако выполнение, например, killport 8000 , похоже, не работает. Тем не менее, просто работает …

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

… Работает. Я не могу понять, где я запутался. Извините, если мне не хватает чего-то очевидного. Во всяком случае, я мог бы справиться с этим, если я немного ударил головой о стену.

Основное различие между рабочими и нерабочими версиями, насколько я могу судить, заключается в том, что версия с псевдонимом включает переменную и выполняется оболочкой для меня … Но, возможно, кто-то видел эту проблему раньше и знает где искать.

  • Убивание подпроцессов после завершения или уничтожения скрипта
  • убивать или удалять всех клиентов из работающего vncserver без перезапуска сервера
  • убить xterm процесс в bash
  • Как убить скрипт, который запускает новые процессы?
  • Как убить два или несколько процессов с помощью одной команды kill?
  • bash + как хранить скрипты оболочки
  • Как я могу убить программу, запущенную из rc.local, когда Ctrl-C не работает?
  • Почему называется brk (0)?
  • One Solution collect form web for “Как создать псевдоним, чтобы убивать процессы, запущенные на порту TCP / IP?”

    Вы должны использовать функцию вместо псевдонима, алиасы becaue не поддерживают параметры, делают что-то вроде этого:

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

    Теперь поместите эту функцию в конфигурационный файл bash, например ~ / .bashrc, а затем запустите:

     source ~/.bashrc 

    И вы сделали

    НТН

    Linux и Unix - лучшая ОС в мире.