1. 尝试基于gcc命令说明 c语言编译过程。
c程序代码>预处理>编译>汇编>链接
2. 总结程序包管理器有哪些,以及包中包含什么内容的文件,尝试这些文件如何获取命令获取? yum/dnf/apt
rpm文件 rpm包管理器 deb文件 dbkg包管理器
3. 总结程序包获取途径,以及rpm, yum, apt命令选项示例。
rpm -l
yum
apt
4. 简要总结yum/dnf工作原理。并搭建私有yum仓库(base, epel源)给另一个虚拟机使用。
yum服务器存放rpm包和相关包的源数据库
yum客户端当问yum服务器进行安装和查询等
现在yum服务器上创建yumrepository 在仓库中实现存储了众多rpm包 一季报的相关的元数据 (放置于特定目录repodata下)当yum客户端利用yumdnf工具尽享安装时会自动下载repodata中的元数据 查询元数据是否存在相关的包及依赖关系 自动从仓库中找到相关包下载并进行安装
5. 总结系统安装之后的常用初始化步骤。rocky/ubuntu
将rocky/ubuntu的yum源全部换成国内阿里云腾讯云或者网易云的
6. 解读一键安装httpd脚本,并自行实现一个一键安装脚本,要求
1)基于位置变量传递版本号
2)基于独立函数进行初始化步骤,禁用防火墙,安装开发依赖包。
3)基于独立函数进行下载包,解压包。
4)基于独立函数进行编译,安装包。
5)基于独立函数完成链接包。
6)启动服务,并输出自定义的语句,安装xxx服务
$1=2.4.52
CPUS=‘grep -c processor /proc/cpuinfo’
HTTPD_VERSION=$1
INSTALL_DIR=/qpps/httpd
COLOR="echo -e \E[32;1m"
END="\E[0m"
systemctl disable --now firewalld
yum -y install gcc make apr-devel apr-util-devel openssl-devel pcre-devel
redhat-rpm-config bzip2
7. 总结开放系统互联OSI模型,每层作用及对应的协议。
应用层:提供为应用软件而设的接口,以设置与另一应用软件之间的通信
表示层:把数据转换为能与接收者的系统格式兼容并使和传输的格式
会话层:负责在数据传输中设置和维护电脑网络中两台电脑之间的通信链接
传输层:把传输表头加至数据已形成数据包 传输表头包含了所使用的协议等发送信息
网络层:决定数据的路径选择和转寄 将网络表头加至数据包 以形成报文 网络表头包含了网络数据
数据链路层:负责网络寻址 错误侦测和改错 当表头和表尾被加至数据包时 会形成信息框 数据链表头是包含了物理地址和错误侦测机改错的方法 数据链表尾是一串只是数据包末端的字符串 例如以太网无线局域网和通用分组无线服务等 分为两个子层 逻辑联络控制子层和介质访问控制子层
物理层:在局部局域网上传送数据帧 她负责管理电脑通信设备和网络媒体之间互通 包含了针脚电压线缆规范集线器中继器主机接口卡等
8. 调整动态端口范围为20000-60000
先显示当前临时端口的范围 cat /proc/sys/net/ipv4/ip_local_port_range
修改文件 /etc/sysctl.conf 添加 net.ipv4.ip_local_port_range=20000 60000
9. 总结TCP包头结构,TCP三次握手,4次挥手。
源端口 目的端口 序号 确认好 数据便宜 保留 URG ACK PSH RST SYN FIN 窗口 检验和 紧急指针 选项(长度可变)填充
客户传包给服务器 服务器接收后发确认包给客户 客户接收后发给服务器确认包
客户传包告诉服务器分手 服务器接收后发给客户表示确认收到 服务器发给客户分手包 客户发给服务器确认分手
10. 总结主机到主机的包传递过程。
主机传输之前先要封包 往前面加包头 每一层都得加包头 传输到对方主机后 进行解包 一层解对应层的包 直到剩详细信息
11. 总结IP地址 A, B, C, D 类,并解析IP地址的组成
0 0000000 - 0 1111111 .X.Y.Z :0-127.X.Y.Z
A类:网络ID为是最高8位 主机ID是24位低位
网络数:126=2^7 (可变是的网络ID位数)-2
每个网络中的主机数:2^24-2=16777214
默认子网掩码:255.0.0.0
私网地址:10.0.0.0
B类:10 000000 - 10 111111.X.Y.Z:128-191.X.Y.Z
网络ID位是最高好16位 主机ID是十六位的低位
网络数:2^14=16384
每个网络中的主机数:2^16-2=65534
默认子网掩码:255.255.0.0
私网地址:172.16.0.0-172.31.0.0
C类:110 0 0000-110 0 0000.X.Y.Z:192-233.X.Y.Z
网络ID是最高为二十四位 之际ID是八位低位
网络数:2^21=2097152
每个网络中的主机数:2^8-2=254
默认子网掩码:255.255.255.0
私网地址:192.168.0.0-192.168.255.0
D类:多播地址
E类:保留未使用
12. 201.222.200.111/18计算主机数?子网掩码?说明计算方法。
16382 255.255.192.0
13. 当A(10.0.1.1/16)与B(10.0.2.2/24)通信,A如何判断是否在同一个网段?A和B能否通信?
10.0.1.1/16 子网掩码255.255.0.0
10.0.2.2、24子网掩码255.255.255.0
不在同一子网 无法通信
14. 如何将10.0.0.0/8划分32个子网?
求每个子网的掩码,主机数。
15. 通过网络配置命令,让主机可以上网。 ip, netmask, gateway, dns,主机名。相关命令总结,最终可以通过这些配置让你的主机上网。
NAME=eth0
DEVICE=eth0
IP=192.168.190.105
NETMASK=255.255.255.0
DNS1=8.8.8.8
DNS2=114.114.114.114
16. 解析/etc/sysconfig/network-scripts/ifcfg-eth0配置格式。
name 网卡名
BOOTPROTO dhcp或者静态IP
onboot yes(使配置生效)
17. 基于配置文件或命令完成bond0配置
cat /etc/sysconfig/network-tab补全
ll
vim ifcfg-bond0
18. 通过ifconfig命令结果找到ip地址.
yum -y install net-tools
找到对应的网卡 后面高亮的就是IP地址
19. 使用脚本判断 你主机所在网络内在线的主机IP有哪些? ping通则在线。
#!/bin/bash
PING(){
ping -c 1 -w 1 $1 &>/dev/null
}
u=0
d=0
for i in {100..130};do
if PING 192.168.100.$i;then
echo -e "IP:\033[32m192.168.100.$i\033[0m is UP"
let u=$[$u+1]
else
echo -e "IP:\033[32m192.168.100.$i\033[0m is DOWN"
let d=$[$d+1]
fi
done
echo "UP links=$u"
echo "DOWN links=$d"
20. 使用while read line和/etc/passwd,计算用户id总和。
while read pid ;do
plus='echo $pid|cut -d" " -f2'
let sum+=plus
done < /etc/passwd
echo $sum