Это, скорее всего, связано с тем, что ~
не действует как переменная внутри двойных кавычек в сочетании с which
не выполняет собственное раскрытие тильды.
Используйте
PATH="$HOME/Dev/ProductivityScripts:$PATH"
вместо этого. HOME
— это переменная окружения и, как обычно, раскрывается в двойных кавычках. Учтите еще, что поскольку PATH
уже экспортирован, его не нужно экспортировать еще раз (через него не помешает ).
Дополнительная информация о тильде:Почему тильда (~)не раскрывается внутри двойных кавычек?
См. также Почему бы не использовать "который"? Что тогда использовать?
Достаточный синтаксис::
ss -atur '! dst localhost'
Хотя я бы предпочел использовать (, обратите внимание на пробелы между круглыми скобками и ключевыми словами):
ss -atur '! ( dst 127.0.0.1 or dst [::1] )'
Использование localhost имеет странное поведение :, в то время как в ss -atru '! dst localhost'
оно работает так, как ожидалось, если не в отрицании, по умолчанию используется IPv4, если только не используется ss -6
для отображения IPv6. или ss -46
для отображения обоих :Я ожидал, что по умолчанию будут отображаться оба.
Немного не хватает документации, как указано в этом Q/A . В мануале есть еще несколько примеров , но эта страница (, вероятно, использующая старую удаленную документацию ), более полезна:
https://www.cyberciti.biz/files/ss.html
(который также можно найти там :http://linux-ip.net/gl/ss/ss-node5.html, но приведенный выше формат одной плоской страницы кажется более полезным)