Använd en annan proxy för ett enskilt shellkommando
Sätt proxyvariabler före ett kommando när du vill ha en tillfällig väg utan att ändra föräldrashellet eller redigera startfiler.
Du vill att en nedladdning ska använda en annan proxy och att allt därefter ska återgå till det normala. Du behöver inte redigera shellens startfil och hoppas att du kommer ihåg att ångra det.
För ett externt kommando i ett POSIX-likt skal sätter du tilldelningen före kommandot:
https_proxy=http://proxy.example:8080 curl https://example.com/
Använd HTTP-slutpunkten som är avsedd för den nedladdningen; HTTP-proxylistan erbjuder kandidater för tillåtna offentliga vägar. Tilldelningen ges till den kommandots miljö. Dess barnprocesser kan ärva värdet, men tilldelningen ersätter inte föräldrashellets befintliga värde när kommandot har avslutats.
Klienten avgör fortfarande vad som läses
Skalsyntax skapar en miljö; den tvingar inte fram en nätverksväg. Använd de variabelnamn som programmet stöder. Befintliga förbikopplingsvariabler, uttryckliga kommandoval eller programmets egen konfiguration kan fortfarande påverka resultatet.
Bash-miljödokumentationen förklarar kommandoprefixets beteende. Kommandon som är skalfunktioner, särskilda inbyggda kommandon eller skalsyntax kan ha ytterligare omfångsregler, därför använder det enkla exemplet ovan medvetet ett externt program.
För flera kommandon, använd ett subskal
(
export http_proxy=http://proxy.example:8080
export https_proxy=http://proxy.example:8080
command-one
command-two
)
Gruppen inom parentes körs med sin egen skalmiljö. Ersätt de illustrativa kommandonamnen med de program du tänker köra. Det här mönstret undviker den ömtåliga sekvensen att spara ett gammalt värde, skriva över det och återställa det för hand efter varje möjligt fel.
Håll hemligheter utanför exempel som kopieras till skalhistoriken. Kom också ihåg att sudo kan filtrera miljön; en variabel som är synlig för det yttre kommandot skickas inte automatiskt genom varje privilegiegäns. Tillfälligt omfång och det faktiska proxyvalet är fortfarande separata frågor.