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

  • rpm——软件包管理系统,它使得在Linux下安装、升级、删除软件包的工作变得容易,并且具有查询、验证软件包的功能。

1)安装选项

命令格式:
rpm {-i|--install} [install-options] PACKAGE_FILE ...
常用—>rpm -ivh PACKAGE_FILE... 进行软件的安装
详细选项:
-v:显示详细信息
-vv:显示更详细的信息
-h:安装时输出hash记号(#)显示进度
--test:测试安装(实际不安装),检查并报告依赖关系及冲突消息等
--nodeps:忽略依赖关系(不建议使用)
--replacepkgs:重新安装
--nosignature:不检查包签名信息,不检查来源合法性
--nodigest:不检查包完整性信息

2)升级

命令格式:
rpm {-U|--upgrade} [install-options] PACKAGE_FILE ...
  常用—>rpm -Uvh PACKAGE_FILE ...
rpm {-F|--freshen} [install-options] PACKAGE_FILE ...
  常用—>rpm -Fvh PACKAGE_FILE ... 详细选项:
-U:有旧版本程序则升级,不存在旧版本则安装;
-F:有旧版本程序则升级,不存在旧版本的话不安装
--oldpackage:降级
--force:强行升级 注意:
1)不要对内核进行升级操作:Linux支持多内核版本并存,因此直接安装新版本内核即可;
2)如果某原程序的配置文件安装后曾被修改过,升级时,新版本程序提供的同一个配置文件
不会覆盖原有版本的配置文件,而是把新版本的配置文件重命名(FILENAME.rpmnew)后提供。

3)查询

命令格式:
rpm {-q|--query} [select-options] [query-options]
[select-options] 选项:
PACKAGE_NAME:查询指定的程序包是否已经安装,及其版本;
-a,--all:查询所有已安装过的包;
-f FILE:查询指定的文件由哪个程序包安装生成;
-p,--package PACKAGE_FILE:针对未安装的程序包进行查询操作;
--whatprovides CAPABILITY:查询指定的CAPABILITY由哪个程序包提供;
--whatrequires CAPABILITY:查询指定的CAPABILITY被哪个包所依赖
[query-options] 选项:
-l,--list:程序安装生成的所有文件列表;
-i,--info:程序包相关的信息(版本号,大小,所属的组等);
-c,--configfiles:查询指定的程序包提供的配置文件;
-d,--docfiles:查询指定的程序包提供的文档;
--provides:列出指定的程序包提供的所有的CAPABILITY;
-R,--requires:查询指定的程序包的依赖关系;
--scripts:查询程序包自带的脚步片段; 常见用法:
查询已安装的包—> -qi PACKAGE,-qf FILE,-qc PACKAGE,-ql PACKAGE,-qd PACKAGE,...
查询未安装的包—> -qpi PACKAGE,-qpl PACKAGE,-qpc PACKAGE,...

4)卸载

命令格式:
rpm {-e|--erase} [--allmatches] [--nodeps] [--noscripts] [--test] PACKAGE_NAME ... 详细选项:
--allmatches:卸载所有匹配指定名称的程序包;
--nodeps:忽略依赖关系;
--test:测试卸载

5)校验已安装的软件包

命令格式:
rpm {-V|--verify} [select-options] [verify-options] 详细选项:
-p:校验包文件;
-f:校验所属的程序包;
-a:校验所有的程序包;
-g:校验所有属于组的程序包
  • yum——用于添加、删除、更新rpm包,自动解决包的依赖问题及系统更新升级
命令格式:
yum [options] [command] [package ...] [options] 选项:
-h:显示帮助信息;
-y:对所有的提问都回答“yes”;
-c:指定配置文件;
-q:安静模式;
-v:详细参数;
-d:设置调试等级(0-10);
-e:设置错误等级(0-10);
-R:设置yum处理一个命令的最大等待时间;
--nogpgcheck:禁止进行gpg check;
--disablerepo=repoidglob:临时禁用此处指定的repo;
--enablerepo=repoidglob:临时启用此处指定的repo;
--noplugins:禁用所有插件 [command] 选项:
install:安装程序包;
reinstall:重新安装程序包;
update:升级程序包;
downgrade:给程序包降版本;
check-update:检查可用升级;
remove|erase:卸载程序包;
list:显示程序包;
info:查看程序包信息;
clean:清理本地缓存;
search STRING[STRING...]:以指定关键字“STRING...”搜索程序包名及summary信息;
deplist:查看指定包所依赖的capabilities;
command命令中的包管理—>groupinstall,groupupdate,grouplist,groupremove,groupinfo

