OpenEuler-相关基础

常用 repolist 汇总

基本概念

可参见 这篇博文

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
name-version-releasearch

如:

  • 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
name-version-release.arch.rpm

软件名称-版本号-发行版号-处理器架构.rpm

安装

1
rpm –ivh example.rpm

-i (--install), 安装到系统.

-v (--verbose), 显示安装的文件信息.

-h (--hash), 显示安装进度.

卸载

1
rpm -e -nodeps -allmatches example.rpm

-e (--erase), 进行删除操作.

-nodeps, 不考虑依赖, 强制卸载.

-allmatches, 卸载所有版本.

升级

1
2
3
4
rpm –U example.rpm
rpm –Uvh example.rpm
rpm –F example.rpm
rpm –Fvh example.rpm

-U (--upgrade), 表明删除旧包安装新包.

-F (--freshen), 表明在旧包的基础上 update.

查询

1
2
rpm -q example.rpm
rpm -aq

-q (--query).

DNF 管理软件

DNF (Dandified YUM) 克服了一些 YUM (Yellowdog Updater, Modified) 的问题.

软件源

可以是网络服务器, 光盘, 硬盘上的目录等.

配置

主配置文件为:

  • /etc/dnf/dnf.conf

配置如:

1
2
3
4
5
6
[main]
gpgcheck=1
installonly_limit=3
clean_requirements_on_remove=True
best=True
skip_if_unavailable=False

表示主配置.

  • installonly_limit, 指定保留的旧版本软件包的数量
  • clean_requirements_on_remove=true, 表示移除软件包时是否清除其依赖关系
  • best, 设置是否自动选择最佳的可用软件包
  • skip_if_unavailable, 设置仓库不可用时是否跳过

/etc/yum.repo.d 下的仓库配置一般如:

1
2
3
4
5
6
7
8
[repository]
name=repository_name
baseurl=repository_url
gpgcheck=1
installonly_limit=3
clean_requirements_on_remove=True
best=True
skip_if_unavailable=False

repository 为自定义的名称, 表示段名, 用于标识一个独立的配置段, 在文件中不能重复.

对于软件源仓库配置, 还可以修改 /etc/yum.repos.d 目录下的 .repo 文件.

常见的配置选项

  • name 选项, 用于配置仓库的名称
  • baseurl, 指定仓库的 url, 若仓库为本地挂载, 则如 file:///mnt/packages, 其中 file:// 表示本地, /mnt/packages 表示路径
  • enabled, 表示是否启用这个仓库
  • gpgcheck, 指定是否执行 GPG 校验以验证软件包的完整性
  • gpgkey, 设置 gpgkey
  • keyfile, 从文件中获取 gpgkey
  • mirrorlist, 指定镜像列表 url
  • priority, 指定仓库的优先级

查看已配置的可用软件仓库

1
dnf repolist

创建本地软件源

1
2
dnf install createrepo
createrepo --database /mnt/local_repo

添加软件源

1
dnf config-manager --add-repo repository_url

启用和禁用软件源

1
2
dnf config-manager --set-enable repository
dnf config-manager --set-disable repository

查找软件包

1
dnf search name

列出软件包清单

1
dnf list all

查看软件包信息

1
dnf info package_name

下载, 安装和删除 RPM 包

1
2
3
dnf download package_name
dnf install package_name
dnf remove package_name

软件包组

1
2
3
4
5
dnf groups summary
dnf groups list
dnf groups info "name"
dnf groups install group_name/id
dnf groups remove group_name/id

检查更新

1
2
3
dnf check-update
dnf update package_name
dnf groupp update group_name

建立缓存

1
dnf makecache

管理文件系统及存储

常见的文件系统类型有:

  • 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
mkswap /dev/sda1

启用 swap 分区:

1
swapon /dev/sda1

创建 swap 文件

dd 命令创建一个空文件:

1
dd if=/dev/zero of=/path/tp/swapfile bs=1G count=2

只让 root 用户具有读写权限:

1
chmod 600 /path/to/swapfile

将文件格式化为 swap 文件:

1
mkswap /path/to/swapfile

启用:

1
swapon /path/to/swapfile

查看 swap 状态

用:

1
swapon --show

或:

1
free -h

磁盘存储挂载与使用

常见的磁盘类型有:

  • 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
fdisk -l

查看挂载, 空间大小和利用率信息:

1
df -h

磁盘分区

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
fuser -v MOUNT_POINT

终止所有正在访问指定文件系统的进程:

1
fuser -k MOUNT_POINT

逻辑卷管理

四个概念:

  • PE, Physical Extend, 物理拓展,是逻辑卷空间管理的最基本单位,默认是4M大小。
  • PV, Physical Volume, 物理卷
  • VG, Volume Group, 卷组,相当于一个内存池。
  • LV, Logical Volume, 逻辑卷

