1. 简单总结计算机发展相关历史,详细总结服务器硬件和计算机分类相关知识
1.1计算机发展简史
1930年,美国科学家范内瓦·布什造出世界上首台模拟电子计算机。
1946年2月14日,由美国军方定制的世界上第一台电子计算机“电子数字积分计算机”(ENIAC, Electronic Numerical Integrator And Calculator)在美国宾夕法尼亚大学问世了。ENIAC 是美国奥伯丁武器试验场为了满足计算弹道需要而研制成的,这台计算机占地170平方米,重达28t(吨),耗电150千瓦,造价48万美元,每秒可执行5000次加法或400次乘法运算,共使用了18000个电子管。ENIAC的问世具有划时代的意义,表明电子计算机时代的到来。
在以后60多年里,计算机技术以惊人的速度发展,发展历程可分为四代:第1代:电子管数字机(1946—1958年)、第2代:晶体管数字机(1958—1964年)、第3代:集成电路数字机(1964—1970年)、第4代:大规模集成电路机(1970年至今)。
现代计算机架构-冯·诺依曼架构:
冯·诺依曼架构(Von Neumann Architecture)是冯·诺依曼和其他人提出的电子计算机通用架构。冯·诺依曼架构将通用计算机定义为以下 3 个基本原则:
1、采用二进制:指令和数据均采用二进制格式;
2、存储程序:一个计算机程序,不可能只有一条指令,而是由成千上万条指令组成的。指令和数据均存储在存储器中,而不是早期的插线板中,计算机按需从存储器中取指令和取数据;
3、计算机由 5 个硬件组成:运算器、控制器、存储器、输入设备和输出设备。在最开始的计算机中,五个部件是围绕着运算器运转的,这使得存储器和 I/O 设备之间的数据传送也需要经过运算器。而现代计算机中,五个部件是围绕着存储器运转的,这使得存储器和 I/O 设备可以直接完成数据传送,而不需要经过 CPU。
而 1948 年建造完成的 Manchester Baby 则被认为是世界上第一台基于冯·诺依曼架构的通用计算机。从 Baby 到现在 70 多年的时间,所有的单片机、PC 电脑、智能手机、服务器依然在遵循这一计算机架构。现代所有的计算机科学上的发展都是在软件和硬件能力上做优化,根本上的计算机架构依然没有改变。 冯·诺依曼也因而被誉为 “电子计算机之父”。
1.2计算机分类(按功能和角色划分)
服务器Server和客户机Client
服务器:即Server,计算机的一种,通常是网络中为客户端计算机提供各种服务的高性能的计算机,服务器在网络操作系统的控制下,将与其相连的硬盘、磁带、打印机及昂贵的专用通讯设备提供给网络上的客户站点共享,也能为网络用户提供集中计算、信息发布及数据管理等服务
客户机:即向服务器提出请求,需要服务器为之提供相应的服务和支持的计算机。
常说的C/S模式,就是指 Client/Server(客户端/服务端)这种按角色来分的模式,服务端并不是一直都是服务端,客户端也并不是一直都是客户端,在使用时,服务提供者,就是服务端,服务请求者,就是客户端。
2. 制作一个教程,说明vmware软件如何下载安装。安装rocky 系统, ubuntu 系统,并结合xshell演示如何通过虚拟IP登入系统。
2.1vmware软件如何下载安装
2024年05月博通宣布VMware Workstation Pro 17.5.2:个人用户免费。以下简单的下载安装教程:
VMware软件下载链接已经合并到博通网站:https://support.broadcom.com/group/ecx/productdownloads?subfamily=VMware+Workstation+Pro
打开链接并登录,如果没有博通账户可以注册一个。登录后选择对应系统的个人版本下载



完成下载后默认安装,然后运行程序,在许可窗口选择个人使用即可。

2.2安装系统
2.2.1VMware新建虚拟机















2.2.2安装Rocky Linux
提前准备好系统镜像文件




















2.2.3安装Ubuntu
















2.2.4xshell通过虚拟IP登录系统
使用ip a 命令查出当前系统的ip地址





