Как установить и сбросить глобальный прокси только с одной командой

Я хочу установить прокси для Кв. - добираются и глобальный прокси в xubuntu как здесь, но только с одной командой. Как это было бы? Какова проблема с этим кодом? Я сохраняю его в ~/.functions добавьте строку . ~/.functions к .bashrc файл и когда я перезагружаю .bashrc файл дает ошибку о EOF в строке 7.

Правильный код:

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
}
1
задан 13 April 2017 в 15:24

2 ответа

При использовании heredocs предельная строка heredoc (EOF здесь) в конце должна быть отдельно на той строке - ничто иное, никакие пробелы, добавление отступа, и т.д. Поэтому код должен быть похожим на это:

    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
1
ответ дан 7 December 2019 в 16:24

Вы можете не , устанавливает глобальную переменную окружения как http_proxy, по крайней мере, не перезапуская оболочку. Можно сделать одну из трех вещей:

  1. переменная Набора для сессии удара и выполненный Ваше интернет-приложение от удара. http_proxy=8.8.8.8 ftp_proxy=8.8.8.8 firefox
  2. переменная Набора в DE, если это поддерживает и запускает приложение в DE.
  3. переменная Набора для пользователя или в масштабе всей системы и удар перезапуска или перевход в систему. http_proxy=8.8.8.8 ftp_proxy=8.8.8.8 bash firefox exit

Кто-либо может быть выполнен сценарием, который запускается как одна команда, но разъяснитесь сначала, в чем Вы нуждаетесь?

0
ответ дан 7 December 2019 в 16:24

Другие вопросы по тегам:

Похожие вопросы: