TLS (童锣烧)

教程大全 2025-07-09 05:49:31 浏览

TLS/SLL 是现在网络安全通信比较重要的一环,通过一些列的 key 交换和 key 生成,最终确立加密通道的整个流程。众所周知,TLS/SSL 耗费的时间也是挺可观的,相对于 TCP 的3次 RTT 来说,如果加上 TLS/SSL, 则总的 RTT 时间至少为 4 次。虽然看起来很多,但如果相对于现在的网络环境来说,大概也就每次 20~30ms,这样算下来,估计也就 100ms 左右。这样的时间差还是可以忍受的,不过,这里还没算入 DNS 解析,这个暂时不考虑。而且,TLS/SSL 生成的 sessionkey 如果在有效期内的话,那么这个时间就可以完全忽略掉了。不多说了,我们直接来看下 TLS/SSL 的基本内容。

TLS 算法

TLS/SSL 其实就是通过非对称加密,生成对称加密的 sessionkey 的过程。对称加密的算法无外乎就 AES,或者使用 Cipher/Decipher 模块。而非对称加密常用的就是 RSA,不过也有使用 Diffie-Hellman (迪菲)。但,较安全性来说,DH 要高一些。因为,RSA 在生成 sessionkey 时,最后是由 browser 生成,然后通过 public key 加密后传给 get="_blank">Server 的,这样存在一定的问题是,如果 hacker 得到了 private key,那么,他可以全程监控流量,然后使用 private key 进行解密,那么可想而知,sessionkey 也就暴露了。

但对于 DH 来说,它机制的不同点在于,sessionkey 不会通过网络传输,而是在两端独立生成的。ok~ 这就涉及到两个 key 的一致性问题。DH 还有一个机制,即,前向安全性(perfect forward secrecy–PFS):server 端的 private key,不能用来代替以前任何一把的 sessionkey,所以,也无法破解以前任何一次的 session 内容。每次连接,DH 都会重新生成一个 key,并且当该次 session 结束时,丢弃它。不过,这并不是很大的问题,因为 DH 能很快的生成 key。因为它耗费在网络上的时间相比于 RSA 来说少了一半。可以从下图简单了解 DH 的加密算法:

简单来说,两边通过一次的信息交换,完成了密钥生成。因为 sessionkey 是独立放在两端的,为了达到一致性,每次连接时,DH 都需要重新协商生成 sessionkey。现在有个问题是: 为什么一定要有 session key,他存在的意义是什么?

sessionkey 用途

TLS/SSL 其实就是通过非对称加密,生成对称加密的 session key 的过程

那 session key 主要又干了什么呢?首先,我们要先明确,session key 是用来进行对称加密的,这种加密方式主要使用到的是 AES 加密算法。这不同于 Elliptic Curve Diffie-Hellman (ECDH) 这种非对称加密算法。两者其实都可以用来对信息进行加密,但由于算法内部的实现机理不同,他们所用的时间也是不一样的。基本上是,ECDH 所用的时间是 AES 的 3 倍。

你可以自行测试一下:

ok,上面大概简述了 TLS/SSL 所用到的算法。接下来,我们来了解一下,具体 TLS/SSL 密钥交换的过程。

TLS/SLL 过程

在详述过程之前,我们需要了解一下,在过程中会出现的内容。

相信大家对这张图已经很熟悉了:

不过,上面不是说了有两种不同的非对称加密方式吗? RSA & DH? 那为什么图只是一个嘞?

ok,实际上这图没错,他并没有把传输的内容是什么写出来,这很关键。而两种算法也是在传输内容上区分开的,基本的过程是完全一样的。根据 wiki 的解释,我们大概能知道整个传输过程需要的内容。

上面主要是根据 RSA 加密方式来讲解的。因为 RSA 才会在 TLS/SSL 过程中,将 pre-master secret 显示的进行传输,这样的结果有可能造成,hacker 拿到了 private key 那么他也可以生成一模一样的 sessionKey。即,该次连接的安全性就没了。

