第一周学习日志

1.制作一个教程,说明vmware软件如何下载安装。安装rocky 系统, ubuntu 系统,并挑选一个中意的远程工具(win推荐xshell,mac推荐item2),通过远程IP登入系统。
(1)vmware软件下载过程
进入安装向导后,点击“下一步”继续

勾选“我接受许可协议中的条款”,然后点击“下一步”

如果需要虚拟化环境支持,这里最好勾选“自动安装WHP功能”

选择VMware Workstation的安装目录。默认位置通常在C盘,但可以更改到其他磁盘以节省C盘空间。
点击“更改”按钮,选择新的安装位置,然后点击“确定”。

根据个人需求勾选或取消勾选用户体验设置选项。这里通常不勾选以避免不必要的干扰
点击“下一步”继续

选择需要创建的快捷方式位置,例如桌面或开始菜单。
点击“下一步”继续

点击“安装”按钮开始安装VMware Workstation。
安装过程中,系统会提示正在复制文件、注册组件等操作。请耐心等待安装


安装完成后,系统会提示输入许可证密钥。可以在官网或其他可靠来源获取有效的密钥。
将密钥复制到输入框中,并点击“下一步”完成许可证验证
(2) 远程ip登入rocky系统


远程ip登入Ubuntu系统


2.总结什么是shell,以及常见的各类shell
shell是操作系统和应用程序间的命令翻译工具
shell主要分为图形界面shell和命令行式shell
图形界面shell主要有Windows Shell,Unity,macOC Finder等
命令行式界面shell主要有Power Shell,cmd.exe,sh等
3.结合man命令总结linux常用基本命令用法,以及查看帮助文档的方法
(1)linux常用基本命令
ls命令:用于列出目录内(ls [选项] [文件或目录])
cd命令:用于切换当前工作目录(cd [目录名])
mkdir命令:用于创建新目录(mkdir [选项] 目录名)
rm命令:用于删除文件或目录(rm [选项] 文件或目录)
cp命令:用于复制文件或目录(cp [选项] 源文件或目录 目标文件或目录)
mv命令:用于移动或重命名文件和目录(mv [选项] 源文件或目录 目标文件或目录)
cat命令:用于查看文件内容并将内容输出到标准输出(cat [选项] 文件)
grep命令:用于在文件中搜索指定的字符串(grep [选项] 模式 [文件])
chmod命令:用于更改文件或目录的权限(chmod [选项] 权限模式 文件或目录)
useradd命令:用于创建新用户(useradd [选项] 用户名)
(2)查看帮助文档的方法
安装man手册
dnf install man-pages
使用 "man x" 关键字的方式查看帮助
4.总结linux文件系统目录结构和目录的功能
(1)根目录(/):整个 Linux 文件系统的顶级目录,所有其他目录都挂载在根目录之下,是文件系统的起点。
(2)/bin目录:包含二进制可执行文件,普通用户和系统管理员都可以执行这些文件,许多基本的系统命令(如 ls、cp、mv等)都存放在这个目录下。
(3)/boot目录:存放系统启动时需要的文件,包括内核映像文件(如 vmlinuz)和引导加载程序(如 grub)等。这些文件对于系统的启动至关重要。
(4)/dev目录:用于存储设备文件,在 Linux 中,一切皆文件,包括硬件设备。例如,硬盘设备文件通常是 /dev/sda、/dev/sdb 等,光驱设备文件可能是 /dev/cdrom,该目录使得用户可以像操作普通文件一样操作设备。
(5)/etc目录:存放系统的配置文件,这些文件包含了系统和各种服务的配置信息,如网络配置文件(/etc/network/interfaces等)、用户账户信息(/etc/passwd和/etc/shadow)、服务启动脚本等,系统管理员经常需要修改这些文件来配置和管理系统。
(6)/home目录:普通用户的主目录默认存放位置,每个用户都有一个以自己用户名命名的子目录,如user1用户的主目录是/home/user1,用户可以在自己的主目录下创建、存储和管理个人文件和数据。
(7)/root目录:系统管理员(root 用户)的主目录,与普通用户的/home目录类似,但专为 root 用户设计,root 用户的个人文件和配置文件通常存放在这里。
(8)/run目录:存储系统启动以来运行时的信息,包括进程 ID 文件等,一些守护进程和服务会在这个目录下创建运行时的临时文件。
(9)/sbin目录:包含系统管理的二进制可执行文件,这些文件通常只有系统管理员(root 用户)才能执行,如用于系统管理的命令(如ifconfig、reboot等)。
(10)/tmp目录:用于存放临时文件,任何用户都可以在这个目录下创建和删除文件,系统在启动时可能会清理该目录下的文件。
(11)/usr 目录:存放系统级的共享文件和应用程序,类似于 Windows 系统中的 Program Files 目录,包含了大量的用户应用程序、库文件、头文件等,/usr 下面还包含多个子目录,如 /usr/bin(用户可执行程序)、/usr/lib(库文件)、/usr/include(头文件)等。
(12)/var 目录:用于存放可变数据,如日志文件(/var/log)、邮件队列(/var/spool/mail)、缓存数据等,随着系统的运行,这些目录中的内容会不断变化和增长。
5. 总结文件操作常见的命令和文件夹常见操作和命令(多练习)
(1)文件常见操作及命令
查看文件内容:cat,more,less,head,tail
创建文件:touch,echo
复制文件:cp
移动和重命名文件:mv
删除文件:rm
查找文件:find,grep
修改文件权限:chmod
(2)文件夹常见操作及命令
创建文件夹:mkdir
查看文件夹内容;ls
复制文件夹:cp
移动和重命名文件:mv
删除文件夹:rm
进入和切换文件夹:cd
查找文件夹:find
6.总结文件元数据相关的知识点,包含硬链接和软连接的区别等知识
(1)文件元数据是指与文件相关的一些描述性信息,有文件权限,文件所有者和所属组,文件大小,文件时间戳等
(2)硬链接和软链接的区别
硬链接:硬链接是通过在文件系统中创建一个新的目录项,该目录项与原文件共享同一个 inode(索引节点)。inode 中存储了文件的元数据和数据块的指针,因此硬链接和原文件实际上是同一个文件的不同名称,它们在磁盘上占用相同的物理空间,具有相同的 inode 号码
软链接;也称为符号链接,是一个独立的文件,它包含了指向另一个文件或目录的路径信息。软链接有自己独立的 inode 和数据块,其数据块中存储的是所指向文件的路径
7.总结开放系统互联OSI模型,每层作用及对应的协议。
(1)物理层
作用:负责传输比特流,提供物理连接和传输介质,如电缆、光缆等。
协议:包括 EIA/TIA-232、EIA/TIA-449、V.35 等,这些协议规定了物理接口的标准,如引脚定义、信号电平、传输速率等
(2)数据链路层
作用:在相邻的两个节点之间建立、维持和释放数据链路【所谓链路就是小网络】,进行差错控制和流量控制。通过网卡设备的物理标识每一个主机的唯一地址。
协议:以太网、无线局域网(Wi-Fi)和通用分组无线服务(GPRS)等。
(3)网络层
作用:为分组交换网上的不同主机提供通信服务,实现网络互联和路由选择。
协议:互联网协议(IP)等。
(4)传输层
作用:为应用程序提供端到端的通信服务,确保数据在传输过程中的完整性和可靠性。
协议:传输控制协议(TCP)等。
(5)会话层
作用:负责建立、管理和终止会话,实现数据同步等功能。
协议:包括 SSL(Secure Sockets Layer)协议和 TLS(Transport Layer Security)协议
(6)表示层:
作用:负责数据的表示和编码转换,确保数据在不同系统之间的兼容性。
协议:如 JPEG、MPEG 等图像和视频压缩标准,以及 ASCII、Unicode 等字符编码标准,还有一些加密协议如 DES、AES 等
(7)应用层:
作用:为应用软件提供网络服务,如文件传输、电子邮件等,生成数据的一种方式。
协议: HTTP、HTTPS、FTP、TELNET、SSH、SMTP、POP3、MySQL等
8.总结TCP包头结构,TCP三次握手,4次挥手
(1)TCP 包头通常包含以下主要字段:
源端口号(Source Port):16 位,标识发送端应用程序使用的端口号。
目的端口号(Destination Port):16 位,标识接收端应用程序使用的端口号。
序列号(Sequence Number):32 位,用于标识发送数据段的顺序,保证数据的有序传输。
确认号(Acknowledgment Number):32 位,期望收到对方下一个数据段的序列号,用于确认已收到的数据。
数据偏移(Data Offset):4 位,指出TCP包头的长度,以 4 字节为单位,用于确定数据部分的起始位置。
保留(Reserved):6 位,保留字段,目前未使用,置为 0。
控制位(Control Bits):6 位,包含多个标志位,用于控制TCP连接的状态和数据传输过程,如 URG(紧急指针有效)、ACK(确认号有效)、PSH(推送功能)、RST(复位连接)、SYN(同步序列号)、FIN(结束连接)。
窗口大小(Window Size):16 位,用于告知对方自己接收窗口的大小,以便进行流量控制。
校验和(Checksum):16 位,用于检验TCP包头和数据的完整性。
紧急指针(Urgent Pointer):16 位,当 URG 标志位为 1 时,该字段有效,指出紧急数据的位置。
(2)TCP三次握手
第一次握手:客户端向服务器发送一个SYN包(同步包),其中包含客户端选择的初始序列号(Sequence Number)并将SYN标志位置为1,该包表示客户端请求建立连接。
第二次握手:服务器收到客户端的SYN包后,向客户端发送一个SYN+ ACK 包,其中包含服务器选择的初始序列号,同时将 ACK 标志位置为1,表示对客户端SYN包的确认,确认号为客户端的序列号加 1。此外,SYN 标志位也为 1,表示服务器同意建立连接。
第三次握手:客户端收到服务器的SYN+ ACK 包后,向服务器发送一个 ACK 包,将 ACK 标志位置为 1,确认号为服务器的序列号加 1,序列号为客户端上一次发送的序列号加1。服务器收到这个 ACK 包后,连接建立成功。
(4)TCP四次挥手
第一次挥手:主动关闭方(通常是客户端)发送一个 FIN 包,将 FIN 标志位置为1,表示自己没有数据要发送了,请求关闭连接,同时携带自己的序列号。
第二次挥手:被动关闭方(通常是服务器)收到 FIN 包后,发送一个 ACK 包,将 ACK 标志位置为1,确认号为收到的序列号加1,序列号为服务器自己的序列号,表示已经收到了关闭请求。此时,服务器进入 CLOSE_WAIT 状态,客户端进入 FIN_WAIT_2 状态。
第三次挥手:服务器处理完剩余的数据后,向客户端发送一个 FIN 包,将 FIN 标志位置为1,序列号为服务器上一次发送的序列号加1,请求关闭连接。
第四次挥手:客户端收到服务器的 FIN 包后,发送一个 ACK 包,将 ACK 标志位置为1,确认号为收到的序列号加1,序列号为客户端上一次发送的序列号加1。服务器收到 ACK 包后,连接正式关闭,客户端等待一段时间(通常是 2MSL,MSL 为最长报文段寿命)后也关闭连接。
9.总结主机到主机的包传递过程
应用层数据准备:在源主机上,应用程序生成要发送的数据,例如用户通过浏览器访问网页时,浏览器会将请求的网页内容等数据准备好。这些数据随后被传递给传输层。
传输层封装:传输层协议(如TCP或UDP)会将应用层数据进行封装。以TCP为例,它会给数据添加TCP首部,包括源端口、目的端口、序列号、确认号等字段,用于实现端到端的可靠传输或不可靠传输(UDP 则相对简单,主要添加源端口和目的端口等信息)。封装后的数据段被称为TCP段或UDP 数据报。
网络层处理:网络层的IP协议会接过传输层的数据段或数据报,再为其添加IP首部,包含源IP地址、目的IP地址等信息,形成IP数据包。IP协议根据目的IP地址进行路由选择,确定数据包在网络中的传输路径。它会查询路由表,找到下一跳路由器的地址,然后将数据包发送给该路由器。
数据链路层封装:网络层的IP数据包到达数据链路层后,会被进一步封装成帧。数据链路层协议(如以太网协议)会添加帧首部和帧尾部,包括源MAC地址、目的MAC地址、帧校验序列等字段。帧首部中的目的MAC地址是下一跳设备(如路由器或目标主机)的MAC地址。如果源主机不知道目的主机或下一跳路由器的MAC地址,它会通过 ARP(地址解析协议)来获取。
物理层传输:数据链路层的帧最终被转换为物理信号,通过物理介质(如网线、光纤、无线信号等)进行传输。物理层负责将这些信号在物理介质上进行编码、调制等处理,以确保信号能够正确地传输到目标主机或下一跳设备。
中间设备转发:当数据包到达路由器等中间设备时,路由器会根据IP首部中的目的IP地址和自身的路由表,决定将数据包转发到哪个端口,然后重复数据链路层和物理层的操作,将数据包发送到下一跳。这个过程会在多个路由器之间重复,直到数据包到达目标主机所在的网络。
目标主机接收:当数据包最终到达目标主机时,物理层首先接收物理信号,并将其转换为数据帧交给数据链路层。数据链路层检查帧的完整性和目的MAC地址是否匹配,如果匹配则去除帧首部和尾部,将IP数据包交给网络层。网络层根据IP首部中的目的IP地址确认是本机接收后,去除IP首部,将数据段交给传输层。传输层根据端口号将数据交付给相应的应用程序,最终应用程序接收到源主机发送的数据。
10.总结IP地址 A, B, C, D 类,并解析IP地址的组成
(1)A类地址
范围:1.0.0.0 - 126.255.255.255。
特点:首位为0,网络号占1个字节,主机号占3个字节。A类地址最多可容纳2的24次方-2 = 16777214 台主机,适用于大型网络。
(2)B类地址
范围:128.0.0.0 - 191.255.255.255。
特点:前两位为10,网络号占2个字节,主机号占2个字节。B类地址最多可容纳2的16次方-2 = 65534 台主机,常用于中型网络。
(3)C类地址
范围:192.0.0.0 - 223.255.255.255。
特点:前三位为110,网络号占3个字节,主机号占1个字节。C类地址最多可容纳2的8次方-2 = 254 台主机,适用于小型网络。
(4)D类地址
范围:224.0.0.0 - 239.255.255.255。
特点:前四位为 1110,D类地址用于多播(组播),不是用于标识单个主机,而是用于标识一组主机。
(5)IP地址的组成
网络号:用于标识设备所在的网络,同一网络中的设备具有相同的网络号。网络号的位数取决于IP地址的类别,例如 A 类地址网络号为1个字节,B 类地址网络号为2个字节,C类地址网络号为3个字节。路由器等网络设备根据网络号来转发数据包,实现不同网络之间的通信。
主机号:用于标识同一网络中的不同设备,每个设备的主机号在其所在网络中必须是唯一的。主机号的位数也由IP地址类别决定,如A类地址主机号为3个字节,B类地址主机号为2个字节,C 类地址主机号为1个字节。通过网络号和主机号的组合,IP地址能够唯一地确定网络中的每一台设备,确保数据能够准确无误地在网络中传输到目标设备。
11.201.222.200.111/18计算主机数?子网掩码?说明计算方法
(1)子网掩码
在 CIDR(无类别域间路由)表示法中,/18表示子网掩码中前 18 位为1,后14 位为0。将其转换为点分十进制形式,子网掩码的前两个字节是全1,即255.255,第三个字节的前两位是1,后六位是0,即192,第四个字节是0。所以子网掩码为255.255.192.0。
(2)主机数
计算方法:根据子网掩码可知,主机位有14位。主机数的计算公式为2n−2,其中n为主机位的位数。这里n=14,减去2是因为要去掉网络地址(全0)和广播地址(全1)。则主机数为214−2=16384−2=16382。
12.当A(10.0.1.1/16)与B(10.0.2.2/24)通信,A如何判断是否在同一个网段?A和B能否通信?
A 的网络地址计算:A 的 IP 地址是 10.0.1.1,子网掩码为 / 16,即 255.255.0.0。将IP地址与子网掩码进行按位与运算,得到 A 的网络地址为10.0.0.0。
B 的网络地址计算:B 的 IP 地址是 10.0.2.2,子网掩码为 / 24,即 255.255.255.0。将IP地址与子网掩码进行按位与运算,得到 B 的网络地址为 10.0.2.0。
由于A的网络地址(10.0.0.0)和B的网络地址(10.0.2.0)不同,所以A和B不在同一个网段,且不能直接通信
13.如何将10.0.0.0/8划分32个子网?求每个子网的掩码,主机数
8表示子网掩码中前 8 位是网络位,后 24 位是主机位。要划分成 32 个子网,因为2的5次方=32,所以需要从主机位中借用 5 位来表示子网。原来的子网掩码是255.0.0.0,借用 5 位后,借用的 5 位在第三个字节上,将这 5 位设为1,即11111000,转换为十进制就是248。子网掩码变为255.248.0.0。划分后,主机位还剩下 24 - 5 = 19 位。根据公式,每个子网的主机数为219−2=524286
14.安装nodejs,并且使用npm完成hexo的安装,安装nginx,并且完成hexo博客页面的部署
(1)安装nodejs并简单实践
安装软件


