第五周作业

1、简述rpm与yum命令的常见选项,并举例
2、自建yum仓库,分别为网络源和本地源
3、简述at和crontab命令,制定 每周三凌晨三、五点10分执行某个脚本,输出当前时间,时间格式为 2017-12-28 10:00:00
4、简述sed常用操作命令,并举例

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

rpm命令:

rpm  [OPTIONS]  [PACKAGE_FILE]

安装:-i, –install

升级:-U, –update, -F, –freshen

卸载:-e, –erase

查询:-q, –query

详细信息:-v, (更详细信息-vv)

校验:-V, –verify

数据库维护:–builddb, –initdb

输出进度条;每个#表示2%的进度:  -h

示例:

rpm -ivh    zip.x86_64    #安装zip包并显示安装进度和详细信息

卸载:rpm -e  [options] [filename]

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

–nodeps:忽略依赖关系

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

示例:

rpm -e zip  #卸载zip包

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

[select-options]

PACKAGE_NAME:查询指定的程序包是否已经安装,及其版本;

-a, –all:查询所有已经安装过的包;

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

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

–whatprovides CAPABILITY:查询指定的CAPABILITY由哪个程序包提供;

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

[query-options]

–changelog:查询rpm包的changlog;

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

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

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

-d, –docfiles:查询指定的程序包提供的文档;

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

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

–scripts:查看程序包自带的脚本片断;

用法:
-qi PACKAGE, -qf FILE, -qc PACKAGE, -ql PACKAGE, -qd PACKAGE
-qpi PACKAGE_FILE, -qpl PACKAGE_FILE, -qpc PACKAGE_FILE, …

示例:

rpm -qa                #查询所有已经安装过的包

rpm -qi zip          #查询安装包zip相关的信息,版本号、大小、所属的包组,等

rpm -qc zip.x86_64      #查询指定的程序包zip提供的配置文件

rpm -qf /etc/yum.conf   #查询此文件有那个安装包生成的

yum命令的用法:
yum [options] [command] [package …]

显示仓库列表:
repolist [all|enabled|disabled]

显示程序包:
list
# yum list [all | glob_exp1] [glob_exp2] […]
# yum list {available|installed|updates} [glob_exp1] […]

安装程序包:
install package1 [package2] […]

reinstall package1 [package2] […] (重新安装)

升级程序包:
update [package1] [package2] […]

downgrade package1 [package2] […] (降级)

查看yum事务历史:

history

包组管理的相关命令:
* groupinstall group1 [group2] […]
* groupupdate group1 [group2] […]
* grouplist [hidden] [groupwildcard] […]
* groupremove group1 [group2] […]
* groupinfo group1 […]

示例:

yum repolist      #显示可用仓库列表

yum install zip.x86_64    #在线安装zip包

yum list install  #显示已经安装的rpm包列表

yum history     #显示安装rpm包的事物历史

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

网络源:
mv CentOS-Base.repo CentOS-Base.repo.bak      #备份repo仓库文件
vim centos-network.repo                                          #编辑新的网络源repo
[base]                                                                            #输入新的配置文件内容
name=CentOS-$releasever – Base
baseurl=http://mirrors.163.com/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

本地源:
mount -rt /dev/cdrom /media/cdrom                   #挂载光盘至/media/cdrom下
vim centos-network.repo                                          #编辑网络源repo
[xen4centos]                                                                 #在后面输入新的配置文件内容
name=Xen 4 CentOS 6
baseurl=file:///media/cdrom
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

yum repolist                                                                   #检查xen4centos是否加入进来

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

at命令:
at [OPTION]… TIME

TIME:
HH:MM [YYYY-mm-dd]
noon,midnight, teatime
tomorrow
now+#
UNIT:minutes, hours, days, OR weeks

at的作业有队列,用单个字母表示,默认都使用a队列;

常用选项:
-l:查看作业队列,相当于atq
-f /PATH/FROM/SOMEFILE:从指定文件中读取作业任务,而不用再交互式输入;
-d:删除指定的作业,相当于atrm;
-c:查看指定作业的具体内容;
-q QUEUE:指明队列;

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

cron命令:

用户cron的配置格式:/var/spool/cron/USERNAME
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root

# For details see man 4 crontabs

# Example of job definition:
# .—————- minute (0 – 59)
# | .————- hour (0 – 23)
# | | .———- day of month (1 – 31)
# | | | .——- month (1 – 12) OR jan,feb,mar,apr …
# | | | | .—- day of week (0 – 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * command to be executed

注意:
(1) 每行定义一个cron任务,共6个字段;
(2) 此处的环境变量不同于用户登录后获得的环境,因此,建议命令使用绝对路径,或者自定义PATH环境变量;
(3) 邮件发送给当前用户;

时间表示法:
(1) 特定值;
给定时间点有效取值范围内的值;
注意:day of week和day of month一般不同时使用;
(2) *
给定时间点上有效取值范围内的所有值;表“每..”
(3) 离散取值:,
在时间点上使用逗号分隔的多个值;
#,#,#
(4) 连续取值:-
在时间点上使用-连接开头和结束
#-#
(5) 在指定时间点上,定义步长:
/#:#即步长;

注意:
(1) 指定的时间点不能被步长整除时,其意义将不复存在;
(2) 最小时间单位为“分钟”,想完成“秒”级任务,得需要额外借助于其它机制;
定义成每分钟任务:而在利用脚本实现在每分钟之内,循环执行多次;

示例:

crontab -e

10 3,5 * * 3 /bin/date  +”\%Y-\%m-\%d \%H:\%M:\%S”

crontab -l

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

sed [OPTION]… ‘script’ [input-file] …
script:地址定界编辑命令
常用选项:
-n:不输出模式空间中的内容至屏幕;
-e script, –expression=script:多点编辑;编辑命令:
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:显示替换成功的行;

示例:

sed -n  ‘2,6p’ /etc/fstab    ##输出etc/fstab中2至6行

sed ‘2~2d’ /etc/fstab    ##删除/etc/fstab中所有的偶数行

sed ‘2i\test test’ /etc/fstab    ##在/etc/fstab的第二行前面插入一行test test

sed ‘/^[^#]/w /tmp/fstab.new’ /etc/fstab   ##将/etc/fstab中非#开头的行都写入到/tmp/fstab.new文件中

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

发表评论

登录后才能评论

联系我们

400-080-6560

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

邮件:1823388528@qq.com

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