rpm与yum

rpm yum sed and crontab

1、简述rpm与yum命令的常见选项,并举例
rpm是一个非常强大的命令,集成了很多选项
一般选项:
-q|–query:查询选项
-i|–install:安装选项
-U|–upgrade:升级选项
-e|–erase:删除
-?,–help: 比正常打印更长的使用信息。
–version: 打印一个包含正在使用的rpm版本号的行。
–quiet: 尽可能少地打印 – 通常只会显示错误信息。静默模式
-v:打印详细信息 – 通常会显示常规进度消息。
-vv:打印大量丑陋的不容易读得懂的调试信息。
rpm是一个功能十分强大的软件包管理系统,它使得在Linux下安装、升级和删除软件包工作变的容易、并且具有查询、验证软件包的功能。
1)安装选项
命令格式:rpm {-i|–install} [install-options] PACKAGE_FILE …
详细选项
-h (or -hash)安装时输出hash记号(#)
–test 只对安装进行测试,并不实际安装
–percent 以百分比的形式输出安装的进度
–nodeps:忽略依赖关系
–replacepkgs:重新安装
–nosignature:不检查来源合法性
–noscipts:不执行程序包脚本片段;
%pre:安装前脚本:–nopre
$post:安装后脚本; –nopost
%preun:卸载前脚本; –nopreun
%postun:卸载后脚本; –nopostun
2)升级
命令格式:rpm {-U|–upgrade}[install-options]PACKAGE_FILE…
rpm {-F|–freshen}[install-options]PACKAGE_FILE…
upgrade:安装有旧版程序包,则升级,如果不存在旧版本的程序包,则安装;
freeshen:安装有旧版程序包,则升级,如果不存在旧版本程序包,则不执行升级操作;
rpm -Uvh PACHAGE_FILE …
rpm Fvh PACHAGE_FILE …
–oldpackage:降级
–force:强行升级
注意:(1)不要对内核升级操作:Linux支持多内核版本并存,因此,对直接安装新版本内核;
(2)如果原程序包的配置文件安装后曾被修改,升级时,新版本的提供的通一个配置文件并不会直接覆盖老版本的配置文件,而被新版本文件重命名(FILENAME.rpmnew)后保留;
3)查询
命令格式: rpm {-q|–query} [select-options] [query-options]
-a:所有包;
-f:查看指定的文件由那个程序包安装生成
-p /PATH/TO/PACKAGE_FILE:针对尚未安装的程序包做查询操作;
–whatprovides CAPABILITY:查询指定CAPABILITY由那个包提供;
–whatrequies CAPABILITY:查询指定CAPILITY被那个包所依赖;
详细选项
–changelog:查询rpm包的changlog
-c:查询程序的配置文件
-i:infornation
-l:查看指定程序包安装后生成的指定文件
–scripts:程序包自带脚本片段
-R:查询指定的程序包所依赖的CAPABILITY;
–provides:列出指定程序包所提供的CAPABILITY;
用法
-qi PACKAGE,-qf FILE,-qc PACKAGE,-qd PACKAGE
-qpi PACKAGE_FILE,-qpl PACHAGE_FILE,…
-qa
4)卸载
命令格式:rpm {-e|–erase} [–allmatches] [–nodeps] [–noscripts][–notriggers] [–test] PACKAGE_NAME …
参数
pkg1 … pkgN :要删除的软件包
详细选项
–test 只执行删除测试
–noscripts 不运行预安装和后安装脚本程序
–nodeps 不检查依赖性
5)校验已安装的软件包
命令格式:
rpm {-V|–verify} [select-options] [verify-options]
参数
pkg1 … pkgN 将要校验的软件包名
软件包选项
-p Verify against package file
-f 校验所属的软件包
-a Verify 校验所有的软件包
-g 校验所有属于组的软件包
详细选项
–noscripts 不运行校验脚本
–nodeps 不校验依赖性
–nofiles 不校验文件属性
普通选项
-v:显示附加信息
–vv:显示更加详细的信息
yum功能选项:
yum install
update
clean
用于添加/删除/更新rpm包,自动解决包的依赖问题以及系统更新升级
参数
-e 静默执行
-t 忽略错误
-R[分钟]设置等待时间
-y 自动应答 yes
–skip-broken忽略依赖问题
–nogpgcheck 忽略GPG验证
check-update 检查可更新的包
clean all清楚全部
clean packages 清楚临时包文件 (/var/cache/yum 下文件)
clean headers 清除rpm头文件
deplist 列出包的依赖
list 可安装和可更新的RPM包
list installed 已安装的包
list extras 已安装且不在资源库的包
info 可安装和可更新的RPM包信息
info installed 已安装包的信息(-qa参数相似)
install[RPM包]安装包
localinstall 安装本地的RPM包
update [RPM包]更新包
upgrate 升级系统
search [关键词]搜索包
provides[关键词]搜索特定包文件名
resinstall [RPM包]更新安装包
repolist 显示资源库的配置
resolvedep指定依赖
remove[RPM包]卸载包
2、自建yum仓库,分别为网络源和本地源
配置本地源:
建立本地源目录
]# mkdir /mnt/cdrom
]# mkdir /yum
挂载Centos光盘
]# mount /dev/cdrom /mnt/cdrom
]# cp -r /mnt/cdrom/* /yum
备份repo
]# cd /etc/yum.repo.d/
]# mkdir backup
]# mv CentOS-Base.repo CentOS-CR.repo CentOS-Vault.repo CentOS-Vault.repo ./backup
编辑Centos-Media.repo
]# vim Centos-Media.repo
[base]
name=Centos
baseurl=file:///yum
enable=1
gpgckeck=1
gpgkey=file:///mnt/cdrom/RPM-GPG-KEY-CentOS-7
清除yum缓存
]# yum clean all
]# yum makecache
配置网络源:
备份源镜像文件
]# mv centos* ./backup
下载阿里云的镜像到/etc/yum.repos.d/
]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
清除yum缓存
]# yum clean all
]# yum makecache
3、简述at和crontab命令,制定 每周三凌晨三、五点10分执行某个脚本,输出当前时间,时间格式为 2017-12-28 10:00:00
minuteshoursdaymonthweekcommand
0-590-231-31  1-121-7
10 3,5 * * 3 bash  /tmp/scrips/cron.sh
cat cron.sh
date “+%F %T”
4、简述sed常用操作命令,并举例
sed 是一种在线编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有 改变,除非你使用重定向存储输出。Sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等。
[root@www ~]# sed [-nefr] [动作]
选项与参数:
-n :使用安静(silent)模式。在一般 sed 的用法中,所有来自 STDIN 的数据一般都会被列出到终端上。但如果加上 -n 参数后,则只有经过sed 特殊处理的那一行(或者动作)才会被列出来。
-e :直接在命令列模式上进行 sed 的动作编辑;
-f :直接将 sed 的动作写在一个文件内, -f filename 则可以运行 filename 内的 sed 动作;
-r :sed 的动作支持的是延伸型正规表示法的语法。(默认是基础正规表示法语法)
-i :直接修改读取的文件内容,而不是输出到终端。
动作说明: [n1[,n2]]function
n1, n2 :不见得会存在,一般代表『选择进行动作的行数』,举例来说,如果我的动作是需要在 10 到 20 行之间进行的,则『 10,20[动作行为] 』
function:
a :新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~
c :取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行!
d :删除,因为是删除啊,所以 d 后面通常不接任何咚咚;
i :插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行);
p :列印,亦即将某个选择的数据印出。通常 p 会与参数 sed -n 一起运行~
s :取代,可以直接进行取代的工作哩!通常这个 s 的动作可以搭配正规表示法!例如 1,20s/old/new/g 就是啦!
把开头/结尾为str1的行替换为str2:
sed -i ‘s/^str1.*/str2/’  filename  ###以str1开头
sed -i ‘s/.*str1$/str2/’  filename  ###以str1结尾
sed -i ‘s/.*str1.*/str2/’  filename  ###含有str1
将文件中含 “arr” 字符串的数据行中的 “str1” 字符串 , 替换成为 “str2” 字符串:
sed -e ‘/arr/s/str1/str2/g’ filename  ##含有g说明是全局替换
将文件中第 5 行数据 , 替换成句子”hello world!!!”
sed -e ‘5c\hello world!!!’ filename
将文件中 1 至 100 行 , 替换成如下两行:
how are you?
my name is feige.
命令如下:
sed -e ‘1,100c\
How are you?\
my name is feige.
‘ filename
删除空行:
sed -e ‘/^ *$/d’ filename   ### *号前面有一个空格符哦~
删除含有指定字符串str的行:
sed -f ‘/str/d’ filename

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

(0)
上一篇 2018-06-11 10:32
下一篇 2018-06-11 18:54

相关推荐

评论列表(1条)

  • 马哥教育
    马哥教育 2018-06-13 16:56

    希望可以多多注意排版问题