linux 学习5

第五周(7.16-7.30)

第五周作业(7.16–7.22)

1、简述rpm与yum命令的常见选项,并举例linux 学习5

​ (* 上图为程序包命名格式)

1.1 rpm命令

1.1.1 功能:将编译好的应用程序的各组成文件打包成一个或多个程序包文件,从而更方便的实现程序包的安装,升级,卸载和查询等操作。

1.1.2 通用格式:rpm [OPTIONS]…[PACKAGE-FILE] 以下还有其更多功能选项

​ OPTIONS:

​ 安装:-i ,–install

​ 升级: -U ,update , -F ,–Freshen

​ 卸载: -e , –erase

​ 查询: -q , –query

​ 校验: -V , –verify

​ 数据库维护: –builddb , –initdb

​ **安装**: rpm {-i|–install} [install-options] PACKAGE_FILE …

​ install-options:

​ -h:hash marks 输出进度条;每个进度条代表2%,共50个#

​ –test:测试安装(并不是真正安装,而是检查一下是否能被安装)

​ –nodeps: 忽略依赖关系,强行安装

​ –replacepkgs:重新安装

​ -v :verbose,详细信息

​ -vv:更详细的输出

​ 通常使用安装时的格式:

​ rpm -ivh PACKAGE_FILE…

​ **升级**: rpm {-U|–upgrade} [install-options] PACKAGE_FILE …

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

​ install-options:

​ –oldpackage : 降级

​ –force:强行升级(不处理依赖关系到的程序包)

​ 通常使用升级时的格式:

​ 升级或安装:rpm -Uvh PACKAGE_FILE…

​ 升级:rpm -Fvh PACKAGE_FILE…

​ **卸载:**rpm {-e|–erase}| –allmatches| [–nodeps]|[–noscripts]|[–notriggers]|[–test] PACKAGE_NAME …

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

​ –nodeps: 忽略依赖关系

​ –test: 测试卸载

​ –notriggers:不执行触发程序

​ **查询:** rpm {-q|–query} [select-options]|[query-options]

​ select-options:

​ -a ,–all : 查询所有已安装的程序包

​ -f,FILE :查询指定的文件有那个程序包安装生成

​ -g,–group:查询指定包组中那个包使用最多

​ -p,–psckage PACKAGE_FILE:用于实现对未安装的程序包执行查询操作

​ —whatprovides CAPABLITY :查询指定的CAPABLITY由那个程序包提供

​ –whatrequires CAPABLITY : 查询指定的CAPABLITY被那个包所依赖

​ query-options: (都与-q一起使用)

​ –changelog : 查询rpm包的日志

​ -l,–list :程序安装生成的所有文件列表

​ -i,–info : 程序包相关的信息,版本号,大小,所属的包组等

​ -c,–configfiles:查询指定的程序提供的配置文件

​ -d,–docfile:查询指定的程序包提供的帮助文件

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

-R,–requires: 查询指定程序包的所有依赖关系

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

示例:查询安装的zsh包的配置信息1532838316848linux 学习5

​ **校验:** rpm {-V|–verify} [select-options]|[verify-options]

示例: 当修改程序包文件时,再进行校验操作会输出结果,例如修改文件/etc/zshrc 后运行

linux 学习51532840792856

输出结果解释:

​ S: 文件大小发生改变

​ 5: 文件内容发生改变

​ T: 文件时间戳发生改变

​ 在输出结果中,有9个字段,依次表示为:

S:文件大小发生改变

M:权限发生改变

​ 5:文件md5码发生改变

​ D:主次设备号发生改变

​ L: readlink路径不匹配

​ U:属主改变

​ G:属组改变

​ T:最近一次时间戳发生改变

​ P:copabilities 改变

1.2 yum命令

功能:yum是rpm的前端管理工具,yum要依赖于rpm的存在而存在的,解决了包与包之间复杂的依赖关系,使程序包的安装更简单。

yum命令的用法:

yum [options]|[command]|[package…]

command:

安装程序包:

install package1[package2]

重新安装程序包:

reinstall package1 [package2]

显示仓库列表:

repolist [all|enabled|disabled]

显示所有或通配显示

yum list [all|glob_exp1]|[glob_exp2]|[…]

显示所有可用/安装/升级的程序包

yum list {available | installed |updataes }[glob_exp1]|[…]

升级指定程序包:

update [package1]|[package2]|[…]

检查可升级的程序包:

check-update

卸载程序包,依赖的程序包都会被卸载

remove | erase package1 [package2] …

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

provides | whatprovides feature1[feature2]…

清理本地缓存:

clean [packages|metadate | expire-cache | remdb | plugins | all ]

构建缓存:

makecache

根据关键字搜索:

search string1 [string2]…

降级安装:

downgrade package1 [package2]…

