非对称加密需要公钥和私钥:
你的公钥的作用:别人用来给你发加密的信息(公钥加密)&别人验证你的签名(公钥解密),即加密&验证(别人来做)
你的私钥的作用:你用来创建签名(私钥加密)&解密别人发给你的信息的(私钥解密),即解密&签名(你来做)
具体而言,Alice要想发送加密信息到Bob,则:
Alice有Alice的签名私钥和Bob的加密公匙
Bob有Alice的签名公匙和Bob的解密私钥
使用GPG可以很好的演示这一点:
1 | gpg (GnuPG) 2.1.11 |
你的公钥的作用:别人用来给你发加密的信息(公钥加密)&别人验证你的签名(公钥解密),即加密&验证(别人来做)
你的私钥的作用:你用来创建签名(私钥加密)&解密别人发给你的信息的(私钥解密),即解密&签名(你来做)
具体而言,Alice要想发送加密信息到Bob,则:
Alice有Alice的签名私钥和Bob的加密公匙
Bob有Alice的签名公匙和Bob的解密私钥
1 | gpg (GnuPG) 2.1.11 |
Linux 中每个进程维护了一个文件描述符表,如 shell 终端,默认有三个文件已打开,他们的文件描述符和文件对应关系为:
1 | fd 0: /dev/stdin -> /proc/self/fd/0(前者是指向后者的软链接,下同) |
所以在该 shell 中创建新的的文件的描述符就从3开始。
用于输入输出重定向使用的文件描述符大于9,所以安全可用的自定义文件描述符范围就是:3-9
因为 Bash 文档 里有这样一句话:
Redirections using file descriptors greater than 9 should be used with care, as they may conflict with file descriptors the shell uses internally.
1)输入输出重定向
2)复制输入输出文件描述符
3)移动输入输出文件描述符
4)关闭文件描述符和同时读写文件
5)将已重定向的输入/输出恢复到标准输入/标准输出
原文:https://www.cnblogs.com/mahocon/p/5691348.html
本文翻译自:https://www.happyassassin.net/2014/01/25/uefi-boot-how-does-that-actually-work-then/
首先,我们了解一些术语。BIOS 和 UEFI 都是计算机的 固件
类型。BIOS 固件(主要)用于 IBM PC 兼容计算机。UEFI 的通用性更强,可用在非“IBM PC 兼容”系列的计算机上。
不存在“UEFI BIOS”。没有任何一台计算机会有“UEFI BIOS”。BIOS 不是所有 PC 固件的通用术语,它只是 PC 固件的一种特定类型。计算机中包含固件。如果你有一台 IBM PC 兼容计算机,那么固件几乎肯定就是 BIOS 或 UEFI。如果你运行的是 Coreboot
,那么恭喜,你是个例外,引以为傲吧。
安全启动 (Secure Boot) 与 UEFI 不是同一个概念。请不要将这些术语混淆使用。安全启动 (Secure Boot) 实际上是 UEFI 规范的一项可选功能,于 UEFI 规范版本 2.2 引入。我们稍后会详细讨论安全启动 (Secure Boot) 到底是什么,但是目前而言,只需要记住它和 UEFI 不同即可。
UEFI 不是由微软开发的,也从来不受微软控制。它的前身和基础——EFI,是由 Intel 开发和发布的。UEFI 由 UEFI 论坛 进行管理。微软是 UEFI 论坛的成员之一。
一般情况下,sh
是指向 bash
的链接。查看 bash 的手册页可知,bash 作为 sh 运行时,相当于 bash --posix
,即 sh 以符合 POSIX 标准的方式来运行。
在一次使用脚本的过程中,发现脚本中 alias
命令设置的别名始终无效。后来查资料发现,bash
和 sh
运行脚本的结果是不同的。
默认情况下,bash 运行非交互式 shell 时,是关闭 alias
别名扩展功能的,而脚本就是非交互式 shell。但是,sh 同样的情况下是开启别名扩展功能的。
① 使用 sh 运行脚本。
② 在脚本文件中显式地指出开启别名扩展功能,方法:
1 | # 在脚本的 alias 命令之前添加如下命令 |
默认情况,Git 会使用 ~/.ssh/id_ecdsa
来登录远程仓库,比如登录 github.com
。我这里使用的是 ecdsa
算法,所以是 id_ecdsa
。
怎么样使用指定的密钥呢?比如使用 id_ecdsa_123
。创建 ssh 配置文件 config
即可:
1 | vim ~/.ssh/config |
配置文件的含义:
Host github.com
:指定一个主机HostName github.com
:上面指定的主机的主机名User git
:登录该主机的用户名,如果是登录 github.com
,就必须是 git
IdentityFile ~/.ssh/id_ecdsa_github
:关键配置,这里指定了使用哪个私钥文件IdentitiesOnly yes
:它指示 ssh 仅使用在命令行上指定的私钥文件或在 config
文件中配置的私钥文件下文的所有命令都在普通用户下执行,因此有些命令前会有
$
号,系统是Debian 9.6
,Git 版本是git version 2.11.0
。本文参考:Pro Git v2 CHS 的第1章,第2章。
已提交(committed)、已修改(modified)、已暂存(staged)
有三种状态,相应的就有三个概念:Git 仓库、工作目录、暂存区域
已提交对应 Git 仓库,已修改对应工作目录,已暂存对应暂存区域。
① 修改文件:在工作目录中修改文件。
② 暂存文件:将文件的快照放入暂存区域。
③ 提交更新:找到暂存区域的文件,将快照永久性存储到 Git 仓库目录。
Git 不像其他版本管理系统,比较文件的差异并记录下来,Git 是直接记录文件的快照。因此 Git 更像是一个小型的文件系统,它把数据看作是对小型文件系统的一组快照。文件系统快照可以理解成是,对文件或目录的修改(不论是增,删,改)记录快照,下次就能恢复到原样。它恢复的信息是很全面的,不仅有文件的数据,还可以有文件或目录的元数据,比如创建时间,修改时间等等。
Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.