创建流程:

创建物理卷

1
pvcreate /dev/hda{6,7,8,9}

查看物理卷信息

1
pvs

创建卷组

1
vgcreate name /dev/sda1 /dev/sda2

显示卷组信息

1
vgdisplay name

创建逻辑卷

1
lvcreate -L 200M name

查看逻辑卷信息

1
lvscan

动态调整逻辑卷大小

  • lvextend
  • resize2fs
  • lvreduce
  • lvresize
  • e2fsck

系统管理

网络管理

OpenEuler 的网络设备默认的配置路径为: /etc/sysconfig/network-scripts/ifcfg-*

NetworkManager 使用

用 nmcli 控制 NetworkManager 守护进程.

查看网络信息

1
nmcli connection show --active

创建并启用一个连接

1
2
3
nmcli connection add con-name 'Demo' type Ethernet ifname enp4s0
nmcli connection up 'Demo'
nmcli connection show

修改连接

1
2
nmcli connection show 'Demo'
nmcli connection modify 'Demo' ...

进程管理

调整进程优先级

nicerenice 命令.

nice 命令用于启动新进程, 并设置其优先级:

1
nice [-n] priority [option] [command [arg]...]

renice 用于修改已经运行的进程的优先级:

1
renice [option] [-n] priority [-p] pid

-n (n 指 nice), -p (p 指 pid)

可调整的范围都是 -19~20

使用 shell 脚本

算术扩展

$[exp], 用于简单的整数运算:

1
echo $[1+1]

语句

if

1
2
3
4
5
if command; then
commands
else
commands
fi

case

1
2
3
4
5
case variable in
pattern1|pattern2) commands ;;
pattern3) commands ;;
*) default command;;
esac

循环

for 循环:

1
2
3
4
for var in list
do
commands
done

或:

1
2
3
4
for ((var assignment; condition; iteration))
do
commands
done

可以用 {1..10} 表示整数范围.

可以用:

1
arr=("apple" "orange" "banana")

创建字符数组.

奇数累加示例:

1
2
3
4
5
6
7
8
#!/bin/bash
sum=0

for i in {1..100..2}
do
let "sum+=i"
done
echo "sum=$sum"

展示文件示例:

1
2
3
4
5
#!/bin/bash
for file in $(ls)
do
echo "file: $file
done

while 循环

1
2
3
4
5
6
7
8
#!/bin/bash
sum=0;i=1
while(( i <= 100 ))
do
let "sum+=i"
let "i += 2"
done
echo "sum=$sum"

until 循环

1
2
3
4
5
6
7
8
9
10
#!/bin/bash
#奇数累加器
sum=0;i=1

until(( i > 100 ))
do
let "sum+=i"
let "i += 2"
done
echo "sum=$sum"

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
smbclient -L localhost

NetBIOS 是不能跨路由的. 但是 NetBIOS over TCP/IP 是可以跨路由的.

NetBEUI 是 NetBIOS Extended User Interface 的缩写.

Samba 用 NetBIOS name 来区分不同的主机, 因此每台主机的 NetBIOS name 都是不同的.

要登录某台主机, 需要先加入其工作组.

两种网络连接方式:

  • Peer/Peer
  • Domain model

找到与 Samba 相关的 SELinux 设置:

1
getsebool -a | grep samba

检查配置文件 smb.conf 语法

1
testparm

查看端口启用情况

1
netstat -tlunp | grep mbd

添加用户

1
2
useradd -G users smb1
echo 1234 | passwd --stdin smb1

先查看用户信息:

1
pdbedit -L

添加用户:

1
pdbedit -a -u smb1

修改账户密码:

1
smbpasswd smb1

删除账户:

1
pdbedit -x -u smb1

利用 smbclient 查看 smb 服务器状态

1
smbclient -L //127.0.0.1/smb1 -U smb1

利用 smbclient 远程登录主机

如:

1
smbclient '//127.0.0.1/smb1' -U smb1

将目录挂载到本机

如:

1
2
sudo mount -t cifs //192.168.122.152/smb1 /mnt \
-o username=smb1,password=4321

查看 samba 服务器状态

1
smbstatus

x2openEuler 工具

x2openEuler 工具是一款将源操作系统升级为目标操作系统的搬迁工具套件, 工具支持原地升级功能.

A-Ops 工具

A-Ops (Application Operations) 是 OpenEuler 社区开发和提供的一套应用程序运维工具集. 它旨在帮助开发者和运维人员更好地管理和运营基于 OpenEuler 操作系统的应用程序.


OpenEuler-相关基础
http://example.com/2023/10/31/OpenEuler-相关基础/
作者
Jie
发布于
2023年10月31日
许可协议