OpenEuler-相关基础
基本概念
可参见 这篇博文
OpenEuler 为基于 Linux 内核的操作系统.
社区官网为 https://openeuler.org
安装
OpenEuler 操作系统入门
常见的开源协议:
木兰协议(Mulan License):木兰协议是中国自主研发的开源协议,旨在保护知识产权和鼓励创新。它要求在使用、修改和分发软件时保留原作者的版权声明和许可条款。
GPL 协议(GNU General Public License):GPL 是由自由软件基金会(FSF)创建的一种开源协议。它要求任何基于 GPL 许可的软件的衍生作品也必须以 GPL 许可发布。这意味着任何使用、修改和分发 GPL 软件的人都必须公开源代码,并允许其他人自由使用、修改和分发。
LGPL 协议(GNU Lesser General Public License):LGPL 是 GPL 协议的一个变体,主要用于开发库和组件。与 GPL 不同,LGPL 允许将 LGPL 许可的库与非开源软件链接,而不需要将非开源软件的源代码公开。
BSD 协议(Berkeley Software Distribution License):BSD 协议是一系列开源许可协议的总称,最初由加州大学伯克利分校开发。BSD 协议相对较宽松,允许使用、修改和分发软件,同时允许将 BSD 许可的代码用于商业目的。BSD 协议还允许将 BSD 许可的代码与其他许可协议的代码混合使用。
用 id
命令可查看当前用户的一些信息.
用户和权限管理
ACL 相关命令:
- setfacl (set file acl)
- getfacl
- chacl
安装软件并管理服务
软件包名称
一般分为三个部分:
- name
- version
- release-arch
1 |
|
如:
tree-2.1.0-2.fc38.x86_64.rpm
这里 tree
为软件名, 2.1.0
为版本, -2
指社区对这个软件包进行了两次修正, fc38
指 fedora core 38, x86_64
指架构.
xorg-x11-utils-7.5-31.oe2203sp2.x86_64.rpm
这里 xorg-x11-utils
为软件名, 7.5
为版本, -31
为社区对这个软件包修正的次数, oe2203sp2
指 “openEuler 22.03 service pack 2”, “service pack 2” 是指第二个补丁版本, x86_64
指架构.
常见的架构有:
i686
, 指 intel 32 位, 也是 x86 体系x86_64
, AMD, intel 等开发的 64 位包, x86 体系armv7
, 指 arm 架构的 32 位包aarch64
, ARM64. 指 ARM 架构下的 64 位包
RPM 软件包管理
rpm
是用于打包和自动安装的工具.
rpm
文件的命名格式为:
1 |
|
即 软件名称-版本号-发行版号-处理器架构.rpm
安装
1 |
|
-i
(--install
), 安装到系统.
-v
(--verbose
), 显示安装的文件信息.
-h
(--hash
), 显示安装进度.
卸载
1 |
|
-e
(--erase
), 进行删除操作.
-nodeps
, 不考虑依赖, 强制卸载.
-allmatches
, 卸载所有版本.
升级
1 |
|
-U
(--upgrade
), 表明删除旧包安装新包.
-F
(--freshen
), 表明在旧包的基础上 update.
查询
1 |
|
-q
(--query
).
DNF 管理软件
DNF (Dandified YUM) 克服了一些 YUM (Yellowdog Updater, Modified) 的问题.
软件源
可以是网络服务器, 光盘, 硬盘上的目录等.
配置
主配置文件为:
/etc/dnf/dnf.conf
配置如:
1 |
|
表示主配置.
installonly_limit
, 指定保留的旧版本软件包的数量clean_requirements_on_remove=true
, 表示移除软件包时是否清除其依赖关系best
, 设置是否自动选择最佳的可用软件包skip_if_unavailable
, 设置仓库不可用时是否跳过
/etc/yum.repo.d
下的仓库配置一般如:
1 |
|
repository
为自定义的名称, 表示段名, 用于标识一个独立的配置段, 在文件中不能重复.
对于软件源仓库配置, 还可以修改 /etc/yum.repos.d
目录下的 .repo
文件.
常见的配置选项
name
选项, 用于配置仓库的名称baseurl
, 指定仓库的 url, 若仓库为本地挂载, 则如file:///mnt/packages
, 其中file://
表示本地,/mnt/packages
表示路径enabled
, 表示是否启用这个仓库gpgcheck
, 指定是否执行 GPG 校验以验证软件包的完整性gpgkey
, 设置 gpgkeykeyfile
, 从文件中获取 gpgkeymirrorlist
, 指定镜像列表 urlpriority
, 指定仓库的优先级
查看已配置的可用软件仓库
1 |
|
创建本地软件源
1 |
|
添加软件源
1 |
|
启用和禁用软件源
1 |
|
查找软件包
1 |
|
列出软件包清单
1 |
|
查看软件包信息
1 |
|
下载, 安装和删除 RPM 包
1 |
|
软件包组
1 |
|
检查更新
1 |
|
建立缓存
1 |
|
管理文件系统及存储
常见的文件系统类型有:
- FAT(File Allocation Table):FAT是一种用于存储文件和目录结构的文件系统。它最初由微软开发,用于DOS和Windows操作系统。FAT文件系统具有广泛的兼容性,可以在不同的操作系统和设备上使用。然而,FAT文件系统的主要限制是不支持较大的文件和分区。
- NTFS(New Technology File System):NTFS是微软开发的一种高级文件系统,用于Windows NT系列操作系统。NTFS具有更高的性能、更好的安全性和更大的文件和分区支持。它支持文件和目录的权限控制、文件压缩、加密和日志功能。
- NFS(Network File System):NFS是一种用于在网络上共享文件的分布式文件系统。它最初由Sun Microsystems开发,现在被广泛用于UNIX和Linux系统。NFS允许远程计算机通过网络访问共享的文件和目录,提供了透明的文件共享和访问。
- RAW(Raw File System):RAW文件系统是指未经格式化的文件系统。它通常用于描述未被操作系统识别或支持的文件系统类型。在某些情况下,可以使用RAW文件系统来访问未格式化或损坏的存储设备。
- Ext(Extended File System):Ext是一系列用于Linux操作系统的文件系统,如Ext2、Ext3和Ext4。这些文件系统提供了可靠的数据存储、权限控制、日志功能和对大文件和分区的支持。Ext4是最新版本,具有更高的性能和更多的功能。
- XFS(X File System):XFS是一种高性能的日志文件系统,最初由SGI(Silicon Graphics)开发,现在被广泛用于Linux系统。XFS具有快速的文件系统检查和修复功能,支持大文件和分区,并具有高度的可扩展性和并发性。
FAT 不支持单个文件超过 4G 的文件, 一般使用 NTFS.
Windows 的盘符就是挂载点.
磁盘命名方式: 如果是 sata/scsi 接口, 那么磁盘命名依次为 /dev/sda
, /dev/sdb
, /dev/sdc
.
如果是 nvme 盘, 则命名为 /dev/nvme0n1
, /dev/nvme0n2
.
也有 hda
, hdb
, vda
, vdb
.
交换空间
Linux 有两种交换空间:
- 交换分区, 独立的硬盘空间
- 交换文件, 文件系统中的特殊文件
创建 swap 分区
将一个分区格式化为 swap 分区:
1 |
|
启用 swap 分区:
1 |
|
创建 swap 文件
用 dd
命令创建一个空文件:
1 |
|
只让 root 用户具有读写权限:
1 |
|
将文件格式化为 swap 文件:
1 |
|
启用:
1 |
|
查看 swap 状态
用:
1 |
|
或:
1 |
|
磁盘存储挂载与使用
常见的磁盘类型有:
- HDD (Hard Disk Drive), 硬盘驱动器, 一种使用机械部件旋转磁盘来存储数据的磁盘类型. HDD具有较大的存储容量和较低的成本, 但读写速度相对较慢
- SSD (Solid State Drive), 固态硬盘, 一种使用闪存芯片来存储数据的磁盘类型. SSD具有较快的读写速度、较低的能耗和较小的体积,但相对较高的成本
常见的磁盘接口类型有:
- IDE (Integrated Drive Electronics), 集成驱动器电子, 一种用于连接硬盘驱动器和计算机主板的接口类型. IDE接口已经过时,现在很少使用
- SCSI (Small Computer System Interface), 小型计算机系统接口, 一种用于连接外部设备, 如硬盘驱动器、打印机等, 和计算机的接口类型. SCSI接口通常用于高性能和高可靠性的数据存储设备
- SATA (Serial Advanced Technology Attachment), 串行ATA, 一种用于连接硬盘驱动器和计算机主板的接口类型. SATA接口具有较高的数据传输速度和较简单的电缆连接方式
- SAS (Serial Attached SCSI), 串行附加SCSI, 一种用于连接高性能硬盘驱动器和计算机的接口类型. SAS接口结合了SATA和SCSI的优点, 具有高速传输和可靠性
- FC (Fiber Channel), 光纤通道, 一种用于连接存储设备和计算机的接口类型. FC接口通常用于大规模存储系统, 具有高速传输和可靠性
查看磁盘信息
查看所有磁盘信息:
1 |
|
查看挂载, 空间大小和利用率信息:
1 |
|
磁盘分区
MBR 分区
Master Boot Record, 分区数量和大小有限.
三个主分区和一个扩展分区.
分区记录表只在头部.
PTTYPE=”dos” 则是 MBR 分区.
1 个扇区 512 字节.
用 fdisk 进行分区
fdisk
不支持大于 2TB 的分区.
GPT 分区
GUID Partition Table.
基于 GUID (Global Unique Identifier) 来进行分区标识.
没有主分区和逻辑分区之分, 每个硬盘最多可以有128个分区, 逻辑块地址分配64位, 因此最大支持18EB的分区大小.
分区记录表除了头部, 尾部还有备份.
用 parted 进行分区
支持创建 2T 以上磁盘分区, 可动态调整分区大小.
parted
是实时生效.
或者用 gdisk
来分区.
格式化与挂载
用 mkfs
(make filesystem) 对分区进行格式化.
用 mount
进行挂载操作. 写入 /etc/fstab
可以自动挂载.
/etc/fstab
中的 default
表示 rw,suid,dev,exec,auto,nouser,async
的组合.
fuser
可以查看正在使用文件系统的进程:
1 |
|
终止所有正在访问指定文件系统的进程:
1 |
|
逻辑卷管理
四个概念:
- PE, Physical Extend, 物理拓展,是逻辑卷空间管理的最基本单位,默认是4M大小。
- PV, Physical Volume, 物理卷
- VG, Volume Group, 卷组,相当于一个内存池。
- LV, Logical Volume, 逻辑卷
创建流程:
创建物理卷
1 |
|
查看物理卷信息
1 |
|
创建卷组
1 |
|
显示卷组信息
1 |
|
创建逻辑卷
1 |
|
查看逻辑卷信息
1 |
|
动态调整逻辑卷大小
lvextend
resize2fs
lvreduce
lvresize
e2fsck
系统管理
网络管理
OpenEuler 的网络设备默认的配置路径为: /etc/sysconfig/network-scripts/ifcfg-*
NetworkManager 使用
用 nmcli 控制 NetworkManager 守护进程.
查看网络信息
1 |
|
创建并启用一个连接
1 |
|
修改连接
1 |
|
进程管理
调整进程优先级
用 nice
和 renice
命令.
nice
命令用于启动新进程, 并设置其优先级:
1 |
|
renice
用于修改已经运行的进程的优先级:
1 |
|
-n
(n 指 nice), -p
(p 指 pid)
可调整的范围都是 -19~20
使用 shell 脚本
算术扩展
$[exp]
, 用于简单的整数运算:
1 |
|
语句
if
1 |
|
case
1 |
|
循环
for
循环:
1 |
|
或:
1 |
|
可以用 {1..10}
表示整数范围.
可以用:
1 |
|
创建字符数组.
奇数累加示例:
1 |
|
展示文件示例:
1 |
|
while 循环
1 |
|
until 循环
1 |
|
Shell 脚本调试
#! /bin/bash -x
, 加上 -x
选项.
利用 $?
变量.
Samba 文件共享服务器管理
smb 服务会开启 139 和 445 端口:
- 139 端口是NetBIOS Session Service的端口, 称为NetBIOS over TCP/IP
- 445 端口是使用TCP/IP协议的SMB的现代实现,称为SMB over TCP
安装 Samba 服务, 需要三个套件:
- samba, 包含 smbd, nmdb
- samba-common
- samba-client
smbd 使用 TCP 的 139 或 445 端口.
nmdb 使用 UDP 的 137, 138 端口.
查看可用状态:
1 |
|
NetBIOS 是不能跨路由的. 但是 NetBIOS over TCP/IP 是可以跨路由的.
NetBEUI 是 NetBIOS Extended User Interface 的缩写.
Samba 用 NetBIOS name 来区分不同的主机, 因此每台主机的 NetBIOS name 都是不同的.
要登录某台主机, 需要先加入其工作组.
两种网络连接方式:
- Peer/Peer
- Domain model
找到与 Samba 相关的 SELinux 设置:
1 |
|
检查配置文件 smb.conf
语法
1 |
|
查看端口启用情况
1 |
|
添加用户
1 |
|
先查看用户信息:
1 |
|
添加用户:
1 |
|
修改账户密码:
1 |
|
删除账户:
1 |
|
利用 smbclient 查看 smb 服务器状态
1 |
|
利用 smbclient 远程登录主机
如:
1 |
|
将目录挂载到本机
如:
1 |
|
查看 samba 服务器状态
1 |
|
x2openEuler 工具
x2openEuler 工具是一款将源操作系统升级为目标操作系统的搬迁工具套件, 工具支持原地升级功能.
A-Ops 工具
A-Ops (Application Operations) 是 OpenEuler 社区开发和提供的一套应用程序运维工具集. 它旨在帮助开发者和运维人员更好地管理和运营基于 OpenEuler 操作系统的应用程序.