【RHCSA】管理linux软件包和进程

目录

RPM管理工具

(1)RPM是红帽包管理(Redhat Package Manager)的缩写。

(2)rpm软件包中包含有关于本软件包的相关信息,便于对软件包信息进行查询。RPM软件包的典型命名格式:

(3)rpm包相关网站

(4)rpm安装

(5)rpm查询功能(rpm -q 常与下面参数组合使用)

(6)rpm包签名验证

YUM/DNF管理工具

        (1)YUM/DNF功能

        (2)如何实现yum/DNF安装

        (3)配置.repo文件,即yum源

(4)yum/dnf工具管理软件包

源代码编译

(1)使用源代码安装软件的优点

(2)编译需求

(3)安装

(4)测试是否安装成功

进程简介

(1)程序、进程、线程

(2)进程分类

查看进程

        ps命令查看进程

        topml查看进程

信号控制进程

作业控制


RPM管理工具

(1)RPM是红帽包管理(Redhat Package Manager)的缩写。

  • 由Red Hat公司提出的一种软件包管理标准
  • 是Linux各发行版中应用最广泛的软件包格式之一(还有debian的发行版deb安装包)
  • RPM功能通过rpm命令使用不同参数来实现

(2)rpm软件包中包含有关于本软件包的相关信息,便于对软件包信息进行查询。RPM软件包的典型命名格式:

        软件名-版本号-发行号.操作系统版本.硬件平台的类型.rpm

        eg.

        zsh-5.0.2-14.el7.x86_64.rpm

zsh

-5

0

2

14

el7

x86

64

软件名

主版本号

次版本号

修订号

软件发布次数

发行商RHEL7

CPU架构平台

支持系统位数

(3)rpm包相关网站

Rpmfind mirror

RPM Search

(4)rpm安装

参数

说明

-i,--install

安装软件包

--nodeps

不验证软件包依赖

-v,--verbose

提供更多的详细信息输出

-h,--hash

软件包安装的时候列出哈希标记

-U

软件包升级

-e

软件包卸载

        【一个ivh装包,一个evh卸包记好喽】

(5)rpm查询功能(rpm -q 常与下面参数组合使用)

参数

说明

-a

查询所有已安装的软件包

-l

显示已安装软件包的相关文件列表和信息

-f

查询文件所属软件包

-i

显示已经安装的rpm软件包信息

#查询某个包有没有安装(包名不能写错)

        [root@localhost ~]# rpm -q httpd

        未安装软件包 httpd

#查询所有已经安装的包

        [root@localhost ~]# rpm -qa

#查询安装该包后会产生哪些文件

#查询该文件由哪个软件包产生

        [root@localhost ~]# rpm -qf /usr/bin/ls

        coreutils-8.30-6.el8.x86_64

(6)rpm包签名验证

        嘿嘿,走神了没听到

YUM/DNF管理工具

        YUM(Yellow dog Updater,Modified),RHEL8中默认使用的软件批量管理工具由原版本的yum换成了速度更快的dnf(DNF=Dandified YUM),原有的yum命令仅为dnf的软链接,当然依旧可以使用

        (1)YUM/DNF功能

  • 在线下载、安装、卸载、升级rpm软件包
  • 自动查找并解决rpm包之间的依赖关系,一次性安装所有具有依赖关系的rpm包,而无需管理员逐个、手工地去安装每一个rpm包

        (2)如何实现yum/DNF安装

        系统会去读取/etc/yum.repos.d/目录下的.repo结尾的文件,从该文件中读取以下内容实现装包:

  • 包含各种rpm安装文件的软件仓库(rhel8有两个仓库,rhel7只有一个仓库)
    • BaseOS存储库:提供一套核心的底层操作系统功能,为基础软件安装库
    • AppStream存储库:包括额外的用户空间应用程序、运行时语言和数据库
  • 软件仓库的地址信息

        (3)配置.repo文件,即yum源

  • 建立本地源

        [root@localhost ~]# mkdir /media/cdrom

        #将本地光盘挂载至本地目录/media/cdrom下

        #往这个repo文件里写东西喽

        [root@localhost ~]# vim /etc/yum.repos.d/redhat.repo

        【如果密钥那等于1了,要写密钥文件路径】

        【秋之懊悔:我后来发现配置的这玩意激活会过期,我后面用的老师给的网络源比较稳定】

                [BASEOS]

                name=BaseOS

                baseurl=file:///media/cdrom/BaseOS

                gpgcheck=0

                #gpgcheck=1

                #gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial【配的两个仓库】

                [APPSTREAM]

                name=Appstream

                baseurl=file:///media/cdrom/AppStream

                gpgcheck=0

        #看一下仓库有没有

                [root@localhost ~]# yum repolist

        #验证能否装包成功

                [root@localhost ~]# yum install bind-utils -y

