SSL vs TLS SSL是TLS的前身 > SSL: Secure Socket Layers,安全套接字层协议 TLS: Transport Layer Security,安全传输层协议 SSL是TLS的前身,SSL发展到一定阶段后改名为了TLS,两者的版本衔接为: 1. SSL 1.0, 1995年以前,没有发布过 2. SSL 2.0, 1995年 3. SSL 3.0, 1996年 4. TLS 1.
SSH known_hosts作用 本地的SSH服务连接一台服务器时,会将那台服务器的公钥记录在 known_hosts中,下次再访问同一台服务器时,SSH 会进行核对,如果两次的公钥不一致,会报错:WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!
go go测试代码覆盖率 cover参数 go test -cover ... 会输出测试覆盖率 coverprofile参数 go test -coverprofile=coverage.out Go会将测试结果输出的 coverage.out 文件中。然后,可使用go tool查看结果: go tool cover -html=size_coverage.out
Docker 基于Alpine镜像的 Filebeat Dockerfile docker pull liaojl/filebeat:latest FROM alpine:3.8 RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories && apk update ENV FILEBEAT_VERSION=6.5.4 RUN apk
github 【Github】如何下载开源项目的Wiki 在项目地址后面增加后缀.wiki.git,然后clone即可 git clone https://github.com/ethereum/go-ethereum.wiki.git
ubuntu 【TMux】复制窗口内的文本 首先创建文件:~/.tmux.conf 输入内容: cat >> ~/.tmux.conf << EOF set-window-option -g mode-keys vi EOF 重新加载tmux配置文件: tmux source-file ~/.tmux.conf 之后进入你的tmux窗口,按照以下步骤操作: ctrl+b 空格 移动光标 Enter 即可复制文本内容。
mosh 【mosh】mosh-server报错:mosh-server needs a UTF-8 native locale to run. 解决方案: LC_ALL="en_US.UTF-8" mosh-server 客户端连接 LC_ALL="en_US.UTF-8" mosh @
Markdown 让Markdown支持LaTex 在文档的开头加上: 然后就可以写公式了。 比如行内公式:$a=1$,会渲染为 $a=1$ 比如单独一行的公式:$$ x^2 + y^2 = \frac{z}{2} $$,会渲染为: $$ x^
金融 夏普比率计算 夏普比率的计算公式为: $$sharpe;ratio= \frac{(R_p - R_f)}{σ_p}$$ * $R_p$ : 回报率平均值 * $R_f$ : 无风险利率 * $σ_p$ : 回报率标准差 下面,开始实践计算。 首先,假设你 $N$ 天的累计回报序列为 ${?_?∣?=0,1,...,?−1}$。 计算回报率: $$r_i=\frac{
golang [Golang] go test 禁用缓存 两种方法 1. GOCACHE go version在1.10以上,但在1.11以上时,这个变量会让go mod不可用 GOCACHE=off go test ... 2. count参数 go test -count=1 ...
golang [Golang]在for循环中给匿名goroutine传入局部变量 给匿名参数传入此局部变量即可,否则每次调用的都是变量的当前值。 如下: for i, item := range items { go func(item int) { // do something }(item) }
add-apt-repository command not found – Debian & Ubuntu sudo apt-get install -y software-properties-common
python Could not find suitable distribution for Requirement.parse('incremental>=16.10.1') [https://996.icu] 安装Twisted时报错。 解决办法: pip install --upgrade incremental pip install twisted
ubuntu Ubuntu SSH公钥登录 SSH公钥登录步骤: 生成公私钥: ssh-keygen 打开~/.ssh cd ~/.ssh ls 可以看到两个文件: id_rsa id_rsa.pub 前者是私钥,后者是公钥。 接下来,将公钥加入~/.ssh/authorized_keys echo -e `cat id_rsa.pub` >> ~/.ssh/authorized_keys 把私钥id_rsa拷贝下来到自己的电脑里,windows用户通过SSH软件连服务器时,
openssl 将OpenSSL的pem公钥转化为SSH的RSA格式 很简单,使用ssh-keygen,如下: ssh-keygen -f pub1key.pub -i ssh-keygen会以OpenSSL的格式读取文件,然后以OpenSSH的格式输出。 还可以通过-m参数指定输出格式。 * RFC4716 RFC 4716/SSH2 公私钥 * PKCS8 PEM PKCS8公钥 * PEM 公钥 用法如下: ssh-keygen -f pub1key.pub -i -mPKCS8
NFS HDFS和NFS的区别 NFS (网络文件系统): 允许多个客户端通过网络进行文件访问的协议。NFS客户端允许文件能像在本地一样被访问,即便真实文件是在网络上另一台机器的磁盘上。 HDFS (Hadoop 分布式文件系统): 分布在许多联网计算机或节点上的文件系统。 HDFS具有容错性,因为每份数据都会有多个副本,默认会有三个。 所以,最大的区别就在于容错性。HDFS设计初衷就是容错,而NFS没有内置任何容错功能。 除了容错性以外,HDFS的多副本机制减轻了常见的多客户端访问单个文件的瓶颈问题。因为文件有多个副本在不同的物理磁盘上,所以HDFS的读取性能会优于NFS。
shell shell脚本参数读取 shell参数读取实例: #!/usr/bin/env bash # u参数表示是否大小,m参数表示要输出的信息 usage() { echo "Usage: $0 [-u] [-m ]" 1>&2; exit 1; } # getopts 解析脚本命令行选项 while getopts ":um:" o; do case "${o}" in u) upper=true ;; m) msg=${OPTARG}
shell shell脚本if参数大全 shell 编程中使用到得if语句内判断参数 –b 当file存在并且是块文件时返回true -c 当file存在并且是字符文件时返回true -d 当pathname存在并且是一个目录时返回true -e 当pathname指定的文件或目录存在时返回true -f 当file存在并且是文件时返回true -g 当由pathname指定的文件或目录存在并且设置了SGID位时返回为true -h 当file存在并且是符号链接文件时返回true,该选项在一些老系统上无效 -k 当由pathname指定的文件或目录存在并且设置了“粘滞”位时返回true -p 当file存在并且是命令管道时返回为true -r 当由pathname指定的文件或目录存在并且可读时返回为true -s 当file存在文件大小大于0时返回true -u 当由pathname指定的文件或目录存在并且设置了SUID位时返回true -w 当由pathname指定的文件或目录存在并且可执行时返回true。一个目录为了它的内容被访问必然是可执行的。 -o
数字证书 什么是数字证书 打个比方,有两个小朋友在网上相互发消息,名字分别是小明和小红,小明想要给小红发个消息,但是呢,又担心发的消息被别人修改,就像信件被邮局修改那样。所以呢,小明想了个办法。给数据“签个名”,然后小红同学呢,就验证这个数据的签名是不是小明同学的,如果是,那么数据没有被修改。那怎么签名呢? 数字签名 联想到现实中,我们一般是手写个签名或者给信件盖个章,如果大家有一点经验的话,应该看到过这种盖章,就是把章盖在信件重要内容上。如下: 这种盖章的好处是什么呢?很简单,因为如果要改变内容的话,就一定会改变盖的章 ,所以,小红就可以轻易地检测出信件是否被修改过。好,这是现实情况。在数据的世界里怎么办呢?怎么给数据“
clojure Clojure安装与入门 clojure是lisp语言在java上的方言,clojure视代码为数据,且拥有一套lisp宏系统。 Clojure提倡不可变性与持久数据结构,并鼓励程序员显式地管理标识及其状态。对利用不可变值及显式时间进展构造进行编程的专注旨在促进更加健壮的(尤其是多线程)程序的开发。 Clojure的类型系统是完全动态的,但人们近期也开始探索其基于渐进类型化的实现。 安装 Leiningen 这是一个用于管理、运行clojure的工具。 Mac/Linux wget https://raw.githubusercontent.com/technomancy/leiningen/stable/bin/lein chmod 755 ./lein sudo ./lein /usr/bin/