程序包管理工具及sed基本使用方法

程序包管理工具及sed基本使用方法

一.简述rpm与yum命令的常见选项,并举例

rpm命令是一个管理rpm类型的程序包管理工具,用来安装,升级,管理,卸载,查询,校验rpm类型的软件。具体操作如下:

1.安装:rpm {-i|–install} [install-options] PACKAGE_FILL…

-h:hash,以#来表示安装进度;

-v,–verbose:显示安装过程中的详细信息;

-vv:显示安装过程中的更详细信息;

–test:不执行真正的安装,而仅检查依赖关系及冲突信息等;

–nodeps:忽略程序包的依赖关系进行安装,能安装成功,不一定能运行;

–replacepkgs:覆盖安装

–force:强制安装;

安装时的常用组合为:-ivh,-ivvh

例子:

安装程序包(安装zsh-5.0.2-7.el7.x86_64.rpm程序包)

1

2.升级:

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

-U:升级或安装

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

-F:升级,原rpm包未安装的,不进行升级操作

–test:不执行真正的安装过程,而仅报告依赖关系及冲突信息;

–nodeps:忽略依赖关系进行安装,安装完成后程序不一定能执行;

–oldpackages:降低到旧版本。

例子:升级zsh程序包

2

3.卸载:移除已经安装的程序包

rpm {-e|–erase} [–allmatches] [–nodeps] [–test] PACKAGE_NAME…

简单用法:rpm -e PACKAGE_NAME…

–NODEPS:忽略依赖关系

–test:测试卸载啊,dry-run

–allmatches:如果一个程序包同时安装了多个版本,则此选项一次全部卸载程序包,如果程序包的配置文件安装后曾被修改,卸载时,此文件通常不会被删除,而是被重命名。

例子:卸载zsh程序包    rpm -e zsh

4.查询:查询某包是否已经安装,以及检查安装的所有包,还可以查看某包的详细信息;

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

[select-options]

a.查询某包或某些包是否安装

rpm -q PACKAGE_NAME…

b.查询已经安装的所有包

rpm -qa

c.查询某文件是由哪个程序包所安装生成

rpm -qf /PATH/TO/SOMEFILE

d.查询尚未安装的包文件的相关信息

rpm -qpi PACKAGE_FILE

[query-options]选项:

a.查询某包的简要说明:

rpm -qi PACKAGE_NAME

b.查询某包安装生成的文件列表

rpm -ql PACKAGE_NAME

c.查询某包安装完成后生成的配置文件

rpm -qc PACKAGE_NAME

d.查询某包安装完成后生成的帮助文件信息

rpm -qd PACKAGE_NAME

e.查看某包制作时随版本变化的changelog信息

rpm -q –changelog PACKAGE_NAME

f.查询某包提供的capability

rpm -q –provices PACAGE_NAME

g.查询某包所依赖的capability

rpm -q -requires PACAKGE_NAME

h.查询某包安装或卸载时执行脚本

脚本有四类:

preinstall:安装过程开始之前执行的脚本;

postinstall:安装过程完成之后执行的脚本;

preuninstall:卸载开始之前执行的脚本

postuninstall:卸载过程完成之后执行的脚本

5.校验:查询包安装之后生成的文件是否发生了改变

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

当没有输出结果时表示程序包时完整的。

6.验证程序包的来源及完整性

先导入合法的KEY文件rpm –import /PATH/TO/RPM-GPG-KEY-FILE

验证:rpm {-K|–checksig} PACKAGE_FILE

–nosignature:不检查来源合法性

–nodigest:不检查完整性

7.rpm管理器数据库的重建:

rpm {–initdb|–rebuilddb} [-v] [–dbpath DIRECTORY]

–initdb:初始化数据库,数据库完全不存在是,可新建;

–rebuilddb:无论当前数据库是否存在,都会直接新建数据库,存放在/var/lib/rpm当中;