接下来,我们主要讲解一下另外一种加密方式 DH。它和 RSA 的主要区别就是,到底传不传 pre-master secret。RSA 传而 DH 不传。

根据 cloudflare 的讲解可以清楚的了解到两者的区别:

这是 RSA 的传输方式,基本过程如上述。

而 DH 具体区别在下图:

这里先补充一下 DH 算法的知识。因为,pre-master secret 就是根据这个生成的。DH 基本过程也不算太难,详情可以参考 wiki。 它主要运用到的公式就是:

为了防止在 DH 参数交换时,数据过大,DH 使用的是取模数的方式,这样就能限制传输的值永远在 [1,p-1]。这里,先说明一下 DH 算法的基本条件:

基本流程就是:

我们只要把上图的 DH parameter 替换为相对应的 X/Y 即可。而最后的 Z 就是我们想要的 Premaster secret。 之后,就和 RSA 加密算法一致,加上两边的 random-num 生成 sessionKey。通过,我们常常称 DH 也叫作 Ephemeral Diffie-Hellman handshake。 因为,他每次一的 sessionKey 都是不同的。

而 RSA 和 DH 两者之间的具体的区别就在于:RSA 会将 premaster secret 显示的传输,这样有可能会造成私钥泄露引起的安全问题。而 DH 不会将 premaster secret 显示的传输。

TLS/SSL 中的基本概念

上面内容大概讲清楚了基本的 TLS/SSL 的加密过程。不过,其中,还有很多其他的小细节,比如 SNI,ALPN,Forward Secrey。 接下来,我们主要将这些细节将一下,因为他们其实也很重要。

Forward Secrey

FS(Forward Secrey) 主要是针对 private key 进行描述了。如果你的 private key 能够用来破解以前通信的 session 内容,比如,通过 private key 破解你的 premaster secret ,得到了 sessionKey,就可以解密传输内容了。这种情况就是 non-forward-secrey。那如何做到 FS 呢? 很简单,上文也已经提到过了,使用 DH 加密方式即可。因为,最后生成的 sessionKey 和 private key 并没有直接关系,premaster secret 是通过 g(ab) mod P 得到的。

简单的说就是,如果你想要启用 FS,那么你应该使用的是 DH 加密方式,而放弃 RSA。不过,由于历史原因(TLS 版本问题),RSA 现在还算是主流的加密方式。但,DH 也凭借他 5S 的安全性,份额也在增加。

ALPN 全称是 Application Layer Protocol Negotiation(应用层协议协商机制)。看到应用层,程序员们应该都能反应出 OSI 7层网络协议。在应用层中,HTTP 协议应该是重点。不过,由于 HTTP 版本的问题,以及现在 HTTP2 的流行,为了让 client-server 使用相同的协议而出现了 ALPN。ALPN 实际上是从 SPDY 中的 NPN 协议衍生出来的。不过,它们俩的机制正好相反。

总的来说,NPN 已经退出历史的舞台了。。。ALPN 现在是 IETF 指定的标准协议。ALPN 在 TLS 具体的过程是:

SNI 的全称为:Server Name Indication。该机制的提出的意义是,当有一个 server 同时处理了很多个 host 时。相当于,一个 IP 映射多个域名,但,由于证书只能对一个 3 级域名有效,所以,针对于多个 host 来说,server 为了能同时兼顾这些域名。一种简单的办法就是重定向到指定域名,如果都想支持的话,也行,掏钱自己多买几个证书 (真土豪)。如果,你很土豪的话,现在就有这样的情况,一个 IP 服务器 下,搭载了支持多个域名的 server,并且每个域名都有合法的 CA 证书。那么,server 怎么判断,哪一个域名用哪一个证书呢?这时候,就需要用到 SNI。相当于在 TLS 阶段,将 host 一并发送过去,然后 server 就知道在 serverhello 阶段该返回啥证书了。

现在,有个问题,为什么一定要用 SNI 呢?

我们回想一下,这里我们仅仅只是建立 TCP + TLS 连接,客户端的一些内容,比如 hostname,我们并不能在 TCP 中获得。而,想要获得的话,就需要等到 HTTP 阶段,获得 client 传过来的 host 或 origin 字段。所以,为了解决这个比较尴尬的点,就提出了 SNI。

