Linux

iptables list line numbers script iptables-save -bash: number-rules: command not found

  • February 4, 2022

我正在嘗試使用腳本來顯示iptables-save命令中的 iptables 行號。

該腳本取自此站點:https ://blog.oddbit.com/post/2018-02-08-listing-iptables-rules-with-li/

名稱如下number-rules

#!/bin/awk -f

state == 0 && /^-A/ {state=1; chain=$2; counter=1; printf "\n"}
state == 1 && $2 != chain {chain=$2; counter=1; printf "\n"}
!/^-A/ {state=0}
state == 1 {printf "[%03d] %s\n", counter++, $0}
state == 0 {print}

當我執行它會引發以下錯誤:

root@ergesttstsrv:~# iptables -S | number-rules
-bash: number-rules: command not found

我檢查awk

root@ergesttstsrv:~# which awk
/usr/bin/awk

並將腳本的第一行從 更改#!/bin/awk -f/usr/bin/awk -f,但仍然是同樣的錯誤。

有沒有更好的方法來做到這一點,iptables -nv -L --line-numbers或者腳本上的錯誤是什麼?注意我對 bash 很陌生。

您需要確保number-rules是可執行的,然後需要使用./從目前工作目錄執行它,因為它不在您的路徑中 - 所以iptables -S | ./number-rules

引用自:https://serverfault.com/questions/1092687