自学linux记录 2025年3月8日

目录

一、 总结程序包管理器有哪些,以及包中包含什么内容的文件,尝试这些文件如何获取命令获取? yum/dnf/apt总结程序包获取途径,以及rpm, yum, apt命令选项示例。

二、简要总结yum/dnf工作原理。并搭建私有yum仓库(base, epel源)给另一个虚拟机使用。

三、 简要总结apt的工作原理

四、 编译安装nginx的步骤总结

五、 磁盘存储术语总结: head, track, sector, sylinder.

六、 总结MBR,GPT结构。

七、 总结学过的分区,文件系统管理,SWAP管理相关的命令及示例(加注释),示例 fdisk, parted, mkfs, tune2fs, xfs_info, fsck, mount, umount, swapon, swapoff

八、 总结raid 0, 1, 5, 10, 01的工作原理。总结各自的利用率,冗余性,性能,至少几个硬盘实现。

九、 总结LVM的基本原理,完成实验对LVM的创建和磁盘扩容。

十、 总结开放系统互联OSI模型,每层作用及对应的协议。

十一、调整动态端口范围为20000-60000

十二、总结TCP包头结构,TCP三次握手,4次挥手。

十三、总结主机到主机的包传递过程。

十四、总结IP地址 A, B, C, D 类,并解析IP地址的组成

十五、201.222.200.111/18计算主机数?子网掩码?说明计算方法。

十六、 当A(10.0.1.1/16)与B(10.0.2.2/24)通信,A如何判断是否在同一个网段?A和B能否通信?

十七、如何将10.0.0.0/8划分32个子网?求每个子网的掩码,主机数。"


一、 总结程序包管理器有哪些,以及包中包含什么内容的文件,尝试这些文件如何获取命令获取? yum/dnf/apt总结程序包获取途径,以及rpm, yum, apt命令选项示例。
 

主流的程序包管理器:。redhat:rpm文件,rpm包管理器,rpm:Redhat Package Manager,RPM Package Manager·debian:deb文件,dpkg包管理器

包文件组成(每个包独有)·

包内的文件·

元数据,如:包的名称,版本,依赖性,描述等·

可能会有包安装或卸载时运行的脚本   

数据库(公共):var/lib/rpm

程序包名称及版本

依赖关系

功能说明

包安装后生成的各文件路径及校验码信息

CentOS镜像:
https://www.centos.org/download/
http://mirrors.aliyun.com
http://mirrors.sohu.com
http://mirrors.163.com
Ubuntu 镜像:
http://cdimage.ubuntu.com/releases/
http://releases.ubuntu.com
 

第三方组织提供
Fedora-EPEL:Extra Packages for Enterprise Linux
https://fedoraproject.org/wiki/EPEL
https://mirrors.aliyun.com/epel/?spm=a2c6h.13651104.0.0.3bc47dfaZpesAr
Rpmforge:RHEL推荐,包很全,即将关闭
http://repoforge.org/
Community Enterprise Linux Repository:支持最新的内核和硬件相关包
http://www.elrepo.org
 

软件项目官方站点
http://yum.mariadb.org/10.4/centos8-amd64/rpms/
http://repo.mysql.com/yum/mysql-8.0-community/el/8/x86_64/

搜索引擎
http://pkgs.org
http://rpmfifind.net
http://rpm.pbone.net
https://sourceforge.net/

rpm

rpm {-q|--query} [select-options] [query-options]
[select-options]
-a #所有包
-f #查看指定的文件由哪个程序包安装生成
-p rpmfile #针对尚未安装的程序包文件做查询操作
--whatprovides CAPABILITY #查询指定的CAPABILITY由哪个包所提供
--whatrequires CAPABILITY #查询指定的CAPABILITY被哪个包所依赖
[query-options]

--changelog
-c
-d
-i
-l
--scripts
--provides
-R
#查询rpm包的changelog
#查询程序的配置文件
#查询程序的文档
#information
#查看指定的程序包安装后生成的所有文件
#程序包自带的脚本
#列出指定程序包所提供的CAPABILITY
#查询指定的程序包所依赖的CAPABILITY