Session Resumption

感觉能看到这里的人,应该都是闲的蛋疼的人。。。如果让我来看这篇文章,估计看几张图,我基本上就直接关网站了。因为,这实在是复杂。并且,上面说的只是协议上的复杂性,对于计算机来说,只需要记下每一次该发什么东西而已,但真正让 Computer 感到蛋疼的是,key 的计算。特别是 random key 和 premaster secret 动不动就是 32B,48B 的数据量。所以,为了真正减少计算机的工作量(实际上是 server),提出了 Session ID 和 Session Tickets,来将成功进行连接的 session 内容缓存起来。

Session ID 是 server 将上一次成功连接的 session 内容存在自己的硬盘里面。这里,就不涉及对 session>

Session Ticket

既然 Session ID 是为了解决网络时延和计算机性能问题,那么 Session Ticket 又干了什么呢?

Session Ticket 和 Session ID 做的也是同样的事情,server 将最新一次的 sesion>

那这么多证书,我们用的是哪一个呢?当然是,最下面那个。因为每个证书并不是都被信任,所以客户端首先就要了解一下,你这个证书能否用来进行验证。如果不行的话,那么你这次连接就是不被信任的,就没有绿色的小锁。这就需要了解一下,客户端的验证过程。

CA 链式验证

首先,什么叫做可信的证书呢?

我们先要明白一个道理,HTTPS 是先建立在人与人之间的相互信任上,然后才建立在机器与机器的相互信任上。假如,根证书 A 机构,恶意的将一个以前颁发过的证书,又给了另外一个不要脸拦截站点(比如,用来插广告的)。这样,我拿到了这个证书后,就可以自己搭一个服务器,用来进行拦截浏览,监管里你网站,并强行插广告。这就被称为不可信的机构/证书。

而验证的可行性,通常又跟机构的权威性有着极大的关系。它基本的验证过程简述就是(按照上面的层级):

如果上述任一步骤出现问题,那么该次 TLS/SSL 就不会进行,会回退。那么它们在询问的时候,会不会发送网络请求呢?不会~ 因为,电脑在初始化时,会自带很多可信任的证书机构(即,Root CA),也就是我们刚刚提到的 VeriSign Class 3 的证书机构。以及,能够签发证书的二级机构(比较少)。到时候,浏览器会自动的根据数字签名来进行证书的验证。

CA 合法验证

上面已经阐述了,CA 证书的合法性是自下而上的验证方式。那么它们具体验证协议是怎样的呢?在说之前,我们先说几个概念:

CA 验证首先需要说一下它的颁发过程:

然后,验证过程就是根据这个来的:

而上面的三级证书层级,也是同样的道理,自上而下的找就 ok。当然,有时候为了验证的速度,会做一些缓存,这样就不必再进行验证了。所以,根据上面的描述,有童鞋可能会想到,能不能自签证书呢?反正,浏览器也是从本地找的。

当然可以,openssl 就可以生成你自己的 CA。不过需要注意的是,你生成的 CA 只是在你自己的电脑上使用,如果你想保证你的 CA 在其他电脑上也能使用的话(这是不可能的),那就用钱砸就 ok。

具体的过程可以参考:生成自己的 CA 证书。

以前,在使用 Charles 和 Fiddler 的时候,一直在想,它们是怎么做到,将自己的证书,变成签发机构证书。

后来发现,它是把证书中的相关字段该成它的证书内容。不过,对于某些高级证书,还是会有一些问题,比如,wx.qq.com(微信的)

另外,为了证书的可靠性,提出了 Certificate Transparency 项目,实际上,就是让证书机构公开它的签发流水。防止出现重复签发。

TLS

证书的吊销

现在有个问题,为什么证书有过期时间呢?

这同样是为了安全性,前面说过,如果你的证书发生了泄漏(实际上就是私钥)。那么,其他服务器就可以作为一个代理去拦截你的流量。这时候,由于过期的原因,可能一段时间后,中间恶意的服务器就没用了,另外,如果你发现了你遗失了证书,可以向颁发机构去挂失。