3. 结合man命令总结linux常用基本命令用法,以及查看帮助文档的方法。
man 是单词 manual 的简写,是Linux系统中的帮助手册和文档。man 是一个外部命令,基本质就是读取特定文件,进行输出,其读取的文件一般位于/usr/share/man/目录下。新安装一个软件或程序后,对应的man手册也会放到/usr/share/man/目录下几乎每个命令都有man的 “页面”。
标准man手册有以下9章节:
(1)用户命令
(2)系统调用
(3)C库函数
(4)设备和特殊文件
(5)文件格式和约定
(6)游戏和演示
(7)杂项
(8)系统管理命令
(9)内核API
man的配置文件
centos7以后:/etc/man_db.conf
Ubuntu:/etc/manpath.config
man 命令常见用法:
-f:显示与指定关键字相关的手册页面,相当于whatis。
-k:搜索手册页中与关键字匹配的条目。
-a:显示所有匹配的手册页面。
-w:仅显示手册页的位置,而不显示其内容。
可结合whatis 和 whereis,先查处命令或文件属于man的第几个章节和man手册中的文档路径。
如查看passwd,作为命令则在man的第一章,作为文件则在man的第五章。

man 1 passwd 或者man /usr/share/man/man1/passwd.1.gz

man 5 passwd 或者man /usr/share/man/man5/passwd.5.gz

man -a passwd

4. 总结linux文件系统相关知识,并结合操作演示文件操作常见的命令
4.1系统目录结构
登录系统后,在当前命令窗口下输入命令: ls /


以下是对这些目录的解释:
/bin:bin 是 Binaries (二进制文件) 的缩写, 这个目录存放着最经常使用的命令。
/boot:这里存放的是启动 Linux 时使用的一些核心文件,包括一些连接文件以及镜像文件。
/dev :dev 是 Device(设备) 的缩写, 该目录下存放的是 Linux 的外部设备,在 Linux 中访问设备的方式和访问文件的方式是相同的。
/etc:etc 是 Etcetera(等等) 的缩写,这个目录用来存放所有的系统管理所需要的配置文件和子目录。
/home:用户的主目录,在 Linux 中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的,如上图中的 alice、bob 和 eve。
/lib:lib 是 Library(库) 的缩写这个目录里存放着系统最基本的动态连接共享库,其作用类似于 Windows 里的 DLL 文件。几乎所有的应用程序都需要用到这些共享库。
/media:linux 系统会自动识别一些设备,例如U盘、光驱等等,当识别后,Linux 会把识别的设备挂载到这个目录下。
/mnt:系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在 /mnt/ 上,然后进入该目录就可以查看光驱里的内容了。
/opt:opt 是 optional(可选) 的缩写,这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。
/root:该目录为系统管理员,也称作超级权限者的用户主目录。
/sbin:s 就是 Super User 的意思,是 Superuser Binaries (超级用户的二进制文件) 的缩写,这里存放的是系统管理员使用的系统管理程序。
/run:是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。如果你的系统上有 /var/run 目录,应该让它指向 run。
/tmp:tmp 是 temporary(临时) 的缩写这个目录是用来存放一些临时文件的。
/var:var 是 variable(变量) 的缩写,这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。
/usr:usr 是 unix shared resources(共享资源) 的缩写,这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于 windows 下的 program files 目录。
4.2文件类型
七种文件类型
普通文件类型:Linux中最多的一种文件类型, 包括 纯文本文件(ASCII);二进制文件(binary);数据格式的文件(data);各种压缩文件.第一个属性为 [-]
目录文件:就是目录, 能用 # cd 命令进入的。第一个属性为 [d],例如 [drwxrwxrwx]
块设备文件:块设备文件 : 就是存储数据以供系统存取的接口设备,简单而言就是硬盘。例如一号硬盘的代码是 /dev/hda1等文件。第一个属性为 [b]
字符设备:字符设备文件:即串行端口的接口设备,例如键盘、鼠标等等。第一个属性为 [c]
套接字文件:这类文件通常用在网络数据连接。可以启动一个程序来监听客户端的要求,客户端就可以通过套接字来进行数据通信。第一个属性为 [s],最常在 /var/run目录中看到这种文件类型
管道文件:FIFO也是一种特殊的文件类型,它主要的目的是,解决多个程序同时存取一个文件所造成的错误。FIFO是first-in-first-out(先进先出)的缩写。第一个属性为 [p]
链接文件:类似Windows下面的快捷方式。第一个属性为 [l],例如 [lrwxrwxrwx]
4.3文件操作命令
pwd:显示出当前/活动目录的名称。常用选项:
-L:显示真实物理路径。
-P:显示链接路径。默认选项。

