Você quer que um download use um proxy diferente e, depois, que tudo volte ao normal. Não é preciso editar o arquivo de inicialização do shell e torcer para lembrar de desfazer.

Para um comando externo em um shell no estilo POSIX, coloque a atribuição antes do comando:

https_proxy=http://proxy.example:8080 curl https://example.com/

Use o endpoint HTTP previsto para esse download; a lista de proxies HTTP oferece candidatos para rotas públicas permitidas. A atribuição é fornecida ao ambiente desse comando. Seus processos filhos podem herdar o valor, mas a atribuição não substitui o valor existente do shell pai após o término do comando.

O cliente ainda decide o que ler

A sintaxe do shell cria um ambiente; ela não impõe uma rota de rede. Use os nomes de variável que a aplicação suporta. Variáveis de desvio existentes, opções explícitas do comando ou a configuração da própria aplicação ainda podem afetar o resultado.

A documentação de ambiente do Bash explica o comportamento do prefixo de comando. Comandos que são funções do shell, comandos internos especiais ou sintaxe do shell podem ter regras de escopo adicionais, por isso o exemplo simples acima usa deliberadamente um programa externo.

Para vários comandos, use um subshell

(
  export http_proxy=http://proxy.example:8080
  export https_proxy=http://proxy.example:8080
  command-one
  command-two
)

O grupo entre parênteses é executado com seu próprio ambiente de shell. Substitua os nomes de comando ilustrativos pelos programas que pretende executar. Esse padrão evita a sequência frágil de salvar um valor antigo, sobrescrevê-lo e restaurá-lo à mão após cada possível falha.

Mantenha segredos fora dos exemplos copiados para o histórico do shell. Lembre também que sudo pode filtrar o ambiente; uma variável visível para o comando externo não é transmitida automaticamente através de cada limite de privilégio. Escopo temporário e escolha real do proxy continuam sendo questões separadas.

Artigos relacionados