程序包管理及定时任务

程序包管理及定时任务

一、简述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
//將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/oot/OOT/’ /etc/fstab
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

(0)
上一篇 2018-01-01 15:47
下一篇 2018-01-01 17:30

相关推荐

  • 幽默:程序员的进化

    高中时期 view plaincopy to clipboardprint? 10 PRINT "HELLO WORLD"   20 END 大学新生 view plaincopy to clipboardprint? …

    Linux干货 2016-05-17
  • Linux常用命令

    一、Linux常用命令(总) 二、Linux常用命令(分) 1、pwd – print name of current/working directory 2、cd – change directory 3、ls – list,dieplay directory content 4、date – pr…

    Linux干货 2016-09-19
  • grep、find练习

    1.显示当前系统上root,fedora或user1用户的默认shell [root@study ~]# cat /etc/passwd|grep -E "^(root|fedora|user1)"|cut -d: -f7 /bin/bash /bin/bash /bi…

    Linux干货 2016-11-27
  • linux文件基本权限讲解

    linux文件基本权限讲解 Linux系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限。为了保护系统的安全性,Linux系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定。 Linux系统中一切都是文件,文件和目录的所属与权限——来分别规定所有者、所有组、其余人的读,写,执行权限。 在Linux中我们可以使用ll或者ls –…

    Linux干货 2016-09-05
  • cat命令了解

    1 查看文件在LINUX下一切皆文件,光看见文件名和目录名对我们来说,还远远不够。今天,就来介绍一下可以打开文件的命令cat。当然,二进制的可执行文件,不能用cat。在CentOS7下,以/etc/profile文件为例,如下: 首先,怎么打开这个文件呢?直接执行:cat /etc/passwd. 这么多行,能不能看见行号呢?cat -n /etc/pass…

    Linux干货 2017-04-03
  • N-22-南京-修 第四周博客作业

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。 [root@localhost xujie]# cp -a /etc/skel /home/tuser1 [root@localhost home]# chmod -R 700 tuser1 之前 [root@localho…

    Linux干货 2016-09-15

评论列表(1条)

  • 马哥教育
    马哥教育 2018-01-07 18:06

    赞~内容上基本上没什么问题~crontab的那个实验可以注意下~继续加油~