为每个命令添加一个命令(例如,默认情况下代理链每个命令)

AK_*_*AK_ 2 command-line bash proxychains

我怎样才能执行每一个预先附加另一个命令的命令?

我运行时的示例:

nmap -p 80 host
Run Code Online (Sandbox Code Playgroud)

我想让它运行

proxychains nmap -p 80 host
Run Code Online (Sandbox Code Playgroud)

即使我没有proxychains故意添加。

换句话说:我可以使用proxychains预先附加的别名一次所有命令吗?

如果这是我可以打开/关闭的东西,则奖励。

ilk*_*chu 6

在 下运行一个完整的 shell 会起作用proxychains吗?假设它可以正确处理由shell启动的进程。

你可以只做

$ proxychains bash
Run Code Online (Sandbox Code Playgroud)

并随意退出shell。


但是如果你真的想要,你可以滥用DEBUG陷阱(使用extdebugset)来破坏 shell 运行的命令。这将运行每个命令time

$ shopt -s extdebug
$ d() { eval "time $BASH_COMMAND"; return 1;  }
$ trap d DEBUG
$ sleep 2

real    0m2.010s
user    0m0.000s
sys     0m0.000s
$ trap - DEBUG         # turn it off, this still prints the 'time' output
Run Code Online (Sandbox Code Playgroud)

但这里棘手的部分是它也会影响内置函数,比如trapshopt它们自己,所以你可能想为那些添加一些例外......此外,像cd somedir这样的东西会变成proxychains cd somedir,这可能不起作用。这也会影响从函数等内部开始的所有内容。也许最好将该函数proxychains仅用于那些已知需要它的命令。