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文件管理命令以及bash的工作特性

    一、Linux文件管理命令 1. cp命令 ● 命令格式 单源复制:cp [OPTION]… [-T] SOURCE DEST 多源复制:cp [OPTION]… SOURCE… DIRECTORY          cp [OPTION]… -t DIRECTORY SOURCE…   ● 命令功能 复制文件 ● 命令选项 -…

    2018-05-16
  • Linux用户和组管理

    Linux用户和组管理 众所周知,Linux是一个多用户、多任务(Multi-Tasks、Multi-Users)的操作系统。那么Linux是如何区分和认证用户的,系统对每个用户的授权是如何管理的,出现问题如何追溯每个用户在系统内的操作记录,等等,这些就涉及到Linux中用户和组的管理。 AAA介绍 Linux用户类别 Linux用户标识(UID) Linu…

    2018-05-06
  • 构建一个mini linux系统

    mini linux: 启动流程: centos6:post》bootsequence(bios)》BootLoader(mbr)》kernel(如无法直接识别硬盘驱动,需借助ramdisk)》rootfs》/sbin/init centos7:post》bootsequence(bios)》BootLoader(mbr)》kernel(如无法直接识别硬盘驱…

    Linux笔记 2018-06-06
  • 实现cobbler自动安装(基于网络)

    本节索引: 一、cobbler简介 二、实验:模拟搭建cobbler服务器,实现cobbler自动化安装系统 三、实验:实现基于web的cobbler   一、cobbler简介: cobbler 功能:用来快速建立 Linux 网络安装环境 特性: 1.基于PXE的二次封装,将多种安装参数封装到一个菜单,更加方便,自动化 2.Python编写 3…

    Linux笔记 2018-05-27
  • 磁盘阵列及逻辑卷的创建

    磁盘阵列 软件RAID的实现 mdadm:模式化的工具 命令的语法格式:mdadm[mode] <raiddevice> [options] <component-devices> 支持的RAID级别:LINEAR, RAID0, RAID1, RAID4, RAID5, RAID6, RAID10 模式: 创建:-C 装配: -A …

    Linux笔记 2018-04-30
  • 计算机原理与Linux基础

    计算机的组成及功能 1、其实计算机的组织分为内部设备和外部设备, 内部设备:         CPU:运算器、寄存器、缓存         存储器:内存,RAM(Random Access Memory)         控制器:控制器是整个计算机系统的控制中心,它指挥计算机各部分协调地工作,保证计算机按照预先规定的目标和步骤有条不紊地进行操作及处理。 外部…

    Linux笔记 2018-05-13