#常用查询组合
-qi PACKAGE
-qf FILE
-qc PACKAGE
-ql PACKAGE
-qd PACKAGE
-qpi PACKAGE_FILE
-qpl PACKAGE_FILE
-qa

rpm -ivh vsftpd #对vsftpd进行安装并显示过程和进度

rpm  -q ngnix  #查询nginx的服务包

rpm -qi  nginx  #查询nginx详细信息

[root@rocky86 h]# rpm -qi nginx
Name : nginx
Epoch : 1
Version : 1.14.1
Release : 9.module+el8.4.0+542+81547229
Architecture: x86_64
Install Date: Thu 14 Jul 2022 10:11:12 AM CST
Group : System Environment/Daemons
Size : 1669719
License : BSD
Signature : RSA/SHA256, Thu 10 Jun 2021 05:22:38 PM CST, Key ID
15af5dac6d745a60
Source RPM : nginx-1.14.1-9.module+el8.4.0+542+81547229.src.rpm
Build Date : Thu 10 Jun 2021 05:10:40 PM CST
Build Host : ord1-prod-x86build005.svc.aws.rockylinux.org
Relocations : (not relocatable)
Packager : infrastructure@rockylinux.org
Vendor : Rocky
URL : http://nginx.org/
Summary : A high performance web server and reverse proxy server
Description :
Nginx is a web server and a reverse proxy server for HTTP, SMTP, POP3 and
IMAP protocols, with a strong focus on high concurrency, performance and low
memory usage
 

rpm -qf  /usr/sbin/nginx   #查询nginx文件的包信息

[root@rocky86 h]# rpm -qf /usr/sbin/nginx
nginx-1.14.1-9.module+el8.4.0+542+81547229.x86_64
 

#没安装的指定包文件,新版可省略-p参数
[root@rocky86 h]# rpm -qpc httpd-2.4.37-
47.module+el8.6.0+823+f143cee1.1.x86_64.rpm
/etc/httpd/conf.d/autoindex.conf
/etc/httpd/conf.d/userdir.conf
 

查询指定包文件

[root@rocky86 0727]# rpm -ql nginx
/etc/logrotate.d/nginx
/etc/nginx/fastcgi.conf
 

查询postfix安装脚本信息

#短路或,如果没有安装,就执行安装操作
[root@rocky86 v]# rpm -q vsftpd || rpm -ivh vsftpd-3.0.3-35.el8.x86_64.rpm
package vsftpd is not installed

Verifying...
Preparing...
Updating / installing...
1:vsftpd-3.0.3-35.el8

################################# [100%]
################################# [100%]

################################# [100%]

[root@rocky86 v]# rpm -evh vsftpd
Preparing... ################################# [100%]
Cleaning up / removing...
1:vsftpd-3.0.3-35.el8 ################################# [100%]
 

[root@rocky86 v]# rpm -q vsftpd
package vsftpd is not installed

 


[root@rocky86 ~]# cat /etc/yum.conf
[main]
gpgcheck=1                       #安装包前要做包的合法和完整性校验
installonly_limit=3                  #同时可以安装3个包,最小值为2,如设为0或1,
为不限制
clean_requirements_on_remove=True               #删除包时,是否将不再使用的包删除best=True #升级时自动选择安装最新版,即使缺少包的依赖
skip_if_unavailable=False               #跳过不可用的
 

yum用法:

#常用选项
-c file|--config file         #指定配置文件,默认使用
/etc/yum.conf
-v|--verbose              #显示详细信息
-b|--best                #尝试在可用包中寻找最匹配的版本
-y|--assumeyes                 #自动回答为 yes
--nogpgcheck                #不进行包校验
--repo repoid|--repoid repoid        #指定repo源
--enablerepo repoid           #临时启用repo源,可用通配符
--disablerepo repoid            #临时禁用repo源,可用通配符
--nodocs                        #不安装文档
--skip-broken                #跳过有问题的包
--enable                        #启用源,配合 configmanager
--disable                      #禁用源,配合 configmanager
-x package|--exclude package|--excludepkgs package            #排除指定包,可用通配符
--downloadonly                      #只下载,不安装
 