cd:切换目录。常用选项:
-L:切换至链接目录,默认选项。
-P:切换至真是目录,而非链接目录。
cd .. :切换至父目录。
cd - :切换到上一个目录。
cd 或 cd ~ :切换至当前用户家目录。
cd ~username :切换至指定用户家目录。

ls:列出目录内容。常用选项:
-a:显示所有文件,包括隐藏文件。
-l:显示额外的信息
-R:目录递归
-d:仅显示当前目录
-S:按从大到小排序显示

stat:查看文件状态。常用选项:
-t:使用简洁格式显示。
-f:显示文件系统的信息。



file:确定文件内容。文件可以包含多种类型的数据,使用file命令检查文件的类型,然后确定适当的打开命令或应用程序使用格式。常用选项:
-b:只显示结果,不显示文件名
-f:从指定文件中获取要处理的文件名


touch:用来创建空文件或刷新文件的时间。常用选项:
-a:改变atime和ctime。
-m:改变mtime和ctime。
-r:使用某个文件的atime和mtime作为当前文件的atime和mtime。
-d:指定atime和mtime,而不采用当前系统时间。
-c:如果文件不存在则不创建。



cp:实现文件和目录的复制。常用选项“
-i:如果目标文件已存在,则提示是否覆盖。
-n:如果目标文件已存在,则跳过此文件。
-R|-r:递归复制,可用于目录的复制。
-s:不复制文件,而是创建链接。
-p:同时复制访问时间,修改时间,权限等属性。
-u:当源文件比目标文件新时,才执行复制。
-b:先备份后覆盖。


mv:可以实现文件或目录的移动和改名。同一分区移动数据速度快,数据位置没有变化。不同分区移动数据速度慢,数据位置发生变化。常用选项:
-b:如果目标存在,则先备份。
-n:如果目标已存在,则跳过此文件。
-i:如果目标文件已存在,则提示是否覆盖
-u:当源文件比目标文件新时,才执行移动。

rm:可删除文件和目录,此命令非常危险,慎重使用,建议使用 mv 代替 rm。常用选项:
-i:删除前确认。
-f:不确认直接删除。
-r:递归删除。
-d:删除空目录。
--no-preserve-root:强删根目录。

mkdir:创建目录。常用选项:
-m:目录权限属性。
-p:如果要创建的目录父级目录不存在,则一起创建,是递归的意思。
-v:显示创建过程。

rmdir:删除空目录。只能删除空目录,如果向删除非空目录,可以使用rm -r 命令,递归删除目录。常用选项:
--ignore-fail-on-non-empty:忽略非空错误提示。
-p:连着父目录一起删除
-v:显示删除过程。

