第五周

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

(1)什么是rpm?

RPM 是RPM Package Manager(RPM软件包管理器)的缩写,可以实现安装、升级、卸载、查询和校验、数据库维护。

CentOS系统上的rpm命令管理程序:

rpm –I 安装

-U 升级

-e 卸载

-q 查询

–builddb 数据库维护

(2)rmp的安装:

常用格式 : rpm  -ivh  PACKAGE_FILE …

-h 输出进度条

– test 测试安装

(3)rpm的升级:

rpm  -Uvh PACKAGE_FILE …

rpm  -Fvh PACKAGE_FILE …

–oldpackage:降级;

–force:强制升级

(4)rpm的 卸载:

Rpm -e

(5)rpm的 查询:

Rpm -q

(6)rpm的 校验:

Rpm -v

(7)数据库重建:

rpm管理器数据库路径:/var/lib/rpm/

rpm {–initdb|–rebuilddb} [–dbpath DIRECTORY] [–root DIRECTORY]

–initdb:初始化数据库,当前无任何数据库可实始化创建一个新的;当前有时不执行任何操作;

–rebuilddb:重新构建,通过读取当前系统上所有已经安装过的程序包进行重新创建;

(8)什么是yum?

Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的shell前端软件包管理器。基于rpm包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。

CentOS系统上的yum命令: 命令格式: yum [option] command

(9)yum常用的命令

yum repolist {all|enabled|disabled} 列出所有/已启用/已禁用的yum源

yum list {all|installed|avaliable} 列出所有/已安装/可安装的软件包

yum info package 显示某一个软件包的信息
yum install package 安装软件包
yum reinstall package 重新安装软件包
yum remove|earse package 卸载软件包
yum whatprovides|provides files 查询某个文件是哪个软件包生成的
yum grouplist {all|installed|avaliable} 列出所有/已安装/可安装的软件包组
yum groupinfo 显示某个软件包组的信息
yum groupinstall 安装某个软件包组
yum groupremove 删除某个软件包组
yum history 查看yum使用的历史
yum clean {all|packages|metadata} 清除所有/软件包/元数据
yum makecache 生成yum元数据
yum –nogpgcheck 不校验公钥文件
yum -y 自动进行操作

安装示例:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

[root@localhost ~]# yum install tree

已加载插件:fastestmirror, refresh-packagekit, security

设置安装进程

Loading mirror speeds from cached hostfile

* base: mirrors.aliyun.com

* extras: mirrors.aliyun.com

* updates: mirrors.aliyun.com

base                                                                                                              | 3.7 kB     00:00

extras                                                                                                            | 3.4 kB     00:00

updates                                                                                                           | 3.4 kB     00:00

解决依赖关系

–> 执行事务检查

—> Package tree.x86_64 0:1.5.3-3.el6 will be 安装

–> 完成依赖关系计算

 

依赖关系解决

 

=========================================================================================================================================

软件包                        架构                            版本                                  仓库                           大小

=========================================================================================================================================

正在安装:

tree                          x86_64                          1.5.3-3.el6                           base                           36 k

 

事务概要

=========================================================================================================================================

Install       1 Package(s)

 

总下载量:36 k

Installed size: 65 k

确定吗?[y/N]:y

 

 

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命令和crontab命令的区别在于
at:这个工作仅执行一次;
crontab:这个工作将周期的持续的进行下去

(1)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:指明队列;

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

(2) crontab  周期性任务计划命令:

语法:

crontab [-e [UserName]|-l [UserName]|-r [UserName]|-v [UserName]|File ]

说明:

crontab 是用来让使用者在固定时间或固定间隔执行程序之用,换句话说,也就是类似使用者的时程表。

-u user 是指设定指定 user 的时程表,这个前提是你必须要有其权限(比如说是 root)才能够指定他人的时程表。如果不使用 -u user 的话,就是表示设定自己的时程表。

参数:

-e [UserName]: 执行文字编辑器来设定时程表,内定的文字编辑器是 VI,如果你想用别的文字编辑器,则请先设定 VISUAL 环境变数来指定使用那个文字编辑器(比如说 setenv VISUAL joe)

-r [UserName]: 删除目前的时程表

-l [UserName]: 列出目前的时程表

-v [UserName]:列出用户cron作业的状态

f1 f2 f3 f4 f5 program

其中 f1 是表示分钟,f2 表示小时,f3 表示一个月份中的第几日,f4 表示月份,f5 表示一个星期中的第几天。program 表示要执行的程式。

当 f1 为 * 时表示每分钟都要执行 program,f2 为 * 时表示每小时都要执行程式,其余类推

当 f1 为 a-b 时表示从第 a 分钟到第 b 分钟这段时间内要执行,f2为 a-b 时表示从第 a 到第 b 小时都要执行,其余类推

当 f1 为 */n 时表示每 n 分钟个时间间隔执行一次,f2 为 */n 表示每 n 小时个时间间隔执行一次,其余类推

当 f1 为 a, b, c,… 时表示第 a, b, c,… 分钟要执行,f2 为 a, b, c,… 时表示第 a, b, c…个小时要执行,其余类推

使用者也可以将所有的设定先存放在档案 file 中,用 crontab file 的方式来设定时程表。

由于版本不一样,所以部分语法有差别,例如在hp unix aix 中设定间隔执行如果采用*/n 方式将出现语法错误,在这类unix中 ,间隔执行只能以列举方式。

使用方法

用VI编辑一个文件 cronfile,然后在这个文件中输入格式良好的时程表。编辑完成后,保存并退出。 [2]

在命令行输入

$: crontab cronfile

这样就将cronfile文件提交给c r o n进程,同时,新创建cronfile的一个副本已经被放在/ v a r / s p o o l / c r o n目录中,文件名就是用户名。

示例:

crontab -e

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

crontab -l

 

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

(1)什么是sed

sed:Stream Editor文本流编辑,sed是一个“非交互式的”面向字符流的编辑器。能同时处理多个文件多行的内容,可以不对原文件改动,把整个文件输入到屏幕,可以把只匹配到模式的内容输入到屏幕上。还可以对原文件改动,但是不会再屏幕上返回结果。

 

(2)  sed命令格式

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

其中 script  是地址定界编辑命令

sed命令的选项(option):

-n :只打印模式匹配的行

-e :直接在命令行模式上进行sed动作编辑,此为默认选项

-f :将sed的动作写在一个文件内,用–f filename 执行filename内的sed动作

-r :支持扩展表达式

-i :直接修改文件内容

编辑命令: d:删除;

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

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

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

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

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

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

示例:

sed -n  ‘4,6p’ /etc/fstab    ##输出etc/fstab中4至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/102981

(0)
上一篇 2018-07-15 15:23
下一篇 2018-07-15 16:07

相关推荐