Все остальные ответы (до сих пор )касаются пакетов и двоичных файлов. Если вы имеете в виду «настольные приложения», которые появляются в вашем меню «Пуск», вы можете попробовать:
ls /usr/share/applications | awk -F '.desktop' ' { print $1}' -
Больше решений в другой вопрос .
Вся конфигурация ipfw
выполняется с помощью команды ipfw
. В вашем случае это завернуто в ${fwcmd}
и является заменой параметра(см. sh (0)параграфParameter Expansion
). Затем /etc/rc.firewall
можно рассматривать как sh
сценарий оболочки (с некоторыми дополнительными вспомогательными функциями ).
Тогда это так же просто, как:
cat list.txt | xargs -I BANIP ${fwcmd} add deny ip from BANIP to any
Файл list.txt
передается в xargs , который формирует команду. list.txt
должен содержать один IP-адрес или подсеть в каждой строке.
Пример:
122.228.19.80
185.234.219.65
92.118.38.57/24
185.36.81.143/24
Из вашего вопроса мы не можем понять, во что расширяется ${fwcmd}
. Это может быть так же просто, как ipfw
. Для использования в сценарии рекомендуется использоватьipfw -q
(см. ipfw (8 )), чтобы сделать его более надежным. Он создаст для вас таблицу при добавлении и изящно обработает добавление одного и того же адреса дважды.
Добавление целой кучи deny
правил, как описано выше, немного запутано. Будет намного чище, если вы поместите их в таблицу, а затем основываете правило на этой таблице.
Сначала мы создаем таблицу #1 и заполняем ее:
ipfw -q table 1 add 122.228.19.80
ipfw -q table 1 add 185.234.219.65
ipfw -q table 1 add 92.118.38.57/24
ipfw -q table 1 add 185.36.81.143/24
Затем мы используем таблицу в нашем правиле:
ipfw add deny ip from 'table(1)' to any
Затем мы используем тот же list.txt
, что и раньше. Затем мы можем очистить и перезагрузить таблицу на ходу:
ipfw table 1 flush
cat list.txt | xargs ipfw -q table 1 add
Описанное выше можно выполнить в командной строке во время игры.
И в контексте вашего сценария конфигурации это будет что-то вроде:
cat list.txt | xargs ${fwcmd} table 1 add
${fwcmd} add deny ip from 'table(1)' to any
Галочки вокруг table(1)
предназначены для того, чтобы оболочка не пыталась каким-либо образом интерпретировать ()
. Вы также можете сбежать от них. Тот же результат, но человеку немного сложнее читать.
${fwcmd} add deny ip from table\(1\) to any