一、Linux 程序与进程基础
1. 核心概念区分
- 程序:静态的指令及参数集合,是完成特定任务的逻辑集合
- 进程:运行中的程序,是操作系统执行的基本单位,具有生命周期和运行状态,是资源分配的基本单位
- 线程:进程中单一顺序的控制流,是运算调度的最小单位,必须依赖进程存在
2. 关键区别
- 程序与进程:程序是静态文件,进程是动态过程;一个程序可对应多个进程;进程具有并发性和交往性
- 进程与线程:一个进程可包含多个线程,线程不能单独执行;线程共享进程资源,切换成本更低
二、Linux 进程生命周期
- 进程创建 :父进程通过
fork
复制地址空间创建子进程,每个进程有唯一 PID 和 PPID(父进程 ID) - 系统初始进程 :
- CentOS 6:init 进程
- CentOS 7:systemd 进程
- 父子进程关系 :
- 子进程继承父进程的安全性身份、文件描述符、环境变量等
- 子进程运行时父进程休眠,子进程结束后发出 exit 信号
- 子进程退出后未释放的资源称为僵尸进程,由父进程清理
三、Linux 软件包管理
1. 常见软件包类型
类型 | 后缀 | 适用系统 | 特点 | 相关命令 |
---|---|---|---|---|
rpm 包 | .rpm | 红帽系列 | 需手动解决依赖 | rpm、yum、dnf |
deb 包 | .deb | Debian 系列 | 需手动解决依赖 | dpkg、apt |
二进制包 | .bin | 通用 | 可直接执行 | - |
源码包 | 无固定 | 通用 | 需编译,可自定义配置 | gcc、make |
2. RPM 包管理
查看操作
# 查看是否安装
rpm -q 软件名
# 查看所有已安装包
rpm -qa [| grep 软件名]
# 查看已安装包信息
rpm -qi 软件名
# 查看安装路径及文件
rpm -ql 软件名
# 查看命令所属包
rpm -qf 命令绝对路径
3. YUM(DNF)管理
核心配置
- 配置文件路径:
/etc/yum.repos.d/

- 缓存路径:
/var/cache/dnf
路径文件

YUM 源类型
- 本地源 :
file:///本地路径
(需包含 repodata 目录) - 网络源:支持 http、https、ftp 协议
常用 YUM 命令
# 安装软件
yum install 软件名
# 卸载软件
yum remove 软件名
# 只下载不安装
yum install 软件名 --downloadonly
# 清空缓存
yum clean all
# 生成缓存
yum makecache
# 安装本地包
yum localinstall 本地包.rpm
# 非交互模式
yum -y install 软件名
#基于软件组安装
yum groupinstall
#更新所有软件包
yum update [软件包名]
配置本地 YUM 源示例
cd /etc/yum.repos.d
rm -rf *
vim local.repo
# 写入以下内容
[local]
name=local
baseurl=file:///mnt/AppStream
enabled=1
gpgcheck=0
# 生效配置
yum clean all
yum makecache
mount /dev/sr0 /mnt
4. 源码包编译安装
基本步骤
# 1. 解压源码包
tar xf 源码包.tar.gz
# 2. 进入目录
cd 源码包目录
# 3. 配置(指定安装路径等)
./configure --prefix=/usr/local/软件名
# 4. 编译
make
# 5. 安装
make install
# 一键执行
./configure --prefix=/usr/local/软件名 && make && make install
Nginx 编译安装示例
tar xf nginx-1.12.0.tar.gz
cd nginx-1.12.0
./configure --prefix=/usr/local/nginx1.12
# 解决依赖
yum install -y pcre-devel zlib-devel
make && make install
# 命令优化
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
5. 二进制安装
直接运行.bin 文件:
./jdk-6u14-linux-x64.bin
# 按提示完成安装
四、systemd 服务管理
1. 基本概念
systemd 是管理系统进程的系统和服务管理器,基于 unit 概念实现,主要管理 rpm 安装的软件。
2. 常见 unit 类型
单元类型 | 扩展名 | 说明 |
---|---|---|
Service | .service | 系统服务 |
Target | .target | 一组 systemd 单元 |
Socket | .socket | 进程间通信套接字 |
Mount | .mount | 文件系统挂载点 |
Timer | .timer | 定时器(类似 cron) |
3. 运行级别与 target 对应
运行级别 | Systemd target | 说明 |
---|---|---|
0 | poweroff.target | 关机 |
1 | rescue.target | 单用户模式 |
3 | multi-user.target | 字符界面多用户模式 |
5 | graphical.target | 图形界面多用户模式 |
6 | reboot.target | 重启 |
4. systemctl 命令
# 服务控制
systemctl start 服务名 # 启动
systemctl stop 服务名 # 停止
systemctl restart 服务名 # 重启
systemctl reload 服务名 # 重载配置
systemctl status 服务名 # 查看状态
# 开机自启管理
systemctl enable 服务名 # 开机自启
systemctl disable 服务名 # 关闭自启
systemctl is-enabled 服务名 # 查看自启状态
# 运行级别管理
systemctl get-default # 查看默认运行级别
systemctl set-default 目标 # 设置默认运行级别