5. 总结操作系统概念相关视频的知识点
5.1操作系统的概念
1、操作系统:负责管理计算机中各钟软硬件资源并控制各类软件运行(他是介于硬件和应用软件系统之间的软件,运行在逻辑上,是人与计算机通信的桥梁)
2、进程:指进行中的程序,既进程=程序+执行(进程有一定的生命周期,而程序可以长时间的保存)
3、线程(提出它的概念主要是为了 提高CPU的利用率)(由于CPU处理的速度很快可以理解成多线程是并发的):线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位
4、内核态和用户态
特权态既内核态:拥有计算机中所有的软硬件资源
普通态既用户态:其访问资源的数量和权限均受到限制(由于安全考虑,大多数应用程序时存储在用户态的)
5.2操作系统的组成
1、进程管理:系统资源的分配单位(基本单位使进程 重点区分一下CPU调度和分派的基本单位线程)
2、存储管理:内存分配,存储保护,虚拟存储
3、设备管理:管理外设和接口
4、文件管理:保存程序和数据等软件信息
5、程序接口:提供指令或函数的调用方式,使程序能够调用系统的服务
6、用户界面:为用户提供操作环境
5.3操作系统的分类
1、单用户操作系统(一次只能运行一个用户程序):DOS,Windows系列
2、批处理操作系统(多个程序或作业同时运行):DOS/VSE(IBM)
3、分时操作系统(1、经济实惠,可以充分利用计算机的资源 2、分时系统的多个用户之间,可以通过文件系统彼此共享数据和共享文件,在各自的终端上协同完成共同的任务,CPU时间分片):UNIX
4、实时操作系统(要求计算机对数据进行迅速处理,这种有响应时间要求的快速处理过程,叫实时操作系统)
5、网络操作系统 (将物理上分散的独立的多个计算机系统互联起来,通过网络协议在不同的计算机之间实现信息交换、资源共享等 它们这种提供网络通信,资源共享的操作系统称为网络操作系统)
5.4典型操作系统
1、服务器操作系统:Windows、Unix、LInux、Netware
2、PC操作系统:DOS、Windows、MacOS
3、实时操作系统:VxWorks
4、嵌入式操作系统:Palm OS
6. 总结常用命令部分的命令使用和演示,最好带有注释信息
lscpu:查看cpu信息。cat /proc/cpuinfo也可看查看到。

free:查看内存大小。显示备注:
total:系统总的可用物理内存大小。
used:已被使用的物理内存大小。
free:剩余可用物理内存大小。真正尚未被使用的物理内存数量。
shared:被共享使用的物理内存大小。
buff/cache:被buff和cache占用的物理内存大小。
available:还可以被应用程序使用的物理内存大小。是应用程序认为可用内存数量,available = free + buffer + cache (大概的计算方法)

lsblk:查看硬盘和分区情况

shutdown:关机或重启。shutdown程序会广播已登录的用户,被看作是安全的关机命令。常用选项:
+10:10分钟后关机。默认是1分钟。
-r|--reboot:一分钟后重启。
-r now:立刻重启。
-c:取消关机计划。

7. 总结通配符,管道,重定向,inode知识点,并且结合示例,添加注释信息
7.1通配符
Linux中通配符主要是用来模糊搜索文件或文件夹。当查找文件/文件夹时,可以使用它来代替一个或多个真正字符,它使得文件搜索更加快速、便捷,大大提升了工作效率。
* 表示任意长度的任意字符
? 表示任意一个字符
~表示当前用户家目录
[] 匹配指定范围内任意一个字符,[a-z]:表示任意一个字母,[0-9]:表示任意一个数字,[^] 匹配除了指定范围以外的任意一个字符。


7.2管道
在shell 中,可以将两个或多个命令(程序|进程)连接起来,将前一个命令的输出作为后一个命令的输入,就像拿水管将两个命令连起来;使用管道,要求前一个命令必须支持标准输出,后一个命令必须支持标准输入。

7.3标准输入和输出和I/O重定向 redirect
Linux 系统中有三个最基本的IO设备:
1. 标准输入设备(stdin):对应终端键盘
2. 标准输出设备(stdout):对应终端的显示器
3. 标准错误输出设备(stderr):对应终端的显示器
在Linux系统中,一切皆文件,所以,这三个设备也是以文件的形式存在于系统中。程序从标准输入设备中获取数据,再将运行结果和错误信息输出到标准输出设备和标准错误输出设备。
重定向:redirect
I/O重定向:将默认的输入,输出或错误对应的设备改变,指向新的目标。
7.3.1标准输出重定向:
> | 1> :把标准输出重定向到文件
2> :把标准错误输出重定向到文件
&> :把标准输出和标准错误输出都重定向
>> :追究标准输出重定向到文件

