N31第五周作业

本周(7.16–7.22)第五周

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

rpm相关

rpm安装
            rpm {-i|–install} [install-options] PACKAGE_FILE …
           [install-options]:
                -i:install
                -v:显示详细的安装信息
                –vv
                -h:hash marks输出进度条;每个#表示2%的进度;
                –test:测试安装,检查并报告依赖关系及冲突消息等;
                –nodeps:忽略依赖关系,此操作有风险;
                –replacepkgs:重新安装该程序包;
                 –force:强制安装
                –nosignature:不检查包签名信息,不检查来源合法性
                –nodigest:不检查包完整性信息;
rpm升级
            rpm  -U [install-options] PACKAGE_FILE …
            rpm  -F [install-options] PACKAGE_FILE …
            -Uvh:后面接的软件包被安装过,会自动安装,安装过,则进行升级;
            -Fvh:后面接的软件包安装过则进行升级,未安装,则该软件不会被安装(升级);
             常用选项:
                    –oldpackage:降级;
                    –force:强制升级;
            注意:
                (1) 不要对内核做升级操作;Linux支持多内核版本并存,因此,直接安装新版本内核;
                (2) 如果某原程序包的配置文件安装后曾被修改过,升级时,新版本的程序提供的同一个配置文件不会覆盖原有版本的配置文件,而是把新版本的配置文件重命名。
rpm卸载
            rpm {-e|–erase} [–allmatches] [–nodeps] [–noscripts] [–test] PACKAGE_NAME …
             常用选项:
                    –allmatches:卸载所有匹配指定名称的程序包的各版本;
                    –nodeps:忽略依赖关系
                    –test:测试卸载并不会正真的卸载程序包;
            注意:
                (1) 通常文件的卸载操作用rpm -e PACKAGE_NAME就可以完成;
                (2) 卸载的时候只需要给出包名,安装与升级的时候给出文件路径和包名。
查询
            rpm {-q|–query} [select-options] [query-options]
            [select-options]
               rpm -q PACKAGE_NAME:查询指定的程序包是否已经安装;
                rpm -qa查询所有已经安装过的包;
                rpm -qf  FILE:查询指定的文件由哪个程序包安装生成;
                rpm -qpi PACKAGE_FILE:用于实现对未安装的程序包执行查询操作;
            [query-options]
                -ql, –list:程序安装生成的所有文件列表;
                -qi, –info:程序包相关的信息,版本号、大小、所属的包组,等;
                -qc, –configfiles:查询指定的程序包提供的配置文件;
                -qd, –docfiles:查询指定的程序包提供的文档;
                –provides:列出指定的程序包提供的所有的CAPABILITY;
                –changelog:查询bash的changlog;
           –requires:查询指定的程序包的依赖关系;
                 –scripts:查看程序包自带的脚本片断;
校验
            rpm {-V|–verify} [select-options] [verify-options]
                S file Size differs   # 校验文件大小
                M Mode differs (includes permissions and file type)  # 校验文件权限
                5 digest (formerly MD5 sum) differs  # MD5码校验
                D Device major/minor number mismatch  # 校验文件主、次设备号
                L readLink(2) path mismatch
                U User ownership differs  # 校验文件属主
                G Group ownership differs  # 校验文件属组
                T mTime differs  # 文件时间戳的校验
                P caPabilities differ   # 文件capability的校验
     Linux安装程序包来源合法性验正和完整性验正
        获取并导入信任的包制作者的密钥:
            对于CentOS发行版来说:rpm –import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
        验正:
            (1) 安装此组织签名的程序时,会自动执行验正;
            (2) 手动验正:rpm -K PACKAGE_FILE
数据库维护
    数据库重建:
        rpm管理器数据库路径:/var/lib/rpm/
             rpm {–initdb|–rebuilddb} [–dbpath DIRECTORY] [–root DIRECTORY]
                –initdb:初始化数据库,当前无任何数据库可初始化创建一个新的;
                                当前有时不执行任何操作;
                –rebuilddb:无论是否存在,重新构建,通过读取当前系统上所有已经安装过的程序包进行重新创建。
yum相关
安装程序包:
    yum install package1 [package2] […]
注意:这里用的是软件包名,不是软件包的文件名
    yum reinstall package1 [package2] […]  重新安装
        –nogpgcheck :禁止进行gpg check
        -y:  自动回答为“yes”
        -q :静默模式
        –noplugins :禁用所有插件