【这是我验证的】

        建立网络源

        阿里云网络源,aliyun的镜像站点为https://mirrors.aliyun.com

        【网络源】

centos-8.5.2111-AppStream-x86_64-os安装包下载_开源镜像站-阿里云

        写到这种样子

 清华源镜像站点为

https://mirrors.tuna/tsinghua.edu.cn/

中国科技大学镜像站点

USTC Open Source Software Mirror

网易开源镜像站

欢迎访问网易开源镜像站

等等……

(4)yum/dnf工具管理软件包

        #查看包,包组相关信息

        yum repolist [all] #查看系统中yum资源库配置信息

        yum list all #列出仓库里所有可安装的软件包

        yum list installed [包名] #列出已经安装的所有的或指定的rpm包(包名中可以使用匹配符)

        yum info #查看仓库里面所有包租

        yum grouplist #查看仓库里面所有包组

        yum groupinfo 包组名 #查看指定包组里面的详细信息

#安装、更新包和包组

        yum install [-y] 包名

        yum update [-y] 包名

        yum groupinstall 包组名

#卸载软件包

        yum remove [-y] 包名 #卸载已经安装在系统中的指定的软件包

#搜索文件由哪个包产生

        yum provides 文件名 #查找指定的文件属于哪个包

        yum whatprovides /etc/fstab #查看这个文件是由哪个包提供的

#模糊搜索包名

        yum search 模糊包名 #查看模糊包名的软件包

#清空缓存

        yum clean packages all #清除下载到本机的指定的软件包或所有软件包的yum源缓存

        RHEL8相应地在yum命令下,增加了一个module子命令,多了个模块(module)、模块下多了个序列(Stream)、序列下多了个组合(profile)

        [root@localhost ~]# yum module list 列出模块的

        [root@localhost ~]# yum module list perl 列出指定(perl)模块

源代码编译

(1)使用源代码安装软件的优点

  • 由于自由软件的最新版本大都以源码的形式最先发布,编译安装可以获得软件的最新版本,及时修复bug
  • 如果当前安装的程序无法满足需求,用户可以根据需要重新配置、自由修改源代码,加入新的功能

(2)编译需求

  • 确认源代码编译环境:需安装支持C/C  程序语言的编译器yum instal1gcc
  • 下载相应的原码软件包

(3)安装

(4)测试是否安装成功

[root@localhost ~]#wget www.baidu.com

进程简介

(1)程序、进程、线程

        程序:二进制文件,文件存储在磁盘中,例如/usr/bin/目录下

        进程:进程是已启动的可执行程序的运行实例。

  • 进程和程序并不是一一对应的关系,相同的程序运行在不同的数据集上就是不同的进程
  • 进程还具有并发性和交往性,而程序却是封闭的

        线程:是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位,一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。

  • 一个进程可以拥有多个线程,而一个线程同时只能被一个进程所拥有
  • 线程不能单独执行,但是每一个线程都有程序的入口、执行序列以及程序出口,它必须组成进程才能被执行。

