_ENVIRONMENT.md (4668B)
1 <!-- Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al. --> 2 <!-- SPDX-License-Identifier: curl --> 3 # ENVIRONMENT 4 The environment variables can be specified in lower case or upper case. The 5 lower case version has precedence. `http_proxy` is an exception as it is only 6 available in lower case. 7 8 Using an environment variable to set the proxy has the same effect as using 9 the --proxy option. 10 11 ## `http_proxy` [protocol://]<host>[:port] 12 Sets the proxy server to use for HTTP. 13 14 ## `HTTPS_PROXY` [protocol://]<host>[:port] 15 Sets the proxy server to use for HTTPS. 16 17 ## `[url-protocol]_PROXY` [protocol://]<host>[:port] 18 Sets the proxy server to use for [url-protocol], where the protocol is a 19 protocol that curl supports and as specified in a URL. FTP, FTPS, POP3, IMAP, 20 SMTP, LDAP, etc. 21 22 ## `ALL_PROXY` [protocol://]<host>[:port] 23 Sets the proxy server to use if no protocol-specific proxy is set. 24 25 ## `NO_PROXY` <comma-separated list of hosts/domains> 26 list of hostnames that should not go through any proxy. If set to an asterisk 27 '*' only, it matches all hosts. Each name in this list is matched as either a 28 domain name which contains the hostname, or the hostname itself. 29 30 This environment variable disables use of the proxy even when specified with 31 the --proxy option. That is 32 33 NO_PROXY=direct.example.com curl -x http://proxy.example.com 34 http://direct.example.com 35 36 accesses the target URL directly, and 37 38 NO_PROXY=direct.example.com curl -x http://proxy.example.com 39 http://somewhere.example.com 40 41 accesses the target URL through the proxy. 42 43 The list of hostnames can also include numerical IP addresses, and IPv6 44 versions should then be given without enclosing brackets. 45 46 IP addresses can be specified using CIDR notation: an appended slash and 47 number specifies the number of "network bits" out of the address to use in the 48 comparison (added in 7.86.0). For example "192.168.0.0/16" would match all 49 addresses starting with "192.168". 50 51 ## `APPDATA` <dir> 52 On Windows, this variable is used when trying to find the home directory. If 53 the primary home variables are all unset. 54 55 ## `COLUMNS` <terminal width> 56 If set, the specified number of characters is used as the terminal width when 57 the alternative progress-bar is shown. If not set, curl tries to figure it out 58 using other ways. 59 60 ## `CURL_CA_BUNDLE` <file> 61 If set, it is used as the --cacert value. This environment variable is ignored 62 if Schannel is used as the TLS backend. 63 64 ## `CURL_HOME` <dir> 65 If set, is the first variable curl checks when trying to find its home 66 directory. If not set, it continues to check *XDG_CONFIG_HOME* 67 68 ## `CURL_SSL_BACKEND` <TLS backend> 69 If curl was built with support for "MultiSSL", meaning that it has built-in 70 support for more than one TLS backend, this environment variable can be set to 71 the case insensitive name of the particular backend to use when curl is 72 invoked. Setting a name that is not a built-in alternative makes curl stay 73 with the default. 74 75 SSL backend names (case-insensitive): **gnutls**, **mbedtls**, **openssl**, 76 **rustls**, **schannel**, **wolfssl** 77 78 ## `HOME` <dir> 79 If set, this is used to find the home directory when that is needed. Like when 80 looking for the default .curlrc. *CURL_HOME* and *XDG_CONFIG_HOME* 81 have preference. 82 83 ## `QLOGDIR` <directory name> 84 If curl was built with HTTP/3 support, setting this environment variable to a 85 local directory makes curl produce **qlogs** in that directory, using file 86 names named after the destination connection id (in hex). Do note that these 87 files can become rather large. Works with the ngtcp2 and quiche QUIC backends. 88 89 ## `SHELL` 90 Used on VMS when trying to detect if using a **DCL** or a **Unix** shell. 91 92 ## `SSL_CERT_DIR` <dir> 93 If set, it is used as the --capath value. This environment variable is ignored 94 if Schannel is used as the TLS backend. 95 96 ## `SSL_CERT_FILE` <path> 97 If set, it is used as the --cacert value. This environment variable is ignored 98 if Schannel is used as the TLS backend. 99 100 ## `SSLKEYLOGFILE` <filename> 101 If you set this environment variable to a filename, curl stores TLS secrets 102 from its connections in that file when invoked to enable you to analyze the 103 TLS traffic in real time using network analyzing tools such as Wireshark. This 104 works with the following TLS backends: OpenSSL, LibreSSL (TLS 1.2 max), 105 BoringSSL, GnuTLS, wolfSSL and Rustls. 106 107 ## `USERPROFILE` <dir> 108 On Windows, this variable is used when trying to find the home directory. If 109 the other, primary, variables are all unset. If set, curl uses the path 110 **"$USERPROFILE\Application Data"**. 111 112 ## `XDG_CONFIG_HOME` <dir> 113 If *CURL_HOME* is not set, this variable is checked when looking for a 114 default .curlrc file.