升级程序包:
    yum update [package1] [package2] […]
降级程序包
    yum downgrade package1 [package2] […]
检查可用升级:
    yum check-update
卸载程序包:
    yum remove | erase package1 [package2] […]
安装及升级本地程序包:
    yum localinstall rpmfile1 [rpmfile2] […]   ( 用install 替代)
    yum localupdate rpmfile1 [rpmfile2] […]  ( 用update 替代)
包组管理的相关命令:
    yum groupinstall group1 [group2] […]
    yum groupupdate group1 [group2] […]
    yum grouplist [hidden] [groupwildcard] […]
    yum groupremove group1 [group2] […]
    yum groupinfo group1 […]
查询:
    yum info […]  查看指定的特性(可以是某文件)由哪个程序包所提供:
    yum provides | whatprovides feature1 [feature2][…]
    yum search string1 [string2] […] 以指定的关键字搜索程序包名及summary 信息
查看yum 事务历史:
    yum history [info|list|packages-list|packages-info|summary|addon-info|redo|undo|rollback|new|sync|stats]
yum仓库管理:
    yum repolist:列出已经配置的所有的可用仓库
    yum repolist [all|enabled|disabled]
程序包查看:
    yum list
    yum list [all | glob_exp1] [glob_exp2] […]
    yum list {available|installed|updates} [glob_exp1][…]
