0%

linux

1. ^M不可见字符

vim中输入CTRL+V CTRL+M, 而不是上箭号+M。
https://blog.csdn.net/kkwant/article/details/81501241

2. 启动本地TCP服务器

2.1 nc

Server listens on port 8000:

$ nc -l 8000
Client connects to port 8000:

$ nc localhost 8000

2.2 socat

socat TCP-LISTEN:6142,fork stdout

3. pkg-config

pkg-config一个帮助编译时指定编译依赖路径的工具,它可以避免硬编码参数。
pkg-config必须有一个.pc结尾的配置文件,读取这个文件产生指定值。
pkg-config如果需要指定用户的目录,需要导出PKG_CONFIG_PATH环境变量,这个变量会在pkg-config的默认搜索路径前生效。
查看pkg-config的默认搜索路径pkg-config --variable pc_path pkg-config.

1
pkg-config --libs libsodium //查找sodium的lib位置。

4. git 代理

set proxy for command

export http_proxy=http://127.0.0.1:7890
export https_proxy=http://127.0.0.1:7890
这里是对所有的command shell执行有影响,如果command使用了这个http_proxy的环境变量,就会失效。如果没有使用这个环境变量,不生效。

所以代理分3种情况:

  1. 如果软件使用了环境变量http_proxy,可以使用环境变量http_proxy来设置代理.
  2. 如果软件使用了自定义的代理配置文件或命令,如git,那么使用git的配置来设置代理。
  3. 如果软件既没有使用环境变量,又没有自定义的配置文件或命令,那么使用系统的代理,如Mac OS的http、https、socks代理, pac代理。TODO:我发现尽管开了pac代理,但是某些软件不会正常走代理,具体什么原因还不知道。

bundle exec fastlane或者 fastlane都是使用了环境变量http_proxy,https_proxy,符合上面的第一种情况。所以如果fastlane遇到代理问题,可以从代理日志文件或者抓包工具中找到有问题的URL,加入到PAC名单中。

代理分为Http代理,socket5代理,这个在配置可能只对对应的协议生效。所以配置代理时需要知道自己使用了何种协议。

PAC是服务端的配置,也可以本地读取。一个PAC文件包含一个JavaScript形式的函数“FindProxyForURL(url, host)”。这个函数返回一个包含一个或多个访问规则的字符串。用户代理根据这些规则适用一个特定的代理器或者直接访问。 当一个代理服务器无法响应的时候,多个访问规则提供了其他的后备访问方法。 浏览器在访问其他页面以前,首先访问这个PAC文件。PAC文件中的URL可能是手工配置的,也可能是通过网页的网络代理自发现协议(Web Proxy Autodiscovery Protocol)自动配置的。

git config

git 走代理的设置文件。
~/.gitconfig文件。

1
2
3
4
5
6
7
8
9
10
11
12
13
[alias]
st = status
co = checkout
ci = commit
br = branch
tip = log -1
[http]
postBuffer = 524288000
proxy = socks5://127.0.0.1:1080
[https]
proxy = socks5://127.0.0.1:1080
#[http "http://github.com"]
# proxy = http://127.0.0.1:7890