Linux程序管理

一、Linux 程序与进程基础

1. 核心概念区分

  • 程序:静态的指令及参数集合,是完成特定任务的逻辑集合
  • 进程:运行中的程序,是操作系统执行的基本单位,具有生命周期和运行状态,是资源分配的基本单位
  • 线程:进程中单一顺序的控制流,是运算调度的最小单位,必须依赖进程存在

2. 关键区别

  • 程序与进程:程序是静态文件,进程是动态过程;一个程序可对应多个进程;进程具有并发性和交往性
  • 进程与线程:一个进程可包含多个线程,线程不能单独执行;线程共享进程资源,切换成本更低

二、Linux 进程生命周期

  1. 进程创建 :父进程通过fork复制地址空间创建子进程,每个进程有唯一 PID 和 PPID(父进程 ID)
  2. 系统初始进程
    • CentOS 6:init 进程
    • CentOS 7:systemd 进程
  3. 父子进程关系
    • 子进程继承父进程的安全性身份、文件描述符、环境变量等
    • 子进程运行时父进程休眠,子进程结束后发出 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 源类型
  1. 本地源file:///本地路径(需包含 repodata 目录)
  2. 网络源:支持 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 目标 # 设置默认运行级别