另外,还有一个原因是证书吊销的 CRL 机制。简单来说,就是有一个列表来记录当前时间,该颁发机构被吊销的证书 list。如果,没有过期时间的话,那么这个 list,会随时间程指数增长,引入过期机制的话,该 list 只要记录当前没过期但吊销的证书信息即可。

证书的吊销有两种机制:CRL,OCSP

CRL(Certificate Revocation List),即,证书吊销列表。CA 机构会生成一个列表,列表里面是当前周期被吊销证书的序列号,当进行证书验证时,同样也会进行验证该项。如果,已经是吊销证书的话,那么该次 TLS/SSL 连接也会失败。我们可以从证书信息中找到 CRL URI:

该协议虽然简单,但,缺陷还是比较多的。

下载时间。因为该 list 不是自带的,需要从颁发机构下载,这就造成了网络时延。

缓存时间。如果存在缓存,就存在了信息不同步的问题,如果一个证书已经过期,但缓存中显示的是未过期,那么也是一个安全问题。

OCSP(Online Certificate Status Protocol),即,在线证书状态协议。它通过在线请求的方式来进行验证,不需要下载整个 list,只需要将该证书的序列号发送给 CA 进行验证。当然,验证通过也会有一定的缓存期。不过,由于验证也会存在时延。另外,部署 OCSP 对 CA 也有一定的要求,CA 要搭建的一个服务器来接受验证,并且,该服务器的性能要好(负载很大)。

OCSP stapling

OCSP stapling 常称为: TLS Certificate Status Request extension。是 OCSP 的另外一种实现方式,因为前两个(OCSP,CRL)都是由客户端去验证证书是否吊销,并且都会发送请求。而 OCSPs(OCSP stapling)则是直接在 server 端,进行证书的有效性验证。server 会周期性的向 CA 机构发送请求,验证有效性,并在 certificate 阶段,发送相应的签名信息。不过,该协议是建立在,我们完全信任 serve 的情况下,这里就排除了一些恶意的中间服务器。详情可以参考:OCSP stapling。

TLS/SSL 优化

TLS/SSL 主要的性能调优简单包括:启用 False Start, OSCP Stapling, 选择合适 cipher suite, resumption 等。另外,如果你追求fashion, 那么 HTTP/2 应该是个不错的选择。

想要做 TLS/SSL 优化,那么你必须了解,TLS/SSL 握手的整个过程是什么。当然,你可以买个证书,从头自己搭建一个服务器,但是,这样只能证明 你很有钱 外,其它也证明不了什么。因为,这完全可以自己内网搭一个呀~ 可以参考:10s 自建证书. 这里,我们结合 nginx 来具体对 TLS/SSL handshake 优化,做个整体的阐述。

设置 session 缓存

session 缓存设置可以让两次的 RTT,变为一次,这相当于快了一倍(不包括,密钥计算等)。不同的 server 设置 session 的办法有很多,这里以 nginx 为例。在 nginx 中,支持的是 Session ID 的形式,即在 server 中缓存以前 session 的加密内容。涉及的字段有两个,ssl_session_cache 和 ssl_session_timeout。

看个 demo 吧:

表示的意思是:session cahce 会在不同的 worker 之间分享,假设 1MB 只能存储 8000 次握手的信息。那么, 10 MB 一共可以存储 80000 次握手信息。如果超出,则不会存储。缓存信息存在时长为 20分钟。

另外,你也可以开启 session ticket。ST(session ticket) 需要一个sign 参数,使用 openssl 创建即可。

选择合适的 cipher suite

这里先声明一下,你的证书的内容和你的加密套件实际没有半毛钱关系,这主要还是取决于你的服务器的支持程度以及客户端的支持度。另外,如果你想启用 False Start,这也可套件的选择有很大的关系。我们来看一下如果设置吧。在 nginx 中,主要用到两个指令:

支持性最高的就是使用:

