问一个用法,关于 alias

2017-10-11 12:31:33 +08:00
 vjnjc

我有句常用命令,想做成 alias,命令是这样的sudo iptables -L -n | awk '$1=="REJECT" && $4!="0.0.0.0/0"

这句命令既有双引号也有单引号,我该怎么写成语句放在 bashrc 里面?比如alias ninja_f2b_all_ban_ip='sudo iptables -L -n | awk '$1=="REJECT" && $4!="0.0.0.0/0"' 这样写法是无效的。

alias 不能用的话,有其他方式吗?总不能写个 script 放在 /bin/ 吧。。。

2060 次点击
所在节点    Linux
2 条回复
zuolan
2017-10-11 13:10:28 +08:00
非要用 awk 的话可以这样(毕竟要解析$1、$4 双引号去不掉):

RESULT=$(sudo iptables -L -n | awk '$1=="REJECT" && $4!="0.0.0.0/0")
alias ninja_f2b_all_ban_ip="echo $RESULT"

换成 grep:

alias ninja_f2b_all_ban_ip="sudo iptables -L -n | grep 'REJECT' | grep -v '0.0.0.0'"
vjnjc
2017-10-11 13:27:31 +08:00
@zuolan 多谢分享~
第一种情况在 source ~/.bashrc 的时候就运行命令了,而不是我在输入 ninja_f2b_all_ban_ip 的时候。
第二种情况也不行,因为$5 总是 0.0.0.0
样本是这样的:
REJECT all -- 96.239.28.45 0.0.0.0/0 reject-with icmp-port-unreachable
REJECT all -- 59.45.175.67 0.0.0.0/0 reject-with icmp-port-unreachable
REJECT all -- 59.45.175.97 0.0.0.0/0 reject-with icmp-port-unreachable
REJECT all -- 221.194.47.242 0.0.0.0/0 reject-with icmp-port-unreachable
REJECT all -- 94.23.32.200 0.0.0.0/0 reject-with icmp-port-unreachable
REJECT all -- 89.234.157.254 0.0.0.0/0 reject-with icmp-port-unreachable
REJECT all -- 86.88.193.96 0.0.0.0/0 reject-with icmp-port-unreachable
REJECT all -- 86.201.8.190 0.0.0.0/0 reject-with icmp-port-unreachable
REJECT all -- 72.14.182.209 0.0.0.0/0 reject-with icmp-port-unreachable
REJECT all -- 59.63.166.104 0.0.0.0/0 reject-with icmp-port-unreachable
REJECT all -- 59.49.38.210 0.0.0.0/0 reject-with icmp-port-unreachable
REJECT all -- 59.45.175.98 0.0.0.0/0 reject-with icmp-port-unreachable
REJECT all -- 59.45.175.24 0.0.0.0/0 reject-with icmp-port-unreachable
REJECT all -- 58.218.198.144 0.0.0.0/0 reject-with icmp-port-unreachable
REJECT all -- 52.168.148.108 0.0.0.0/0 reject-with icmp-port-unreachable


最后我找了个 function 的方式,

function ninja_f2b_all_ban_ip() {
sudo iptables -L -n | awk '$1=="REJECT" && $4!="0.0.0.0/0"'
}

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/396727

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX