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
、–help
、help
查看帮助。
1、
type ethernet
:创建连接时候必须指定类型,类型有很多,可以通过nmcli c add type -h
看到,这里指定为ethernet
。
2、con-name ethX-test
:ethX-test表示连接(connection)的名字,这个名字可以任意定义,无需
和网卡名相同
3、ifname ethX
:ethX
表示网卡名,这个ethX
必须是在nmcli d
里能看到的网卡的名字
4、ipv4.addresses '192.168.1.100/24,192.168.1.101/32'
:配置2个ip地址,分别为192.168.1.100/24
和192.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'
:dns
为8.8.8.8
和4.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无法纳管,通常出现于 网卡link
为down
的时候 (比如ip link set ethXdown
)
4、nmcli c show
- 第一列是
connection
名字,简称con-name
(注意con-name
不是网卡名) - 第二列是
connection
的UUID
- 最后一列才是网卡名(标准说法叫
device
名),可通过nmcil d
查看device
对connection
做操作时需要指定标识,标识可以是con-name
、UUID
、如果存在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
文件内容的BOOTPROTO
,ipv4.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/24
和192.168.1.101/32
ipv4.gateway 192.168.1.254
:网关为192.168.1.254
ipv4.dns ‘8.8.8.8,4.4.4.4’
:dns
为8.8.8.8
和4.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
字节。最大设置值为65507
B。-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,K
B等格式自行显示-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 10月 27 2022 AppStream
dr-xr-xr-x. 1 root root 2048 10月 27 2022 BaseOS
dr-xr-xr-x. 1 root root 2048 10月 27 2022 EFI
-r--r--r--. 1 root root 8154 10月 27 2022 EULA
-r--r--r--. 1 root root 1455 10月 27 2022 extra_files.json
-r--r--r--. 1 root root 18092 10月 27 2022 GPL
dr-xr-xr-x. 1 root root 2048 10月 27 2022 images
dr-xr-xr-x. 1 root root 2048 10月 27 2022 isolinux
-r--r--r--. 1 root root 103 10月 27 2022 media.repo
-r--r--r--. 1 root root 1669 10月 27 2022 RPM-GPG-KEY-redhat-beta
-r--r--r--. 1 root root 3682 10月 27 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
换成了速度更快的dnf
(DNF = 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 9月 15 2022 /usr/bin/yum -> dnf-3
[root@rhcsa ~]# which dnf
/usr/bin/dnf
[root@rhcsa ~]# ll /usr/bin/dnf
lrwxrwxrwx. 1 root root 5 9月 15 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