颜色原理
1. 简介
红、绿、蓝作为颜色三元色,通过不同比例的混合就能够产生其他各色颜色。
2. 原理
颜色的基本参数有三个:色相、色阶、饱和度。
2.1 色相
色相是用来区别区别颜色的标志,是光由于波长、频率的不同而产生的性质。色相是在光谱上自然分割的结果。
2.2 色阶
色阶也叫明度,是指颜色的亮度指数,由物体反射出来的光波的多少来量化。图像的色彩丰满度和精细度是由色阶决定的,最亮定义为白色、最暗定义为黑色,色阶与色相无关。
2.3 饱和度
饱和度也叫纯度,是指色彩的鲜艳程度,饱和度取决于颜色中「含色成分(色相)」和「消色成分(灰色)」之间的比例。含色成分越大,饱和度越高;反之越低。当饱和度为零时,就为灰色。
3. 应用
3.1 RGB「叠加原理」
计算机显示设备、电视机、手机的屏幕基础颜色是黑色。在黑色基础上,如果要想显示颜色,就要采用叠加型原理。叠加原理是指色基的光谱能量分布随能量比例增加,是能量强度的线性叠加。
RGB 是从发光体原理角度来设计的,R、G、B 依次代表红、绿、蓝三元色,采用了叠加原理。
3.2 CMYK「消减原理」
印刷、绘画标准中,基础颜色是白色。在白色基础上, ...
Mint19.1下使用ssh远程工具
1. 安装 ssh 工具
1.1 本地主机
1sudo apt install openssh-client
1.2 服务器
1sudo apt install openssh-server
2. 管理 ssh 服务
2.1 查看服务器的 ssh 服务:
1service ssh status
2.2 启动服务器的 ssh 服务:
1sudo service ssh start
2.3 关闭服务器的 ssh 服务:
1sudo service ssh stop
2.4 重启服务器的 ssh 服务:
1sudo service ssh restart
3. 登录远程服务器
3.1 密码登录
1ssh user@host
其中,user 为远程主机的登录用户名,host 为远程主机 ip 地址。然后终端会显示要求输入远程主机 user 用户登录密码,正确输入密码后进入到远程主机 user 的 $HOME 目录下。
基于密码登录远程主机的原理大致如下:
3.2 免密登录
将本机 ssh-keygen 生成的公匙复制到远程主机上,具体操作如下:
查看本地主机是否生成了 ssh-key,如果 ...
LinuxShell命令sed
1. 简介
sed 是 Linux系统自带的流式编辑器(流式编辑器是指处理处理输入流或文本流中的数据),不同于普通的交互式文本编辑器(比如 vim),sed 编辑器根据命令来处理数据流中的数据。
sed 默认不会直接修改源文件,而是将读入的数据先复制到模式空间(pattern space)中缓存,再根据给定的命令对模式空间中的数据进行处理并输出(默认 STDOUT)。
2. 运行机制
一次从输入中读取一行数据
根据提供的命令匹配数据流中的数据
按照命令修改数据流中的数据
将处理后的数据输出到STDOUT
3. 命令格式
1sed [options]... {script} [file]...
【注】命令行中输入 sed 脚本命令 script 需用两个单引号 ' ' 或者两个双引号 " " 引起来。使用两个单引号时,script 中使用 / 分隔每个字段,字段均为纯字符串,不能使用 Shell 下的变量;使用两个双引号时,script 中使用 | 分隔每个字段,字段中可以使用 Shell 下的变量。
4. 常用选项
-n、--quite、 ...
LinuxShell命令概述
1. 简介
1.1 概述
Linux Shell 中包含大量的命令,提供了许许多多强大的功能。Shell 命令分为内建命令和外部命令;如果需要查看不同命令的帮助,对于内建命令,可以使用 Shell 的一个内建命令 help 来查询帮助信息;对于外置命令,可以使用 Shell 的外部命令 man 或 info(更详细)来查询帮助信息。判断某个命令是内建命令还是外部命令可以使用 Shell 的一个内建命令 type 来查看。
1.2 区别
外部命令(也被成为文件系统命令)
外部命令是存在于 Shell 之外的程序,它们并不是 shell 程序的一部分。
外部命令程序通常位于 /bin、/usr/bin、/sbin、/usr/sbin 中。
当外部命令执行时,父进程发出外部命令并创建出一个子进程(称为衍生)来执行外部命令。比如以 ps -f 为例:
1234graph LRA((父进程<br>发出外部命令<br>ps -f))B((子进程<br>执行外部命令<br>ps -f))A -->|衍生| B
由于衍生操作,外部命令 ...
LinuxShell正则表达式
1. 简介
正则表达式在处理数据时非常有用,它凭借强大的模式匹配功能,能够用来精确地过滤文本数据,提取有用的数据信息。
{align1234graph LRA[数据流 ]--> B{正则表达式}B --> C[匹配数据]B --> D[滤出数据]
正则表达式是通过正则表达式引擎实现的,正则表达式引擎负责解释正则表达式模式并使用这些模式进行文本数据匹配。在Linux中,主要有两种主流正则表达式引擎:
POSIX 基础正则表达式(basic regular expression,BRE)引擎 。
POSIX 扩展正则表达式(extended regular expression,ERE)引擎 。
2. BRE 模式
2.1 基本原则
正则表达式模式都区分大小写。
在正则表达式中,空格和其他的字符没有什么区别。
特殊字符不能在文本模式中单独使用,要使用特殊字符作为文本字符必须用 \ 进行转义。
2.2 特殊字符
【注】虽然 / 不是特殊字符,但在sed、gawk编辑器的正则表达式中同样需要使用 \ 进行转义。
符号
名称
功能
...
LinuxShell通配符
1. 简介
通配符广泛用于文件扩展匹配,能帮助我们快速筛选文件名,其正式名称叫作元字符通配符。
2. 基础通配符
通配符
名称
功能
?
问号
匹配任意一个字符
*
星号
匹配0个或多个任意字符
[ ]
中括号
匹配中括号内字符组中的任意一个字符若在字符组的开头加 ^ 符([^ ]),则匹配除括号内之外的任一字符若在两个字符间加 - 符(例[x-y]),则匹配 x~y 区间内的任意一个字符
3. 特殊字符组
特殊字符组
功能
[[:alpha:]]
匹配任一字母字符(不区分大小写)
[[:alnum:]]
匹配任一字母、数字字母(0~9、A~Z、a~z
[[:blank:]]
匹配空格或者制表符
[[:digit:]]
匹配0~9间的任一数字
[[:lower:]]
匹配任一小写字符a~z
[[:print:]]
匹配任一可打印字符
[[:punct:]]
匹配任一标点符号
[[:space:]]
匹配任一空白字符(空格、制表符、NL、FF、VT、CR)
[[:upper:]]
匹配任一大写字符A~Z
4. ...
SystemTap
1. 简介
SystemTap 是一个诊断 Linux 系统性能或功能问题的开源软件。它使得对运行时的Linux 系统进行诊断调式变得更容易、更简单。有了它,开发者或调试人员不再需要重编译、安装新内核、重启动等烦人的步骤。
为了诊断系统问题或性能,开发者或调试人员只需要写一些脚本,而且 SystemTap 本身也提供了很多脚本,称为「tapset」方便开发,然后通过 SystemTap 提供的命令行接口就可以对正在运行的内核进行诊断调试,以前需要的修改或插入调试代码、重新编译内核、安装内核和重启动等这些琐碎的工作完全消除。
2. 原理
Systemtap 使用了类似于 awk 和 C 语言的脚本语言(类似于 Dtrace 的 D 语言)。
它只使用了三种数据类型,整数(integers)、字符串(strings)以及关联数组(associative Arrays)。
它有完整的控制结构,包括块(blocks)、条件(conditionals)、循环(loops)和函数(functions)。
语句分割符 ; 是可选的。
变量不需要声明类型,它们是根据上下文自 ...
各种距离
1. 欧几里得距离
给定空间中两个点 (x1,y1){(x_1,y_1)}(x1,y1),(x2,y2){(x_2,y_2)}(x2,y2);它们之间的欧几里得距离公式为:
(x1−x2)2+(y1−y2)2\begin{array}{c}
\sqrt{(x_1-x_2)^2+(y_1-y_2)^2}
\end{array}
(x1−x2)2+(y1−y2)2
即两个点之间的直线距离。本质是向量的 2-范数。
2. 曼哈顿距离
给定空间中两个点 (x1,y1){(x_1,y_1)}(x1,y1),(x2,y2){(x_2,y_2)}(x2,y2);它们之间的曼哈顿距离公式为:
∣x1−x2∣+∣y1−y2∣\begin{array}{c}
|x_1-x_2|+|y_1-y_2|
\end{array}
∣x1−x2∣+∣y1−y2∣
即两个点之间的水平距离绝对值加上垂直距离的绝对值。本质是向量的 1-范数。
在平面上,从原点 OOO 引出八条射线,相邻两射线角度均为 45∘{45^\circ}45∘,则将整个平面划分成 8 块区域,对于每一块区域内 ...
UNIX访问权限
【注】*NIX 下很重要的概念是「一切皆文件」;以下仅以 *NIX 家族的起源 UNIX 作为分析对象。
1. 文件的组织与权限表示
1.1 文件的组织方式(此处文件为泛指概念,包括目录等)
文件存在于目录中
目录是一种特殊的文件
文件采用层次结构存放
文件的基本操作:open、close、read、write、lseek
打开现存文件或创建新文件,内核都会向进程返回一个文件描述符 fid
对内核而言,所有文件都由文件描述符引用
UNIX 下,每个文件都有一个对应的 inode。UNIX 系统中的 inode 结构如下:
以 Ext2 文件系统为例,inode 信息在文件系统的结构层次如下:
【注】stat 命令可以查看文件的 inode 信息。
1.2 文件的权限表示(此处文件为泛指概念,包括目录等)
文件的基本权限
Read 权限:控制读文件权限
Write 权限:控制写文件权限
Execute 权限:控制将文件调入内存执行
文件的基本权限位
其中,r 代表 Read 权限,w 代表 Write 权限,x 代表 Execu ...
操作系统安全基础
1. 计算机系统组成层次
1.1 硬件
提供基本计算资源(CPU、Memory、I/O Devices)
1.2 操作系统
控制、协调不同的应用程序使用计算机硬件
1.3 应用程序
定义人们使用系统资源的方式
2. 操作系统安全目标
2.1 允许多用户安全的共享单机
进程、内存、文件设备等的分离与共享
处理器模式
内存保护
文件的访问控制
鉴别
2.2 确保网络环境下的安全操作
鉴别
访问控制
安全通信(加密)
记录日志 & 审计
入侵检测
恢复
3. 系统安全保护方法
3.1 内存保护模式
保证一个用户的进程不能访问其他人的内存空间:分段、分页、基/堆寄存器、重分配 ⋯\cdots⋯
操作系统进程、用户进程:具有不同的权限
3.2 CPU 模式(处理器模式、主模式、超模式、内核模式)
系统模式
可以执行任意指令、访问任意内存地址、硬件设备、中断操作、改变处理器特权状态、访问内存管理单元、修改寄存器
用户模式
受限的内存访问,有些指令不能执行
不能:停止中断、改变任意进程状态、访问内存管理单元等
【注】从用户模式切换到系统模式必须通 ...
计算机系统安全概论
1. 网络空间安全计划
1.1 美国
2008 年,美国启动“国家网络安全教育计划”(National Initiative for Cybersecurity Education,NICE),由美国国家标准与技术研究院(NIST)组织实施。该计划由美国《国家网络安全综合计划》演进而来。目前,NIST 致力于向高技术部门和政府部门以外的学校、图书馆和一般的办公场场合推广“国家网络安全教育计划”,旨在提高美国各地区、各年龄段公民的网络安全意识和技能。
NICE 主要承担领导国家安全意识提升、网络安全正规教育、领导联邦网络安全人员结构以及领导网络安全人员培训与职业发展四项使命,其主要目标是增强公众有关网络活动风险的意识、扩展国家网络安全人员队伍以及建立和维持一支无人能敌、具有全球竞争力的网络安全力量。
1.2 欧盟
1999 年,欧盟首次启动为期 5 年的第一个“安全网络计划”(EU Safer Internet Program),目前正在进行第 5 个“安全网络计划”(2019-2024)。
该计划主要是对欧盟共同体进行网络安全教育,重点强调青少年的网络安全风险,将在线指导作为一项优先任 ...
Linux系统Grub引导失败问题
1. 简介
本文主要记录博主在日常使用 Linux 系统时,遇到的一些导致 Linux 系统 Grub 引导失败的问题。
2. Windows 更新导致
若电脑上存在双系统,则 Windows 系统大更新时会导致 Linux 系统的 Grub 引导失败。具体原因及分析见下文:
问题
我的电脑装有 Windows 10 和 Manjaro 双系统,最近我把 Windows 10 升级了,没想到原来漂亮的 Manjaro Grub 菜单界面就再也出不来了,只见终端弹出一下信息:
12error:unknow filesystemgrub rescue>
此时进入的是 Grub 修复模式,此模式下可以使用的终端命令很少,大部分 Linux Shell 命令无法使用。
解决
使用 ls 命令查看系统分区信息
1grub rescue> ls
此时一般显示如下信息(以下是我的系统显示的信息):
12(hd0,gpt1),(hd0,gpt2),(hd0,gpt3),(hd0,gpt4),(hd0,gpt5),(hd0,gpt6),(hd1,gpt1),(hd1,gpt2),(hd ...