1、简述rpm与yum命令的常见选项,并举例
rpm 命令
linux的的包管理器,用于对rpm软件包,进行安装、升级、卸载、查询、校验等操作。
使用语法:
rpm [OPTIONS] [PACKAGE_FILE]
常用选项:
- 安装: -i,–install
- 升级: -U,–update,-F,–freshen
- 卸载: -e,–erase
- 查询: -q,–query
- 校验: -V,–verify
- 数据库维护: –builddb,–initdb
安装:
rpm {-i|–install} [install-options] PACKAGE_FILE …
通用选项
- -v: verbose,详细信息
- -vv: 更详细的过程输出
install-options:
- -h: 在展开包的时候输出50个#号哈希标记符,[#表示2%的进度]
- –test: 测试检查安装,并报告依赖关系及冲突消息.
- –nodeps: 忽略依赖关系,并安装
- –replacepkgs: 重新安装
- –noscripts: 忽略RPM包的脚本执行
如果被操作修改的了安装的配置文件,重新安装并不会替代此文件,如果要恢复安装需要删除配置文件
升级:
rpm{-U|–upgrade}[install-options] PCKAGE_FILE… rpm{-F|–freshen}[install-options] PCKAGE_FILE…
- -U: 基于早期版本号升级或全新安装,
- -F:仅作升级
独有选项:
- –oldpackage:降级安装,{回滚操作}
- –force:强制升级
卸载:
rpm {-e|–erase}[–allmatches][–nodeps][–noscripts][–test]PACKAGE_NAME…
卸载选项:
- –allmatches: 卸载所有匹配指定名称的程序包个版本。
- –nodeps:忽略依赖关系,
- –test:测试卸载,dry run模式,
查询:
rpm{-q|–query}[select-options][query-optons]
select-options:
- PACKAGE_NAME:查询指定的程序包是否已经安装及版本
- -q: 是查询包选项。
- -a,–all:是查询已经安装的所有包。
- -f FILE: 查询指定的文件是由哪些安装包生成
- -g –group:查询组中的包。
- -p –package PACKAGE_FILE: 用于实现对未安装的程序包执行查询操作.
- –whatprovides CAPABILITY: 查询指定的CAPABILTY由哪个程序包提供。
- –whatrequires CAPABILITY: 查询指定的CAPABILITY被哪个包所依赖:
query-optons:
- –changelog: 查询rpm包的cheanglog
- -l: 程序安装包的所有文件列表
- -i –info: 程序包相关的信息,版本号、大小、所属的包租,等
- -c –configfiles: 查询指定的程序提供的配置文件。
- -d –docfiles:查询指定的程序包提供的帮助文档。
- –provides:列出指定的程序包提供的所有的CAPABILITY.
- -R –requres: 查询指定程序包的依赖关系。
- –scripts:查询程序包自带的脚本片段。
校验:
rpm {-V|–verify}[select-options][verify-options]
常用选项:
- –nodeps:不校验依赖关系。
- –nodigest:不检查包完整性。
- –nofiles:不校文件属性是否发生改变。
- –nosignature: 不校验包完整性等等。
- …
特性说明:
- S:表示大小发生变化了。
- M:权限发生改变。
- 5:MD5码发生改变,(完整性发生变化)。
- D:主/次设备号不匹配。
- L:readLink的路径不匹配。
- U:属主被修改。
- G:属组被修改。
- T:最后一次修改时间戳,修改了。
- p:caPabilities 被修改。
数据库重建:
rpm {–initdb | –rebuilddb}[–dbpath DIRECTORY][–root DIRECTORY]
常用选项:
- –initdb: 初始化数据库,当前无任何数据库可初始化创建一个新的,如果存在数据库,不执行任何操作。
- –rebuilddb:重行构建,同故宫读取当前系统上所有已经安装过的程序包进行重新创建。
示例安装:
[root@MiWiFi-R3-srv ~]# rpm -ivh /tmp/rpm/zsh-5.0.2-28.el7.x86_64.rpm
准备中... ################################# [100%]
软件包 zsh-5.0.2-28.el7.x86_64 已经安装
示例升级:
[root@MiWiFi-R3-srv ~]# rpm -Uvh --force /tmp/rpm/zsh-5.0.2-28.el7.x86_64.rpm
准备中... ################################# [100%]
正在升级/安装...
1:zsh-5.0.2-28.el7 ################################# [100%]
示例卸载:
[root@MiWiFi-R3-srv ~]# rpm -evh zsh
准备中... ################################# [100%]
正在清理/删除...
1:zsh-5.0.2-28.el7 ################################# [100%]
示例查询:
[root@MiWiFi-R3-srv ~]# rpm -qa zsh
zsh-5.0.2-28.el7.x86_64
示例校验:
首先修改其内容
[root@MiWiFi-R3-srv ~]# vim /usr/share/zsh/5.0.2/functions/ztodo
# vim: set ft=zsh et sw=2 sts=2:
# 测试#号
# 测试#号
# 测试#号
# 测试#号
emulate -L zsh
setopt no_sh_word_split null_glob no_ksh_arrays
typeset -gHA __ztodolist
typeset -gH __ztodolastwrite
local cachefile short_format list_format
local tmp needupdate=0
local -a todos
示例执行校验
[root@MiWiFi-R3-srv ~]# rpm -V zsh
S.5....T. /usr/share/zsh/5.0.2/functions/ztodo
示例重建数据库:
[root@MiWiFi-R3-srv ~]# rpm --rebuilddb
yum 命令
yum是属于rpm的一种前端管理器,通过C\S协议,是一种能够自动解决rpm包在安装时需要调用复杂的运行环境。
语法:
yum [options] [command] [package …]
显示所有仓库:
yum repolist [all] [enabled|disabled] 启用 | 禁用
显示程序包:
list:
- 1、yum list [all|glob_exp1] [glob_exp2] […]
- 2、yum list {available|installed|updates} [glob_exp1] […]
安装程序包:
install package1 [package2] […]
reinstall package1 [package2] […] (重新)
yum install gcc-4.5.4 [指明老版本,默认是安装新版本]
升级程序包:
update [package1] [package2] […]
downgrade package1 [package2] […] (降级)
检查可用升级:
check-update
卸载程序包:
remove | erase package1 [package2] […] 如果卸载被依赖的包也会被卸载。
查看程序包的information 查看程序包的简要说明。
info […]
查看指定的特性:(可以是某文件)是由那个程序包提供的
provides | whatprovides feature1 [feature2] […]
清理本地缓存:
clean [packages | metadata | expire-cache | rpmdb | plugins | all]
构建缓存:
makecache
搜索:
search string1 [string2] […]
以指定关键字搜索程序包名及summary信息。
查看指定包所依赖的capabilities:
deplist package1 [package2] […]
查看yum事物历史:
history [info | list | packages-list | packages-info | summary | addon-info | redo | undo |rollback |new | sync |stats]
安装及升级本地程序包:
- localinstall rpmfile1 [rpmfile2] […]
- (maintained for legacy reasons only – use install)
- localupdate rpmfile1 [rpmfile2] […]
- (maintained for legacy reasons only – use update) 已经作废,centos 7 可以直接使用 yum install 包名
包组管理的相关命令:
- groupinstall group1 [group2] […] 安装指定包组
- groupupdate group1 [group2] […]升级包组
- grouplist [hidden] [groupwildcard] […] 显示包组
- groupremove group1 [group2] […]移除包组
- groupinfo group1 […]查看包组的相关信息
- search string1 [string2] […]
示例显示所有yum仓库
[root@MiWiFi-R3-srv ~]# yum repolist
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
源标识 源名称 状态
!base CentOS 7 Release 7.1.1503 8,652
!xen4CentOS Xen 4 CentOS 7 8,652
repolist: 17,304
示例查看所有可用的包
[root@MiWiFi-R3-srv ~]# yum list
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
已安装的软件包
GConf2.x86_64 3.2.6-8.el7 @anaconda
ModemManager.x86_64 1.1.0-6.git20130913.el7 @anaconda
ModemManager-glib.x86_64 1.1.0-6.git20130913.el7 @anaconda
示例安装:
[root@MiWiFi-R3-srv ~]# yum install zziplib-utils.x86_64
已安装:
zziplib-utils.x86_64 0:0.13.62-5.el7
作为依赖被安装:
zziplib.x86_64 0:0.13.62-5.el7
完毕!
示例升级:
[root@MiWiFi-R3-srv cdrom]# yum update zziplib
示例卸载:
[root@MiWiFi-R3-srv cdrom]# yum remove zziplib
例删除:
zziplib.x86_64 0:0.13.62-5.el7
作为依赖被删除:
zziplib-utils.x86_64 0:0.13.62-5.el7
完毕!
示例查看程序包的特性:
[root@MiWiFi-R3-srv cdrom]# yum info zziplib
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
可安装的软件包
名称 :zziplib
架构 :i686
版本 :0.13.62
发布 :5.el7
大小 :82 k
源 :base
简介 : Lightweight library to easily extract data from zip files
网址 :http://zziplib.sourceforge.net/
协议 : LGPLv2+ or MPLv1.1
描述 : The zziplib library is intentionally lightweight, it offers the ability to
: easily extract data from files archived in a single zip file. Applications
: can bundle files into a single zip archive and access them. The implementation
: is based only on the (free) subset of compression with the zlib algorithm
: which is actually used by the zip/unzip tools.
示例查看指定特性
[root@MiWiFi-R3-srv cdrom]# yum provides zziplib
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
zziplib-0.13.62-5.el7.i686 : Lightweight library to easily extract data from zip files
源 :base
zziplib-0.13.62-5.el7.i686 : Lightweight library to easily extract data from zip files
源 :xen4CentOS
zziplib-0.13.62-5.el7.x86_64 : Lightweight library to easily extract data from zip files
源 :base
zziplib-0.13.62-5.el7.x86_64 : Lightweight library to easily extract data from zip files
源 :xen4CentOS
示例清理本地缓存
[root@MiWiFi-R3-srv cdrom]# yum clean
已加载插件:fastestmirror, langpacks
错误:清理命令需要参数:headers, packages, metadata, dbcache, plugins, expire-cache, rpmdb, all
[root@MiWiFi-R3-srv cdrom]# yum clean all
已加载插件:fastestmirror, langpacks
正在清理软件源: base xen4CentOS
Cleaning up everything
Cleaning up list of fastest mirrors
示例构建缓存
[root@MiWiFi-R3-srv cdrom]# yum makecache
已加载插件:fastestmirror, langpacks
base | 3.6 kB 00:00:00
xen4CentOS | 2.9 kB 00:00:00
(1/7): base/group_gz | 154 kB 00:00:00
(2/7): base/primary_db | 5.1 MB 00:00:00
(3/7): base/filelists_db | 6.0 MB 00:00:00
(4/7): base/other_db | 2.2 MB 00:00:00
(5/7): xen4CentOS/primary_db | 5.1 MB 00:00:00
(6/7): xen4CentOS/filelists_db | 6.0 MB 00:00:00
(7/7): xen4CentOS/other_db | 2.2 MB 00:00:00
Determining fastest mirrors
元数据缓存已建立
[root@MiWiFi-R3-srv cdrom]#
示例搜索:
[root@MiWiFi-R3-srv cdrom]# yum search zz
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
============================================================ N/S matched: zz =============================================================
harfbuzz-devel.i686 : Development files for harfbuzz
harfbuzz-devel.x86_64 : Development files for harfbuzz
harfbuzz-icu.x86_64 : Harfbuzz ICU support library
harfbuzz-icu.i686 : Harfbuzz ICU support library
zziplib-devel.i686 : Development files for the zziplib library
zziplib-devel.x86_64 : Development files for the zziplib library
zziplib-utils.x86_64 : Utilities for the zziplib library
harfbuzz.x86_64 : Text shaping library
harfbuzz.i686 : Text shaping library
zziplib.i686 : Lightweight library to easily extract data from zip files
zziplib.x86_64 : Lightweight library to easily extract data from zip files
名称和简介匹配 only,使用“search all”试试。
2、自建yum仓库,分别为网络源和本地源
[local]
name=CentOS cdrom
baseurl=file:///tmp/cdrom/
gpgcheck=0
enabled=1
keepcache=0
[http]
name=mirrors 163
baseurl=http:///http://mirrors.163.com/centos/$7.4.1708/updates/$x86_64/
gpgcheck=
enabled=1
keepcache=0
3、简述at和crontab命令,制定 每周三凌晨三、五点10分执行某个脚本,输出当前时间,时间格式为 2017-12-28 10:00:00
linux任务计划执行
- 特定时间执行一次: at
- 周期性循环执行 : crontab
at
特定时间执行一次脚本
语法格式:
at [OPTION]…TIME
常用选项:
- -l:查看作业队列,相当于atq
- -f /PATH/FROM/SOMEFILE:从指定文件中读取作业任务,而不用在交互式输入。
- -d #:删除指定的作业,相当于atrm #
- -c #:查看待执行作业的内容。
- -q QUEUE #:指明队列。
TIME:模糊执行
- HH:MM [YYYY-mm-dd]
- noon 正午 ,
- midnight 午夜,
- teatime 喝茶时间
- tomorrow 明天
- now+# 重目前计数起
- UNIT:minutes,hours,days,OR weeks 相对时间
注意:作业执行结果是以邮件发送提交作业的用户。
crontab
语法格式:
crontab [-u user] [-l|-r|-e][-i]
常用选项:
- -e:编辑任务,
- -l:列出所有当前用户的任务。
- -r:移除所有任务,及删除/varspool/cron/UASERNAME文件。
- -i:在使用-r选项移除所有任务时提升用户避免出错。
- -u user:root用户可为指定用户管理cron任务。
注意:运行结果以邮件通知给当前用户,如何拒绝接收邮件。
- (1)COMMAND > /dev/null;正常结果发给 数据黑洞
- (2)COMMAND &> /dev/null;无论结果正确与否都发送给 数据黑洞 比较危险建议程序正常执行了一次后再加/dev/null
注意:定义COMMAND时,如果命令需要用到%,需要对其转义,或加单引号‘’。
3、 每周三凌晨三、五点10分执行某个脚本,输出当前时间,时间格式为 2017-12-28 10:00:00
1、首先新建一个文本用来记录输出内容.
[root@localhost ~]# touch /tmp/date.txt
2、设置一个周期性计划.
[root@localhost ~]# crontab -e
10 5 * * 3 /bin/date '+\%F \%T' &>> /tmp/date.txt
0 3 * * 3 /bin/date '+\%F \T' $>> /tmp/date.txt
4、简述sed常用操作命令,并举例
sed 命令
sed与grep、awk被成为文本处理三剑客,其中sed是流编辑器,将文本中的数据进行逐行编辑处理,处理过程大体是至上而下读取一行数据到模式空间(pattern space)与模式空间中的指定模式进行edit【编辑处理】由模式决定是否输出至stdout(标准输出)。
语法:
sed [OPTION]…’script’ [input-file]…
常用选项:
- -n:不输出模式空间中的内容至屏幕。
- -r:支持使用正则表达式。
- -i:直接编辑源文件。
- -e scripts: 同时编辑多个文档。
- -f /PATH/TO/SED_SCRIPT_FILE: 多个编辑命令组成的script脚本来编辑文件
地址定界:
- 空地址:对全文进行编辑
- 单地址:
- A :指定行 pattern:模式匹配的每一行。
- 地址范围:
- A,B:A起始行至B结束行。
- A,+B:A指定起始行向后多少B行。
- A,/pate1/: 指定行A开始到模式匹配的第一个值之间的内容。
- 步进:~ 指定行向后多少位的行。
常用编辑命令
- d:删除
- p:显示模式空间被地址定界指定的内容。
- a \text: 将‘text’追加到行尾,支持\n
- i \text: 将‘text’插入行首,支持\n
- c \text: 把匹配道德行替换为‘text’文本
- w /PATH/TO/SOMEFILE: 保存模式空间匹配到的行至指定文本中,
- r /PATH/FROM/SOMELILE: 读取指定文件插入到模式空间匹配的行后面,实现文件合并。
- =:为模式匹配到的打印(显示)行号
- !:条件取反。
- \定制定界!编辑命令
- s///: 查找替换,其分隔符可指定指定,常用的有s@@@,s###等等。
- 替换标记:
- g:全局替换,替换行的首次匹配。
- p:显示替换成功的行。
- 替换标记:
- w /PATH/TO/SOMELIFE:将替换成功的结果保存到指定文件中,
支持的正则表达式
- 字符匹配:
- .号:匹配任意单个字符。
- []:匹配指定范围内的任意单个字符。
- [^]:匹配指定范围外的任意单个字符。
- [[:upper:]];匹配大写字母
- [[:lower:]];所有小写字母
- [[:alpha:]]: 所有字母
- [[:digit:]]: 所有数字
- [[:alnum:]]: 所有的字幕和字符
- [[:space:]]: 所有空白字符
- [[:punct:]]: 所有标点符号
- 匹配次数:用在要指定其出现的次数的字符的后面,用于现在其前面字符出现的次数。默认工作于贪婪模式,能匹配多长就多长
- *:匹配其前面的字符任意次,0,1或者多次。
- .*:匹配任意长度的任意字符。
- \?:匹配其前面的字符0次或1次,即前面的字符是可有可无的。
- +:匹配前面的字符1次或多次,即其前面的字符要出现至少1次。
- {m}:匹配其前面的字幕m次,
- {m,n}:匹配其前面的字符至少m次,至少n次
位置锚定:
- ^:行首锚定,用户模式的最左侧。
- $:行尾锚定,用于模式的最右侧
- \<或\b:词首锚定,用于单词模式的左侧。
- >或\b:词尾锚定,用户单词模式的右侧
- \<pattern\>:精确锚定单词。</pattern\>
示例:只显示/etc/rpc的前4行
[root@MiWiFi-R3-srv ~]# sed -n '1,4'\p /etc/rpc
#ident "@(#)rpc 1.11 95/07/14 SMI" /* SVr4.0 1.2 */
#
# rpc
#
[root@MiWiFi-R3-srv ~]#
示例: 将yum.conf 的3-5行插入 “hello”
[root@localhost sed]# sed '3,+2 a\hello' yum.conf
[main]
cachedir=/var/cache/yum/$basearch/$releasever
keepcache=0
hello
debuglevel=2
hello
logfile=/var/log/yum.log
hello
exactarch=1
示例:查询空白行
[root@localhost sed]# sed -r -n '/^$/p' yum.conf
[root@localhost sed]#
[root@localhost sed]# sed ‘s@[[:space:]]+@—-@’g yum.conf
[main]
That`s—-the—-line “`
本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/90076
评论列表(1条)
总结的很全,另外在适当的地方举出一二例子,容易带动读者再次回想前面的理论部分,排版也不错,继续加油~