yum repolist  #查看仓库列表 

 yum install  at  ---安装at包

 yum   reinstall  at  ---重新安装at包

yum remove  at---移除at包

yum  provides  at  --查询文件是由哪个包提供的

apt命令:

apt命令参数

root@ubuntu22:~# apt install nginx


#同时安装多个包
root@ubuntu22:~# apt install nginx redis -y


#安装指定版本的包,默认安装最新版
root@ubuntu22:~# apt install nginx=1.14.0-0ubuntu1


#安装nginx 包,如果己存在,则不升级
root@ubuntu22:~# apt install nginx --no-upgrade


#只升级不安装
root@ubuntu22:~# apt install nginx --only-upgrade
 

#仅卸载nginx包
root@ubuntu22:~# apt remove -y nginx


#卸载所有依赖包
root@ubuntu22:~# apt autoremove nginx
 

#纺计源中可更新的信息,并不执行具体更新
root@ubuntu22:~# apt update

#更新所有己安装的包
root@ubuntu22:~# apt upgrade
 

二、简要总结yum/dnf工作原理。并搭建私有yum仓库(base, epel源)给另一个虚拟机使用。

yum/dnf 是基于C/S 模式
yum 服务器存放rpm包和相关包的元数据库
yum 客户端访问yum服务器进行安装或查询等
yum 实现过程
先在yum服务器上创建 yum repository(仓库),在仓库中事先存储了众多rpm包,以及包的相关的元
数据文件(放置于特定目录repodata下),当yum客户端利用yum/dnf工具进行安装包时,会自动下载
repodata中的元数据,查询元数据是否存在相关的包及依赖关系,自动从仓库中找到相关包下载并安装

dnf:yum程序在安装的过程中,如果被终止,下次再执行将无法解决依赖,DNF可解决此问题;

私有仓库搭建 ,本次实验对象是:rocky8.9 仓库--------->  麒麟系统获取rocky目标仓库服务

首先我们在rocky中安装httpd服务

yum install httpd

后关闭防火墙

systemctl  disabled --now firewalld.service

挂载本地镜像到 /mnt/下----mount  /dev/sr0   /mnt/---此操作是为了把后续的AppStream和BaseOS下的资源复制过去,而extras本地镜像中没有,可通过设置本地仓库去同步对应网站资源

后在/var/www/html中创建index.html。写如下信息,浏览器输入响应IP地址即可访问

复制本地镜像文件到创建的目录下

在对应客户机上配置服务器192.168.153.138的仓库地址的AppStream,BaseOS,extras

