Linux Less 和 More 命令

概览 在 Unix 和 Linux 操作系统中,less 和 more 命令是用于查看和浏览文件内容的常用工具。它们提供了一种在命令行界面中快速查看大型文本文件的方法,无需打开文本编辑器。虽然它们之间有很多相似之处,但 less 命令在许多方面都比 more 命令更强大。 More 命令 more 命令是一个基本的文件查看器,它允许用户逐页查看文件内容。使用 more 命令非常简单,只需在命令行中输入 more,后跟要查看的文件名: more file.txt 常用命令 下翻一行:回车键 上翻一页:B 键 下翻一页:空格键 退出:Esc 键 Less 命令 less 命令是 more 命令的扩展,提供了更多功能和更好的性能。与 more 类似,要使用 less 查看文件,只需在命令行中输入 less,后跟文件名: less file.txt 常用命令 上翻一行:K 键 下翻一行:J 键 上翻一页:B 键 下翻一页:空格键 退出:Esc 键 更多功能 搜索:按 ‘/’ 键输入搜索模式,然后输入要搜索的字符串。按 ’n’ 键查找下一个匹配项,按 ‘N’ 键查找上一个匹配项 跳转到行:要跳转到特定行,只需输入行号,然后按 ‘g’ 键。例如,要跳转到第 42 行,输入 42g 显示行号:按 ‘=’ 键可以显示当前行的行号 总结 由于 less 的性能优势,它可以更快地加载大型文件,并且在浏览过程中不会将整个文件加载到内存中。这使得 less 成为查看大型日志文件等场景的理想选择。...

August 13, 2024

虚拟机和容器

区别 和虚拟机比较,容器更加轻量级,它允许在相同的硬件上运行更多数量的组件。主要是因为每个虚拟机需要运行自己的一组系统进程,这就产生了除组件进程外的额外开销。从另一方面说,一个容器仅仅是运行在宿主机上被隔离的单个进程,仅消耗应用容器消耗的资源,不会有其他进程的开销。 因为虚拟机的额外开销,导致没有足够的资源给每个应用开一个专用的虚拟机,最终会将多个应用分组放到一个虚拟机中,当使用容器时,能够让每个应用运行在自己的容器中,最终结果就是可以在同一台裸机上运行更多的应用。

April 17, 2024

Docker 底层实现

基本架构 Docker 采用了 C/S 架构,包括客户端和服务端。Docker 守护进程作为服务端接收来自客户端的请求,并处理这些请求(创建、运行、分发容器等)。 客户端和服务端可以运行在一个机器上,也可以通过 socket 或者 RESTful API 来进行通信。 Docker 守护进程一般在宿主机后台运行,等待接收来自客户端的请求。 Docker 客户端则为用户提供了一系列命令,用户可以使用这些命令来与 Docker 守护进程进行交互。 命名空间 命名空间是 Linux 内核一个强大的特性。每个容器都有自己独立的命名空间,运行在其中的应用都像是在独立的系统中运行一样。命名空间保证了容器之间彼此隔离,不会相互影响。 PID 命名空间 不同用户的进程就是通过 PID 命名空间来隔离的,且不同命名空间中的进程 ID 可以相同。所有 LXC 进程都是 Docker 守护进程的子进程,每个 LXC 进程具有不同的命名空间。同时由于允许嵌套,可以实现容器内运行容器的功能,提供更灵活的部署方式。 LXC: Linux Container,是一种操作系统级别的虚拟化技术。 NET 命名空间 网络隔离通过 NET 命名空间实现,每个 NET 命名空间都有自己的网络设备、IP 地址、路由表、防火墙规则等。这样就可以实现容器之间的网络隔离。Docker 默认使用 Veth 的方式,将容器中的虚拟网卡同 Host 上的一个 Docker 网桥 docker0 相连。 IPC 命名空间 在容器中,进程间通信(IPC)采用了 Linux 中常见的方式,如信号量、消息队列和共享内存等。与虚拟机(VM)不同,容器内的进程实际上是运行在宿主机(Host)上,并共享相同的进程 ID(PID)命名空间。因此,在申请 IPC 资源时,需要加入命名空间信息以区分不同容器。每个 IPC 资源都有一个唯一的 32 位标识符(ID)。 IPC: Inter-Process Communication,进程间通信。...

March 20, 2024

安全相关的 HTTP 响应头

Strict-Transport-Security Strict-Transport-Security 是一个安全相关的 HTTP 响应头,它可以让网站要求浏览器只通过 HTTPS 访问它,以防止中间人攻击。它的值是一个时间,单位是秒。例如: Strict-Transport-Security: max-age=31536000; includeSubDomains X-Frame-Options X-Frame-Options 是一个安全相关的 HTTP 响应头,它可以用来控制网站在 iframe 中的显示情况。它有三个值: DENY:表示页面不允许在 iframe 中显示 SAMEORIGIN:表示页面可以在相同域名下的 iframe 中显示 ALLOW-FROM uri:表示页面可以在指定来源的 iframe 中显示 X-XSS-Protection X-XSS-Protection 是一个安全相关的 HTTP 响应头,它可以用来控制浏览器的 XSS 防护机制。它有三个值: 0:表示关闭浏览器的 XSS 防护机制 1:表示开启浏览器的 XSS 防护机制,如果检测到 XSS 攻击,尝试清除不安全的部分,然后加载页面 1; mode=block:表示开启浏览器的 XSS 防护机制,并且如果检测到 XSS 攻击,浏览器会停止加载页面 X-Content-Type-Options X-Content-Type-Options 是一个安全相关的 HTTP 响应头,它可以用来控制浏览器的 MIME 类型嗅探行为。它有一个值: nosniff:表示浏览器不会执行 MIME 类型嗅探,即使服务器返回的 MIME 类型是错误的,浏览器也不会改变它 Content-Security-Policy TODO

March 18, 2024

RSA 加密和解密

视频教程:https://www.bilibili.com/video/BV1XP4y1A7Ui 前置知识 因数:a * b = c,a 和 b 就是 c 的因数 质数:只能由 1 和数字本身相乘得到的数字 余数:a % b = c,a 除以 b 的余数是 c 互质:两个数的最大公约数是 1 公约数:两个数的公约数是能同时整除这两个数的数 加密和解密过程 假设公钥为(7, 33),私钥为(3, 33) 加密过程 明文为 3,加密后的密文为 3^7 % 33 = 9 明文为 1,加密后的密文为 1^7 % 33 = 1 明文为 15,加密后的密文为 15^7 % 33 = 27 解密过程 密文为 9,解密后的明文为 9^3 % 33 = 3 密文为 1,解密后的明文为 1^3 % 33 = 1 密文为 27,解密后的明文为 27^3 % 33 = 15 公钥加密的密文只能由私钥解密,私钥加密的密文只能由公钥解密...

March 14, 2024