一、Linux程序与进程
1.基本概念
程序:是一组指令及参数的集合,按既定逻辑控制计算机运行用来完成特定任务,是静态的
进程:是运行的程序,是操作系统执行的基本单位,是程序运行的过程,是动态的,是有生命周期及运行状态的,是操作系统分配内存、cpu使劲啊片等资源的基本单位
线程:是操作系统能够进行运算调度的最小单位,它被包括在进程之中,是进程中的实际运作单位
2.程序和进程的区别
程序是静态的,他只是一组指令的集合,不具有运行意义。而进程是程序运行的动态过程
进程和程序并不是一一对应的关系,相同的程序运行在不同的数据集上就是不同的进程
进程还具有并发性和交往性,而程序是封闭的
3.进程和线程的区别
一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发拥有多个线程,而一个线程只能同时被一个进程拥有
线程不能单独执行,但每一个线程都有程序入口、执行序列以及程序出口,他必须组成进程才能被执行
二、Linux进程基础(生命周期)
1.进程生命周期
父进程复制自己的地址空间(fork)创建一个新的(子)进程结构。每个新进程分配一个唯一的进程 ID(PID),PID和父进程ID(PPID)是子进程环境的元素,任何进程都可以创建子进程
所有进程都是第一个系统进程的后代:在centos6中,第一个系统进程是init,而在centos7中,第一个系统进程是systemd
2.父子进程的关系
子进程由父进程产生,在linux系统中,使用系统调用fork创建进程。fork复制的内容包括父进程的数据和堆栈段以及父进程的进程环境。子进程继承父进程的安全性身份、过去和当前的文件描述符、端口和资源特权、环境变量,以及程序代码。
运行过程:子进程运行时父进程休眠。当子进程完成时发出(exit)信号请求,在退出时,子进程已经关闭或丢弃了其资源环境后,剩余释放不掉的资源称之为僵尸进程。父进程在子进程退出时收到信号而被唤醒,清理剩余的结构,然后继续执行其自己的程序代码。
三、程序管理
1.常见的软件包类型
rpm包:.rpm为后缀,红帽系列操作系统(RedHat,CentOS,OpenSUSE)主要的软件包封装格式,已经做好默认设置,如安装路径,配置文件存放路径,需要手动的解决依赖关系。(相关命令:rpm,yum,dnf)依赖关系是指:安装包安装所需的基础环境
deb包:.deb为后缀,debian系列操作系统(debian,Ubuntu,kali)主要的软件包封装格式,已经做好默认设置,如安装路径,配置文件存放路径等,需要手动的解决依赖关系。(相关命令:dpkg,apt[-get])
二进制包:一般以.bin为后缀,直接被计算机执行安装
源码包:一般C语言(高级语言中最底层的语言,一般结合汇编进行驱动编写)编写,安装前需要编译为二进制包;配置【如,安装路径,配置文件路径,运行用户,运行组,功能模块】--->编译--->安装;文件比较集中,便于后期进行维护与管理。
2.安装方法
使用独立的rpm包安装
需要下载使用对应的rpm包,一般在系统镜像中存在大量的rpm包
命名方法 :zip-0-11.el7.x86_64.rpm 从左往右分别是,软件名、版本号、安装平台、安装架构平台的位数(32位,x86或者64位,x86_64).rpm
2.1、使用方法
已安装软件包查看选项:
未安装软件包查看选项
安装升级和卸载
3.yum(dnf)安装
yum安装可自动解决安装依赖关系
yum源配置文件 指定yum程序运行时查找软件包存储路径
yum程序配置文件 yum程序运行时的运行配置
缓存保存路径
3.1、yum源类型
网络yum源
网络源配置地: /etc/yum.repos.d/ 下的openEuler.repo(网络资料在系统中所在地)
利用网络存储的软件包路径:http://域名/Path #不常用 https://域名/Path ftp://域名/Path #不常用
本地yum源
配置本地yum源
(1)镜像挂载
(2)创建目录备份网络源文件
(3)创建本地源文件并配置
vim local.repo 输入配置信息 :wq保存退出
(4)检验
安装 (查看并筛选所需安装包 ls | grep name)
4.yum命令语法
yum [options] command [package ...]
yum -y install 软件名 非交互式安装
5.源码包(编译)安装
需要依赖gcc和make环境
三步走:配置、编译、安装。
第一步配置:
下载lrzsz
压缩包导入安装系统
解压并进入
配置安装路径 生成makefile文件
注意:安装时若提示缺少"PCRE"和"ZLIB"可尝试安装 yum install pcre/zlib -devel之后再次安装
第二步编译:
make命令生成objs文件
第三步安装:
make install
安装完成后需要命令优化 命令需要放到 echo $PATH路径下才能使用
注意:源码包安装的命令默认不被systemd 管理
6.二进制安装
只需要运行bin文件 默认不被systemd管理
7.systemd管理机制
init进程是所有进程的父进程,systemd实际上是一种管理init的软件。只能管理rpm安装的
7.1、systemctl启动和查看服务
安装vsftpd
启动并使用systemctl查看
监听接口查看 netstat -naptu
7.2、常用unit类型
8.运行级别
8.1、运行级别与target的对应关系
查看运行级别
切换运行级别
查看默认运行级别
设置默认运行级别
8.2、systemctl命令的使用
语法:systemctl 服务控制类型 服务名称[.service]
服务控制类型
加载当前systemd配置脚本:systemctl daemon-reload
使用场景1.添加配置文件、2.更改原脚本内容、3.更改原脚本运行配置文件
以上干货均为学习使用!!