2、自建yum仓库,分别为网络源和本地源

1)网络源的yum仓库

vim /etc/yum.repos.d/CentOS7-Aliyum.repo
[C7-aliyum]
name=CentOS7-aliyum
baseurl=https://mirrors.aliyun.com/centos/7.4.1708/updates/x86_64/Packages/
enalbed=1

2)本地源的yum仓库

挂载本地 ISO镜像
mount -o loop /data/CentOS7.iso /media
编辑 /etc/fstab 文件,使得 ISO镜像文件开机自动挂载
  vim /etc/fstab
    /data/CentOS7.iso  /media  iso9660  defaults  0 0
编辑 本地yum仓库
vim /etc/yum.repos.d/CentOS-Media.repo
[C7-media]
name=CentOS7-Media
baseurl=file:///media
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rmp-gpg/RPM-GPG-KEY-CentOS-7

3、简述at和crontab命令,制定 每周三凌晨三、五点10分执行某个脚本,输出当前时间,时间格式为 2017-12-28 10:00:00

1)at——定时执行任务(没有重复性)

命令格式:
at [OPTION]... TIME (作业执行结果是以邮件发送给提交作业的用户)
at> 执行的命令
退出at命令 ctrl+d
详解:
TIME:
  HH:MM [YYYY-mm-dd]
  noon,midnight,teatime,tomorrow
  now+ #UNIT(minutes, hours, days, OR weeks)
OPTION:
  -l:查看作业队列,相当于atq
  -f /PATH/FROM/SOMEFILE:从指定文件中读取作业任务,而不用再交互式输入;
  -d:删除指定的作业,相当于atrm;
  -c:查看指定作业的具体内容;
  -q QUEUE:指明队列
注意:
  at命令使用的前提,需要开启atd进程,需要确保atd处于运行状态。
  可通过 ps -ef | grep atd 查看是否已开启 atd。
示例:
  [root@bogon data]# at 21:00
  at> cp /var/log/secure /data/secure.bak
  at> <EOT> (按 ctrl+d 退出 at)
  job 6 at Tue Apr 10 21:00:00 2018   [root@bogon data]# at -l (查看任务)
  6 Tue Apr 10 21:00:00 2018 a root   [root@bogon data]# at 21:00 2018-05-04 -q b (-q b,指明队列,默认是a队列)
  at> tar -zcf /data/etc.backup.tat.gz /etc
  at> <EOT>
  job 8 at Fri May 4 21:00:00 2018
  [root@bogon data]# at -l -q b (查询时也可指明队列)
  8 Fri May 4 21:00:00 2018 b root

2)crontab——任务计划(定时,重复执行)

cron任务,由 cronie 程序包提供,运行的前提需要确保 crond 进程处于运行状态。可通过如下方式确认状态:
    CentOS7:system status crond.service
    CentOS5,6,7:service crond status

系统cron任务:
  主要用于实现系统自身的维护,手动编辑文件即可。
    vim /etc/crontab 用户cron任务:
命令格式:
crontab [-u user] [-l | -r | -e] [-i]
  (成功编辑任务后,会产生 /var/spool/cron/USERNAME 的文件,记录任务详情,USERNAME 表示当前用户)
选项:
-e:编辑任务( 进入vi编辑器 );
-l:列出所有任务;
-r:移除所有任务,即删除/var/spool/cron/USERNAME文件;
-i:在使用-r选项移除所有任务时提示用户确认;
-u user:root用户可为指定用户管理cron任务
注意:
1) 执行结果将以邮件通知给当前用户,如果不想接收邮件,可在定义任务时将结果输出到 /dev/null 中,如 COMMAND > /dev/null 或者 COMMAND &> /dev/null;
2) 如因关机导致任务不能执行,下次开机也不会执行。如果期望某时间因故未能按时执行,下次开机后无论是否到了相应时间点都要执行一次,可使用 anacron 实现。
详解:
  # .---------------- minute (0 - 59)
  # | .------------- hour (0 - 23)
  # | | .---------- day of month (1 - 31)
  # | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
  # | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
  # | | | | |
  # * * * * * command to be executed
示例:
[root@bogon data]# crontab -e (编辑定时任务)
[root@bogon data]# crontab -l
* * * * 3,7 /bin/tar -zcf /data/etc.bak.tar.gz /etc (每周三跟周日备份 /etc 目录)

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

  sed,文本编辑器,一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space);接着sed 会处理缓冲区中的内容,
