linux程序包管理,定时计划以及sed简介

week5

第一部分 linux程序包管理

rpm简介

RPM是RPM Package Manager(RPM软件包管理器)的缩写,这一文件格式名称虽然打上了RedHat的标志,但是其原始设计理念是开放的,现在包括OpenLinux、SUSE等发行版都有采用,可以算是公认的行业标准了。RPM是一种用于互联网下载包的打包及安装工具,它包含在某些Linux发行版中。它生成具有.RPM扩展名的文件。

CentOS系统上rpm程序主要有以下几个功能:

(1)安装:

rpm {-i|–install} [install-options] PACKAGE_FILE

-v:verbose

-vv:显示更详细的安装信息

-h:以“#”显示程序包管理执行进度,每个“#”表示2%的进度

rpm -ivh PACKAGE_FILE

–test:测试安装,但不真正执行安装过程,属于dry run模式

–nodeps:忽略依赖关系

–replacepkgs:重新安装

–nosignature:不检查来源合法性

–nodigest:不检查包完整性

–noscipts:不执行程序包脚本片段

%pre:安装前脚本:–nopre

%post:安装后脚本:–nopost

%preun:卸载前脚本:–nopreun

%postun:卸载后脚本:–nopostun

linux程序包管理,定时计划以及sed简介

说明:安装zsh的rpm包

linux程序包管理,定时计划以及sed简介

说明:安装redis的rpm包

(2)升级:

rpm {-U|–upgrade} [install-options] PACKAGE_FILE

rpm {-F|–freshen} [install-options] PACKAGE_FILE

upgrade:安装有旧版程序包,则“升级”;如果不存在旧版程序包,则“安装”

freshen:安装有旧版程序包,则“升级”;如果不存在旧版程序包,则不执行升级操作

rpm -Uvh PACKAGE_FILE

rpm -Fvh PACKAGE_FILE

–oldpackage:降级

–force:强行升级

linux程序包管理,定时计划以及sed简介

说明:升级安装redis包

(3)查询:

rpm {-q|–query} [select-options] [query-options]

[select-options]

-q:查询包

-a:所有包

-f:查看指定的文件由哪个程序包安装生成

-p /PATH/TO/PACKAGE_FILE:针对尚未安装的程序包文件查询其安装文件信息

–whatprovides CAPABILITY:查询指定的CAPABILITY由哪个包所提供

–whatrequires CAPABILITY:查询指定的CAPABILITY被哪个包所依赖

[query-options]

–changelog:查询rpm包的更新日志

-c:查询程序的配置文件

-d:查询程序的文档

-i:information

-L:列出许可证信息

-l:查看指定的程序包安装后生成的所有文件

–scripts:程序包自带的脚本片段

-R:查询指定的程序包所依赖的CAPABILITY

–provides:列出指定程序包所提供的CAPABILITY

linux程序包管理,定时计划以及sed简介

说明:查询刚安装的redis包,注意这里要输入的是包名(rh-redis32-redis)

(4)卸载:

rpm {e|–erase} [–allmatches] [–nodeps] [–noscripts] [–notriggers] [–test] PACKAGE_NAME

–allmatches:卸载所有匹配指定名称的程序包的各版本;

–nodeps:忽略依赖关系

–test:测试卸载,dry run模式

linux程序包管理,定时计划以及sed简介

说明:卸载刚安装的redis包,查询已没有

(5)校验:

rpm {-V|–verify} [select-options] [verify-options]

校验信息含义:

S file Size differs

M Mode differs (includes permissions and file type)

5 digest (formerly MD5 sum) differs

D Device major/minor number mismatch

L readLink(2) path mismatch

U User ownership differs

G Group ownership differs

T mTime differs

P caPabilities differ

linux程序包管理,定时计划以及sed简介

说明:校验redis包,无输出,则说明验证通过。

(6)数据库重建:

rpm {–initdb|–rebuilddb}

initdb:初始化,如果事先不存在数据库,则新建之;否则,不执行任何操作

rebuilddb:重建,无论当前存在与否,直接重新创建数据库

linux程序包管理,定时计划以及sed简介

说明:在指定路径下新建rpmdb

yum工具简介

yum是rpm软件包管理器的前端管理工具。yum是一个在Fedora和RedHat以及CentOS的前端软件包管理器。基于rpm包管理,能够从指定的服务器自动下载rpm包并且安装,可以自动处理依赖性关系,简化了安装步骤。

功能用法:yum [options] [command] [package]

显示仓库列表:

repolist [all|enabled|disabled]

linux程序包管理,定时计划以及sed简介

说明:

显示程序包:

list

#yum list [all | glob_exp1] [glob_exp2]

#yum list {available|installed|updates} [glob_exp1]

