一、简述rpm与yum命令的常见选项,并举例
RPM是RPM Package Manager(RPM软件包管理器)的缩写。
RPM命令
命令格式 rpm OPTIONS /PATH/TO/PACKAGE_FILE
1、安装
-i:安装
-v:显示详细过程。用-vv可以显示更详细的过程
-h:以#号显示进度,第个#号表示2%
–nodeps:忽略依赖关系。安装后可能无法使用软件
–replacepkgs:重新安装,替换原有安装
–force:强行安装,可以实现重新安装或降级例:rpm -ivh --replacepkgs php53-mysql-5.3.3.5.e15.i386.rpm
2、查询
-q:查询
-qa:查询已经安装的所有包
-qi:查询指定包的说明信息
-ql:查询指定包安装后生成的文件列表
-qf:查询指定的文件是由哪个rpm包安装生成的
-qc:查询指定包安装的配置文件
-qd:查询指定包安装的帮助文件
–scripts:查询指定包中包含的脚本,有四类脚本,安装前,安装后,卸载前,卸载后例:rpm -q --scripts PACKAGE_NAME
如果某rpm包尚未安装,我们需要查询其说明信息、安装以后会生成的文件例:rpm -qpi /PATH/TO/PACKAGE_FILE
rpm -qpl /PATH/TO/PACKAGE_FILE
3、升级
-U:如果装有老版本的软件则升级,否则,则安装
-F:如果装有老版本的软件则升级,否则,则退出
–oldpackage:降级例:rpm -Uvh --oldpackage /PATH/TO/OLD_PACKAGE_FILE
rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
4、卸载
-e:卸载
–nodeps:忽略依赖关系
–allmatches:卸载所有匹配名称的程序包各版本
–test:测试卸载例:rpm -e PACHAGE_NAME
5、校验
-V:校验例:rpm -V PACKAGE_NAME
6、重建数据库
–rebuilddb:重建数据库,一定会重新建立
–initdb:初始化数据库,没有才建立,如果有就不用建立了
7、检验来源合法性,及软件完整性
-K:检验
–import:导入密钥文件例:rpm -K /PATH/TO/PACKAGE_FILE
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-release
yum包管理器
命令格式——yum [options] [command] [package …]
显示程序包:
yum list [all | glob_exp1] [glob_exp2] […] :支持使用glob风格的通配
yum list {available|installed|updates} [glob_exp1] 通配符
安装程序包:
yum install package1 [package2] […];
yum reinstall package1 [package2] […] (重新安装)
升级程序包:
yum update [package1] [package2] […]
yum downgrade package1 [package2] […] (降级)
检查可用升级:
yum check-update
卸载程序包:
yum remove | erase package1 [package2] […]
查看程序包简要信息information:
yum info […]
查看指定的特性(可以是某文件)是由哪个程序包所提供:
yum provides | whatprovides feature1 [feature2] […]
清理本地缓存:
yum clean [ packages | metadata | expire-cache | rpmdb | plugins | all ]
构建缓存:
yum makecache
搜索:
yum search string1 [string2] […]
以指定的关键字搜索程序包名及summary(总结,概括)信息
查看指定包所依赖的capabilities(依赖关系分析):
yum deplist package1 [package2] […]
查看yum事务历史:
yum history [info|list|packages-list|packages-info||redo|undo|rollback|new|sync|summary|stats]
安装及升级本地程序包:
localinstall rpmfile1 [rpmfile2] […] (用install替代)
localupdate rpmfile1 [rpmfile2] […] (用update替代)
日志位置:
/var/log/yum.log
包组管理的相关命令:
yum groupinstall group1 [group2] […]
yum groupupdate group1 [group2] […]
yum grouplist [hidden] [groupwildcard] […]:列出所有包组
yum groupremove group1 [group2] […]:卸载
yum groupinfo group1 […]:显示指定包组详情
常见选项
–nogpgcheck:禁止进行gpgcheck
-y:自动回答为“yes”
-q:静默模式
–disablerepo=repoidglob:临时禁用此处指定的repo
–enablerepo=repoidglob:临时启用此处指定的repo
–noplugins:禁用所有插件
常用的命令
自动搜索最快镜像插件:yum install yum-fastestmirror
安装yum图形窗口插件:yum install yumex
查看可能批量安装的列表:yum grouplist
`例:yum install -y mariadb-server
yum info mariadb-server
yum provides mariadb-server
yum deplist mariadb-server
二、自建yum仓库,分别为网络源和本地源
Yum仓库在单个RPM软件包的基础之上,进一步去解决依赖关系
Yum仓库是简化rpm软件包的安装以及管理的难度,可以解决rpm软件包的相互依赖性解决软件包之间的依赖关系。Yum仓库的配置文件均需以.repo结尾并存放在/etc/yum.repos.d/目录中的
格式说明
name=linuxprobe : yum仓库的名称描述,易于识别仓库用处
baseurl=file:///media/cdrom :提供方式包括FTP(ftp://..)、HTTP(http://..)、本地(file:///..)
enabled=1 : 设置此源是否可用,1为可用,0为禁用
gpgcheck=1 : 设置此源是否校验文件,1为校验,0为不校验
gpgkey=file:///media/cdrom/RPM-GPG-KEY-redhat-release :若为校验请指定公钥文件地址
例:创建网络源yum /etc/yum.repos.d/nginx.repo
[nginx]
name=nginx repository
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1
例:创建本地源[CentOS7 test]
name=CentOS 7 test
baseurl=file:///media
enabled=1
gpgcheck=0
三、简述at和crontab命令,制定 每周三凌晨三、五点10分执行某个脚本,输出当前时间,时间格式为 2017-12-28 10:00:00
1、at:未来时间点执行一次任务
命令格式:at [option] TIME
TIME:定义出什么时候执行这项任务
时间格式:
HH:MM [YYYY-mm-dd];
HH:MM[am|pm] [Month] [Date];
noon(正午), midnight(午夜), teatime(下午4点),tomorrow(明天)
now+#{minutes—分钟,hours—小时,days—天, OR weeks—周}
注:at 的作业有队列,存放在/var/spool/at 中,用单个字母来表示,默认都使用 a 队列;
选项:
常见选项:
-q QUEUE:指明队列;
-l:列出指定队列中等待运行的作业;相当于atq;
-d #:删除指定作业号的作业;相当于atrm;
-c #:查看指定作业号的具体作业任务;
-v:可以使用较明显的时间格式列出at中的工作列表;
-f /path/from/somefile:从指定的文件中读取任务,不再交互式输入;(# at -f /testdir/at.txt)
-m:强制at发送邮件,表示执行完毕
例:at 10:00 //设定10点执行
at> ls /etc //进入到at模式中,设置要执行的任务
Ctrl+d //设置完成后用Ctrl+d结束设置
at -l //查看已设置的任务
crontab:周期性运行某任务
命令格式:
crontab [-u user] [-l | -r | -e] [-i]
选项:
-e:打开编辑界面定义任务;
-l:列出所有任务(仅是当前用户的所有任务);
-r:移除所有任务,即删除/var/spool/cron/USERNAME文件;
如果,删除单个任务应该通过编辑界面删除行实现;
-i:在使用-r选项移除所有任务时提示用户确认;
-u user:root用户可为指定用户管理cron任务(即为某个用户编辑计划任务)
ancorn 命令可以执行之前因故障未能执行的任务
例:crontab -e //设置定时任务
10 3,5 * * 3 /root/test.sh && date +’%F %T
四、简述sed常用操作命令,并举例
1、命令使用
基本语法
sed ‘地址命令’文件
这时的地址(address)指对哪些行作处理,地址与命令之间不必空格,最后的文件可以有多个。這条命令的意思是对文件中地址指定范围內的行执行编辑命令。
2、地址表示方式
a、起始行到结束行(StartLine,EndLine),之间用,号隔开
如:1,100表示第1到100行;
b、使用模式:/RegExp/ //里要用正则表达的格式 如:/^root/
3、/pattern1/,/pattern2/ 从第一次被模式1匹配到的行开始,至第一次被模式2匹配到的行结束中间的所有行
4、linenumber 精确指定的行,只给行号
5、startline, +N 从startline开始向后N行,一共是N+1行,从指定行开始向后N行
3、选项:
-n:静默模式,不再显示模式空间中的內容
-i:直接修改原文件
-e SCRIPT -e SCRIPT…:可同时执行多个脚本,sed‘’号中的地址命令被称为脚本
-f /PATH/TO/SED_SCRIPT:可以把多个脚本写在一个文件里,用-f读取这个文件,也能执行多个脚本(把每一个SCRIPT保存至 SED_SCRIPT文件中),最后处理file文件像这样:sed -f /path/to/scripts file
-r:表示使用扩展正则
4、命令:
d:刪除符合条件的行
例:sed ‘1,2d’ /etc/inittab
//刪除文件1-2行后显示,如果有变量替换sed后就要用双引号
sed ‘/oot/d’ /etc/fstab
//刪除有oot的行,要作模式匹配要用//括起來
sed ‘1,+2d’ /etc/fstab
//刪除第一行加两行共三行
sed ‘1d’ /etc/fstab
//只刪除第一行
sed ‘/^\//d’ /etc/fstab
//刪除/开头的行,用\转意
p:显示符合条件的行
例:sed ‘/^\//p’ /etc/fstab
//这会显示两次/开头的行,因为被匹配到的要显示一次,默认情況下模式空间中的內容也要全部显示,如只想显示一次,要用选项-n:静默模式,不再显示模式空间中的內容:
sed –n ‘/^\//p’ /etc/fstab
a \string:在指定的行后面追加新行,內容为string
例:sed ‘/^\//a \# hello world’ /etc/fstab
//显示以/开头的行后面加入# hello world
sed ‘/^\//a \# hello world\n# hello,linux’ /etc/fstab
//找到以/开头的行后面加入# hello world,在后面加入两行,\n:换行
i \string:在指定的行前面添加新行,內容為string
r FILE:表示將指定的文件的內容添加至符合條件的行
例:sed ‘2r /etc/issue’ /etc/fstab
sed ‘s/oot/OOT/’ /etc/fstab
//將issue的內容显示在fstab文件的第二行后面显示一次
sed ‘1,2r /etc/issue’ /etc/fstab
//在第一第二行后都显示一次
w FILE:將地址指定範圍內的內容另存至指定的文件中
例:
sed ‘/oot/w /tmp/oot.txt’ /etc/fstab
//將fstab中包含oot的行,保存到oot.txt中
s/pattern(要查找的內容)/string/修饰符:查找並替换,把符合pattern匹配范围的行换成string,pattern可以是正则,默认替换每行中第一次被模式匹配到的串
例:
sed ‘s/^\//#/’ /etc/fstab
//只替换了第一次匹配到的/,如果要全部替换就要加修飾符
修飾符
g:全局替换
i:忽略字符大小写
s///:s###,s@@@ 可用#或@及其他字符作分隔符,也可以用后项引用
例:sed ‘s#l..e#&r#g’ sed.txt 或 sed ‘s#\(l..e\)#\1r#g’ sed.txt
//将l..e:查找到的like替换成liker,love替换成lover。
sed ‘s#l\(..e\)#L\1#g’ sed.txt
//l..e:like替换Liker,love替换Lover。此处只能用后项引用
history | sed ‘s#^[[:space:]]*##g’
//把history结果前的空格去掉,^[[:space:]]***表示一个或多个空格
本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/90692
评论列表(1条)
赞~内容上基本上没什么问题~crontab的那个实验可以注意下~继续加油~