测试效果

创建一个新的项目目录

创建文件 server.js

运行代码

浏览器访问http://10.0.0.13:3000

Ctrl + C 关闭服务

(2)博客系统
环境准备

安装软件

新建一个 myblogs 文件夹

安装hexo项目所依赖的文件

运行项目

浏览器访问 10.0.0.13:4000

创建新的文章

编辑新文件内容

浏览器刷新效果

终止前台程序

程序后台运行

检查效果

部署Nginx

定制nginx配置

启动nginx

浏览器访问 10.0.0.13

15.总结http协议常见的状态码和一次http请求的完整流程(面试常问)
(1)常见状态码
1xx信息性状态码:表示请求已被接收,继续处理。例如,100 Continue表示客户端应继续发送请求的剩余部分。
2xx成功状态码:表示请求已成功被服务器接收、理解并处理。如200 OK代表请求成功,服务器已成功处理请求并返回了相应的数据;204 No Content表示服务器成功处理了请求,但没有返回任何内容。
3xx重定向状态码:表示需要客户端采取进一步的操作才能完成请求。例如,301 Moved Permanently表示请求的资源已被永久移动到新的 URL;302 Found表示请求的资源临时移动到新的 URL,客户端应使用新的 URL 再次发送请求。
4xx客户端错误状态码:表示客户端发送的请求有错误。像400 Bad Request表示客户端发送的请求语法错误,服务器无法理解;401 Unauthorized表示客户端请求需要用户认证;403 Forbidden表示服务器拒绝了客户端的请求,客户端没有足够的权限访问资源;404 Not Found表示服务器无法找到请求的资源。
5xx服务器错误状态码:表示服务器在处理请求时发生了错误。例如,500 Internal Server Error表示服务器内部发生了错误,无法完成请求;503 Service Unavailable表示服务器暂时无法处理请求,通常是由于服务器过载或正在维护。
(2)一次 HTTP 请求的完整流程
客户端发起连接:客户端通过 TCP/IP 协议与服务器建立连接,通常是通过指定服务器的IP地址和端口号(默认80端口用于 HTTP,443端口用于HTTPS)进行连接。
客户端发送请求:连接建立后,客户端向服务器发送 HTTP 请求消息。请求消息包含请求方法(如GET、POST、PUT、DELETE等)、请求URL、协议版本、请求头字段(如 User-Agent、Content-Type 等)以及可能的请求体(如POST请求中的表单数据)。
服务器接收请求并处理:服务器接收到客户端的请求后,对请求进行解析,根据请求的 URL 和方法来确定要执行的操作,并处理请求。这可能涉及到访问数据库、执行服务器端脚本、读取文件等操作。
服务器发送响应:服务器处理完请求后,向客户端发送 HTTP 响应消息。响应消息包含协议版本、状态码、响应头字段(如Content-Type、Content- Length 等)以及响应体(即请求的资源内容,如 HTML页面、JSON 数据、图片等)。
客户端接收响应并处理:客户端接收服务器发送的响应消息,根据状态码判断请求是否成功。如果成功,客户端会根据响应头中的Content-Type 字段来解析和展示响应体中的数据,如在浏览器中显示 HTML 页面、播放视频等。如果请求失败,客户端会根据状态码显示相应的错误信息。
连接关闭:完成请求和响应后,客户端和服务器之间的连接可以被关闭。不过,在一些情况下,为了提高性能,连接可能会被保持一段时间,以便后续的请求可以复用该连接,这就是所谓的持久连接(Keep - Alive)机制。

posted on 2025-04-21 02:21  贝极星kira  阅读(66)  评论(0)    收藏  举报

导航