• rpm与yum,at与crontab,sed命令使用


    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 ext:在行下方追加文本“text”,支持使用 实现多行追加;         i ext:在行上方插入文本“text”,支持使用 实现多行插入;           示例,sed '3i ew line another new line' /etc/fstab (在第3行上方写入一行new line和一行another new line)         c ext:把匹配到的行替换为此处指定的文本“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/)
  • 相关阅读:
    关于Android的布局
    一个新的开端
    Flux的基础概念和实战入门
    在Redux中使用插件createAction之后
    学习
    Object.assign() 对象的扩展
    Redux 中的CombineReducer的函数详解
    React组件的防呆机制(propTypes)
    css的新特性 calc () 使用
    shim和polyfill有什么区别
  • 原文地址:https://www.cnblogs.com/walk1314/p/8656837.html
Copyright © 2020-2023  润新知