RHCSA——Linux网络、磁盘及软件包管理

ZY目录

  • Linux操作系统讲解:
  • 一、网络管理
    • 1、NetworkManager
      • 1.1、nmtui界面:
      • 1.2、nmcli使用方法:
    • 2、配置网络
      • 2.1、网络接口以及网络连接
      • 2.2、配置方法:
      • 2.3、ping命令:
      • 2.4、wget命令
  • 二、磁盘管理
    • 2.1、分区得两种格式
      • 2.1.1、MBR分区
      • 2.1.2、GPT分区
    • 2.2、磁盘分区——fdisk命令
    • 2.3、格式化分区
    • 2.4、挂载分区
  • 三、软件包管理
    • 3.1、安装软件包
      • 1、rpm安装软件包
      • 2、yum/dnf 安装
      • 3、yum/dnf卸载软件包
    • 3.2、运行软件/程序
    • 3.3、查看进程运行信息

Linux操作系统讲解:

Linux所有命令(日更)
1、红帽Linux安装配置讲解
2、Linux基本使用以及文件类型根目录结构讲解
3、Linux文件管理以及Vim编辑器的用法讲解
4、文件管理命令及管通符的用法讲解
5、文件管理以及用户和组的管理讲解
6、Linux文件权限管理讲解
实操:使用Linux搭建一个论坛

一、网络管理

1、NetworkManager

NetworkManager是2004年Red Hat启动的项目,旨在能够让Linux用户更轻松地处理现代网络需求,尤其是无线网络,能自动发现网卡并配置ip地址。
类似在手机上同时开启wifi和蜂窝网络,自动探测可用网络并连接,无需手动切换。
虽然初衷是针对无线网络,但在服务器领域,NM已大获成功。
NM能管理各种网络

  • 有线网卡、无线网卡
  • 动态ip、静态ip
  • 以太网、非以太网
  • 物理网卡、虚拟网卡

1、使用方法

  • nmcli: 命令行。 这是最常用的工具,本文将详细讲解该工具使用。
  • nmtui:shell终端开启文本图形界面。
  • Freedesktop applet:GNOME上自带的网络管理工具
  • cockpit: redhat自带的基于web图形界面的"驾驶舱"工具,具有dashborad和基础管理功能。

2、注意:

1、一个网络接口,可以有多个网络连接,但同一时间只能有一个网络连接处于活动状态。
2、会话和网卡的关系:一个网卡可以有多个会话,但是一个时刻只能连接到一个会话。

1.1、nmtui界面:

1、实现代码: [root@rhcsa ~]# nmtui
2、界面展示:
在这里插入图片描述
我这里设置的是中文,当然英文也必须掌握。之后我都会设置为英文,这里方便掌握查看。
下面为英文翻译:

`Edit a connection`编辑一个连接
`Activate a connection:`激活或禁用某条连接
`Set system hostname:`设置主机名

下面为编译连接的界面:
在这里插入图片描述
这里接着有用英文进行翻译:

`ethernet:` 以太网连接
    `ens160: add, edit, delete`
    `add:`增加一条连接
    `edit:`编辑当前这条连接
    `delete:` 删除
`bridge:`桥接 

3、NM的使用用法:

  • 1、工具齐全: 命令行、文本界面、图形界面、web
  • 2、广纳天地: 纳管各种网络,有线、无线、物理、虚拟
  • 3、参数丰富: 多达200多项配置参数(包括ethtool参数)
  • 4、一统江湖: RedHat系、Suse系、Debian/Ubuntu系,均支持
  • 5、大势所趋: 下一个大版本的rhel只能通过NM管理网络

1.2、nmcli使用方法:

nmcli使用方法非常类似linux ip命令、cisco交换机命令,并且支持tab补全也可在命令最后通过-h–helphelp查看帮助。

1、type ethernet:创建连接时候必须指定类型,类型有很多,可以通过 nmcli c add type -h 看到,这里指定为ethernet
2、con-name ethX-test:ethX-test表示连接(connection)的名字,这个名字可以任意定义,无需
和网卡名相同
3、ifname ethXethX表示网卡名,这个ethX必须是在 nmcli d 里能看到的网卡的名字
4、ipv4.addresses '192.168.1.100/24,192.168.1.101/32':配置2个ip地址,分别为192.168.1.100/24192.168.1.101/32
5、ipv4.gateway 192.168.1.254:网关为192.168.1.254
6、ipv4.dns '8.8.8.8,4.4.4.4'dns8.8.8.84.4.4.4
7、ipv4.method:默认为auto,对应网卡配置文件里的BOOTPROTO=dhcp;ipv4.method
8、manual,对应网卡配置文件里的BOOTPROTO=none,即只有静态ip
9、autoconnect yes:对应网卡配置文件里的ONBOOT=yes

1、在nmcli中有2个命令最为常用:

  • nmcli connection
    译作连接,可理解为配置文件,相当于ifcfg-ethX。可以简写为nmcli c
  • nmcli device
    译作设备,可理解为实际存在的网卡(包括物理网卡和虚拟网卡),可以简写为nmcli d

