冯·诺依曼架构:控制器、运算器、存储器、输入设备、输出设备。 除其他外控制器、运算器
一切尽在cpu
中间。
CPU 是一种具有特定功能的芯片,其中包含一组微指令。 如果想让主机实现一些特定的功能,需要参考CPU是否有内置的微指令集。
CPU用于计算和判断,操作数据完全**在主存储器(存储器)中,主存储器的数据在输入单元中,CPU处理后写回主存储器,主存储器传输到输出单元。
tips
:为了提高系统性能,您需要增加内存,因为所有数据都必须通过主内存。
精简指令集(RISC),每条指令运行时间短,完成的动作是纯粹的,复杂的任务需要多条指令才能完成。
复杂指令集(CISC),可以执行低级硬件操作,具有大量复杂指令,耗时长,处理任务范围广。 最常见的是AMD和Intel的x86架构。
X86:因为最早的Intel研制了代号为8086的CPU,后来又有顺序的,后来x86结构的COU从8位升级到16位和32位,最后产生了64位CPU,所以64位CPU统称为X86 64。
温馨提示:CPU的位是一次可以读写的最大CPU量,64位表示一次可以读写64位数据。
存储单元:包含主存储RAM和辅助存储,辅助存储为硬盘、光盘、磁带等。
CPU的数据源来自主内存,如果需要从过去的经验来判断事情,就需要将经验(硬盘)中的数据加载到主内存中,然后交给CPU进行处理。
0 1 二进制单位称为比特,通常需要 8 位 = 1 字节来存储数据。
B = > KB = > MB = > GB = > TB = > PB = > EB = > ZB(1024 次间隔)。
CPU的指令周期为MHz或GHz,Hz为1秒,网络的传输单位为Mbps,每秒Mbits。 也就是说,每秒传输多少位。 所有 20m 的宽带为 20 8 = 25MB 上传**速度。
硬盘500g实际上是一个十进制单位,即50010001000字节。 当使用二进制转换为文件单位时,它变为 466 GB。
主板是连接各个组件的重要物品,因此主板与组件进行通信芯片组
设计的质量会影响性能。
北桥:负责连接快速CPU、主内存和显卡。
南桥:负责连接慢速硬盘、USB、网卡等。
目前主流架构大多将北桥集成到CPU中。
CPU 频率,即 CPU 每秒可以工作的次数,频率越高意味着单位时间可以完成更多的事情,CPU 频率 36GHz,这意味着该 CPU 每秒可以执行 3 次6*10 9 工作。
超线程 (HT):通过让 CPU 竞争一个计算单元,例如 4 核机器,HT 可以使操作系统认为它有 8 个内核,因此它可以同时运行 8 个程序。
操作系统操作系统核心是直接参照硬件规范编写的,因此同一个操作系统程序不能在不同的硬件架构下运行。 应用程序的开发是指操作系统提供的开发接口,因此应用程序只能在操作系统上运行,而不能在其他操作系统上运行。
在 Linux 中,所有设备都被视为单个文件。
分区。
/boot//home/varswap
目录操作:cd:转换目录 pwd:显示当前目录 mkdir:创建目录 rmdir:删除目录
环境变量:$path将指定目录/root
搭$path
中间。
path = "$:/root"
不同的身份用户有不同的预设路径,可以随意执行的命令也不同,可以修改路径,使用绝对路径或相对路径来执行指令,这比搜索路径更正确ls:查询 cp:复制 rm:删除 mv:移动(重命名)。
cp 命令注意:
是否需要保留文件的完整信息**是否为链接文件**文件是否为特殊文件**文件是否为目录获取文件名和目录名:
basename etc sysconfig network => network filenamedirname etc sysconfig network => etc sysconfig 目录名
文档内容审查cat 从第一行开始显示内容 filetac 从最后一行开始(与 cat 相反)nl 显示,顺便说一句,输出行号更多逐页显示文件的内容更少与更多类似,但您可以向前翻页,只看前几行, tail 只看最后几行,od 以二进制方式读取文件的内容
文件搜索 脚本文件搜索,如 which ls,显示 ls 脚本文件位置原则:当命令是内置命令(如 which history)时,查找路径指定的目录。 您找不到它,因为 history 命令是内置的,而不是在路径目录中。
which [command]type [command]
搜索文件的建议:先使用 whereis、locate 进行检查,如果找不到,则使用 find
Find 不常用,因为它在硬盘中全局搜索系统中特定目录中的文件,-l 列出 Locate 使用数据库搜索文件名的主要目录。 数据库:var lib mlocate
轨迹的局限性:默认情况下,数据库更新只执行一次,因此,如果是新创建的文件,则在更新数据库之前不会找到它。
可以通过 updatedb 命令手动更新数据库。 UpdatedB 读取/etc/updatedb.conf
这个配置文件,然后去硬盘搜索文件名,最后更新数据库。
find:
在路径路径下找到 [path] [option] [action] 选项: -name 文件名: find -name nginxconf 查找路径下的名称为 nginxconf file find -name passwd : 查找 passwd 此文件 find -name"*passwd*":查找名称中包含 passwd 关键字的文件
如果你想能够cd一个目录,你需要在目录上有x,如果你能执行能够cd进入一个目录的权限,你需要对目录有r读权限格式:*z压缩程序压缩*拉链压缩*GZ GZIP 压缩*BZ2 BZIP2 压缩*xz xz 压缩*焦油焦油包装,无压缩*tar.GZ Tar 和 GZIP 压缩*tar.BZ2 焦油填料,BZ2 压缩*tar.XZ tar 包 XZ 压缩
gzip => zcat zmore zless zgrep:除了 gzip 之外,其他命令 zcat 和 zless 用于读取压缩的命令.gz
文件。
bzip2 => bzcat/bzmore/bzless
xz => .
为了方便shell的运行,bash 有很多内置指令:可以查询指令是否是 bash shell 的内置命令: type
类型 cd : cd 是一个 shell 内置命令 类型 -a lsls 别名为 ls --color=auto find aliasls is usr bin ls find external directive
变量读取变量:echo $path
或echo $
设置变量:key=value=空间并将键的值设置为值
规则:变量与 = 连接到变量的内容key=value
等号两边不能有空格,变量名只能是英文字母或数字,但开头不能是数字,如果变量中有空格,则内容用单引号和双引号括起来:var = "lang is $lang"
如果要放大变量的内容,可以使用$variable名称添加:path="$path":/home/bin
如果变量需要在子例程中执行,则需要使用它export
使其成为环境变量。 export path
.取消变量未设置变量名称
unset myname
子程序。
name='123'bash 进入子程序 echo $name为空,没有内容 exit exit exit 子程序 export name name 成为环境变量 bash 再次进入子程序 echo $name 123 正常输出
也就是说,在当前 shell 的情况下,去启用另一个新 shell,新 shell 就是子例程。 一般父程序自定义变量
但是,子例程不能使用export
之后,它成为一个环境变量,子程序能够读取环境变量。
环境变量查询默认环境变量:env
export
可以找出当前所有环境变量。
set
查看所有变量(自定义变量 + 环境变量)。
提示:设置ps1
这是提示字符的设置,例如显示[用户名用户组信息]。
export
:将自定义变量转换为环境变量。 子程序继承父程序的环境变量,但不继承父程序的自定义变量。
也可以删除变量内容。
别名 unaliasbash 环境配置文件bash profile:只要文件存在,接下来的两个文件就不会被读取。
bash_login
profile
/etc/bashrc
终端环境设置:stty、set,如使用退格键删除字符,使用ctrl+c终止命令,全部通过stty
决定。
数据流重定向:[<2>,2>>]省略)实现,如保存屏幕输出信息。
订单执行依据:; ,无论指令连续性如何,即无论前一个命令是成功还是失败,下一个命令都会继续执行。
仅当上一次执行成功时,执行才会继续。
如果上一个命令出现错误,后续命令将执行,否则将不执行。
管道命令管道传递上一个命令正确
信息(无法处理错误消息)并将其传递给后续命令。 后一个命令必须能够接受输入。
ls -al /etc |less 执行less命令查看ls的执行结果
Data Capture cut grepcut:逐行分析所有信息,如果信息行中有我们需要的信息,那就把它拿出来信息
grep:将所有信息一一分析,如果一行信息中有我们需要的信息,那就把它拿出来还行
sort sort, wc, uniqsort:排序。
uniq:仅显示一个副本。
wc:计算文件包含的单词、行数和字符数。
双向重定向 TEE 将数据流保存到文件中,并单独显示在屏幕上。
添加用户:useradd
授予密码:passwd
usermod,userdel