yum命令:用于添加、删除、卸载、更新rpm包,自动解决程序包之间的依赖关系

yum命令的使用:yum [options] [command] [package]

1.程序包安装

yum install package [package2] [….]

2.程序包升级

yum update [package1] [package2] [….]

3.程序包降级

yum downgrade package1 [package2] …

4.程序包卸载

yum remove | erase package1 [package2] […]

5.包组管理

列出所有包组:yum grouplist

显示指定包组详细信息:yum groupinfo group1 […]

安装:yum groupinstall group1 ….

卸载:yum groupremove group1 ….

升级:yum groupupdate group1 ….

二、自建yum仓库,分别为网络源和本地源

1.制作本地yum源,使用系统安装光盘作为yum源。

a.挂载系统安装盘至系统/media/cdrom;

b.新建配置文件,在/etc/yum.repo.d/下新建local.repo的配置文件,配置信息如下

[base]
name=CentOS 7
baseurl=file:///media/cdrom
enabled=1
gpgcheck=0

2.制作网络yum repository:

在/etc/yum.repo.d/local.repo配置文件中,添加网络yum源配置信息;如下

[epel]
name=CentOS epel
baseurl=https://mirrors.aliyun.com/epel/7/x86_64/
enabled=1
gpgcheck=0

三:简述at和crontab命令,制定 每周三凌晨三、五点10分执行某个脚本,输出当前时间,时间格式为 2017-12-28 10:00:00

at和crontab命令都是用来指定定时任务的,其中at命令是用来处理一次性的计划任务;crontab则是可以根据定义的周期性信息,循环的去做一些任务。

1.at命令:

at的使用方法:at [-mldvc] TIME

-l:列出目前系统上的所有当前用户的at队列;

-d:可以取消一个在at排程中的工作;

-v:可以使用较明显的时间格式列出at中的工作列表

-f:把at要执行的所有任务放置于文件中,让at读取此文件作为要运行的任务

2.crontab命令

-l:列出已经定义的所有任务;

-e:打开编辑界面定义任务

-r:移除所有任务

3.示例:

3

四、简述sed常用操作命令

sed编辑器称为流编辑器(stream editor),sed编辑器可以根据输入命令行的命令或者存储在命令文本文件中的命令处理数据。它每次从输入读取一行数据,将该数据与所提供的编辑器命令进行匹配,根据命令修改数据流中的数据,然后将新数据输出到STDOUT,在流编辑器将全部命令和一行数据匹配完全后,读取下一行数据,并重复过程。处理完数据流中的全部数据后,流编辑器停止。

sed的语法结构:sed [OPTION]…{script} [input-file] … [actions]

-r:支持扩展正则表达式

-n:静默模式

-e script1 -e script2 -e script3:指定多脚本运行

-f /path/to/script_file:从指定的文件中读取脚本并运行

-i:直接修改源文件(一般不这样做)

sed的编辑命令:

d:删除模式空间中的行

=:为模式空间中的行打印行号

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

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

c\text:用text替换匹配到的行

p:打印模式空间的行

g:全局替换

i:不区分大小写

sed除了“模式空间”之外,还有一个“保留空间”。

sed保留空间的使用:

h:用模式空间的内容覆盖保留空间的内容

H:把模式空间中的内容追加至保留空间中内容的后面

g:从保留空间中取出内容,并将其覆盖模式空间中的内容

G:从保留空间中取出内容,并将其追加在模式空间的后面

x:把保留空间和模式空间的内容进行交换

n:读取匹配到的行的下一行至模式空间

N:读取匹配到的下一行至模式空间,追加在模式空间中原有内容的后面

D:删除多行模式空间中的首行

d:删除模式空间中的内容

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

发表评论

登录后才能评论

This site uses Akismet to reduce spam. Learn how your comment data is processed.

联系我们

400-080-6560

在线咨询:点击这里给我发消息

邮件:1823388528@qq.com

工作时间:周一至周五,9:30-18:30,节假日同时也值班