(2)进程分类

查看进程

        ps命令查看进程

        ps显示某个时间点的程序运行情况

-a

显示所有用户的进程

-u

显示用户名和启动时间

-x

显示没有控制终端的进程

-e

显示所有进程,包括没有控制终端的进程

-w

宽行显示,可以使用多个w进行加宽显示

-f

做一个更完整的输出

        #查看当前用户的进程

说明:

        topml查看进程

        语法:top [-d 数字] | [-bnp]

-d

后面可以接秒数,就是整个进程界面更新的秒数,默认是5秒

-b

以批次的方式执行top,还有更多的参数可用,通常会搭配数据流重定向来将批处理的结果输出为文件

-n

与-b搭配。进行几次top的进程信息

-c

显示进程的整个命令路径,而不是只显示命令名称

-s

使top命令在安全模式下运行,此时top的交互式指令被取消,避免潜在危险

        top的输出可以分为统计信息区和进程信息区两个部分,即前5行为统计信息区,后面为进程信息区

        进程信息区

在top执行过程中可以使用的按键命令:

h或?

显示帮助信息,给出交互式命令的一些说明

k

终止一个进程,系统将提示用户输入一个需要终止进程的PID

I

忽略闲置进程和僵死进程,这是一个开关式命令

s

改变top输出信息两次刷新之间的时间,系统将提示输入新的时间,单位是秒。如果输入小数,就换算成毫秒;如果输入0,系统输出将不断刷新,默认刷新时间是3秒;需要注意的是,如果设置太短的时间,可能会引起系统不断刷新,无法看清输出显示情况,而且系统负载也会加大

o或者O

改变top输出信息中显示项的顺序。按小写的a-z键可以将相应的列向右移动,而按大写的A-Z键可以将相应的列向左移动。最后按enter确定

f或者F

从当前显示列表中添加域者删除项,按键之后会显示列的列表,按a-键即可显示或隐藏对应的列。最后按enter确定

m

切换显示内存信息

t

切换显示进程和cpu状态信息

r

重新设置一个进程的优先级,系统提示用户输入需要改变的进程PID以及需要设置的进程优先级值,输入一个正值将使优先级降低,反之则可以使该进程拥有更高的优先权,默认值是10

l

切换显示平均负载和启动时间信息

q

退出top显示

c

切换显示完整命令行和命令名称信息

M

根据驻留内存大小进行排序输出

N

以PID来排序

信号控制进程

        给进程发送信号

        #列出所有支持的信号

常用信号(用的是数字):

        1、SIGHUP 重新加载配置

        2、SIGINT 键盘中断ctrl^c

        3、SIGQUIT 键盘退出

        9、SIGKILL 强制退出

        15、SIGTERM 终止(正常结束),缺省信号

        18、SIGCONT 继续

        19、SIGSTOP 停止

        20、SIGTSTP 暂停ctrl^z

        [root@localhost opt]#killall vim #给所有vim进程发送信号

        [root@localhost opt]#killall httpd

        eg.

        kill -9 vim 【错误示范】

        kill -9 6407 【正确】

        [root@localhost opt]# ps -aux | grep vim 【过滤一下看与vim有关的】

        root        6407  0.0  0.0  12320  1100 pts/0    S+   16:09   0:00 grep --color=auto vim

作业控制

        作业控制是一个命令行功能,允许一个shell实例来运行和管理多个命令,如果没有作业控制,父进程fork()一个子进程后,将sleeping,直到子进程退出。使用作业控制,可以选择性暂停,恢复,以及异步运行命令,让shell可以在子进程运行期间返回接受其他命令。

        foreground(fg:前台进程是在终端中运行的命令。该终端为进程的控制终端。前台进程接收键盘产生的输入和信号,并允许从终端读取或写入到终端,

        background(bg:后台进程没有控制终端,它不需要与终端交互。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值