处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。
  需要注意两点:1) sed不会改变原文件内容;2) 不被模式匹配的内容默认都会输出到屏幕。   命令格式:
  sed [OPTION] ... 'script' [input-file] ...
  OPTION:
-n:不输出模式空间中的内容至屏幕;
-e script, --expression=script:多点编辑;
-f /PATH/TO/SED_SCRIPT_FILE:读取script文件(每行一个编辑命令);
-r, --regexp-extended:支持使用扩展正则表达式;
-i[SUFFIX], --in-place[=SUFFIX]:直接编辑原文件
  script(地址定界编辑命令):
    1) 地址定界:
      (1) 空地址:对全文进行处理
      (2) 单地址(#表示具体数字,pattern表示正则表达式):
          #:指定行;
          /pattern/:被此模式所匹配到的每一行
      (3) 地址范围:
          #,#:第 #行到第#行
          #,+#:第 #行开始,往后再加 #行
          #,/pattern/:第 #行到第一次被模式匹配之间的行
          /pattern1/,/patern2/:第一次被pattern1匹配到第一次被pattern2匹配之间的行
          $:最后一行
      (4) 步长:~
          示例,1~2:奇数行;2~2:偶数行。
    2) 编辑命令:
        d:删除;
          示例,sed '1,5d' /etc/fstab (删除/etc/fstab中第1行到第5行)
        p:显示模式空间中的内容;
        n:读取下一行
          示例,sed -n 'p;n' /etc/fstab (读取奇数行);sed -n 'n;p' /etc/fstab (读取偶数行)
        a \text:在行下方追加文本“text”,支持使用\n实现多行追加;
        i \text:在行上方插入文本“text”,支持使用\n实现多行插入;
          示例,sed '3i \new line\nanother new line' /etc/fstab (在第3行上方写入一行new line和一行another new line)
        c \text:把匹配到的行替换为此处指定的文本“text”(替换一整行);
          示例,sed '/^UUID/c # add device' /etc/fstab (UUID开头的行替换成 # add device)
        w /PATH/TO/SOMEFILE:保存模式空间匹配到的行至指定的文件中;
          示例,sed '/^[^#]/w /tmp/fstab.bak' /etc/fstab (非#开头的内容保存至文件/tmp/fstab.bak)
        r /PATH/FROM/SOMEFILE:读取指定文件的内容至当前文件被模式匹配到的行后面,常用于实现文件合并;
          示例,sed '3r /etc/issue' /etc/fstab (在/etc/fstab文本第3行后插入/etc/issue内容)
        =:为模式匹配到的行打印行号;
          示例,sed '/^UUID/=' /etc/fstab (在UUID开头的行上方添加行号)
        !:条件取反;
          示例,sed '/^#/!d' /etc/fstab (保留#开头的行)
        s///:查找替换 (其分隔符/可自行指定,形如s@@@, s###)
          替换标记:
              g:全局替换;
              w /PATH/TO/SOMEFILE:将替换成功的结果保存至指定文件中;
              p:显示替换成功的行
              示例,sed -n 's/4/@/gp' /etc/fstab (把文件中所有的4都替换成@,此处如果不加g则替换每行中出现的第一个4)
                 sed -n '/^UUID/s#4#@#p' /etc/fstab (把文件中以UUID开头的行中第一个4替换成@)
                 sed 's@^[[:space:]]\+@@' /etc/grub2.cfg (删除/etc/grub2.cfg中已空白字符开头的所有空白字符)
                 echo "/var/log/message" | sed -r 's@[^/]+/?$@@' (取出 /var/log/)

rpm与yum,at与crontab,sed命令使用的更多相关文章

  1. Linux基础之命令练习Day4-fdisk,mkfs,mlabel,mount,umount,mkswap,swapon,dd,top,free,ps,kill,rpm,yum,make

    一. 硬盘分区.格式化及文件系统的管理 1. 在Linux系统中,一切皆文件.每个设备都被当作一个文件来对待. 常见的存储设备在Linux系统中的文件名如下表所示: 2. 对硬盘进行分区有以下优点: ...

  2. (十五)、linux软件的安装与查询-rpm与yum命令

    一.RPM软件管理程序:rpm 1.RPM安装软件(install) rpm命令的选项超级多,安装话直接使用-ivh即可,其余做了解即可 命令格式:rpm  -ivh  package_name.rp ...

  3. Linux下载命令之rpm和yum比较

    RPM和YUM比较 rpm 是linux的一种软件包名称,以.rmp结尾,安装的时候语法为:rpm -ivh,rpm包的安装有一个很大的缺点就是文件的关联性太大,有时候装一个软件要安装很多其他的软件包 ...

  4. 软件安装 RPM SRPM YUM

    RPM介绍 RPM是已经编译好的软件安装库.编译是有相应环境相适应的,包括系统,版本等相关信息都要跟编译版本一致才行,否则肯定会出现安装不成功的情况,强制安装的话,也会出现各种各样的问题. 在这种情况 ...

  5. rpm 与 yum 源

    rpm rpm -e                删除软件包rpm -i                安装软件包rpm -U                更新软件包rpm -qa         ...

  6. centos 系统软件包管理 yum 本地yum配置 扩展源epel rpm 清除yum缓存 yum provides "*/vim" 第十节课

    centos  系统软件包管理  yum 本地yum配置  扩展源epel  rpm  清除yum缓存  yum provides "*/vim"   第十节课 你不能保证可逆化操 ...

  7. php 执行计划任务方式之 linux crontab 执行命令

    一.crond简介 crond 是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务 工具,并且会自动启动c ...

  8. linux RPM、YUM

    Linux 界的两大主流: RPM 与 DPKG distribution 代表 软件管理机制 使用指令 在线升级机制(指令) Red Hat/Fedora RPM rpm, rpmbuild YUM ...

  9. Linux Crontab 定时任务 命令详解

    一. Crontab 介绍 crontab命令的功能是在一定的时间间隔调度一些命令的执行. 1.1 /etc/crontab 文件 在/etc目录下有一个crontab文件,这里存放有系统运行的一些调 ...

随机推荐

  1. python 描述符 上下文管理协议 类装饰器 property metaclass

    1.描述符 #!/usr/bin/python env # coding=utf-8 # 数据描述符__get__ __set__ __delete__ ''' 描述符总结 描述符是可以实现大部分py ...

  2. 懒散的态度就是一剂慢性毒药——《我是一只IT小小鸟》读后感(第四周)

    进度拖延是所有团队项目的噩梦,有效的进度管理也许能够解决问题,但我认为更根本的是整个团队的工作态度.大家都希望能够加入一个人人都认真负责积极完成任务的团队,但比如何找这样一个团队更重要的是如何将自己变 ...

  3. Netty高性能web框架

    框架背景: 前期为公司项目做全链路压测,发现公司跑到tomcat上的服务,即使是最简单的方法QPS也就到3000左右,后期查询发现可能和tomcat的业务逻辑有关. 因为以前在项目开发中用netty做 ...

  4. Python json与pickle

    这是用于序列化的两个模块: • json: 用于字符串和python数据类型间进行转换 • pickle: 用于python特有的类型和python的数据类型间进行转换 Json模块提供了四个功能:d ...

  5. 实战:Nginx如何让用户通过用户名和密码认证访问WEB站点

    有时我们会有这么一种需求,就是你的网站并不想提供一个公共的访问或者某些页面不希望公开,我们希望的是某些特定的客户端可以访问.那么我们可以在访问时要求进行身份认证,就如给你自己的家门加一把锁,以拒绝那些 ...

  6. Oracle之表空间

    Oracle数据库被划分为称作表空间的逻辑区域,形成Oracle数据库的逻辑结构.一个Oracle数据库对应一个或多个表空间,而一个表空间对应一个或多个物理的数据库文件.表空间是Oracle数据库回复 ...

  7. 全网数据实时备份方案[inotify,sersync]

    环境搭建 0.环境安装   gcc  yum install gcc -y 1.安装inotify(源码软件包) 文件下载:https://files.cnblogs.com/files/ftl101 ...

  8. Asp.net core 项目实战 新闻网站+后台 源码、设计原理 、视频教程

    首先说明,视频教程.源码并非本人原创 本人将项目分割开,并写了一些说明. 该视频教程 地址  https://study.163.com/course/courseMain.htm?courseId= ...

  9. Thinkphp 漏洞小试

    首先确定这个网站使用thinkphp的框架 国内很多php开源项目的代码都是使用thinkphp框架编写的,但是thinkphp框架有很多版本,如何才能知道我们使用的框架是哪个版本的呢? 在URL后面 ...

  10. Entity Framework 指定架构无效 错误:1052

    IIS发布网站:如果不发布放到IIS没有问题,发布后IIS部署 打开网站却提示指定架构无效 1052 找到很多解决的问题 1添加wenconfig 2.更改entity名的 其实我认为最简单的就是先找 ...