7.3.2标准输入重定向
标准输入重定向是使用文件来代替键盘的输入, 从文件中读取数据,代替当前终端的输入设备输入的数据,此处要严格区分命令是否支持标准输入,标准输入和参数是两个概念。
格式:COMMAND 0< FILE , COMMAND < FILE。

7.3.3标准输入多行重定向
使用 "<<终止词" 命令从键盘把多行重导向给STDIN,直到终止词位置之前的所有文本都发送给STDIN,有时被称为就地文本(here documents),其中终止词可以是任何一个或多个符号,比如:!,@,$,EOF(End Of File),magedu等,其中EOF比较常用。

7.4元信息inode
inode包含很多的文件元信息,但不包含文件名,例如:字节数、属主UserID、属组GroupID、读写执行权限、时间戳等。而文件名存放在目录当中,但Linux系统内部不使用文件名,而是使用inode号码识别文件。对于系统来说文件名只是inode号码便于识别的别称。

三个主要的时间属性:
ctime:change time是最后一次改变文件或目录(属性)的时间,例如执行chmod,chown等命令。
atime:access time是最后一次访问文件或目录的时间。
mtime:modify time是最后一次修改文件或目录(内容)的时间。
7.4.1inode 号码
表面上,用户通过文件名打开文件,实际上,系统内部将这个过程分为三步:
①系统找到这个文件名对应的inode号码;
②通过inode号码,获取inode信息;
③根据inode信息,找到文件数据所在的block,并读出数据。
其实系统还要根据inode信息,看用户是否具有访问的权限,有就指向对应的数据block,没有就返回权限拒绝。

7.4.2inode 大小
inode也会消耗硬盘空间,所以格式化的时候,操作系统自动将硬盘分成两个区域。一个是数据区,存放文件数据;另一个是inode区,存放inode所包含的信息。每个inode的大小,一般是128字节或256字节。通常情况下不需要关注单个inode的大小,而是需要重点关注inode总数。inode总数在格式化的时候就确定了。

7.4.3inode 耗尽故障
由于硬盘分区的inode总数在格式化后就已经固定,而每个文件必须有一个inode,因此就有可能发生inode节点用光,但硬盘空间还剩不少,却无法创建新文件。同时这也是一种攻击的方式,所以一些公用的文件系统就要做磁盘限额,以防止影响到系统的正常运行。
至于修复,很简单,只要找出哪些大量占用i节点的文件删除就可以了。
另外,系统会提示 "No space left on device"有两种可能:1、磁盘空间被耗尽;2、inode被耗尽。
7.4.4硬链接与软链接
硬链接
通过文件系统的inode链接来产生的新的文件名,而不是产生新的文件,称为硬链接。
一般情况下,每个inode号码对应一个文件名,但是Linux允许多个文件名指向同一个inode号码。意味着可以使用不同的文件名访问相同的内容。
ln src dest
运行该命令以后,源文件与目标文件的inode号码相同,都指向同一个inode。inode信息中的链接数这时就会增加1。
当一个文件拥有多个硬链接时,对文件内容修改,会影响到所有文件名;但是删除一个文件名,不影响另一个文件名的访问。删除一个文件名,只会使得inode中的链接数减1。
需要注意的是不能对目录做硬链接。
通过mkdir命令创建一个新目录,其硬链接数应该有2个,因为常见的目录本身为1个硬链接,而目录下面的隐藏目录.(点号)是该目录的又一个硬链接,也算是1个连接数。


7.4.5软链接
类似于Windows的快捷方式功能的文件,可以快速连接到目标文件或目录,称为软链接。
ln -s src(源文件或目录) dest(目标文件或目录)
软链接就是再创建一个独立的文件,而这个文件会让数据的读取指向它连接的那个文件的文件名。例如,文件A和文件B的inode号码虽然不一样,但是文件A的内容是文件B的路径。读取文件A时,系统会自动将访问者导向文件B。这时,文件A就称为文件B的软链接soft link或者符号链接symbolic link。
这意味着,文件A依赖于文件B而存在,如果删除了文件B,打开文件A就会报错。这是软链接与硬链接最大的不同:文件A指向文件B的文件名,而不是文件B的inode号码,文件B的inode链接数不会因此发生变化。
