在 Unix / Linux 下设置/导出带有特殊字符的 http_proxy 密码
我的代理服务器密码包含特殊字符,例如 !、@ 等。当密码包含特殊字符时,如何在 Linux、macOS、FreeBSD、OpenBSD、NetBSD 或类 Unix 操作系统下设置和导出名为 http_proxy 或 HTTP_PROXY 的变量?
假设您的密码是F@o:o!B#ar$,那么您可以在 Unix 或 Linux 机器上按如下方式设置 http_proxy :
教程详细信息 | |
---|---|
难度等级 | 简单的 |
Root 权限 | 不 |
要求 | Linux 终端 |
类别 | 命令 |
操作系统兼容性 | BSD • Linux • macOS • Unix • WSL |
预计阅读时间 | 2 分钟 |
export http_proxy="http://user:F@oo!B#ar$@server1.example.com:3128/" export https_proxy="https://user:F@oo!B#ar$@server1.example.com:3128/"
您可能会因为特殊字符而收到错误。解决方案是使用十六进制的 unicode 字符。您可以使用 unum 或 gnome-character-map 等命令行工具将特殊字符转换为十六进制 unicode。
Unix/Linux 下如何设置 http_proxy 密码中包含特殊字符
unum 命令是一个免费的开源命令行实用程序。它允许您将十进制、八进制、十六进制和二进制数字 Unicode 字符和块名称以及 HTML/XHTML 字符实体名称相互转换。它可以用作 Linux 和 Unix CLI 用户的在线特定字符参考。让我们看一些例子:
示例
使用 unum 命令转换@:!#$为等效的十六进制 unicode :
这是我看到的:
$ unum '@:!#$'
Octal Decimal Hex HTML Character Unicode 0100 64 0x40 @ "@" COMMERCIAL AT 072 58 0x3A : ":" COLON 041 33 0x21 ! "!" EXCLAMATION MARK 043 35 0x23 # "#" NUMBER SIGN 044 36 0x24 $ "$" DOLLAR SIGN
在这个例子中,@变为%40,:变为%3A,等等。查找并将所有特殊字符替换为unicode十六进制。查找:
F@o:o!B#ar$
替换为:最后,使用导出命令
F%40o%3Ao%21B%23ar%24
以以下格式设置和导出http_proxy,HTTP_PROXY :
export http_proxy="http://user:F%40o%3Ao%21B%23ar%24@server1.example.com:3128/"
你也可以设置 https_proxy。然后测试一下:
$ curl -I https://www.example.com
$ wget https://www.example.com/
总结
解决这个问题有点棘手。但是,正如人们所说,Linux 和 Unix CLI 和 shell 用户总能找到解决任何问题的方法。多亏了 unum 命令。这是一个更简单的任务。请使用 man 命令/info 命令或 help 命令检查以下手册页:
$ man unum
$ man bash
$ man curl
$ man wget