一般情况,还是应该自己来决定使用哪一个套件,这样安不安全由自己说了算。具体可以参考 mozilla 的套件配置。这里简单放一个,比较安全的,下面所有的套件都必须支持 Forwar Secrecy

不过,以下的加密套件,最好不要使用,因为基本上都不安全:

上面那些只能给一些远古浏览器使用,基本上在选择中是作为垫底的选择。

False Start

另外,怎么在 nginx 中开启 False Start 呢? 这其实和服务器并没有多大的关系,关键还是你选择的套件和 NPN/ALPN 协议的作用。

那么,在 nginx 中,我们只要选择好合适的加密套件即可。这里就放一份现成的吧

使用 DH 密钥交换

DH 的加密过程,上面已经说过了。DH 自带两个公共的参数,所以,这必须手动进行创建(实际上就是将参数 sign 一遍)。

然后,调用该文件

这样,你就正式的开启的 DH 加密模式。如果你使用抓包工具观察一下,此时 DH 应该会在 Server Hello 里:

不过,由于历史原因,DH param 已经使用的长度是 1024,比如: 采用 Oakley group 2 版本。现在,比较流行的 DH 加密方式是ECDHE,它和以前的加密方式(DHE)比起来,在密钥生成这块会快很多。同样,由于历史原因,它的基本条件比较高:(其实也还好)

开启 OCSP Stapling

OCSP Stapling 是验证证书权威性的一种手段,前面还有两种 CRL 和 OCSP。不过,它们都是让 client 自己去验证。而 OCSP Stapling 则把验证这块放到了 server 里,通过定期检查,来减少网络时间中的消耗。要开启 OCSP Stapling 首先是需要你证书的 chain 文件,该是用来详细说明,从根证书到你的证书中间所要经历的所有验证(和其他两种验证手段一样)。那如何得到 chain 文件呢?直接去问你的证书颁发机构,这个又不是啥秘密文件。如果是自发证书(自己测试用的),那就自己生成。将所有的中间证书按照 bottom to up 放到一个文件里:

那么 ca-chain.cert.pem 就是 OSCP stapling 验证文件。然后在 nginx 开启即可。

关于 DNS 解析,同样你也需要问一下证书提供商,当然,该值可以不用管。下面也同样适用

开启过后,你可以使用 openssl s_client -connect www.yourDomainName.com:443 来测试一下,检测是否开启成功。

开启 HSTS

HSTS(HTTP Strict Transport Security) 实际上就是一个响应头,没啥很特别的,具体内容就是,你所有对外部的请求都是https,所以这有一个问题,如果你的图片地址是 http 的,那么最终的结果,会变为,有可能会造成资源丢失的情况,所以,开不开启还需要慎用。

在有效时间内,客户端都会尝试使用 https 访问你的站点,如果在这期限里你的证书过期了,开不了 https。那么,呵呵。

使用 SNI

SNI 就是针对一个 IP 手握很多张证书时,用到的协议机制,这主要是用来区分,不同的 host,使用不同的证书。SNI 详情上面已经说过了,这里就不赘述了。主要使用格式就是不同的 server_name 搭配不同的 certificate

如何开启呢?换个高版本的 nginx 就行了。你可以使用 nginx -V 检查你的 nginx 是否带有

完整示例

最后,放一份完整的吧:


英文缩词解译:DNS,DDE,SSL,TCP/IP,URL,请帮忙英文解译及中文解译,越详细越好啊

DDE(Dynamic Data Exchange:动态资料交换)DDE 是一种方法,可显示 Notes 文件中以其他 Windows 与 Presentation Manager 应用程式(如图形或试算表范围)所建立的资料。 DDE 物件可以重复使用并更新,以反应出已变更资料的目前状态。 DNS (Domain Name System)一种 Internet 服务,可将网域名称转成 IP 地址。 SSL (Secure Sockets Layer)针对 Internet 与 intranet 的一种安全性通信协定,提供通讯的隐私性,并透过 TCP 运作来认证伺服器工作。 TCP/IP (Transmission Control Protocol/Internet Protocol)定义 Internet 的网路通信协定。 TCP/IP 原本是 UNIX 设计的,而现在每一个主要的电脑作业系统都可使用 TCP/IP 软体了。 URL (uniform resource locator)文件、档案或其他资源的 Internet 地址,说明使用资源所需要的通信协定、在哪里可以找到主机及主机上资源的路径。