linux程序包管理,定时计划以及sed简介

安装程序包:

install package1 [package2]

reinstall package1 [package2](重新安装)

linux程序包管理,定时计划以及sed简介

升级程序包:

update [package1] [package2]

downgrade package1 [package2](降级)

linux程序包管理,定时计划以及sed简介

说明:查看发现bash有新版本的程序包,故用upgrade程序更新到最新版本。

linux程序包管理,定时计划以及sed简介

说明:检查是否更新成功

检查可用升级:

check-update

linux程序包管理,定时计划以及sed简介

说明:检查发现yum程序有最新版未安装

卸载程序包:

remove | erase package1 [package2]

linux程序包管理,定时计划以及sed简介

查看程序包的简要信息:(类似于rpm -qi)

info package

linux程序包管理,定时计划以及sed简介

说明:查看bash程序的简要信息

查看指定的特性(可以是某文件)是由哪个程序包所提供:

provides | whatprovides feature1 [feature2]

linux程序包管理,定时计划以及sed简介

清理本地缓存:

clean [ package | metadata | expire-cache | rpmdb | plugins | all ]

linux程序包管理,定时计划以及sed简介

说明:清除本地缓存的package

构建缓存:

makecache

linux程序包管理,定时计划以及sed简介

据关键字搜索相关信息:

search string1 [string2](以指定的关键字搜索程序包名及summary信息)

linux程序包管理,定时计划以及sed简介

查看指定包所依赖的capabilities:

deplist [package1] [package2]

linux程序包管理,定时计划以及sed简介

查看yum事务历史:

history [info|list|packages-list|packages-info|summary|addon-info|redo|undo|rollback|new|sync|stats]

linux程序包管理,定时计划以及sed简介

安装及升级本地程序包:

localinstall rpmfile1 [rpmfile2]

(maintained for legacy reasons only – use install)

localupdate rpmfile1 [rpmfile2]

(maintained for legacy reasons only – use update)

linux程序包管理,定时计划以及sed简介

包组管理的相关命令:

groupinstall group1 [group2](安装包组)

groupupdate group1 [group2](升级包组)

grouplist [hidden] [groupwildcard](列出包组的列表)

groupremove group1 [group2](移除包组)

groupinfo group1(查看包组的相关信息)

linux程序包管理,定时计划以及sed简介


yum仓库

yum仓库定义:

[repositoryID] 仓库ID

name=Some name for this repository  仓库名,功能的完整描述

baseurl=url://path/to/repository/  仓库的路径

文件服务器:四种形式

ftp://

http://

nfs://

file:///

enabled={1|0} 是否启用,默认启用

gpgcheck={1|0}  检查包的来源合法性和完整性。默认启用

gpgkey=URL  指明秘钥文件路径

enablegroups={1|0} 是否允许基于组管理程序包,默认启用

failovermethod={roundrobin|priority}  故障转移方法,baseurl有多个时的选用原则

默认为:roundrobin,意为随机挑选;

cost=  开销值,默认为1000

建立yum仓库步骤:

要建立yum仓库,首先需要在/etc/yum.repo.d/目录下建立一个已.repo结尾的文件,如下图的CenOS-local.repo的yum仓库文件:

linux程序包管理,定时计划以及sed简介

说明:上图中[centos-source]是本地的yum源,位置是本地的centos镜像的挂载路径;[aliyun]则是网络yum源,位置则是阿里云镜像文件服务器的地址。

第二部分 at和crontab简介

        at:未来某个时间点执行一次某任务,所制定的计划任务会在指定时间执行一次,结果会以邮件的形式发送给创建计划的用户

用途用法:

at [OPTION]… TIME

TIME:

HH:MM [YYYY-mm-dd]

noon中午12点,midnight午夜12点, teatime下午4点

today,tommorow

now+#  相对时间计时法   UNIT :minutes, hours, days, weeks

常用选项:

-l:查看作业队列,相当于atq;

-f /PATH/FROM/SOMEFILE:从指定文件中读取作业任务

-d:删除指定的作业,相当于atrm;

#at -d #(作业号)

-c:查看指定作业的具体内容;上部分是环境信息,尾部是提交的作业内容。

-q QUEUE:指明队列;


crontab是用来进行周期性的执行某任务

向crond提交作业的方式不同于at,它需要使用专用的配置文件,此文件有固定格式,不建议使用文本编辑器直接编辑此文件;要使用crontab命令。该命令是用法如下:

crontab [-u user] [-l | -r | -e] [-i] 立即生效

-e:编辑任务;

-l:列出所有任务;

-r:移除所有任务;

-i:在使用-r选项移除所有任务时提示用户确认;

-u user:root用户可为指定用户管理cron任务;

