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、界面展示:
RHCSA——Linux网络、磁盘及软件包管理_第1张图片
我这里设置的是中文,当然英文也必须掌握。之后我都会设置为英文,这里方便掌握查看。
下面为英文翻译:

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

下面为编译连接的界面:
RHCSA——Linux网络、磁盘及软件包管理_第2张图片
这里接着有用英文进行翻译:

`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个扩展分区

RHCSA——Linux网络、磁盘及软件包管理_第3张图片
为什么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 文件系统类型] 设备名 挂载点目录
RHCSA——Linux网络、磁盘及软件包管理_第4张图片

#挂载:将磁盘分区挂载至挂载点目录;给磁盘分区分配一个目录名,通过访问目录即可访问磁盘分区的数据
[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 -5 0 2 14 el7 x86 64
软件名 主版本号 次版本号 修订号 软件发布次数 发行商RHEL7 CPU架构平台 支持系统位数

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

你可能感兴趣的:(Linux,linux,网络,运维,经验分享,运维开发,云计算,centos)