查看指定程序包所依赖的程序包:

deplist package1 [package2] …

查看yum事务历史(每启动安装,升级,卸载操作都叫做一次事务)

history [info | listpackages-list | packages-info | summary |addon-info…]

安装升级本地程序包:

localinstall rpmfile1 [rpmfile2 ]…

localupdate rpmfile 1 [rpmfile2]…

options:

–nogpgcheck : 禁止进行gpgcheck

-y:自动进行安装无需确认安装

-q:静默模式

–disablerepo = repoidglob:在安装时临时禁用此处指定的仓库

–enablerepo = repoidglob :临时启用此处指定的仓库

–noplngins:禁用所有插件

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

创建网络源:

第一步:在/etc/yum.repo.d/目录下创建以repo结尾的文件

第二步:通过文本编辑器vim编辑次文件内容如下:

[BASE]

name=centos base aliyun

baseurl=https://mirrors.aliyun.com/centos-altarch/7.5.1804/os/

gpgcheck=0

第三步:yum repolist 命令查看是否生效1532885534028

linux 学习5

创建本地yum源:

第1步:首先在官方网站下载cd镜像,挂载文件

mount -r /dev/sr0 /mnt

第2步:在/etc/yum.repo.d/目录下创建以repo结尾的文件

通过vim编辑器编辑以下内容

[local 1]

name = cdrom centos mirrors

baseurl = file:///mnt

gpgcheck = 0

第3步:通过yum repolist 命令查看是否生效

 

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

3.1 at命令:在未来的某个时间执行一次任务

格式:at [OPTION]…TIME

时间格式:HH:MM[YYYY-MM-DD]

​ 时间表示方法分两种:

​ (1). 模糊法:noon(中午12点) midnight(午夜) teatime(下午四点) tomorrow(明天)

​ (2). 相对时间计时法: now + #(数字)+单位 (现在之后的#一个时间,单位包括minutes,hours,days)

​ 常用选项: -l:查看作业队列,相当于atq

​ -f /PATH/FROM/SOMEFILE :从指定文件中读取作业任务,而非交互式输入

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

​ -c :查看指定作业的具体内容(以前执行过的也可以查看)

​ -q QUEUE:指明队列

​ 注意:作业执行结果是以邮件发送给提交作业的用户。

3.2crontab命令

​ 格式:crontab [-u user |-l | -r |-e |-i |-s]

​ 常用选项: -e : 编辑任务

​ -l:列出所有任务

​ -r:移除所有任务;即删除/var/spool/cron/USERNAME文件

​ -i:在使用-r选项移除所有任务是提示用户确认是否操作

​ -u user:root用户可为指定用户定义任务

注意1:运行结果是以邮件通知给当前用户;如果需要拒收次邮件可以使用

​ (1). COMMAND > /dev/nul

​ (2). COMMAND &> /dev/null 可以使命令运行但不以邮件接收

​ 注意2:定义COMMAND时,如果命令需要用到%时,需要对其转义,当放置于单引号中时不需要转义;

3.3 示例

编写执行时间bash脚本:

linux 学习51532879812366

制定crontab命令linux 学习5

10 3,5 * * 3 /root/bin/bash/date_task.sh

linux 学习5

4、简述sed常用操作命令,并举例

4.1 sed命令

4.1.1 功能:针对行进行操作的流式编辑器

4.1.2 格式:sed [options] …”script”[input_file]

script:地址定界,编辑命令

4.1.3 常用选项:

-n:不输出模式空间中的内容至标准输出

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

-f /PATH/TO/SED_SCRIDT_FILE:每一行一个编辑命令的脚本

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

i[SUFFIX],–in -place [=SUFFIX] : 直接编辑原文件(危险操作,慎用)

4.1.4 地址定界:

#,#:从#到#行

#,+#:相对#到+#行

#,/pat1/ : 从#行到模式1匹配到的行

/pat1/,/pat2/:从模式1到模式2所匹配到的行

4.1.5 步/pat1/进 ~

1~2:所有奇数行

2~2:所有偶数行

4.1.6 编辑命令

d:删除操作

示例:删除文件的第1行到底5行1532881318421linux 学习5

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

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

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

示例:在/etc/fstab 文件中的第3行插入内容“new line”1532881596498

linux 学习5

c\text : 吧匹配到的行替换为此处指定的文本text

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

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

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

!:条件取反

示例:显示删除之外的行

linux 学习51532882109864

s/// : 查找替换,其分隔符也可以换成@@@或###

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

(1)
zhuimenshaonianzhuimenshaonian
上一篇 2018-07-30
下一篇 2018-07-30

相关推荐

评论列表(1条)

  • 马哥教育
    马哥教育 2018-09-19 09:13

    很实用的一篇博文,涵盖了包管理、yum源和基础命令的使用。继续加油。