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
下一篇 2018-07-23

相关推荐

  • 简述一下TCP三次握手四次挥手

    TCP,名为传输控制协议,是一种可靠的传输层协议,IP协议号为6。 原则上任何数据传输都无法确保绝对可靠,三次握手只是确保可靠的基本需要。 TCP三次握手 TCP建立连接为什么是三次握手,而不是两次或四次? 个人理解:因为要双方都要确定对方的网络没毛病,通讯正常。 还有一个网上看到的说法,我觉得很有意思: 我:1+1等于几? 她:2,2+2等于几? 我:4 …

    2018-04-30
  • 第六周 网络管理命令、进程监控

    一、osi七层模型和TCP/IP五层模型 1、模型图 2、每一层的功能和用到的协议   二、iproute2家族 1、概述 ip 是 iproute2 软件包里面的一个强大的网络配置工具,它能够替代一些传统的网络管理工具。例如: ifconfig、route 等。 2、命令格式 ip [ OPTIONS ] OBJECT { COMMAND | h…

    2018-07-12
  • 第四周作业—用户权限管理和正则表达式练习

    权限管理、正则表达式练习

    Linux笔记 2018-06-01
  • linux的基础命令

    基础命令

    2018-03-28
  • 描述计算机的组成及其功能

    计算机从功能模块上可分为:CPU、内存、输入、输出设备。 CPU由计算器和控制器组成,计算器负责计算数据,控制器则将数据送入计算器中,并将计算完成的数据送到其指定的位置中。 内存:为数据的存储地址,内存中的数据供CPU使用。内存的读写速度比硬盘的存储设备要快上很多。比内存读取速度要快的是缓存,其设计在CPU中。内存与输入输出设备相连,数据可以从输入设备读入到…

    Linux笔记 2018-06-21
  • K8S的安装

    使用kubeadm安装部署kubernetes集群: 前提:1、各节点时间同步;2、各节点主机名称解析:dns OR hosts;3、各节点iptables及firewalld服务被disable; 一、设置主节点安装程序包 1、生成yum仓库配置: 主管理节点上的yum仓库的配置: 先配置安装docker仓库: [docker]name=dockerbas…

    2018-08-08