注意:运行结果以邮件通知给当前用户;如果拒绝接收邮件:

(1) COMMAND > /dev/null

(2) COMMAND &> /dev/null

linux程序包管理,定时计划以及sed简介

说明:crontab -l的第一行就是为这个要求,每周三凌晨三、五点10分执行某个脚本,输出当前时间,时间格式为 2017-12-28 10:00:00,制定的计划任务。为了验证是否可用,以每分钟执行一次的计划任务测试了一下,可以正常执行。

第三部分 sed命令简介

Sed本质上是一个编辑器,但是它是非交互式的,同时它又是面向字符流的,输入的字符流经过Sed的处理后输出。Sed本身是一个管道命令,可以分析标准输入,主要用来分析关键字的使用、统计等,此外还可以将数据进行替换、删除、选取特定行等功能。

用法用例如下:

sed [OPTION]… ‘script’ [input-file] …

常用选项:

-n:不输出模式空间中的内容至屏幕;

-e script, –expression=script:多点编辑;

-f  /PATH/TO/SED_SCRIPT_FILE

-r, –regexp-extended:支持使用扩展正则表达式;

-i[SUFFIX], –in-place[=SUFFIX]:直接编辑原文件 ;

编辑命令:

d:删除;

p:显示模式空间中的内容;

a  \text:在行后面追加文本“text”,支持使用\n实现多行追加;

i  \text:在行前面插入文本“text”,支持使用\n实现多行插入;

c  \text:把匹配到的行替换为此处指定的文本“text”;

w /PATH/TO/SOMEFILE:保存模式空间匹配到的行至指定的文件中;

r  /PATH/FROM/SOMEFILE:读取指定文件的内容至当前文件被模式匹配到的行后面;文件合并;

=:为模式匹配到的行打印行号;

!:条件取反;

地址定界!编辑命令;

s///:查找替换,其分隔符可自行指定,常用的有s@@@, s###等;

替换标记:

g:全局替换;

w /PATH/TO/SOMEFILE:将替换成功的结果保存至指定文件中;

p:显示替换成功的行;

示例:

linux程序包管理,定时计划以及sed简介

说明:显示偶数行

linux程序包管理,定时计划以及sed简介

说明:逆序显示文件内容

linux程序包管理,定时计划以及sed简介

说明:显示文件最后2行

linux程序包管理,定时计划以及sed简介

说明:删除原有的所有空白行,而后为所有的非空白行后添加一个空白行

linux程序包管理,定时计划以及sed简介

说明:取出给定路径的dirname

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/103648

(1)
xzxz
上一篇 2018-07-22
下一篇 2018-07-22

相关推荐

  • shell脚本逻辑运算及条件判断

    shell脚本基础,判断与运算命令用法大全

    2018-04-10
  • 课堂练习题(1)

    练习题

    Linux笔记 2018-04-03
  • 第一周作业

    1、描述计算机的组成及其功能。
    2、按系列罗列Linux的发行版,并描述不同发行版之间的联系与区别。
    3、描述Linux的哲学思想,并按照自己的理解对其进行解释性描述。
    4、说明Linux系统上命令的使用格式;详细介绍ifconfig、echo、tty、startx、export、pwd、history、shutdown、poweroff、reboot、hwclock、date命令的使用,并配合相应的示例来阐述。
    5、如何在Linux系统上获取命令的帮助信息,请详细列出,并描述man文档的章节是如何划分的。
    6、请罗列Linux发行版的基础目录名称命名法则及功用规定。

    Linux笔记 2018-05-13
  • 马哥教育 – 第二周作业

    一、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。 <1>命令:CP 概念:用来将一个或多个源文件或者目录复制到指定的目的文件或目录。它可以将单个源文件复制成一个指定文件名的具体的文件或一个已经存在的目录下。cp命令还支持同时复制多个文件,当一次复制多个文件时,目标文件参数必须是一个已经存在的目录,否则将出现错误。 语法…

    2018-05-21
  • 马哥教育 — 第三周作业

    1.列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可 2. 取出最后登录到当前系统的用户的相关信息 3. 取出当前系统上被用户当作其默认shell的最多的那个shell 4.将/etc/passwd中的第三个字段数字最大的后10个用户的信息全部改为大写后保存至/tmp/maxusers.txt文件中 5. 取出当前主机的i…

    2018-05-29
  • N31-第四周作业

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。 [root@localhost ~]#cp -r /etc/skel /home/tuser1 [root@localhost ~]#chmod -R go= /home/tuser1 2、编辑/etc/group文件,添加…

    2018-07-20

评论列表(1条)

  • 马哥教育
    马哥教育 2018-09-20 09:03

    很棒的文章,内容清晰,实操部分遇到的问题也给出了详细的解决方法,很不错,继续加油。