LS是什么意思?

网络术语,一般多用于论坛(BBS)中解释为“楼上” 网络术语有个共性,就是基本都是汉语拼音的缩写。 比如LS,就是loushang的缩写。 ls *nix 命令 列目录 一般存在于 /bin/下 ls还有光雕的意思ls是渲染软件Lightscape的缩写 LS也是冰封王座中澄海3C地图里的光明游侠--LightSylvanus LINUX命令用法 ls 命令 用途 显示目录内容。 语法 显示目录或文件名的内容 ls [ -1 ] [ -A ] [ -C ] [ -F ] [-H | -L ] [ -N ] [ -R ] [ -a ] [ -b ] [ -c ] [ -d ] [ -e ] [ -f ] [ -g ] [ -i ] [ -l ] [ -m ] [ -n ] [ -o ] [ -p ] [ -q ] [ -r ] [ -s ] [ -t ] [ -u ] [ -x ] [ File ... ] 显示目录内容 ls -f [ -C ] [ -d ] [ -i ] [ -m ] [ -s ] [ -x ] [ -1 ] [ Directory ... ] 描述 ls 命令将每个由 Directory 参数指定的目录或者每个由 File 参数指定的名称写到标准输出,以及您所要求的和标志一起的其它信息。 如果不指定 File 或 Directory 参数, ls 命令显示当前目录的内容。 在互斥对中指定多个选项不看成错误。 每对中最后一个指定的选项确定输出格式。 缺省情况下,ls 命令按照文件名的字母顺序显示所有信息。 整理顺序由环境变量 LANG 或 LC_COLLATE 环境变量确定。 在 AIX 5L Version 5.2 General Programming Concepts: Writing and DeBUGging Programs 中的 National Language Support Overview for Programming 包含更多细节。 当 ls 命令显示目录内容时,它不显示名称以 .(点)开头的文件项,除非使用了 -a 或者 -A 标志。 如果命令由 root 用户执行,它缺省使用 -A 标志。 格式化输出有三种主要方式: * 每行列出一项。 * 通过指定 -C 或 -x 标志以多列列出各项。 当向 tty 输出时,-C 标志是缺省格式。 如果文件或目录名太长,ls 命令显示单列输出。 * 通过指定 -m 标志可以以逗号分隔系列列出项。 要确定输出行中字符位置的数目,ls 命令使用环境变量 COLUMNS。 如果没有设置此变量,命令获取显示的当前列值。 如果使用这些方法,ls 命令还不能确定字符位置的数量,它就使用缺省值 80。 使用 -e 和 -l 标志所显示的方式解释如下: 如果第一个字符是: d 此项为目录。 b 此项为块特殊文件。 c 此项为字符特殊文件。 l 此项为符号链接,或者指定 -N 标志,或者符号链接不指向现有文件。 p 此项为一个先进先出(FIFO)特殊文件。 s 此项为本地套接字。 - 此项为普通文件。 接下来的 9 个字符被分成 3 个集合,每个集合 3 个字符。 第一组 3 字符集合显示所有者许可权。 下一组 3 字符集合显示了组中其它用户的许可权。 最后 3 字符集合显示了访问此文件的其它任何人的许可权。 每个集合中的三个字符各自表示了文件的读、写和执行权限。 目录的执行权限让您可以搜索目录中的指定文件。 许可权表示如下: r 读 w 写(编辑) x 执行(搜索) - 没有授予相应的许可权 如果文件有 set-group-ID 方式,那么组执行许可权字符是 s。 如果文件有 set-user-ID 方式,则用户执行许可权字符是 s。 如果方式位被设置为 (八进制)(请参阅 chmod 命令以获得此方式的含义),最后一个方式字符(通常 x 或者 -)是 T。 如果没有设置相应的执行许可权,set-ID 的指示和方式位 以大写字母开头(分别为 S 和 T)。 方式 t 表示粘滞位是为文件或目录而设置的。 当使用 -e 标志时,其显示方式与使用 -l 标志一样,除了多出了第 11 个字符,其解释如下: + 表示文件有扩展安全性信息。 例如,文件可能在方式中有扩展的 ACL、TCB 或者 TP 属性。 通过使用 aclget 命令,可以显示文件的访问控制信息(ACL)。 通过使用 chtcb 命令,可以显示 TCB 和 TP 属性的值。 - 表示文件没有扩展安全性信息。 当列出目录中文件大小时,ls 命令显示块总数,包括间接块。 标志 -A 列出所有条目,除了 .(点)和 ..(点-点)。 -a 列出目录中所有项,包括以 .(点)开始的项。 -b 以八进制 ( \nnn) 表示法显示非打印字符。 -c 使用索引节点最近一次修改的时间,用以排序(当带 -t 标志使用时)或者用以显示(当带 -l 标志使用时)。 该标志必须和 -t 或 -l 标志或者两者一起使用。 -C 以多列纵向排序输出。 当往终端输出时,此为缺省方法。 -d 仅仅显示指定目录信息。 目录和文件一样处理,这在当使用 -l 标志获取目录状态时非常有用。 -e 显示方式(包括安全信息)、链接数目、所有者、组、大小(按字节)、最近修改时间和每个文件名称。 如果文件是特殊文件,大小字段包含主要和次要设备数目。 如果文件是符号链接,会打印所链接到的文件的路径名,其前有 ->(减号,大于号)符号。 显示符号链接的属性。 -E 列出文件的保留空间、固定范围大小和范围分配标志信息。 使用该标志时,必须指定 -l 标志。 -f 在每个存储槽中列出 Directory 参数指定的每个目录的名称。 该标志关闭 -l、-t、 -s 和 -r 标志并且开启 -a 标志。 列表的顺序就是项出现在目录中的顺序。 -F 如果文件是目录,在文件名后面放置一个 /(斜杠),如果文件可执行,则放置一个 *(星号),如果文件为套接字,则放置一个 =(等号),如果为 FIFO,则放置一个 |(管道)符号,如果是符号链接,则放置一个 @。 注:只有在使用 -N 标志或者链接指向一个不存在的文件时,符号链接显示时才后跟 ->。 否则,显示目标文件的有关信息。 通过输入 ls -f 命令,也可以调用此选项。 -g 与使用 -l 标志时显示同样的信息,除了 -g 标志禁止显示所有者和符号链接信息。 -H 如果在命令行上指定了引用类型目录文件的符号链接,ls 命令将文件信息和文件类型估计为由链接引用的文件的信息和类型,而非链接本身;然而,ls 命令将写链接本身的名称,而非由链接引用的文件。 -i 显示每个文件报告第一列中的索引节点数目。 -L 列出链接引用的文件或目录内容。 此为缺省操作。 后跟符号链接。 如果使用 -l 选项,-N 选项就成为缺省值,不后跟符号链接。 当使用 -l 选项时,仅有 -L 选项能够覆盖 -N 缺省值。 -l (L 的小写)显示方式、链接数目、所有者、组、大小(按字节)和每个文件最近一次修改时间。 如果文件是特殊文件,大小字段包含主要和次要设备数目。 如果最近一次修改时间大于六个月之前,时间字段以 月份 日期 年份 的格式显示,然而六个月内修改的文件以 月份 日期 时间 的格式显示。 如果文件是符号链接,,打印所链接到的文件的路径名,其前跟 ->。 显示符号链接的属性。 -n、-g、和 -o 标志覆盖 -l 标志。 注意事项: 1. 符号链接文件后跟一个箭头,然后是符号链接的内容。 2. 当使用 -l 选项时,通过执行 mkpasswd 命令,可以提高 ls 命令的执行性能。 当目录包含不同用户拥有的文件时,这非常有用,比如 /tmp 目录。 -m 使用流输出格式(逗号分隔系列)。 -n -n 标志除显示用户和组 ID 而不是用户和组名称以外,它显示和 -l 标志同样的信息。 -N 当确定文件状态时,不跟在符号链接之后。 注:如果使用 -L 和 -N 两个标志,最后一个标志起作用。 同样的,任何时候给定一个包含以 /(斜杠)作为最后字符的符号链接,不管使用何种选项,后面都会跟有链接。 -o -o 标志除禁止显示组和符号链接信息之外,它显示和 -l 标志同样的信息。 -p 如果文件是目录,在每个文件名后面放置一个斜杠。 当将 ls 命令的输出通过管道传递到 pr 命令时,这很有用,如下所示: ls -p | pr -5 -t -w80 -q 将文件名中的非打印字符显示成 ?(问号)。 -r 反转排序顺序,适当的按字母逆向排序或者首先排序最旧的文件。 -R 递归列出所有子目录。 -s 按照千字节(包括间接块)给出每一项的大小。 -t 按照最近一次修改时间(最近的最先)而不是名称排序。 -u 使用最近访问时间,而不是最近修改时间用以排序(当使用 -t 标志)或者显示(当使用 -l 标志)。 如果不和 -t 或 -l 标志或两者一起使用,则该标志无效。 -x 以多列格式横向排序输出。 -1 强制输出为每行一项格式。 当输出没有定向到终端时,此为缺省值。 退出状态 此命令返回以下退出值: 0 写所有文件成功。 >0 产生错误。 示例 1. 要列出当前目录中的所有文件,请输入: ls -a 列出所有文件,包括 .(点)、..(点点)和其他以点开头的文件。 2. 要显示详细信息,请输入: ls -l chap1  显示一个长列表,包括关于 chap1 和 的详细信息。 3. 要显示有关目录的详细信息,请输入: ls -d -l . manual manual/chap1 显示目录 . 和 manual 以及文件 manual/chap1 的长列表。 不使用 -d 标志时,会列出 . 和 manual 目录中的所有文件,而不是关于目录本身的详细信息。 4. 要按照修改时间列出文件,请输入: ls -l -t 显示最近被修改文件的长列表,较旧的文件跟在后面。 文件 /usr/bin/ls 包含 ls 命令。 /etc/passwd 包含用户 ID。 /etc/group 包含组 ID。 /usr/share/lib/terminfo/* 包含终端信息。 ------------------------------------- LS 指“最小二乘法” TLS指“全局最小二乘法” ====================== LS在GTA SanAndress中,指的是Los Santos市。 ------------------------------ LS:least-significant IEEE 802.1Q 在电路中,LS是指蜂鸣器,如下图所示:------------------------------------- 有时LS被当作是著名ACG论坛lost summer的简称 LS,液压传动设计系统中经常出现这个词汇,,是load sense的速写,表示负载敏感效应,一般指执行负载(马达或油缸)中的负载压力信号,这个压力信号可以连接到泵斜盘,用于闭环反馈控制。

microsoft store中点击软件显示无法加载页面该怎么办啊?

很多装了Windows10的用户在使用时无法打开microsoft store,一点击就显示”无法加载页面“非常的不方便,教大家一个方法,非常的管用。

方法/步骤

首先我们打开“我的电脑”然后依次点击“计算机”“打开设置”

打开“网络和internet”

在下面找到并打开“网络和共享中心”

打开”internet选项“

再点击“高级

勾选“使用 TLS 1.1 与“使用 TLS 1.2 最后点击 ”应用“ 就可以打开microsoft store。

总结

1,首先我们打开“我的电脑”然后依次点击“计算机”“打开设置”

2,打开“网络和internet”

3,在下面找到并打开“网络和共享中心”

4,打开”internet选项“

5,再点击“高级

6,勾选“使用 TLS 1.1 与“使用 TLS 1.2最后点击”应用“就可以打开microsoft store。

本文版权声明本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请联系本站客服,一经查实,本站将立刻删除。

发表评论

热门推荐