cp -vr  /mnt/AppStream/*  /var/www/html/AppStream

cp -vr  /mnt/BaseOS/*  /var/www/html/BaseOS

由于本地无extras所属文件内容

我们同步aliyun下的extras仓库:

首先做快照

新建所属extras

vim ltx.extras.repo

 yum repolist --repo=ali-extras -v

先同步aliyun仓库extras至想要下载的目录下,后cp 至对应目录

即可看到对应数据出现在指定目录,服务器端已成功配置完成

最后我们在麒麟客户端配置本地仓库文件,目标地址为192.168.153.138rocky服务器,后yum clean all  本地缓存,yum makecache新的缓存,yum  repolist -v   显示本地仓库配置文件及目标地址仓库

尝试下载目标仓库服务,yum - y install  nodejs服务,发现是我们想要的目标rocky服务器地址,说明大功告成。

三、 简要总结apt的工作原理

在服务器上先复制所有DEB包,然后用APT的分析工具genbasedir根据每个DEB 包的包头(Header)信
息对所有的DEB包进行分析,并将该分析结果记录在文件夹base内的一个DEB 索引清单文件中,一旦
APT 服务器内的DEB有所变动,要使用genbasedir产生新的DEB索引清单。
客户端在进行安装或升级时先要查询DEB索引清单,从而获知所有具有依赖关系的软件包,并一同下载
到客户端以便安装。当客户端需要安装、升级或删除某个软件包时,客户端计算机取得DEB索引清单压
缩文件后,会将其解压置放于 /var/cache/apt/,而客户端使用apt-get install或apt-get upgrade命令的
时候,就会将这个文件夹内的数据和客户端计算机内的DEB数据库比对,知道哪些DEB已安装、未安装
或是可以升级的。
 

四、 编译安装nginx的步骤总结

下载对应nginx

解包

进入包查看配置帮助

#指定安装目录,开启ssl模块,开始编译
根据提示,安装C编译器
 

 yum install -y pcre-devel

安装openssl包

生成makefile文件

#执行make
[root@rocky86 nginx-1.23.0]# make
#执行make install
[root@rocky86 nginx-1.23.0]# make install
 

查看tree  /lnmp/

启动nginx,查看版本信息

通过IP访问成功

五、 磁盘存储术语总结: head, track, sector, sylinder.

六、 总结MBR,GPT结构。

MBR结构总结:

MBR:Master Boot Record,1982年,使用32位表示扇区数,分区不超过2T
划分分区的单位:
CentOS 5 之前按整柱面划分
CentOS 6 版本后可以按Sector划分
0磁道0扇区:512bytes
446bytes: boot loader 启动相关
64bytes:分区表,其中每16bytes标识一个分区
2bytes: 55AA,标识位
MBR分区中一块硬盘最多有4个主分区,也可以3主分区+1扩展(N个逻辑分区)
MBR分区:主和扩展分区对应的1--4,/dev/sda3,逻辑分区从5开始,/dev/sda5
 

GPT结构总结

GPT分区结构分为4个区域:
GPT头
分区表
GPT分区
备份区域

GPT:GUID(Globals Unique Identifiers) partition table 支持128个分区,使用64位,支持
8Z( 512Byte/block )64Z ( 4096Byte/block)
使用128位UUID(Universally Unique Identifier) 表示磁盘和分区,GPT分区表自动备份在头和尾两
份, 并有CRC校验位
UEFI (Unified Extensible Firmware Interface 统一可扩展固件接口)硬件支持GPT,使得操作系统
可以启动
 

七、 总结学过的分区,文件系统管理,SWAP管理相关的命令及示例(加注释),示例 fdisk, parted, mkfs, tune2fs, xfs_info, fsck, mount, umount, swapon, swapoff

swapon [options] [<spec>]
#常用选项
-a|--all #激活 /etc/fstab 中的所有交换区
-d|--discard[=policy] #根据条件禁用(once|pages)
-e|--ifexists #自动跳过不存在的设备而不提示
-f|--fixpgsz #必要时重新初始化交换区
-o|--options list #指定选项,swapon -o pri=1,discard=pages,nofail
/dev/sda2
-p|--priority N #指定交换设备的优先级(-1到32767),值越大优先级越高,也可
在/etc/fstab第4列指定pri=value
-s|--summary #显示已使用交换设备的摘要
--show[=columns] #以可自定义的表格形式打印摘要 swapon --show|swapon
--show=NAME,TYPE
--noheadings #不打印表头,配合 --show 选项
--raw #使用原生输出格式,配合 --show 选项
--bytes #在 --show 输出中以字节数显示交换区大小
-v|--verbose #显示详细信息
#<spec> 参数:
-L label #同 LABEL=label
swapon [options] [<spec>]
#常用选项
-a|--all #激活 /etc/fstab 中的所有交换区
-d|--discard[=policy] #根据条件禁用(once|pages)
-e|--ifexists #自动跳过不存在的设备而不提示
-f|--fixpgsz #必要时重新初始化交换区
-o|--options list #指定选项,swapon -o pri=1,discard=pages,nofail
/dev/sda2
-p|--priority N #指定交换设备的优先级(-1到32767),值越大优先级越高,也可
在/etc/fstab第4列指定pri=value
-s|--summary #显示已使用交换设备的摘要
--show[=columns] #以可自定义的表格形式打印摘要 swapon --show|swapon
--show=NAME,TYPE
--noheadings #不打印表头,配合 --show 选项
--raw #使用原生输出格式,配合 --show 选项
--bytes #在 --show 输出中以字节数显示交换区大小
-v|--verbose #显示详细信息
#<spec> 参数:
-L label #同 LABEL=label
 

禁用swap分区

swapoff [options] [<spec>]
#常用选项
-a|--all #禁用 /proc/swaps 中的所有交换区
-v|--verbose #显示过程
#spec 参数

-L label
-U uuid
LABEL=label
UUID=uuid
device
filename
#要使用设备的标签
#要使用设备的 UUID
#要使用设备的标签
#要使用设备的 UUID
#要使用设备的名称
#要使用文件的名称


创建swap分区

#先创建分区,选择swap类型
#再创建swap文件系统
[root@ubuntu2204 ~]# mkswap /dev/sdc3
Setting up swapspace version 1, size = 2 GiB (2147479552 bytes)
no label, UUID=e08d9c52-98f2-4fed-8f19-5a890bece201
#查看
[root@ubuntu2204 ~]# blkid /dev/sdc3
/dev/sdc3: UUID="e08d9c52-98f2-4fed-8f19-5a890bece201" TYPE="swap"
PARTUUID="a6ea333f-03"
#修改/etc/fstab文件,添加swap行
#禁用,再次启用
[root@ubuntu2204 ~]# swapoff -a
[root@ubuntu2204 ~]# swapon -a
#查看,比原来多2GB swap空间
[root@ubuntu2204 ~]# free -h
total used free shared buff/cache available

Mem:
Swap:
1.9Gi 295Mi
4.0Gi 0B
1.5Gi
4.0Gi
1.0Mi 112Mi1.5Gi

#查看内存
[root@ubuntu2204 ~]# cat /proc/swaps
Filename Type Size Used Priority

/swap.img file20971480                     -2
/dev/sdc3 partition20971480                  -3

查看swap分区
Priority越大,优先级越高,会被优先使用
 

root@ubuntu2204 ~]# swapon -s
Filename Type Size Used Priority

/swap.img file20971480
/dev/sdc3 partition20971480

-2
-3
[root@ubuntu2204 ~]# cat /proc/swaps
Filename Type Size Used Priority

/swap.img file20971480
/dev/sdc3 partition20971480

-2
-3

fdisk

fdisk -l /dev/sda查看分区

对想要的磁盘进行分区 fdisk  /dev/sdb

parted  -l   显示所有分区信息

parted /dev/sdb mklabel gpt在磁盘上创建GPT分区
parted /dev/sdb print
 

parted /dev/sdb mkpart primary 1 1001
分区

parted /dev/sdb rm 2  删除分区
 

mkfs,

mkfs.xfs  /dev/sd1 对想要分区进行格式化成xfs

tune2fs,

[root@ubuntu2204 ~]# tune2fs -l /dev/sdc1
tune2fs 1.46.5 (30-Dec-2021)
Filesystem volume name: <none>
Last mounted on: <not available>
Filesystem UUID: e55d9611-63c5-43dd-a6b3-fe6409778834
Filesystem magic number: 0xEF53
Filesystem revision #: 1 (dynamic
 

#查看超级块信息
[root@ubuntu2204 ~]# dumpe2fs -h /dev/sdc1
dumpe2fs 1.46.5 (30-Dec-2021)
Filesystem volume name: <none>
Last mounted on: <not available>
Filesystem UUID: e55d9611-63c5-43dd-a6b3-fe6409778834
Filesystem magic number: 0xEF53
Filesystem revision #: 1 (dynamic)
 

xfs_info,

xfs_info /dev/sdc2

fsck,

mount,

零时挂载至对应目录

 mount /dev/sdb1 /sdb1

umount,

[root@ltx-rockycloud ~]$ umount /dev/sdb2  设备取消挂载
umount: /dev/sdb2: not mounted.
[root@ltx-rockycloud ~]$ umount /sdb2   挂载点取消挂载

swapon,   swapoff

[root@ltx-rockycloud ~]$ mkswap /dev/sdb2 ----------------创建swap分区
mkswap: /dev/sdb2: warning: wiping old xfs signature.
Setting up swapspace version 1, size = 3 GiB (3221221376 bytes)
no label, UUID=606c9f9f-fe71-4f95-a6c9-0460f32ee12f
[root@ltx-rockycloud ~]$ blkid /dev/sdb2   --------查看
/dev/sdb2: UUID="606c9f9f-fe71-4f95-a6c9-0460f32ee12f" TYPE="swap" PARTUUID="10202c78-02"
[root@ltx-rockycloud ~]$ swapoff -a -------禁用swap分区
[root@ltx-rockycloud ~]$ free -h ----------查看swap
              total        used        free      shared  buff/cache   available
Mem:          1.7Gi       540Mi       780Mi        10Mi       425Mi       1.0Gi
Swap:            0B          0B          0B
[root@ltx-rockycloud ~]$ swapon -a  -----开启swap分区
[root@ltx-rockycloud ~]$ free -h  -----再次查看swap  多了2G
              total        used        free      shared  buff/cache   available
Mem:          1.7Gi       541Mi       779Mi        10Mi       425Mi       1.0Gi
Swap:         2.0Gi          0B       2.0Gi
[root@ltx-rockycloud ~]$ 

八、 总结raid 0, 1, 5, 10, 01的工作原理。总结各自的利用率,冗余性,性能,至少几个硬盘实现。

RAID 等级最少硬盘最大容量可用容量读性能写性能安全性目的应用场景
010nnn一块硬盘坏, 全部硬盘都会 异常追求最大容量、 速度影片剪接 缓存用途
12n- 11n高,一个正常 即可追求最大安全性个人企业 备份
531n- 1n- 1n- 1追求最大容量、 最小预算个人企业 备份
104综合RAID0/1优 点,理论速度较 快大型数据 库、服务 器

        

九、 总结LVM的基本原理,完成实验对LVM的创建和磁盘扩容。

通过pv、vg、lv创建所需要的卷,

后lv扩容300M,

格式化成ext4,后挂载至/sdb2文件下

十、 总结开放系统互联OSI模型,每层作用及对应的协议。

十一、调整动态端口范围为20000-60000

十二、总结TCP包头结构,TCP三次握手,4次挥手。

TCP包头结构

3次握手

4次挥手

十三、总结主机到主机的包传递过程。

十四、总结IP地址 A, B, C, D 类,并解析IP地址的组成
 

十五、201.222.200.111/18计算主机数?子网掩码?说明计算方法。

11001001.11011110.11(网络号)           (主机号 ) 001000.01101111

掩码范围:201.222.0.0/18    201.222.64.0/18   201.222.128.0/18   201.222.192.0/18

主机数:32-18=14,2^14-2=16382个主机

十六、 当A(10.0.1.1/16)与B(10.0.2.2/24)通信,A如何判断是否在同一个网段?A和B能否通信?

10.0.1.1/16

网络地址:00001010.00000000.00000001.00000001/16

子网掩码:111111111.111111111.00000000.00000000

网段号:      00001010.00000000.00000000.00000000=10.0.0.0/16

10.0.2.2/24

网络地址:00001010.00000000.00000010.00000010 /24

子网掩码:111111111.111111111.111111111.00000000

网段号:      00001010.00000000.00000010.00000000=10.0.2.0/24

由此可见 10.0.2.2/24  认为 10.0.1.1/16不是在同一个子网

反过来,10.0.1.1/16  认为10.0.2.2/24是在同一个子网

十七、如何将10.0.0.0/8划分32个子网?求每个子网的掩码,主机数。"

先算出32个子网  32=2^5 ,

原来:10.0.0.0/8

原来:00001010,000000000,00000000,00000000,/8

目的:划分+5

现在:00001010,00000(网络位)       (主机位) 000,00000000,00000000,/13

起始--10.0.0.0/13

10.8.0.0                                           

10.16.0.0

10.24.0.0

。。。。。(每次+8)

末尾---10.248.0.0/13

共32个

主机数 32-13=19,2^19-2=524286个主机数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值