각 명령에 대한 명령 추가(예: 기본적으로 각 명령을 프록시 연결)

각 명령에 대한 명령 추가(예: 기본적으로 각 명령을 프록시 연결)

다른 명령을 앞에 두고 각 명령을 실행하는 방법은 무엇입니까?

내가 실행할 때의 예:

nmap -p 80 host

나는 그것이 실행되기를 원한다

proxychains nmap -p 80 host

proxychains일부러 넣지 않았는데도 말이죠 .

즉, 모든 명령에 미리 추가된 별칭을 한 번에 추가할 수 있습니까 proxychains?

켜고 끌 수 있는 기능이면 정말 좋을 것 같아요.

답변1

에서 완전한 쉘을 실행할 수 있습니까 proxychains? 쉘에서 시작된 프로세스를 올바르게 처리한다고 가정합니다.

당신은 이것을 할 수 있습니다

$ proxychains bash

마음대로 쉘을 종료하십시오.


그러나 정말로 원한다면 DEBUG트랩( extdebugset 사용)을 남용하여 쉘이 실행하는 명령을 손상시킬 수 있습니다. 그러면 각 명령이 실행됩니다 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

trap하지만 여기서 까다로운 부분은 또는 그 자체 와 같은 내장 함수에도 영향을 미치기 때문에 shopt이에 대한 몇 가지 예외를 추가하고 싶을 수도 있습니다... 또한 이와 유사한 것은 가 cd somedir되어 proxychains cd somedir작동하지 않을 수 있습니다. 이는 내부 기능 등에서 시작하는 모든 것에 영향을 미칩니다. 아마도 이 기능이 proxychains필요한 것으로 알려진 명령에만 이 기능을 사용할 수 있도록 하는 것이 더 나을 것입니다 .

답변2

현재 세션에 대한 별칭을 만들기만 하면 됩니다.

alias nmap="proxychains nmap"

nmap을 작성할 때마다 "proxychains nmap"을 작성하게 됩니다. 다음 방법으로 끌 수 있습니다:

unalias nmap

이를 관리하기 위해 쉘 스크립트를 작성할 수도 있습니다. 이것을 bashrc에 추가하십시오.

function prefix {
if [ $2 != "with" ]; then
    echo "You have to prefix something with something"
    return
fi
echo "alias $1 = $3 $1"

alias $1="$3 $1"
}
function unprefix {
    alias $(alias $1 | sed "s/=.\b.*\b /='/g")
}

그래서 당신은 이것을 할 수 있습니다 :

prefix nmap with proxychains
unprefix nmap

관련 정보