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

相关推荐

  • Linux用户与组管理命令的易混淆点和重合点

    Linux用户与组的管理命令,对于初学者来说很容易造成混淆,此外,这些命令之间有很多相重合的用法,即:拥有多种命令可实现相同的需求的情况。

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

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

    Linux笔记 2018-06-21
  • AWK三剑客之一

    笔记

    2018-05-20
  • Linux 系统启动故障恢复

    如果你的Linux系统一直重启或者因为某些服务无法开启的问题导致机器故障不能正常使用,那我们就从系统启动模式来考虑,是不是/etc/inittab文件下默认被设置成为6模式,或者/etc/crontab文件中是否加入的能导致系统一直重启的命令,或者说在系统启动中因为一个服务一直打不开导致系统卡在服务启动界面而无法进入系统,那我们就来看看这些让人哭笑不得的问题怎么解决!

    2018-05-10
  • grep命令 | 正则表达式

    date -s “2018-4-7”

    2018-04-07
  • LAMP、php、mariadb

    LAMP: a:apache m:mariadb、mysql p:php,perl,python LAMMP:memcached   静态资源:静态内容,客户端从服务器获得的资源的表现形式与源文件相同; 动态资源:通常是程序文件,需要在服务器执行之后,将执行的结果返回给客户端; CGI:common gateway interface通用网关接口 …

    Linux笔记 2018-05-21