在NM里,有2个维度连接(connection)和设备(device,这是多对一的关系。

想给某个网卡配ip,首先NM要能纳管这个网卡。设备里存在的网卡(即 nmcli d 可以看到的),就是NM纳管的。接着,可以为一个设备配置多个连接(即 nmcli c 可以看到的),每个连接可以理解为一个ifcfg配置文件。同一时刻,一个设备只能有一个连接活跃。可以通过 nmcli c up 切换连接。

2、connection有2种状态:

  • 活跃(带颜色字体):表示当前该connection生效
  • 非活跃(正常字体):表示当前该connection不生效

3、device有4种常见状态:

  • connected:已被NM纳管,并且当前活跃的connection
  • disconnected:已被NM纳管,但是当前没有活跃的connection
  • unmanaged未被NM纳管
  • unavailable不可用,NM无法纳管,通常出现于 网卡linkdown的时候 (比如ip link set ethXdown

4、nmcli c show

  • 第一列是connection名字,简称con-name(注意con-name不是网卡名)
  • 第二列是connectionUUID
  • 最后一列才是网卡名(标准说法叫device名),可通过nmcil d查看device
    connection做操作时需要指定标识,标识可以是con-nameUUID、如果存在ifcfg文件则也可以用ifcfg的完整路径,即/etc/sysconfig/network-scripts/ifcfg-ethX
nmcli c show ethX
nmcli c show cae3f1ef-e79a-46c3-8e0c-946b91a65e11
nmcli c show /etc/sysconfig/network-scripts/ifcfg-ethX
#先查看虚拟机自动获取的网关地址是多少
#1、先查看linux的网卡名
[root@rhcsa ~]# ip  a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:0c:29:6c:54:be brd ff:ff:ff:ff:ff:ff
    altname enp3s0
    inet 192.168.13.129/24 brd 192.168.13.255 scope global dynamic noprefixroute ens160
       valid_lft 977sec preferred_lft 977sec
    inet6 fe80::20c:29ff:fe6c:54be/64 scope link noprefixroute
       valid_lft forever preferred_lft forever
[root@rhcsa ~]#
#2、再查看网卡对应的会话名
`nmcli(命令行工具)`
[root@rhcsa ~]# nmcli connection
NAME    UUID                                  TYPE      DEVICE
ens160  6a85e48e-0f2a-37eb-9a0a-38296c2998a8  ethernet  ens160
[root@rhcsa ~]# nmcli connection
NAME    UUID                                  TYPE      DEVICE
ens160  6a85e48e-0f2a-37eb-9a0a-38296c2998a8  ethernet  ens160
[root@rhcsa ~]#
#3、获得网关的信息
[root@rhcsa ~]# nmcli connection show ens160 | grep -i gateway
connection.gateway-ping-timeout:        0
ipv4.gateway:                           --
ipv6.gateway:                           --
IP4.GATEWAY:                            192.168.13.2
IP6.GATEWAY:                            --
[root@rhcsa ~]#

手动配置linux网卡的ip参数:
ip地址,掩码,网关,dns服务器:
ipv4.addresses表示配置的ip地址
ipv4.gateway表示配置的网关
ipv4.method表示使用手动配置的地址
autoconnect表示开机自动加载该配置信息到网卡

5、nmcli c的con-name

同时对应ifcfg的文件名以及内容中的NAME=,该参数表示连接(connection)的名字,无需和网卡名相同,可以为一个设备(device)创建多个连接,但同一时刻只能有一个连接生效。当有多个连接时候,nmcli c delete 删除当前连接,就会自动选择同一个设备的其他连接来顶替生效。可以通过 nmcli c up 来将指定连接切换生效。

注意: 通过nmcli c modify修改con-name,只会对应修改ifcfg文件中的NAME,而不会更改ifcfg文件名。

6、nmcli c的ipv4.method

对应ifcfg文件内容的BOOTPROTOipv4.method默认为auto,对应为BOOTPROTO=dhcp,这种时候如果指定ip,就可能导致网卡同时有dhcp分配的ip和静态ip。设置为manual表示BOOTPROTO=none,即只有静态ip
例子:创建一个连接(connection

nmcli c add type ethernet con-name ethX-test ifname ethX ipv4.addresses
‘192.168.1.100/24,192.168.1.101/32’ ipv4.routes ‘10.0.0.0/8 192.168.1.10,192.168.0.0/16
192.168.1.11’ ipv4.gateway 192.168.1.254 ipv4.dns ‘8.8.8.8,4.4.4.4’ ipv4.method manual
  • type ethernet:创建连接时候必须指定类型,类型有很多,可以通过 nmcli c add type -h 看到,这里指定为ethernet
  • con-name ethX ifname ethX:第一个ethX表示连接(connection)的名字,这个名字可以任意定义,无需和网卡名相同;第二个ethX表示网卡名,这个ethX必须是在 nmcli d 里能看到的。
  • ipv4.addresses ‘192.168.1.100/24,192.168.1.101/32’:配置2个ip地址,分别为192.168.1.100/24192.168.1.101/32
  • ipv4.gateway 192.168.1.254:网关为192.168.1.254
  • ipv4.dns ‘8.8.8.8,4.4.4.4’dns8.8.8.84.4.4.4
  • ipv4.method manual:配置静态IP

2、配置网络

2.1、网络接口以及网络连接

网络接口: 指网络中的计算机或网络设备与其他设备实现通讯的进出口。这里,主要是指计算机的网络接口即网卡设备。
从RHEL7开始引入了一种新的“一致网络设备命名”的方式为网络接口命名,该方式可以根据固件、设备拓扑、设备类型和位置信息分配固定的名字
网络接口的名称的前两个字符为网络类型符号。 如:

  • en——示以太网(Ethernet)、wl表示无线局域网(wlan)、ww表示无线广域网(wwan);接下来的字符根据设备类型或位置选择,如:
  • o——表示内置(onboard)于主板上的集成设备(即集成网卡)及索引号;
  • s——表示是插在可以热拔插的插槽上的独立设备及索引号;
  • x——表示基于MAC地址命名的设备;
  • p——表示PCI插槽的物理位置及编号

网络连接: 为网络接口实施配置的设置集合。在同一个网络接口上,可以有多套不同的设置方案,即一个网络接口可以有多个网络连接,但同一时间只能有一个网络连接处于活动状态

2.2、配置方法:

  • 手工配置ifcfg,通过NM来生效;
  • 通过NM自带工具配ip,比如nmcli
  • 手工配置ifcfg,通过传统network.service来生效。
  • 图形化界面nmtui

这里我们说用nmcli设置:

[root@rhcsa ~]# nmcli connection modify  ens160 ipv4.addresses  192.168.168.39/24  ipv4.gateway  192.168.168.2  ipv4.dns 114.114.114.114 ipv4.method manual  autoconnect  yes
[root@rhcsa ~]# nmcli connection up  ens160
[root@rhcsa ~]# ping  -c2  www.baidu.com

添加新的会话type表示指定类型ifname表示物理网卡名con-name表示会话名

[root@rhcsa ~]# nmcli connection add type ethernet ifname  ens160 con-name static
连接 "static" (8a4e0f0d-71a9-42ef-8f22-2c2cbb1c46d8) 已成功添加。
[root@rhcsa ~]# nmcli connection modify static ipv4.addresses 192.168.168.40/24 ipv4.gateway 192.168.168.2 ipv4.dns 8.8.8.8 ipv4.method  manual
#应用static的配置信息
[root@rhcsa ~]# nmcli connection up static
#给static会话添加一个ip地址
[root@rhcsa ~]# nmcli connection modify static  +ipv4.addresses 192.168.168.41/24
#删除static会话的ip地址
[root@rhcsa ~]# nmcli connection modify static  -ipv4.addresses 192.168.168.41/24

2.3、ping命令:

使用ping命令测试网络的连通性
命令一般格式为:
ping [选项] <目标主机名或IP地址>
常用选项:

  • -c 数字——用于设定本命令发出的ICMP消息包的数量,若无此选项,则会无限次发送消息包直到用户按下Ctrl+C组合键才终止命令。
  • -s 字节数——设置ping命令发出的消息包的大小,默认发送的测试数据大小为56字节;自动添加8字节的ICMP协议头后,显示的是64字节;再添加20字节的IP协议头,则显示的为84字节。最大设置值为65507B。
  • -i 时间间隔量——设定前后两次发送ICMP消息包之间的时间间隔,无此选项时,默认时间间隔为1秒。为了保障本机和目标主机的安全,一般不要小于0.2秒。
  • -t——设置存活时间TTL(Time To Live)
#web界面
[root@rhcsa ~]# systemctl enable --now cockpit.socket
Created symlink /etc/systemd/system/sockets.target.wants/cockpit.socket → /usr/lib/systemd/system/cockpit.socket.
[root@rhcsa ~]# systemctl status cockpit.socket
在浏览器上输入:https://192.168.168.43:9090/

2.4、wget命令

wget命令用于在终端命令行里下载网络文件
英文全称为: “web get
语法格式为: wget [选项] 网址
选项:

  • -P 下载到指定目录
  • -t 最大尝试次数
  • -b 后台下载模式
  • -c 断点续传
  • -p 下载页面内所有资源,包括图片、视频等
  • -r 递归下载
#查看和主机之间的网络连通性
[root@rhcsa ~]# ping -c3 www.baidu.com
#下载文件
[root@rhcsa ~]# wget  https://rpmfind.net/linux/epel/9/Everything/x86_64/Packages/s/sl-5.02-1.el9.x86_64.rpm
#wget下载文件,-O表示指定下载文件保存的路径和名字
[root@rhcsa ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo

#curl下载文件,-o表示指定下载文件保存的路径和名字
[root@rhcsa ~]# curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo

二、磁盘管理

2.1、分区得两种格式

两种格式:

  • MBR:最多只能有四个主分区或者三个主分区+1个扩展分区(在扩展分区上划分逻辑分区);分区的最大空间不能超过2.2T
  • GPT:最多可以有128个分区,分区的空间可以大于2.2T

2.1.1、MBR分区

MBR(Master Boot Record,主引导记录)是传统的分区机制,使用BIOS引导PC设备,寻址空间只有32bit长。

  • 分区空间最大支持2.2TB
  • 支持的分区数量:4个主分区或者3个主分区1个扩展分区

在这里插入图片描述
为什么MBR最多只能有4个主分区?
因为分区表占据64个字节,其中每个分区的信息占用16个字节,分区表里面可以记录四个分区信息描述。
1、MBR分区类型
主分区(primary partition)

  • 一块硬盘最多4个主分区,主分区不可以再进行二次分区。
  • 主分区可以直接建立文件系统,存放数据
  • 可以用来引导、启动操作系统

扩展分区(extended partition)

  • 一块硬盘最多一个扩展分区,加主分区最多4个
  • 不能创建文件系统
  • 可以划分逻辑分区

逻辑分区(logical partition)

  • 可以创建文件系统,存放数据
  • 逻辑分区的数量没有限制。

2.1.2、GPT分区

GPT(GUID Partition Table,全局唯一标识分区表)是一种比MBR分区更先进、更灵活的磁盘分区模式

  • 在默认情况下,GPT最多可支持128个分区
  • 支持大于2.2TB的总容量及大于2.2TB的分区,最大支持
    18EB(1EB=1024PB,1PB=1024TB,1TB=1024GB)
  • GPT分区表自带备份
  • 向后兼容MBR,GPT分区表上包含保护性的MBR区域
#查看当前的磁盘信息
[root@rhcsa ~]# lsblk
NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
sr0          11:0    1 1024M  0 rom
nvme0n1     259:0    0   40G  0 disk
├─nvme0n1p1 259:1    0  500M  0 part /boot
├─nvme0n1p2 259:2    0   30G  0 part /
└─nvme0n1p3 259:3    0    2G  0 part [SWAP]
[root@rhcsa ~]# find  /dev  -type  b
/dev/sr0
/dev/nvme0n1p3
/dev/nvme0n1p2
/dev/nvme0n1p1
/dev/nvme0n1
[root@rhcsa ~]# fdisk -l

不同接口的磁盘在linux中的设备文件名不同

2.2、磁盘分区——fdisk命令

fdisk命令工具默认将磁盘划分为mbr格式的分区
命令: fdisk 设备名
fdisk命令以交互方式进行操作的,在菜单中选择相应功能键即可

指令作用指令作用
a调整磁盘的启动分区p显示当前磁盘的分区信息
d删除磁盘分区t更改分区类型
l显示所有支持的分区类型u切换所显示的分区大小单位
m查看所有指令的帮助信息n创建新分区
q不保存更改,退出fdisk命令w把修改写入磁盘分区表,然后退出fdisk命令
g新建一个空的GPT分区表o新建一个空的DOS分区表
[root@rhcsa ~]# fdisk -l
Disk /dev/nvme0n1:40 GiB,42949672960 字节,83886080 个扇区
磁盘型号:VMware Virtual NVMe Disk
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xc301e926

设备           启动     起点     末尾     扇区  大小 Id 类型
/dev/nvme0n1p1 *        2048  1026047  1024000  500M 83 Linux
/dev/nvme0n1p2       1026048 63940607 62914560   30G 83 Linux
/dev/nvme0n1p3      63940608 68134911  4194304    2G 82 Linux swap / Solaris
/dev/nvme0n1p4      68134912 83886079 15751168  7.5G  5 扩展
/dev/nvme0n1p5      68136960 72331263  4194304    2G 83 Linux


Disk /dev/sda:10 GiB,10737418240 字节,20971520 个扇区
磁盘型号:VMware Virtual S
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节


[root@rhcsa ~]# fdisk  /dev/sda

欢迎使用 fdisk (util-linux 2.37.4)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。

设备不包含可识别的分区表。
创建了一个磁盘标识符为 0x3eabb3c2 的新 DOS 磁盘标签。

命令(输入 m 获取帮助):m    #输入m可查看帮助信息

帮助:

  DOS (MBR)
   a   开关 可启动 标志
   b   编辑嵌套的 BSD 磁盘标签
   c   开关 dos 兼容性标志

  常规
   d   删除分区
   F   列出未分区的空闲区
   l   列出已知分区类型
   n   添加新分区
   p   打印分区表
   t   更改分区类型
   v   检查分区表
   i   打印某个分区的相关信息

  杂项
   m   打印此菜单
   u   更改 显示/记录 单位
   x   更多功能(仅限专业人员)

  脚本
   I   从 sfdisk 脚本文件加载磁盘布局
   O   将磁盘布局转储为 sfdisk 脚本文件

  保存并退出
   w   将分区表写入磁盘并退出
   q   退出而不保存更改

  新建空磁盘标签
   g   新建一份 GPT 分区表
   G   新建一份空 GPT (IRIX) 分区表
   o   新建一份的空 DOS 分区表
   s   新建一份空 Sun 分区表


命令(输入 m 获取帮助):g
已创建新的 GPT 磁盘标签(GUID: 09A80215-84E5-E54A-9ADE-A00755B61777)。

命令(输入 m 获取帮助):p
Disk /dev/sda:10 GiB,10737418240 字节,20971520 个扇区
磁盘型号:VMware Virtual S
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:gpt
磁盘标识符:09A80215-84E5-E54A-9ADE-A00755B61777

命令(输入 m 获取帮助):n    #输入n创建新分区
分区号 (1-128, 默认  1):
第一个扇区 (2048-20971486, 默认 2048):
最后一个扇区,+/-sectors 或 +size{K,M,G,T,P} (2048-20971486, 默认 20971486): +5G

创建了一个新分区 1,类型为“Linux filesystem”,大小为 5 GiB。

命令(输入 m 获取帮助):p    #输入p查看分区信息
Disk /dev/sda:10 GiB,10737418240 字节,20971520 个扇区
磁盘型号:VMware Virtual S
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:gpt
磁盘标识符:09A80215-84E5-E54A-9ADE-A00755B61777

设备        起点     末尾     扇区 大小 类型
/dev/sda1   2048 10487807 10485760   5G Linux 文件系统

命令(输入 m 获取帮助):w
分区表已调整。
将调用 ioctl() 来重新读分区表。
正在同步磁盘。
[root@rhcsa ~]# lsblk
NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
sda           8:0    0   10G  0 disk
└─sda1        8:1    0    5G  0 part
sr0          11:0    1  8.4G  0 rom  /run/media/root/RHEL-9-1-0-BaseOS-x86_64
nvme0n1     259:0    0   40G  0 disk
├─nvme0n1p1 259:1    0  500M  0 part /boot
├─nvme0n1p2 259:2    0   30G  0 part /
├─nvme0n1p3 259:3    0    2G  0 part [SWAP]
├─nvme0n1p4 259:4    0    1K  0 part
└─nvme0n1p5 259:5    0    2G  0 part

2.3、格式化分区

1、格式化的目的: 是为了形成文件系统,文件系统是操作系统用于明确存储设备或分区上的文件的方法和
数据结构
即在存储设备上组织文件的方法
2、命令格式: mkfs|mkfs.xfs|mkfs.ext4 [选项] 分区的设备名
3、选项:

  • -t 文件系统类型——当命令名为mkfs时,指定要创建的文件系统的类型(如:xfs、ext4、vfat等)。
    当命令名为mkfs.xfs、mkfs.ext4等时,不需要该选项。
  • -c——建立文件系统前先检查坏块。
  • -V——输出建立文件系统的详细信息。

4、注意: 如果已有其他文件系统创建在此分区,必须在 mkfs.xfs 命令中加上选项 -f 强行进行格式化

#格式化:给存储设备添加文件系统
#文件系统:操作系统用于明确磁盘或磁盘分区上的数据的方法和数据结构,操作系统读取文件的一种方法
[root@rhcsa ~]# mkfs.ext4   /dev/nvme0n1p5
mke2fs 1.46.5 (30-Dec-2021)
创建含有 524288 个块(每块 4k)和 131072 个inode的文件系统
文件系统UUID:742f19e4-1527-4ec0-9943-6182b69ddd10
超级块的备份存储于下列块:
        32768, 98304, 163840, 229376, 294912

正在分配组表: 完成
正在写入inode表: 完成
创建日志(16384 个块)完成
写入超级块和文件系统账户统计信息: 已完成
[root@rhcsa ~]# mkfs.xfs  /dev/sda1
meta-data=/dev/sda1              isize=512    agcount=4, agsize=327680 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=0
         =                       reflink=1    bigtime=1 inobtcount=1
data     =                       bsize=4096   blocks=1310720, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

2.4、挂载分区

挂载就是将一个分区或者设备挂载至挂载点目录。
命令: mount [-t 文件系统类型] 设备名 挂载点目录
在这里插入图片描述

#挂载:将磁盘分区挂载至挂载点目录;给磁盘分区分配一个目录名,通过访问目录即可访问磁盘分区的数据
[root@rhcsa ~]# mkdir  /guazai{1,2}
[root@rhcsa ~]# tree /guazai*
/guazai1
/guazai2
[root@rhcsa ~]# mount  /dev/nvme0n1p5  /guazai1
[root@rhcsa ~]# mount  /dev/sda1  /guazai2
[root@rhcsa ~]# mount   | grep guazai
/dev/nvme0n1p5 on /guazai1 type ext4 (rw,relatime,seclabel)
/dev/sda1 on /guazai2 type xfs (rw,relatime,seclabel,attr2,inode64,logbufs=8,logbsize=32k,noquota)
[root@rhcsa ~]# df  -h
文件系统        容量  已用  可用 已用% 挂载点
devtmpfs        4.0M     0  4.0M    0% /dev
tmpfs           872M     0  872M    0% /dev/shm
tmpfs           349M  9.8M  340M    3% /run
/dev/nvme0n1p2   30G  4.6G   26G   16% /
/dev/nvme0n1p1  495M  268M  227M   55% /boot
tmpfs           175M   96K  175M    1% /run/user/0
/dev/sr0        8.5G  8.5G     0  100% /run/media/root/RHEL-9-1-0-BaseOS-x86_64
/dev/nvme0n1p5  2.0G   24K  1.8G    1% /guazai1
/dev/sda1       5.0G   68M  5.0G    2% /guazai2


[root@rhcsa guazai2]# mount /dev/sda1 /guazai3

卸载分区,要移除USB磁盘、U盘、光盘和硬盘时,需要先卸载。
命令: umount 挂载点目录或存储设备名

#将/dev/sda1从/guazai2上卸载
[root@rhcsa guazai2]# umount   /guazai2
umount: /guazai2: 目标忙.
[root@rhcsa guazai2]# pwd
/guazai2
[root@rhcsa guazai2]# cd
[root@rhcsa ~]# umount   /guazai2
[root@rhcsa ~]# tree /gua*
/guazai1
├── file1
└── lost+found
/guazai2
/guazai3
├── file2
└── file3

1 directory, 3 files
[root@rhcsa ~]#
[root@rhcsa ~]# umount /dev/sda1
[root@rhcsa ~]# mount | grep guazai
/dev/nvme0n1p5 on /guazai1 type ext4 (rw,relatime,seclabel)

设置系统启动时的自动挂载
手动挂载的分区会在系统重启后失效,若用户需要永久挂载分区,则需要通过编辑 /etc/fstab
件来实现。
当系统启动的时候,系统会自动地从这个文件读取信息,并且会自动将此文件中指定的
文件系统挂载到指定的目录。

#系统开机就会读取挂载信息的文件是/etc/fstab,如果想要分区在系统开机就挂载的话,需要将挂载参数写入文件/etc/fstab,如果格式不对或者挂载信息写错了会导致系统无法正常启动,会进入紧急救援模式。
[root@rhcsa ~]# blkid
/dev/nvme0n1p5: UUID="eda3b2bc-d7e6-4d61-ae69-d347b223cf83" TYPE="ext4" PARTUUID="c301e926-05"
/dev/nvme0n1p3: UUID="0476de9a-7304-42bf-9b79-6a43ba5aa51b" TYPE="swap" PARTUUID="c301e926-03"
/dev/nvme0n1p1: UUID="faffc1ed-ba28-4d8c-80a5-bbf678cdb920" TYPE="xfs" PARTUUID="c301e926-01"
/dev/nvme0n1p2: UUID="b11346e7-c57b-4e95-89ed-30608352d948" TYPE="xfs" PARTUUID="c301e926-02"
/dev/sr0: UUID="2022-10-27-08-34-36-00" LABEL="RHEL-9-1-0-BaseOS-x86_64" TYPE="iso9660" PTUUID="3854687c" PTTYPE="dos"
/dev/sda1: UUID="5d5da522-fffc-4867-8b09-050a953a1f5b" TYPE="xfs" PARTUUID="185cec62-80e8-c04b-a8c6-d075df7bbf5d"

用于挂载信息的指定填写格式中,各字段所表示的意义

字段意义
设备文件一般为设备的路径+设备名称,也可以写唯一识别码(UUID,Universally Unique Identifier
挂载目录指定要挂载到的目录,需在挂载前创建好
格式类型指定文件系统的格式,比如Ext3、Ext4、XFS、SWAP、iso9660(此为光盘设备)等
权限选项若设置为defaults,则默认权限为:rw, suid, dev, exec, auto, nouser, async
是否备份若为1则开机后使用dump进行磁盘备份,为0则不备份
是否自检若为1则开机后自动进行磁盘自检,为0则不自检
[root@rhcsa ~]# cat /etc/fstab

#
# /etc/fstab
# Created by anaconda on Tue May 16 11:41:24 2023
#
# Accessible filesystems, by reference, are maintained under '/dev/disk/'.
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info.
#
# After editing this file, run 'systemctl daemon-reload' to update systemd
# units generated from this file.
#
UUID=b11346e7-c57b-4e95-89ed-30608352d948 /                       xfs     defaults        0 0
UUID=faffc1ed-ba28-4d8c-80a5-bbf678cdb920 /boot                   xfs     defaults        0 0
UUID=0476de9a-7304-42bf-9b79-6a43ba5aa51b none                    swap    defaults        0 0
UUID=eda3b2bc-d7e6-4d61-ae69-d347b223cf83 /guazai1      ext4    defaults 0 0

df:列出文件系统的磁盘空间占用情况

df,disk free,通过文件系统来快速获取空间大小的信息,当我们删除一个文件的时候,这个文件不是马上就在文件系统当中消失了,而是暂时消失了,当所有程序都不用时,才会根据OS的规则释放掉已经删除的文件, df记录的是通过文件系统获取到的文件的大小,他比du强的地方就是能够看到已经删除的文件,而且计算大小的时候,把这一部分的空间也加上
了,更精确了。

用法: df [-ahikHTm] [目录或文件名]
选项:

  • -a:列出所有的文件系统,包括系统特有的/proc等文件系统
  • -k:以KB的容量显示各文件系统
  • -m:以MB的容量显示各文件系统
  • -h:以人们较易阅读的GB,MB,KB等格式自行显示
  • -H:以M=1000K替代M=1024K的进位方式
  • -T:连同该分区的文件系统名称(例如ext3)也列出
  • -i:不用硬盘容量,而以inode的数量来显示

注意: 由于df主要读取的数据几乎都是针对整个文件系统,因此读取的范围主要是在Super block内的信息,所以这个命令显示结果的速度非常快速。

#磁盘分区识别号   挂载点目录    文件系统类型   defaults 0 0
[root@rhcsa ~]# mount  -a
[root@rhcsa ~]# df -h
文件系统        容量  已用  可用 已用% 挂载点
devtmpfs        4.0M     0  4.0M    0% /dev
tmpfs           872M     0  872M    0% /dev/shm
tmpfs           349M  5.7M  344M    2% /run
/dev/nvme0n1p2   30G  4.6G   26G   16% /
/dev/nvme0n1p1  495M  268M  227M   55% /boot
tmpfs           175M   52K  175M    1% /run/user/42
tmpfs           175M   36K  175M    1% /run/user/0
/dev/nvme0n1p5  2.0G   28K  1.8G    1% /guazai1

三、软件包管理

#先看发行版本信息:红帽类的软件包扩展名.rpm;如果是debian,ubuntu类的扩展名为.deb
[root@rhcsa ~]# cat /etc/redhat-release
Red Hat Enterprise Linux release 9.1 (Plow)
[root@rhcsa ~]# cat /etc/os-release
NAME="Red Hat Enterprise Linux"
VERSION="9.1 (Plow)"
ID="rhel"
ID_LIKE="fedora"
VERSION_ID="9.1"
PLATFORM_ID="platform:el9"
PRETTY_NAME="Red Hat Enterprise Linux 9.1 (Plow)"
ANSI_COLOR="0;31"
LOGO="fedora-logo-icon"
CPE_NAME="cpe:/o:redhat:enterprise_linux:9::baseos"
HOME_URL="https://www.redhat.com/"
DOCUMENTATION_URL="https://access.redhat.com/documentation/red_hat_enterprise_linux/9/"
BUG_REPORT_URL="https://bugzilla.redhat.com/"

REDHAT_BUGZILLA_PRODUCT="Red Hat Enterprise Linux 9"
REDHAT_BUGZILLA_PRODUCT_VERSION=9.1
REDHAT_SUPPORT_PRODUCT="Red Hat Enterprise Linux"
REDHAT_SUPPORT_PRODUCT_VERSION="9.1"
#获取rpm软件包:rpmfind.net网站,官网,系统安装镜像文件(9个G左右的那个文件)
#将iso文件浏览到虚拟机的光驱,然后挂载光盘读取光盘里面的文件
[root@rhcsa ~]# mkdir /guangpan
[root@rhcsa ~]# mount  /dev/sr0  /guangpan/
mount: /guangpan: WARNING: source write-protected, mounted read-only.
[root@rhcsa ~]# df -h
文件系统        容量  已用  可用 已用% 挂载点
devtmpfs        4.0M     0  4.0M    0% /dev
tmpfs           872M     0  872M    0% /dev/shm
tmpfs           349M  5.7M  344M    2% /run
/dev/nvme0n1p2   30G  4.6G   26G   16% /
/dev/nvme0n1p1  495M  268M  227M   55% /boot
tmpfs           175M   52K  175M    1% /run/user/42
tmpfs           175M   36K  175M    1% /run/user/0
/dev/sr0        8.5G  8.5G     0  100% /guangpan
[root@rhcsa ~]# cd /guangpan/
[root@rhcsa guangpan]# ll
总用量 44
dr-xr-xr-x. 1 root root  2048 1027  2022 AppStream
dr-xr-xr-x. 1 root root  2048 1027  2022 BaseOS
dr-xr-xr-x. 1 root root  2048 1027  2022 EFI
-r--r--r--. 1 root root  8154 1027  2022 EULA
-r--r--r--. 1 root root  1455 1027  2022 extra_files.json
-r--r--r--. 1 root root 18092 1027  2022 GPL
dr-xr-xr-x. 1 root root  2048 1027  2022 images
dr-xr-xr-x. 1 root root  2048 1027  2022 isolinux
-r--r--r--. 1 root root   103 1027  2022 media.repo
-r--r--r--. 1 root root  1669 1027  2022 RPM-GPG-KEY-redhat-beta
-r--r--r--. 1 root root  3682 1027  2022 RPM-GPG-KEY-redhat-release

3.1、安装软件包

1、rpm安装软件包

1、RPM是红帽包管理(Redhat Package Manager)的缩写。

  • Red Hat公司提出的一种软件包管理标准。
  • Linux各发行版中应用最广泛的软件包格式之一(还有debian的发行版deb安装包)。
  • RPM功能通过rpm命令使用不同参数来实现。

2、rpm软件包中包含有关于本软件包的相关信息, 便于对软件包信息进行查询。
RPM软件包的典型命名格式:
软件名-版本号-发行号.操作系统版本.硬件平台的类型.rpm ,比如 zsh-5.0.2-14.el7.x86_64.rpm

zsh-50214el7x8664
软件名主版本号次版本号修订号软件发布次数发行商RHEL7CPU架构平台支持系统位数

3、rpm包相关网站

http://rpmfind.net/
http://rpm.pbone.net/

4、rpm安装

参数说明
-i, --install安装软件包
--nodeps不验证软件包依赖
-v, --verbose提供更多的详细信息输出
-h, --hash软件包安装的时候列出哈希标记
-U软件包升级
-e软件包卸载
#先获得.rpm的软件包
[root@rhcsa Packages]# rpm -ivh /guangpan/AppStream/Packages/xz-devel-5.2.5-8.el9_0.x86_64.rpm
警告:/guangpan/AppStream/Packages/xz-devel-5.2.5-8.el9_0.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID fd431d51: NOKEY
Verifying...                          ################################# [100%]
准备中...                          ################################# [100%]
正在升级/安装...
   1:xz-devel-5.2.5-8.el9_0           ################################# [100%]

#卸载软件包
[root@rhcsa Packages]# rpm -evh xz-devel
准备中...                          ################################# [100%]
正在清理/删除...
   1:xz-devel-5.2.5-8.el9_0           ################################# [100%]

5、rpm查询功能(rpm –q 常与下面参数组合使用)

参数说明
-a查询所有已安装的软件包
-l显示已安装软件包的相关文件列表和信息
-f查询文件所属软件包
-i显示已经安装的rpm软件包信息
#查询当前系统所有已经安装的包,如果想要知道某个软件包有没有安装可以使用|grep 搜索
[root@rhcsa Packages]# rpm  -qa

#可以列出安装该包后生成的所有文件
[root@rhcsa Packages]# rpm -ql   xz-devel-5.2.5-8.el9_0.x86_64

#可以显示该文件是哪个包产生的
[root@rhcsa Packages]# rpm   -qf    /usr/lib64/liblzma.so
xz-devel-5.2.5-8.el9_0.x86_64

缺点:安装软件时很麻烦,需要了解清楚软件之间的依赖关系

2、yum/dnf 安装

YUM (Yellow dog Updater,Modified) ,RHEL9中默认使用的软件批量管理工具由原版本的yum换成了速度更快的dnfDNF = Dandified YUM),原有的yum命令仅为dnf的软链接,当然依旧可以使用。

#yum和dnf都是dnf-3软链接
[root@rhcsa ~]# which  yum
/usr/bin/yum
[root@rhcsa ~]# ll  /usr/bin/yum
lrwxrwxrwx. 1 root root 5  915  2022 /usr/bin/yum -> dnf-3
[root@rhcsa ~]# which dnf
/usr/bin/dnf
[root@rhcsa ~]# ll  /usr/bin/dnf
lrwxrwxrwx. 1 root root 5  915  2022 /usr/bin/dnf -> dnf-3

1、YUM/DNF 功能

  • 在线下载、 安装、 卸载、 升级rpm软件包
  • 自动查找并解决rpm包之间的依赖关系,一次性安装所有具有依赖关系的rpm包,而无需管理员逐个、 手工地去安装每一个rpm

2、如何实现yum/DNF安装
系统会去读取/etc/yum.repos.d/目录下的 .repo 结尾的文件,从该文件中读取以下内容实现装包:
包含各种rpm安装文件的软件仓库(rhel8、rhel9有两个仓库,rhel7只有一个仓库)

  • BaseOS存储库:提供一套核心的底层操作系统功能,为基础软件安装库
  • AppStream存储库:包括额外的用户空间应用程序、运行时语言和数据库

软件仓库的地址信息

#安装软件包
[root@rhcsa yum.repos.d]# yum install httpd
正在更新 Subscription Management 软件仓库。
无法读取客户身份

本系统尚未在权利服务器中注册。可使用 subscription-manager 进行注册。

错误:在"/etc/yum.repos.d", "/etc/yum/repos.d", "/etc/distro.repos.d"中没有被启用的仓库。
#出现以上错误是因为在"/etc/yum.repos.d"下面没有启用的仓库

建立网络源Redhat9暂时无公开的网络源,暂不可配置,其他发行版本可自行选择对应网源仓库)

  • 阿里云网络源,aliyun的镜像站点为https://mirrors.aliyun.com/
  • 清华源镜像站点为https://mirrors.tuna.tsinghua.edu.cn/
  • 中国科技大学镜像站点https://mirrors.ustc.edu.cn/
  • 网易开源镜像站
    http://mirrors.163.com/
  • ……等等很多大学开源镜像站点……
#1、先配置仓库,仓库的文件名必须以.repo结尾,如果有多个以.repo结尾的文件,那么每一个文件都会被读取,rhel8和rhel9都需要至少两个仓库:AppStream和BaseOS
#1.1网络源:
[root@rhcsa yum.repos.d]# cat /etc/yum.repos.d/suibian.repo
[app]    #源标识
name=appstream   #名称
baseurl=https://mirrors.aliyun.com/centos-stream/9-stream/AppStream/x86_64/os/   #软件仓库的路径
#enabled=1    #1标识启用该仓库,0标识不启用该仓库,默认值是1
gpgcheck=0    #1表示鉴定软件包,0表示不鉴定,默认值是1,如果要鉴定软件包必须要写gpgkey
#gpgcheck=1
#gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

[base]
name=baseos
baseurl=https://mirrors.aliyun.com/centos-stream/9-stream/BaseOS/x86_64/os/
gpgcheck=0
#1.2本地源:先挂载光盘

[root@rhcsa yum.repos.d]# cat guangpan.repo
[guangpan-app]
name=gungpan-appstream
baseurl=file:///guangpan/AppStream
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

[guangpan-base]
name=guanpan-baseos
baseurl=file:///guangpan/BaseOS
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
[root@rhcsa yum.repos.d]# yum   repolist
正在更新 Subscription Management 软件仓库。
无法读取客户身份
本系统尚未在权利服务器中注册。可使用 subscription-manager 进行注册。

仓库 id                                                              仓库名称
app                                                                  appstream
base                                                                 baseos
guangpan-app                                                         gungpan-appstream
guangpan-base                                                        guanpan-baseos


#2、yum安装
[root@rhcsa yum.repos.d]# yum install httpd  -y
#查看包信息
#可以查看当前启用的仓库
[root@rhcsa yum.repos.d]# yum repolist
#查看所有已经安装的和未来可以安装的软件包信息
[root@rhcsa yum.repos.d]# yum list
#查看某个文件(库文件)是哪个软件包产生的
[root@rhcsa yum.repos.d]# yum   whatprovides  liblzma.so.5
#清除当前所有的仓库信息
[root@rhcsa yum.repos.d]# yum clean all

yum/dnf工具管理软件包

#查看包、包组相关信息
yum repolist [all] #查看系统中yum资源库配置信息
yum list all #列出仓库里所有可安装的软件包
yum list installed [包名] #列出己经安装的所有的或指定的rpm包(包名中可使用匹配符)
yum info 包名 #查看指定软件包的详细信息
yum grouplist #查看仓库里而所有包组
yum groupinfo 包组名 #查看指定包组里而的详细信息
#安装、更新包和包组
yum install [-y] 包名 #安装指定的软件包,-y则在工作过程中需要使用者响应, 这个选个参数可以直
接回答yes
yum update [-y] 包名 #升级指定的软件包或主机中所有已安装的软件包
yum groupinstall 包组名 #安装指定包组里面的所有包
#卸载软件包
yum remove [-y] 包名 #卸载已经安装在系统中的指定的软件包
#搜索文件由哪个包产生
yum provides 文件名 #查找指定的文件属于哪个包
yum whatprovides /etc/fstab #查看这个文件是由那个包提供的
#模糊搜索包名
yum search 模糊包名 #查看模糊包名的软件包
#清空缓存
yum clean packages all #清除下载到本机的指定的软件包或所有软件包的yum源缓存

3、yum/dnf卸载软件包

[root@rhcsa yum.repos.d]# yum remove  httpd -y
#可以查看某软件包安装没有
[root@rhcsa yum.repos.d]# yum list httpd

3.2、运行软件/程序

#程序:就是一个文件
#进程:当文件被执行后就变成了一个进程
#1、找到安装软件之后的可执行文件执行
例如sl的安装完毕之后执行sl指令即可
#2、后台进程(不随着终端的关闭而导致该服务程序关闭):软件要一直不停的运行
#启动http服务
[root@rhcsa ~]# systemctl   start httpd
#设置http服务的开机自启动
[root@rhcsa ~]# systemctl enable --now httpd
#关闭开机自启动
[root@rhcsa ~]# systemctl disable --now firewalld
#关闭http服务
[root@rhcsa ~]# systemctl   stop httpd
#查看服务运行状态
[root@rhcsa ~]# systemctl   status httpd

3.3、查看进程运行信息

ps命令查看进程
ps显示某个时间点的程序运行情况

  • -a :显示所有用户的进程
  • -u :显示用户名和启动时间
  • -x :显示 没有控制终端的进程
  • -e :显示所有进程,包括没有控制终端的进程
  • -l :长格式显示
  • -w:宽行显示,可以使用多个 w 进行加宽显示
  • -f:做一个更完整的输出
#查看http服务的进程
[root@rhcsa ~]# ps -aux | grep httpd
USER         PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root       11866  0.0  0.6  20336 11772 ?        Ss   16:21   0:00 /usr/sbin/httpd -DFOREGROUND
apache     11867  0.0  0.4  21664  7460 ?        S    16:21   0:00 /usr/sbin/httpd -DFOREGROUND
apache     11868  0.0  0.9 1538228 17128 ?       Sl   16:21   0:00 /usr/sbin/httpd -DFOREGROUND
apache     11869  0.0  0.9 1669364 17128 ?       Sl   16:21   0:00 /usr/sbin/httpd -DFOREGROUND
apache     11870  0.0  0.6 1538228 11604 ?       Sl   16:21   0:00 /usr/sbin/httpd -DFOREGROUND
root       12292  0.0  0.1 221812  2392 pts/0    S+   16:25   0:00 grep --color=auto httpd

[root@rhcsa ~]# ps -ef | grep httpd
UID          PID    PPID  C STIME TTY          TIME CMD
root       11866       1  0 16:21 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND
apache     11867   11866  0 16:21 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND
apache     11868   11866  0 16:21 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND
apache     11869   11866  0 16:21 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND
apache     11870   11866  0 16:21 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND
root       12325   12192  0 16:30 pts/0    00:00:00 grep --color=auto httpd

top命令查看进程
语法: top [-d 数字] | [-bnp]

  • -d:后面可以接秒数,就是整个进程界面更新的秒数,默认是5秒
  • -b:以批次的方式执行top,还有更多的参数可用。通常会搭配数据流重定向来将批处理的结果输出为文件。
  • -n:与-b搭配,进行几次top的输出结果
  • -i:不显示闲置或者僵死的进程信息
  • -c:显示进程的整个命令路径,而不是只显示命令名称
  • -s:使top命令在安全模式下运行,此时top的交互式指令被取消,避免潜在危险
  • -p:指定某些个PID来进行查看检测
#动态查看进程信息
[root@rhcsa ~]# top

#查看内存信息
[root@rhcsa ~]# free -m
               total        used        free      shared  buff/cache   available
Mem:            1743         884         344          15         704         859
Swap:           2047           1        2046

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/39506.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

日撸java三百行day77-79

文章目录 说明GUI1. GUI 总体布局2. GUI 代码理解2.1 对话框相关控件2.1.1 ApplicationShowdown.java&#xff08;关闭应用程序&#xff09;2.1.2 DialogCloser.java&#xff08;关闭对话框&#xff09;2.1.3 ErrorDialog.java&#xff08;显示错误信息&#xff09;2.1.4 HelpD…

day35-Postman/ajax

0目录 1.postman 2.ajax 1.Postman 1.1 定义&#xff1a;postman用于测试http协议接口&#xff0c;无论是开发还是测试人员 1.2 Servlet中的doGet&#xff08;&#xff09;/doPost…

idea 常用快捷键总结

IDEA常用快捷键总结 很多新手小白在使用IDEA进行代码编写的时候 对快捷键很感兴趣 这里泡泡给大家总结了一些常用的快捷键 希望能帮助到你 记得要收藏下来时常观看并且练习&#xff0c;才能熟练哦~ 1. 根据psvm或者main快速生成主函数 我们可以在类中输入psvm 或者main 然后I…

C# Winfrom将DataGridView数据导入Excel

1.项目添加Word和Excel的COM类型库引用 2.创建Excel工作表 //定义Excel操作对象Microsoft.Office.Interop.Excel.Application excelApp new Microsoft.Office.Interop.Excel.Application();//定义Excel工作表Microsoft.Office.Interop.Excel.Worksheet worksheet excelApp.Wo…

TCP的窗口控制和重发控制【TCP原理(笔记三)】

文章目录 利用窗口控制提高速度窗口控制与重发控制确认应答未能返回的情况某个报文段丢失的情况 控制流 利用窗口控制提高速度 TCP以1个段为单位&#xff0c;每发一个段进行一次确认应答的处理&#xff0c;如图。这样的传输方式有一个缺点。那就是&#xff0c;包的往返时间越长…

Centos使用docker部署nacos

Centos使用docker部署nacos 对于使用Docker部署Nacos&#xff0c;您可以按照以下步骤进行操作&#xff1a; 在您的服务器上安装Docker和Docker Compose。创建一个用于存储Nacos数据的目录&#xff0c;例如/path/to/nacos/data。创建一个docker-compose.yml文件&#xff0c;并…

心电前置放大电路制作与原理详细分析(附电路板实物图)

心电前置放大电路制作与原理详细分析(附电路板实物图) 实验目的实验结果实验电路图原理解释与计算实验测试过程实验参数测量实验洞洞板焊接实验目的 心电信号具有微弱、低频、和高阻抗等特性,极其容易受到干扰。为了实现心电信号的放大,前置放大器需要满足高输入阻抗、高共…

前端开发如何更好的避免样式冲突?级联层(CSS@layer)

目录 前言 一、什么是级联层 (Cascade Layers)&#xff1f; 1.1 级联层的官方定义 1.2 级联层为了解决什么问题&#xff1f; 二、理解级联层的前提 —— 级联 (cascade) 2.1 什么是级联&#xff1f; 2.2 当前级联的排序标准 2.3 级联起源&#xff08;Cascading Origins…

Spring Boot进阶(54):Windows 平台安装 MongoDB数据库 | 超级详细,建议收藏

1. 前言&#x1f525; Windows如何安装MongoDB数据库及使用呢&#xff1f;这将又会是干货满满的一期&#xff0c;全程无尿点不废话只抓重点教&#xff0c;具有非常好的学习效果&#xff0c;拿好小板凳准备就坐&#xff01;希望学习的过程中大家认真听好好学&#xff0c;学习的途…

第二章:在html中使用javascript

1、在html页面中插入js的主要方法就是使用<script>元素 2、html4.01为<script>定义了以下6个属性&#xff1a;【language已经废弃&#xff0c;其他5个属性都是可选的】 async 表示应该立即下载脚本&#xff0c;但不应该妨碍页面中的其他操作&#xff0c;比如下载…

中金:龙湖基本面稳健,股价超跌具备配置价值

恒大2.4万亿元的天量债务爆出后&#xff0c;让本就信心不足的房地产行业&#xff0c;越发雪上加霜&#xff0c;房企股价遭遇集体下挫&#xff0c;业内公认的万科、龙湖、保利、中海等“优等生”也不免被波及。多家证券机构提醒&#xff0c;行业预期降至冰点的情况下&#xff0c…

预付费电表收费系统

预付费电表收费系统是一种先进的电表管理系统&#xff0c;它能够帮助电力公司更加高效地管理电表收费&#xff0c;提高用电效率&#xff0c;降低能源浪费。本文将从以下几个方面介绍预付费电表收费系统的特点和优势。 一、预付费电表收费系统的原理 预付费电表收费系统是指用户…

京东自动化功能之商品信息监控是否有库存

这里有两个参数,分别是area和skuids area是地区编码,我这里统计了全国各个区县的area编码,用户可以根据实际地址进行构造skuids是商品的信息ID填写好这两个商品之后,会显示两种状态,判断有货或者无货状态,详情如下图所示 简单编写下python代码,比如我们的地址是北京市…

2023无监督摘要顶会论文合集

2023无监督摘要顶会论文合集 写在最前面ACL-2023Aspect-aware Unsupervised Extractive Opinion Summarization 面向的无监督意见摘要&#xff08;没找到&#xff09;Unsupervised Extractive Summarization of Emotion Triggers *情绪触发(原因)的 *无监督 *抽取式 摘要&#…

postgresql 内核源码分析 表锁relation lock的使用,session lock会话锁的应用场景,操作表不再困难

​专栏内容&#xff1a; postgresql内核源码分析 手写数据库toadb 并发编程 个人主页&#xff1a;我的主页 座右铭&#xff1a;天行健&#xff0c;君子以自强不息&#xff1b;地势坤&#xff0c;君子以厚德载物. 表锁介绍 当表打开&#xff0c;或者操作表时&#xff0c;都需要…

CDA数据分析系01 anaconda

简介 数据处理集成包&#xff0c;不局限于python 创建一个新的environment conda create --name python34 python3.4 激活一个environment activate python34 # for windows conda的package管理 类似pip&#xff0c;conda install xxxx 查看已安装的python包 conda list…

【计算机视觉】DINOv2(视觉大模型)代码四个不同模型的对比,以 28 * 28 的图像为例(完整的源代码)

文章目录 一、ViT-S/14二、ViT-B/14三、ViT-L/14四、ViT-g/14 一、ViT-S/14 import torch import torchvision.transforms as T import matplotlib.pyplot as plt import numpy as np import matplotlib.image as mpimg from PIL import Image from sklearn.decomposition im…

opencv 05 彩色RGB像素值操作

opencv 05 彩色RGB像素值操作 RGB 模式的彩色图像在读入 OpenCV 内进行处理时&#xff0c;会按照行方向依次读取该 RGB 图像的 B 通道、G 通道、R 通道的像素点&#xff0c;并将像素点以行为单位存储在 ndarray 的列中。例如&#xff0c; 有一幅大小为 R 行C 列的原始 RGB 图像…

React和Vue生命周期、渲染顺序

主要就是命名不同 目录 React 组件挂载 挂载前constructor() 挂载时render() 挂载后componentDidMount()&#xff1a;初始化节点 更新 更新时render()&#xff1a;prop/state改变 更新后componentDidUpdate() 卸载 卸载前componentWillUnmount()&#xff1a;清理 V…

王道计算机网络学习笔记(4)——网络层

前言 文章中的内容来自B站王道考研计算机网络课程&#xff0c;想要完整学习的可以到B站官方看完整版。 四&#xff1a;网络层 ​​​​​​​​​​​​​​在计算机网络中&#xff0c;每一层传输的数据都有不同的名称。 物理层&#xff1a;传输的数据称为比特&#xff08;Bi…