Linux 概念
家目录 :存储用户配置信息的目录
根目录: 用
/表示,Linxu一切从根开始绝对路径 :从根开始的目标路径
相对路径 :以当前路径为起始,到达目标路径
常见的操作系统
系统分类
| 分类 | 代表发行版 | 包管理 | 更新策略 | 国产化程度 | 典型应用场景 | 核心技术特色 |
|---|---|---|---|---|---|---|
| 国际Debian系 | Ubuntu | apt/snap | LTS/6个月 | - | 桌面/云计算 | Snap容器化 |
| 国际RedHat系 | RHEL | rpm/dnf | 10年周期 | - | 企业服务器 | SELinux安全模块 |
| 国产桌面系 | 统信UOS | dpkg/apt | 3-5年 | ★★★★★ | 政务办公 | 等保四级认证 |
| 银河麒麟 | rpm/dnf | 5年 | ★★★★☆ | 国防/金融 | 军用加密模块 | |
| 国产服务器系 | 华为欧拉 | rpm/dnf | 4年LTS | ★★★★☆ | 云计算/电信 | 多样性计算支持 |
| 阿里龙蜥 | rpm/dnf | 10年 | ★★★☆☆ | 互联网企业 | 热补丁升级 | |
| 国产混合架构 | 鸿蒙OS | hpm | 滚动更新 | ★★★★★ | 物联网/智能终端 | 微内核分布式 |
主流操作系统核心功能差异对比
| 差异维度 | Ubuntu 22.04 LTS | openEuler 22.03 | 统信UOS 20 | RHEL 9 | CentOS 7 | 银河麒麟V10 SP1 | 中标麒麟7.6 |
|---|---|---|---|---|---|---|---|
| 用户管理 | adduser交互式创建 | useradd需手动设密码 | 政务ID绑定审计 | SELinux用户标签集成 | useradd传统方式 | 三权分立账户体系 | 等保三级账户策略 |
| 包管理 | APT+Snap双体系 | DNF+YUM兼容 | 星火商店+APT安全加固 | DNF+RPM严格签名验证 | YUM+RPM传统管理 | 麒麟软件仓库 | 中标定制YUM源 |
| 防火墙 | ufw简易管理 | firewalld区域隔离 | iptables等保规则预置 | firewalld+SELinux深度集成 | iptables传统规则 | 麒麟安全防护墙 | 等保三级防火墙规则 |
| 网络配置 | Netplan YAML配置 | nmcli命令行工具 | 图形化政务专用工具 | NetworkManager+nmcli | network-scripts传统配置 | 麒麟网络管理套件 | 中标网络配置工具 |
| umask默认 | 022(文件644) | 027(文件640) | 022(文件644) | 022(文件644) | 022(文件644) | 027(文件640) | 022(文件644) |
| 安全特性 | AppArmor默认启用 | 华为安全补丁+完整性保护 | 国密算法+等保四级加固 | SELinux强制访问控制 | SELinux基础配置 | 军用加密模块 | 等保三级基线 |
| 更新策略 | 5年LTS支持 | 4年LTS+扩展支持 | 政企定制更新周期 | 10年生命周期支持 | 已停止维护(2024年到期) | 5年安全更新 | 3年扩展支持 |
| 硬件支持 | 主流x86/ARM | 鲲鹏/昇腾优先支持 | 龙芯/飞腾深度适配 | 企业级硬件认证列表 | 传统x86服务器 | 国产CPU全系支持 | 国产x86/ARM |
| 云原生 | 基础K8s支持 | KubeOS+边缘计算优化 | 政务云定制方案 | OpenShift企业级容器平台 | 需手动配置 | 麒麟云原生套件 | 中标容器解决方案 |
| 典型用途 | 开发者桌面/中小型云 | 电信/云基础设施 | 党政机关办公 | 企业级关键业务系统 | 传统服务器环境 | 国防/金融核心系统 | 政府/能源行业 |
| 合规认证 | FIPS/CC通用认证 | 等保2.0三级 | 等保四级+军规 | FIPS 140-2/STIG强化 | 基础安全认证 | 军B级认证 | 等保三级认证 |
| 技术支持 | 社区支持+商业订阅 | 华为企业支持 | 统信全国服务网点 | Red Hat全球技术支持 | 社区支持(已停止) | 麒麟全国服务体系 | 中标本地化服务 |
| 典型预装软件 | LibreOffice | openGauss | 数科OFD | Podman | 达梦数据库 |
关键差异说明
CentOS 7特殊注意事项
# 已停止维护的替代方案
$ migrate2rocky # 迁移到Rocky Linux
$ convert2alma # 迁移到AlmaLinux麒麟操作系统分支差异
graph TB
麒麟OS --> 银河麒麟[军用/金融]
麒麟OS --> 中标麒麟[政务/能源]
银河麒麟 --> FreeBSD版[高安全场景]
银河麒麟 --> Linux版[通用场景]国产系统特有功能
银河麒麟
# 军用加密模块启用
$ kylin-crypto --enable kmod-军用密码中标麒麟
# 等保三级加固脚本
$ neokylin-hardening --level=3生命周期对比图
timeline
title 操作系统支持周期
2023 : Ubuntu 22.04 LTS
2024 : CentOS 7 EOL
2026 : openEuler 22.03 EOL
2027 : 银河麒麟V10 EOL
2032 : RHEL 9 EOLNOTE
迁移建议:
- 原CentOS 7用户建议迁移至:
- 国产化环境 → 银河麒麟/统信UOS
- 国际兼容环境 → Rocky Linux 9
- 关键差异点测试清单:
- 硬件驱动兼容性(特别是国产CPU)
- 业务软件依赖库验证
- 安全策略符合性检查(等保/军规)
Linux命令基础
linux是一个内核:红帽 (商业版),centos(红帽的社区版),debian(kali,ubuntu),统信,麒麟,openEuler,鸿蒙,安卓(谷歌)
Linux和ios同源,起源于unix linux的解析器叫shell,又叫bash
uname -r # 查内核版本
cat /etc/osrelease # 系统类型Linux 命令的分类
- 内部命令 :属于 Shell 解释器的一部分
- 外部命令 :独立于 Shell 解释器之外的程序
- type 命令 :查看命令是外部命令还是内部命令
[root@localhost ~]# type cd
cd 是 shell 内建
[root@localhost ~]# type ll
ll 是 "ls -l --color=auto" 的别名
[root@localhost ~]# type ifconfig
ifconfig 是 /usr/sbin/ifconfig
[root@localhost ~]#Linux 命令格式
Linux 命令的通用格式:命令 [选项] [参数]
- 选项:用于调节命令的具体功能
- “-” 引导短格式选项,例如“ls -a”
- “--”引导长格式选项,例如“ls --help”
- 参数:命令的对象,如文件、目录名等
NOTE
注意:多个短格式选项可以合并,例如“ls -alh” 但是多个长格式选项,不能合并。
[root@localhost ~]# ls -alh /etc ls——命令字;-alh——选项;/etc——参数帮助命令
help
help 内部命令帮助,查看 bash 内部命令的帮助
语法格式
help 内部命令字
# 即命令的“--help”选项,适用于大多数外部命令
命令字 --helpman
man 用来提供在线帮助,使用权限是所有用户。在 Linux 系统中存储着一部联机使用的 手册,以 供用户在终端上查找。使用 man 命令可以调阅其中的帮助信息,非常方便实用
语法格式
man 命令字
man [-acdfhkKtwW] [-m system] [-p string] [-C config_file] [-Mpath] [-P pager] [-S section_list [section] name ...选项
-C config_file:指定设定文件 man.conf,缺省值是/etc/man.conf
# [root@www ~]# man 7 man代号
- 1 使用者在 shell 中可以操作的指令或可执行档
- 2 系統核心可呼叫的函数与工具等
- 3 一些常用的函数(function)与函数库(library),大部分是 C 的函数库(libc)
- 4 装置档案的说明,通常在/dev 下的档案
- 5 设定档或者是某些档案的格式
- 6 游戏(games)
- 7 惯例与协定等,例如 Linux 档案系统、网络协定、ASCII code 等等的說明
- 8 系統管理員可用的管理指令
- 9 跟 kernel 有关的文件
命令快捷键
- tab 键:自动补齐文件名,命令等;按两次 tab 键,系统将输出可用的所有名称列表。
- 反斜杠“\”:转义符,转义符的含义是退去符号本身的意思
- ctrl+U:快速删除光标之前所有字符(可视为剪切)
- ctrl+K:快速删除光标之后所有字符(可视为剪切)
- ctrl+Y:黏贴刚才所删除(剪切)的字符
- ctrl+L:清屏
- ctrl+C:取消当前命令行编辑;结束当前执行的命令
- ctrl+D:从 shell 提示中注销关闭,类似输入 exit
- ctrl+A:把光标移动到行首,类似于 Home 键
- ctrl+E:把光标移动到行尾,类似于 End 键
- ctrl+Z:转入后台运行 。(可用
fg命令调出后台运行进程如fg ping) - ctrl+R:在历史命令中查找(history代替)
转义符
| 转义符 | 效果 |
|---|---|
\n | 换行 |
\t | 制表符(Tab) |
\\ | 输出反斜杠 \ |
\" | 输出双引号 " |
\e | 转义字符(用于ANSI控制码,如颜色) |
\a | 响铃(终端发出提示音) |
\b | 退格(删除前一个字符) |
\r | 回车(光标回到行首). |
目录和文件管理
树形目录结构
/
├── bin -> usr/bin # 二进制可执行文件(软链接到/usr/bin)
├── boot # 内核文件与启动引导文件
├── dev # 设备文件(如磁盘、终端等)
├── etc # 系统全局配置文件
| ├── hosts # 主机名映射文件
│ ├── sysconfig/network-scripts/ # 系统网卡配置文件所在路径
│ └── systemd/system/ # 系统systemd服务文件存储.service
├── home # 普通用户家目录的宿主目录(每个用户独立子目录))
├── lib -> usr/lib # 基础共享库(软链接到/usr/lib)
├── media # 可移动设备挂载点(如U盘、光盘)
├── mnt # 临时手动挂载目录
├── opt # 第三方软件安装目录
├── proc # 内核与进程的虚拟文件系统(临时存放内存的目录)
├── root # root用户的家目录
├── run # 运行时数据(如PID文件)
├── sbin -> usr/sbin # 管理员用户的二进制命令,系统管理命令(软链接到/usr/sbin)
├── srv # 服务相关数据(如Web、FTP数据)
├── sys # 系统硬件信息的虚拟文件系统
├── tmp # 临时文件(所有用户可写)
├── usr # 用户程序与资源(二级层级结构)
│ ├── bin # 用户命令
│ ├── lib # 库文件
│ ├── local # 本地安装的软件
| | ├── bin/ # 用户可执行文件(如 nginx、python3)
| | ├── lib/ # 库文件
| | ├── include/ # 头文件(C/C++开发)
| | ├── share/ # 文档、数据等
| | └── src/ # 可选:存放源码
│ ├── sbin # 系统管理命令
│ └── share # 架构无关数据(如文档、字体)
└── var # 可变文件和临时文件(日志;缓存;临时存储)
├── log # 系统日志
├── cache # 应用程序缓存
└── lib # 程序状态数据/opt和/usr/local/关键区别
| 特性 | /opt | /usr/local |
|---|---|---|
| 用途 | 第三方独立软件包 | 本地编译/手动安装的软件 |
| 结构 | 每个软件独占子目录 | 仿照 /usr 的层级结构 |
| 管理方式 | 由软件供应商提供 | 通常由管理员手动编译安装 |
| 典型内容 | 商业软件、预编译二进制 | 开源软件、自定义程序 |
| 卸载便利性 | 直接删除对应目录即可 | 需手动清理分散的文件 |
如何选择
- 使用
/opt:- 软件是独立的、预编译的,且希望所有文件集中存放(如
/opt/myapp/bin)。 - 软件由供应商提供安装脚本(如
./install.sh)。
- 软件是独立的、预编译的,且希望所有文件集中存放(如
- 使用
/usr/local:- 从源码编译安装,且需要集成到系统路径(如
/usr/local/bin已在$PATH中)。 - 软件需要标准的 Unix 文件布局(如
bin、lib分离)。
- 从源码编译安装,且需要集成到系统路径(如
注意事项
PATH 环境变量
/usr/local/bin 通常默认在 $PATH 中,而 /opt/<package>/bin 可能需要手动添加。
export PATH="/opt/myapp/bin:$PATH"权限管理
/opt 和 /usr/local 通常需要 root 权限写入,但软件运行时可用普通用户权限。
冲突避免
避免将同一个软件同时安装在 /opt 和 /usr/local 中。
Linux 特殊文件
设备文件(位于 /dev/ 目录)
/dev/null- 写入的数据会被丢弃,读取时返回 EOF(文件结束)。常用于屏蔽命令输出。
- 示例:
command > /dev/null 2>&1
/dev/zero- 提供无限的空字符(
\0),常用于初始化文件或内存。 - 示例:
dd if=/dev/zero of=testfile bs=1M count=100
- 提供无限的空字符(
/dev/random和/dev/urandom- 生成随机数据:
/dev/random阻塞直到收集足够熵,/dev/urandom非阻塞但安全性稍低。 - 示例:生成随机密码:
head -c 16 /dev/urandom | base64
- 生成随机数据:
/dev/stdin、/dev/stdout、/dev/stderr- 分别对应标准输入、输出、错误流,常用于重定向。
/dev/tty- 表示当前终端设备,可用于强制输出到终端(如脚本中交互提示)。
/dev/loopX- 虚拟设备,用于挂载镜像文件(如 ISO)到文件系统。
/dev/sdX或/dev/nvmeXnY- 物理磁盘设备(如
/dev/sda为第一块 SATA 硬盘)。
- 物理磁盘设备(如
系统关键配置文件(位于 /etc/ 目录)
/etc/passwd- 用户账户信息(不含密码,密码在
/etc/shadow中)。
- 用户账户信息(不含密码,密码在
/etc/shadow- 存储用户加密密码,仅 root 可读。
/etc/group- 用户组定义信息。
/etc/fstab- 定义开机自动挂载的分区和设备。
/etc/hosts- 本地主机名与 IP 映射,可绕过 DNS 解析。
/etc/resolv.conf- DNS 服务器配置。
/etc/ssh/sshd_config- SSH 服务端配置(如端口、密钥登录等)。
/etc/crontab和/etc/cron.d/- 系统级定时任务配置。
/etc/sudoers- 定义用户 sudo 权限(需用
visudo编辑)。
- 定义用户 sudo 权限(需用
/etc/os-release- 系统发行版信息(如版本号、名称)。
/etc/null- 黑洞文件
/etc/zero- 零时文件
3. 日志文件(位于 /var/log/ 目录)
/var/log/syslog或/var/log/messages- 系统全局日志(取决于发行版)。
/var/log/auth.log- 认证相关日志(如 SSH 登录记录)。
/var/log/kern.log- 内核日志(硬件、驱动问题排查)。
/var/log/apt/或/var/log/dnf.log- 包管理器日志(安装/更新记录)。
4. 运行时和内核文件
/proc/目录- 虚拟文件系统,实时反映内核和进程状态:
/proc/cpuinfo:CPU 信息。/proc/meminfo:内存使用情况。/proc/net/:网络状态(如/proc/net/tcp)。
- 虚拟文件系统,实时反映内核和进程状态:
/sys/目录- 另一个虚拟文件系统,管理设备、驱动和内核参数。
关闭防火墙
RHEL
# 关闭防火墙
systemctl stop firewalld
# 永久关闭
systemctl disable firewalldUbuntu
# 查看
sudo ufw status
# 停止 ufw 服务:
sudo systemctl stop ufw
# 禁用 ufw 服务的自动启动:
sudo systemctl disable ufw安装及管理程序
在主机安装了Linux操作系统以后,就具备了提供软件服务、网络服务等功能的基础。然而随着操作系统一起安装的软件包毕竟只有少数,实现的功能也比较有限,当需要为主机提供更多的功能时,安装新的应用程序就成为必然要面对的工作。
在Linux下的程序安装方式分为:
- rpm包安装:rpm手动安装、yum自动安装
- 源码安装,离线安装
Linux常见的软件包封装类型
| 文件类型 | 保存目录 |
|---|---|
| RPM软件包 | 扩展名为“.rpm” |
| DEB软件包 | 扩展名为“.deb“ |
| 源代码软件包 | 一般为“。tar.gz”、“.tar.bz2”等格式的压缩包包含程序的原始代码 |
| 绿色免安装的软件 | 软件包的扩展名不一、以TarBall格式的居多 在压缩包内提供已经编译好的 |
主流发行版命令格式对比
| 发行版家族 | 包管理工具 | 安装 | 卸载 | 更新 | 查询 | 其他特性 |
|---|---|---|---|---|---|---|
| RHEL系 (RHEL/CentOS) | rpm | rpm -ivh pkg.rpm | rpm -e pkg | rpm -Uvh pkg.rpm | rpm -q[ail] pkg | 需手动处理依赖 |
yum | yum install pkg | yum remove pkg | yum update pkg | yum list/info pkg | 自动解决依赖 | |
dnf | dnf install pkg | dnf remove pkg | dnf upgrade pkg | dnf list pkg | yum的下一代替代品 | |
| Debian系 (Ubuntu/Debian) | dpkg | dpkg -i pkg.deb | dpkg -r pkg | - | `dpkg -l | grep pkg` |
apt | apt install pkg | apt remove pkg | apt upgrade pkg | apt list pkg | 最常用的高级工具 | |
| Arch系 | pacman | pacman -S pkg | pacman -R pkg | pacman -Syu | pacman -Qs pkg | 滚动更新设计 |
| 通用工具 | snap | snap install pkg | snap remove pkg | snap refresh pkg | snap list | 跨发行版容器化包 |
flatpak | flatpak install pkg | flatpak uninstall pkg | flatpak update | flatpak list | 沙盒化应用 |
RPM 包
RPM 软件包 一般命名格式
graph TD
A[bash-4.1.2-15.el6_4.x86_64.rpm] --> A1[软件名称]
A1 -->|bash| A
A --> A2[版本号]
A2 -->|4.1.2| A
A --> A3[发布次数]
A3 -->|15.el6_4| A
A --> A4[硬件平台]
A4 -->|x86_64| A
A --> A5[扩展名]
A5 -->|.rpm| Arpm包网站
openEuler(国产欧拉):https://easysoftware.openeuler.org/zh/rpm
典型应用程序目录结构
| 文件类型 | 保存目录 |
|---|---|
| 普通执行程序文件 | /usr/bin |
| 服务器执行程序文件和管理程序文件 | /usr/sbin |
| 应用程序配置文件 | /etc |
| 日志文件 | /var/log |
| 应用程序文档文件 | /usr/share/doc |
| 应用程序手册页文件 | /usr/share/man |
yum仓库
CentOS 8+/RHEL 8+ 中,yum 是 dnf 的符号链接,用法基本一致。
.repo文件中各字段的含义
- [repositoryID]:这是仓库的唯一标识符,在整个/etc/yum.repos.d/目录中应该是唯一的。
- name=Some name for this repository:源的名称,通常用于yum的输出。
- baseurl=url://path/to/repository/:这是YUM用来查找软件包的基础URL。可以有多个baseurl,以支持多个服务器。
- enabled=1:这个选项告诉YUM是否启用或禁用此仓库。如果设置为1,则启用该仓库。如果设置为0,则禁用该仓库。
- gpgcheck=1:这个选项告诉YUM是否检查包来自正确的来源。如果设置为1,则启用GPG签名检查。如果设置为0,则禁用GPG签名检查。
- gpgkey=URL:这是GPG密钥文件的位置,通常是.pub后缀的文件。
构建本地yum仓库
1、创建挂载路径
mkdir /media/cdrom2、挂载光盘
mount /dev/sr0 /media/cdrom3、备份旧的yum源文件
cd /etc/yum.repos.d && mkdir bak
mv *.repo bak4、创建本地yum 源文件
[local]
name=media
baseurl=file:///media/cdrom
gpgcheck=0
enabled=15、清理旧的缓存
dnf -y clean all6、创建新的缓存
dnf makecache7、验证
dnf repolistyum 安装、卸载、升级 RPM 包软件
| 命令 | 不加关键字 | 加入关键词、软件包、软件包组 |
|---|---|---|
| yum list | 显示所有可用包 | 单个的可安装包 |
| yum info | 显示所有可用包的信息 | 单个具体的信息 |
| yum search | \ | 模糊查找所有的相关信息 |
| yum provides | \ | 精确查找 |
| yum install | \ | 安装具体软件包 |
| yum history | 查看当前yum操作历史 | \ |
| yum history undo | 加入序号卸载序号里安装的软件 | \ |
| yum history redo | 加入序号重新执行序号里的操作 | \ |
| yum update | 所有软件升级 | 具体软件升级 |
deb文件安装
deb包是Debian,Ubuntu等Linux发行版的软件安装包,扩展名为.deb,是类似于rpm的软件包,Debian,Ubuntu系统不推荐使用deb软件包,因为要解决软件包依赖问题,安装也比较麻烦。
在Ubuntu中安装 .deb 文件,你可以使用 dpkg 命令或者apt命令。
软件包网站
dpkg命令常见参数
dpkg -i --install xxx.deb 安装deb软件包
dpkg -r --remove xxx.deb 删除软件包
dpkg -r -P --purge xxx.deb 连同配置文件一起删除
dpkg -I -info xxx.deb 查看软件包信息
dpkg -L xxx.deb 查看文件拷贝详情
dpkg -l 查看系统中已安装软件包信息
dpkg-reconfigure xxx 重新配置软件包apt源
apt 是Ubuntu系统下的一个命令行工具,用于处理包。这个命令可以自动下载和安装软件包及其依赖项。它是Advanced Packaging Tool (APT)的一部分,APT是处理包的高级工具,可以处理复杂的包关系,如依赖关系等。
apt命令的常见参数
install:安装软件包
remove:删除软件包
upgrade:升级所有已安装的软件包
update:更新源列表
dist-upgrade:升级系统
autoremove:自动删除不再需要的包
purge:删除软件包及其配置文件
clean:清理下载的包文件
autoclean:清理旧版本的下载包文件| apt命令 | 替代命令 | 功能描述 |
|---|---|---|
| apt update | apt-get update | 更新存储库索引 |
| apt upgrade | apt-get upgrade | 升级所有可升级的软件包 |
| apt install | apt-get install | 安装软件包 |
| apt remove | apt-get remove | 移除软件包但保留配置文件 |
| apt purge | apt-get purge | 移除软件包也删除配置文件 |
| apt autoremove | apt-get autoremove | 自动删除没用的依赖包 |
| apt full-upgrade | apt-get dist-upgrade | 在升级软件包时自动处理依赖关系 |
| apt search | apt-cache search | 搜索**搜索应用程序 |
| apt show | apt-cache show | 显示指定安装包基本信息 |
| apt list | N/A | 列出包含条件的包(已安装,可升级等) |
| apt edit-sources | N/A | 编辑源列表 |
仓库源文件
档案类型 (Archive type) 条目的第一个词 deb 或是 deb-src 表明了所获取的软件包档案类型。
- deb:**档案类型为二进制预编译软件包,一般我们所用的档案类型。 **
- deb-src:档案类型为用于编译二进制软件包的源代码。
仓库地址 (Repository URL):条目的第二个词则是软件包所在仓库的地址。我们可以更换仓库地址为其他地理位置更靠近自己的镜像来提高下载速度。
软件包分类
Debian
- main:包含符合 DFSG 指导原则的自由软件包,而且这些软件包不依赖不符合该指导原则的软件包。这些软件包被视为 Debian 发型版的一部分。
- contrib:包含符合 DFSG 指导原则的自由软件包,不过这些软件包依赖不在 main 分类中的软件包。
- non-free:包含不符合 DFSG 指导原则的非自由软件包。
Ubuntu
- main: 官方支持的 自由软件。
- restricted:官方支持的非完全自由的软件。
- universe:社区维护的自由软件。
- multiverse:非自由软件
在Ubuntu中更换APT源可以通过编辑 /etc/apt/sources.list 文件来实现。
apt 国内源
- 清华大学开源软件镜像站
- 地址:https://mirrors.tuna.tsinghua.edu.cn/
- 特点:北方用户首选,学术网络优化。
- 阿里云镜像站
- 地址:https://mirrors.aliyun.com/
- 特点:全国 CDN,延迟低,覆盖广。
- 中国科学技术大学 Mirror
- 地址:https://mirrors.ustc.edu.cn/
- 特点:华东节点,IPv6 支持完善。
- 网易开源镜像站
- 地址:http://mirrors.163.com/
- 特点:华南节点,老牌稳定。
- 华为云开源镜像站
- 地址:https://mirrors.huaweicloud.com/
- 特点:多线接入,海外同步快。
- 腾讯软件源
- 地址:https://mirrors.cloud.tencent.com/
- 特点:华南/华东节点,BGP 线路优化。
更换国内源
# 备份原配置文件
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
# 编辑源文件
vi /etc/apt/sources.list
# 替换为新的镜像源(以阿里云为例)
deb https://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse
# 更新软件包 缓存
sudo apt update选择镜像源的建议
- 南方用户:优先选择 腾讯云、华为云。
- 北方用户:优先选择 清华大学、中科大。
- 教育网用户:清华大学、中科大 有专线优化,速度更快。
源代码安装
"源代码编译安装"是指从一个软件的源代码(原始的、可读的程序代码)开始,通过编译(将源代码转换成计算机可执行的二进制代码)和安装(将编译好的程序放置到合适的位置,设置好环境变量等)的过程,最终在计算机上安装并运行该软件
使用源代码的优点
获得最新的软件版本,及时修复 bug
根据用户需要,灵活制定软件功能
应用场合举例
- 安装较新版本的应用程序时
- 当前安装的程序无法满足需要时
- 需要为应用程序添加新的功能时
完整性校验
计算 MD5 校验和,并与官方提供的值相比较,判断是否一致。若不一致,可能 源码包破损或被人植入程序,需谨慎。
md5sum file.txt > checksum.md5 # 生成校验文件
md5sum -c checksum.md5 # 验证文件 输出:file.txt: OKgraph TD
A[下载源代码安装包文件] --> B[步骤1:tar解包]
B -->|用途:解压并释放源代码包到指定的目录| C[步骤2:./configure 配置]
C -->|用途:设置安装目录、安装模块等选项| D[步骤3:make 编译]
D -->|用途:生成可执行的二进制文件| E[步骤4:make install 安装]
E -->|用途:复制二进制文件到系统,配置应用环境| F[测试及应用、维护软件]案例编译安装httpd
openEuler编译安装httpd
# 安装依赖
dnf install -y gcc gcc-c++ make zlib-devel pcre-devel expat-devel libtool openssl-devel
# 获取源码包
wget https://archive.apache.org/dist/httpd/httpd-2.4.54.tar.gz
wget https://dlcdn.apache.org//apr/apr-1.7.5.tar.gz
wget https://dlcdn.apache.org//apr/apr-util-1.6.3.tar.gz
# 解压源码到指定路径
tar xf httpd-2.4.54.tar.gz -C /usr/src/
tar xf apr-1.7.4.tar.gz -C /usr/src/httpd-2.4.54/srclib/
tar xf apr-util-1.6.3.tar.gz -C /usr/src/httpd-2.4.54/srclib/
mv /usr/src/httpd-2.4.54/srclib/apr-1.7.4/ /usr/src/httpd-2.4.54/srclib/apr
mv /usr/src/httpd-2.4.54/srclib/apr-util-1.6.3/ /usr/src/httpd-2.4.54/srclib/apr/util
#预配置
./configure --prefix=/usr/local/apache
# 编译
make
# 安装
make install
# 编译安装后,修改配置文件
1>备份后,修改配置文件
cd /usr/local/apache/conf/
cp httpd.conf httpd-$(date +%F).conf
2>修改文件
vi /usr/local/apache/conf/httpd.conf
……
#ServerName www.example.com:80
ServerName www.example.com:80
# 启动 Apache
/usr/local/apache/bin/apachectl start
# 进程检测
ps aux | grep "httpd"
# 注:关闭防火墙:systemctl stop firewalld
# 永久关闭: systemctl disable firewalld
# 注: ./configure –help”可查看帮助 ,典型的配置选项: --prefix=软件安装目录ubuntu下安装httpd
下载httpd-2.4.54,下载地址:https://archive.apache.org/dist/httpd/httpd-
2.4.54.tar.gz
下载apr-1.7.4,下载地址:https://dlcdn.apache.org//apr/apr-1.7.4.tar.gz
下载apr-util-1.6.3,下载地址:https://dlcdn.apache.org//apr/apr-util-1.6.3.tar.gz
# 下载安装包
wget https://archive.apache.org/dist/httpd/httpd-2.4.54.tar.gz
wget https://dlcdn.apache.org//apr/apr-1.7.4.tar.gz
wget https://dlcdn.apache.org//apr/apr-util-1.6.3.tar.gz
# 解压指定目录
tar xf httpd-2.4.54.tar.gz -C /usr/src/
apr-1.7.4.tar.gz和apr-util-1.6.3.tar.gz,分别上传至/usr/src/httpd-2.4.54/srclib/目录,依次执行以下命令
tar xf apr-1.7.4.tar.gz -C /usr/src/httpd-2.4.54/srclib/
tar xf apr-util-1.6.3.tar.gz -C /usr/src/httpd-2.4.54/srclib/
mv /usr/src/httpd-2.4.54/srclib/apr-1.7.4/ /usr/src/httpd-2.4.54/srclib/apr
mv /usr/src/httpd-2.4.54/srclib/apr-util-1.6.3/ /usr/src/httpd-2.4.54/srclib/aprutil
# 安装依赖
apt update -y
apt install build-essential libpcre3 libpcre3-dev libssl-dev -y
apt install libexpat1-dev -y
apt install libapr1-dev libaprutil1-dev -y
# 预配置
cd /usr/src/httpd-2.4.54
./configure --prefix=/usr/local/apache
# 编译
make
# 安装
make install
# 编译安装后,修改配置文件
1>备份后,修改配置文件
cd /usr/local/apache/conf/
cp httpd.conf httpd-$(date +%F).conf
2>修改文件
vi /usr/local/apache/conf/httpd.conf
……
#ServerName www.example.com:80
ServerName www.example.com:80
# 启动 Apache
/usr/local/apache/bin/apachectl start
# 进程检测
ps aux | grep "httpd"
# 注:关闭防火墙:systemctl stop firewalld
# 永久关闭: systemctl disable firewalld
# 注: ./configure –help”可查看帮助 ,典型的配置选项: --prefix=软件安装目录Linux 平均负载
Linux 系统的平均负载(Load Average)是一个重要的性能指标,它反映了系统在一段时间内的负载情况。理解和管理负载均衡对于系统性能优化至关重要。
平均负载是指单位时间内,系统处于可运行状态(R)和不可中断状态(D)的平均进程数。它通常显示为三个数值,分别代表过去1分钟、5分钟和15分钟的平均负载。
平均负载均衡解读
- 单核CPU:负载值1.00表示CPU完全利用
- 四核CPU:负载值4.00表示所有核心完全利用
- 负载高于CPU核心数可能表示系统过载
- 理想情况下,负载应略低于CPU核心数
平均负载均衡指标
- 理想状态:负载值 ≤ CPU 核心数(每个核心处理一个进程)
- 警戒线:负载值 > CPU 核心数的 70% 时需关注,> 100% 表示过载
