2

Допустим, у меня есть псевдоним:

alias findip='wget -q -O - checkip.dyndns.org|sed -e 's/.*Current IP Address: //' -e 's/<.*$//''

вывод будет выглядеть так:

matthew@ubuntu:~$ findip
71.141.232.38
matthew@ubuntu:~$

Очень просто, он находит мой IP-адрес, подключаясь к сайту и ищет мой IP-адрес. Теперь, если бы я должен был бежать:

tsocks wget -q -O - checkip.dyndns.org|sed -e 's/.*Current IP Address://' -e 's/<.*$//'

Я хотел бы получить вывод, как это:

matthew@ubuntu:~$ tsocks wget -q -O - checkip.dyndns.org|sed -e 's/.*Current IP Address: //' -e 's/<.*$//'
77.247.181.162
matthew@ubuntu:~$ 

Вы заметите, что IP-адреса разные. Это потому, что я перенаправил команду через tsocks , которые я настроил для использования tor. Но если бы я должен был бежать:

tsocks findip

Мой вывод будет такой:

matthew@ubuntu:~$ tsocks findip
exec: 87: findip: not found
matthew@ubuntu:~$ 

Мой вывод

Как настроить систему так, чтобы созданные псевдонимы применялись при запуске через tsocks?

1 ответ1

2

Псевдоним команды для себя, и конец псевдонима с пробелом:

alias exec="exec "
alias sudo="sudo "
alias tsocks="tsocks "

При этом bash автоматически tsocks findiptsocks wget -q ...

Как видно из документации Bash:

$ help alias
alias: alias [-p] [name[=value] ... ]
    ...
    A trailing space in VALUE causes the next word to be checked for
    alias substitution when the alias is expanded.

Это, однако, не относится к роли root (если вы не говорили об использовании sudo) и не может быть выполнено на уровне системного вызова exec () (псевдонимы являются полностью внутренними для bash).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .