Como definir e remover um proxy global com apenas um comando

1

Eu quero definir o proxy para o apt-get e o proxy global no xubuntu como aqui mas com apenas um comando. Como seria? Qual é o problema com este código? Salvei em ~/.functions adicione a linha . ~/.functions ao arquivo .bashrc e quando eu recarregar o arquivo .bashrc , erro na EOF na linha 7.

código correto:

myproxy="http://proxy.server:port/"
proxyhost="proxy.server"
myport=port

# Set Proxy
function setproxy() {
    sudo tee -a /etc/environment << EOF
    http_proxy="$myproxy"
    https_proxy="$myproxy"
    ftp_proxy="$myproxy"
    no_proxy="localhost,127.0.0.1,localaddress,.localdomain.com"
    HTTP_PROXY="$myproxy"
    HTTPS_PROXY="$myproxy"
    FTP_PROXY="$myproxy"
    NO_PROXY="localhost,127.0.0.1,localaddress,.localdomain.com"
EOF

    gsettings set org.gnome.system.proxy mode manual
    gsettings set org.gnome.system.proxy.http host "$proxyhost"
    gsettings set org.gnome.system.proxy.http port "$myport"
    gsettings set org.gnome.system.proxy.https host "$proxyhost"
    gsettings set org.gnome.system.proxy.https port "$myport"

    sudo tee /etc/apt/apt.conf.d/95proxies << EOF
    Acquire::http::proxy "http://$proxyhost:$myport/";
    Acquire::ftp::proxy "ftp://$proxyhost:$myport/";
    Acquire::https::proxy "https://$proxyhost:$myport/";
EOF
}

#Unset Proxy
function unsetproxy() {
    sudo rm /etc/environment
    sudo tee /etc/environment << EOF
    PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
EOF

    gsettings set org.gnome.system.proxy mode none

    sudo rm /etc/apt/apt.conf.d/95proxies
}
    
por Arturo 11.02.2015 / 12:51

2 respostas

1

Quando você usa heredocs, a string de limite heredoc ( EOF here) no final deve estar sozinha nessa linha - nada mais, nenhum espaço, recuo, etc. Portanto, seu código deve ficar assim:

    sudo tee /etc/apt/apt.conf.d/95proxies << EOF
    Acquire::http::proxy "http://$proxyhost:$myport/";
    Acquire::ftp::proxy "ftp://$proxyhost:$myport/";
    Acquire::https::proxy "https://$proxyhost:$myport/";
EOF
    
por muru 11.02.2015 / 14:46
0

Você pode não definir uma variável ambiental global como link sem ao menos reiniciar o shell. Você pode fazer uma das três coisas:

  1. Defina a variável para a sessão bash e execute seu aplicativo de internet do bash. %código%
  2. Configure a variável em DE, se ela suportar, e inicie o aplicativo em DE.
  3. Defina variável para usuário ou todo o sistema e reinicie o bash ou o relogin. %código%

Qualquer um pode ser realizado por um script, que é iniciado como um comando, mas esclarecer primeiro, o que você precisa?

    
por Barafu Albino 11.02.2015 / 13:01