yum缓存管理
yum clean:清理本地缓存:
yum clean [ packages | metadata | expire-cache |rpmdb | plugins | all ]
yum makecache:构建缓存
2、自建yum仓库,分别为网络源和本地源
yum本地源
[root@localhost ~]# mkdir /media/cdrom
[root@localhost ~]# mount -r /dev/cdrom /media/cdrom
[root@localhost ~]# mount
/dev/sr0 on /media/cdrom type iso9660 (ro,relatime)
[root@localhost ~]# vi /etc/yum.repos.d/local.repo
[local]
name=local
baseurl=file:///media/cdrom
enabled=1
gpgcheck=0
[root@localhost ~]# yum repolist
Loaded plugins: fastestmirror, langpacks
Repository epel is listed more than once in the configuration
Repository epel-debuginfo is listed more than once in the configuration
Repository epel-source is listed more than once in the configuration
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
repo id repo name status
base/7/x86_64 CentOS-7 – Base – mirrors.aliyun.com 9,911
epel/x86_64 Extra Packages for Enterprise Linux 7 – x86_64 12,618
extras/7/x86_64 CentOS-7 – Extras – mirrors.aliyun.com 363
local local 3,894
updates/7/x86_64 CentOS-7 – Updates – mirrors.aliyun.com 970
repolist: 27,756
yum网络源
[root@localhost ~]# mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
[root@localhost ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
[root@localhost ~]# yum makecache
[root@localhost ~]# cat /etc/yum.repos.d/CentOS-Base.repo
[base]
name=CentOS-$releasever – Base – mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/os/$basearch/
http://mirrors.aliyuncs.com/centos/$releasever/os/$basearch/
http://mirrors.cloud.aliyuncs.com/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
3、简述at和crontab命令,制定 每周三凌晨三、五点10分执行某个脚本,输出当前时间,时间格式为 2017-12-28 10:00:00
at相关
at命令格式: at [OPTION]… TIME
         OPTION:
               -l:查看作业队列,相当于atq
               -f /PATH/FROM/SOMEFILE:从指定文件中读取作业任务,而不用再交互式输入;
           -d:删除指定的作业,相当于atrm;
              -c:查看指定作业的具体内容;
              -v:可以使用较明显的时间格式列出at中的工作列表
        TIME:
      HH:MM 如:18:00
                      在今日的HH:MM进行,若时间超过,则明天此时刻运行
            HH:MM YYYY-MM-DD 如:18:00 2018-01-23
crontab相关
crontab命令格式:
       crontab [-u user] file
       crontab [-u user] [-l | -r | -e] [-i] [-s]
       crontab -n [ hostname ]
       crontab -c
选项:
-e:编辑任务( 进入vi编辑器 );
-l:列出所有任务;
-r:移除所有任务,即删除/var/spool/cron/USERNAME文件;
-i:在使用-r选项移除所有任务时提示用户确认;
-u user:root用户可为指定用户管理cron任务
执行脚本 输出时间
[root@localhost tmp]# vim date.sh
#!/bin/bash date “+%Y-%m-%d %H:%M:%S”
:wq
[root@localhost tmp]# chmod +x date.sh
[root@localhost tmp]# crontab -e
10 3,5 * * 3 root /bin/bash /tmp/date.sh
:wq
crontab: installing new crontab
[root@localhost tmp]# crontab -l
10 3,5 * * 3 root /bin/bash /tmp/date.sh
4、简述sed常用操作命令,并举例
sed语法结构
sed [OPTION]… {script-only-if-no-other-script} [input-file]…
[OPTION]
-r: 支持扩展正则表达式
-n: 静默模式
-i: 直接修改源文件
-e script1 -e script2 -e script3:指定多脚本运行
-f /PATH/TO/SCRIPT_FILE从指定的文件中读取脚本并运行
sed的地址定界
# :表示数字,指定行
$:最后一行
/regexp/:任何能被regexp所匹配到的行
\%regexp%:同上,%为regexp的边界符
地址范围
 #,#:第 #行到第#行
 #,+#:第 #行开始,往后再加 #行
    #,/regexp/:第 #行到第一次被模式匹配之间的行
   /regexp1/,/regexp2/:第一次被regexp1匹配到第一次被regexp2匹配之间的行
sed的编辑命令
d: 删除匹配到的行
a \text: 在行后面追加文本,支持使用\n实现多行追加
i \text: 在行后面插入文本,支持使用\n实现多行插入
c \text: 用text替换匹配到的行
p:打印模式空间的行
! 对地址范围取反
= 为模式匹配到的行打印行号
w /PATH/TO/SOMEFILE:保存模式空间的内容至指定文件中; 覆盖写入;
r /PATH/FROM/SOMEFILE: 读取指定文件至当前文件被模式匹配到的行后;文件合并;
查找替换
s///:查找替换 (其分隔符/可自行指定,形如s@@@, s###)
           替换标记:
                            g:全局替换;
                           w /PATH/TO/SOMEFILE:将替换成功的结果保存至指定文件中;
                        p:显示替换成功的行
示例
删除/tmp/grub.conf文件中所有行的行首的空白字符
sed ‘s/^[[:space:]]\+//’ /tmp/grub.conf
删除/tmp/grub.conf文件中所有以#开头,后面至少跟一个空白字符的行的行首的#和空白字符
sed ‘s/^#[[:space:]]\+//’ /tmp/grub.conf

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/103754

(0)
上一篇 2018-07-23 13:40
下一篇 2018-07-23 15:37

相关推荐

  • centos6启动流程

    不知道为什么编辑了前两次都发不了,这是第三次了

    Linux笔记 2018-05-13
  • 简述sed常用操作命令,并举例

    sed命令: 文本处理三剑客: grep,egrep,fgrep:文本过滤器 sed:stream EDitor,刘编辑器,行 awk:文本格式化工具,报告生成器 sed [option]…’script’ [input-file]… script: 地址定界编辑命令 常用选项: -n:不输出模式空间中的内容至…

    Linux笔记 2018-06-07
  • linux网络相关

    网络配置 重启失效 ifconfig 网络地址显示,地址配置 ifconfig 接口 IP/netmask [up|down] [-|+]promisc up 打开 down 关闭 -promisc关闭混杂模式 +promisc打开混杂模式,混杂模式用来监听网络数据 ifconfig eth0:1 ip/netmask route 路由管理命令 查看路由 -…

    Linux笔记 2018-05-06
  • liunx 系统笔记

    服务器的硬件组成  如图: 服务器配置示例:

    Linux笔记 2018-04-01
  • 陆佳宁第一周作业

    Linux基础知识======================##1、计算机的组成及其功能       计算机五大组成部件:运算器、控制器、存储器、输入设备和输出设备。       下面分别介绍这五大组件的主要功能:1)、运算器:实现算术运算和逻辑运算的部件。2)、控制器:计算机…

    2018-05-25
  • shell 编程基础

    命令错误 后面的命令继续执行 语法错误 后面的命令不执行 bash -n 检查语法错位 bash -x 查看脚本的执行过程 【排错】 ++文件属性上的 显示是嵌套命令 变量 引用变量要加$符号 echo 是显示字符串的 如果命令能识别变量 可以不加$ 识别不了就压加$ 变量尽量用“ ”引起来 保留里面的格式 name =`whoami` echo &#822…

    Linux笔记 2018-04-15