select应用详解及rpm、yum使用说明

一.select相关用法解析

1.select variable in list;do   变量不用加$,和for极为相似

        循环体

    done

2.    (1)select循环主要用于创建菜单,按数字顺序排列的菜单项将显示在标准错误上,并显示PS3提示符,等待用户 输入,用户输入菜单列表中的某个数字,执行相应的命令

       (2)用户输入被保存在内部变量REPLY中

       (3)select是无限循环,要用break终止

     (4)PS3是select特用提示符

     (5)经常与case连用

     (6)与for循环类似,可以省略in list ,使用位置变量

实例:写一个脚本输入不同数值,显示不同菜品,并显示相应菜品的价位;脚本内容如下1.png

实现结果如下:

2.png

当在脚本中添加PS3=“what do you like?”时,执行效果如下

4.png

二、rpm使用详解

    1.软件运行环境

        (1)API(application programming interface)可调用现成函数(前人栽树,后人乘凉,)

        (2)程序源代码》预处理》编译》汇编》链接

                    静态编译:.a

                    共享编译: .so  (不会被编译到文件包中,而是一个单独的动态库)

        (3)ABI(Application Binary Interface)   主要是定义规则

                Windows 与Linux不兼容

                ELF(Executable Linkable Format)

                PE(Portable Executable)

                库级别的虚拟化:

                    linux;WINE

                    windows:Cywin

    2.包管理器

        (1)二进制应用程序组成部分:源代码 配置文件  帮助文件 库文件

        (2)debian:dpkg管理器

                redhat:RPM管理器

    3.rpm包

        (1)命名结构:name-version-release-arch.rpm

        (2)包的分类与拆包

    4.库文件

        (1)ldd /PATH/TO/BINARY_FILE

                查看二进制文件所依赖的库文件

        (2)管理及查看本机库文件

                ldconfig -p 查看本机已缓存的所有可用的库文件及文件路径映射关系

                    配置文件:/etc/ld.so.conf、/etc/ld.so.conf.d/*.conf

                    缓存文件:/etc/ld.so.cache

    5。包文件第三方组织:http://pkgs.org

    6.rpm包文件内可能含有脚本

    7.rpm包管理器  安装、卸载、升级、查询、校验、数据库维护

        (1)安装

             rpm {-i|–install} [install-options] packagefile

                -v  显示安装过程

                -h 以#显示程序包管理执行进度

                install options

                –test  测试安装,但不真正安装

                –nodeps: 忽略依赖关系

                –nosignature:不检查来源合法性

                –nodigest 不检查程序包完整性

                –npscripts 不执行程序包脚本片段

                –replacepkgs(程序部分配置文件丢失)  | replacefiles(产生共同文件,一般是说明文件)

                –oldpackage:降级

        (2)升级

                rpm  {-U|–upgrade} [install-options] packagefile…

                rpm  {-R|–freshen} [install-options] packagefile

                upgrade:有的话,升级;没有,安装

                freshen:有的话,升级;没有,不执行操作

               

                –force:强行升级

            注意:不要对内核升级,Linux支持多内核并存。

            如果原程序包的配置文件安装后曾被修改,升级时,新版本的配置文件不会覆盖旧的配置文件,而是命名为filename,newrpm

        (3)查询

                rpm {-q|query} [select-ooption] [query-options]

                [seliect-option]

                    -a 所有包

                     -f 查询指定文件由哪个程序包安装产生

                     -p  rpmfile针对尚未安装程序包文件做查询 后边是rpm文件,不是包名

                                rpm -ql tree

                                rpm -qpl tree*

实例一:查询未安装包的的内容

1.png  

                  –whatprovides capability:查询指定的功能由哪个包提供

                    –whatrequires capability:查询指定功能被哪个包依赖

实例二:删除tree应用的/usr/bin/tree包,然后恢复

3.png

发现tree命令无法使用,此时可在不重新安装tree的前提下,恢复tree命令的使用

4.png

用cpio是解压缩到当前目录下了

                    rpm2cpio 包文件 | cpio -tvi 预览包内文件

                    rpm2cpio 包文件 | cpio -dv “*.conf” 解压缩包内的响应文件;与tar有相似之处

                [query-option]

                    –changelog  查询rpm包的changelog

                    -c 查询程序配置文件

                    -d 查询程序的文档

                    -l 查询指定安装包安装后产生的所有文件

                    -R 查询指定程序包所依赖的capability

                    –provides 列出指定程序包提供的capability

        (4)卸载

                rpm {-e|–erase} [install-options] file

        (5)包校验

                rpm {-V|–verify}[select-options][verify-options]

                        S file size differs

                        M Mode differs  权限和文件类型

                        5 digest differs MD5

                        D Device major|minor number mismatch

                        L readlink(2) path match

                        U user ownship differs

                        G group ownship differs

                        T mtime differs

                        P capabilities differ

            包来源合法性检验  完整性检验

                完整性检验:SHA256

                合法性检验:RSA

            公钥加密:

                对称加密:加密、解密使用同一密钥

                非对称加密:密钥是成对的

                public key:所有人可看

                secret key:不公开

        rpm -K|–checksig rpm-file  检查包的完整性与签名

    2.png

        (6)数据库重建

                数据库重建:/var/lib/rpm

                rpm {–initdb|–rebuilddb}

                initdb 不存在,新建;存在,不操作

                rebuilddb 存在与否,都重建

三、yum使用详解

(1) yum用法:yum [options] [command][package…]

        yum -y groupinsatll 安装指定包组

        yum provide 查找提供特定功能的软件包

        yum groupinstall ** 和上边有异曲同工之处

        yum -q 安静模式  没有输出

(2)相关文件 /etc/yum.reposed/ /etc/yum.conf

        /var/cache/yum  /var/log/yum.log

(3)源配置文件参数

    baseurl[local_server] 名称

    name=this is a local server 名称描述

    baseurl=file:///media/CentOS_6.8_Final yum源地址

    enabled=1  是否启用

    gpgcheck=1 是否检查GPG-KEY

    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6  gpg-key 存放地

(4)显示仓库列表

        rpm repolist [all|disabled|enabled]

(5) 显示程序包

        yum list (all available updates installd obsoletes

        recent)显示所有可发现的包的信息

(6)yum -y insatll 安装指定包

        yum reinstall 重新安装

(7)更新程序包

        yum check-update  检查更新

        yum update/downgrade 更新或降级全部可更新包

        yum update ** 更新指定包

        yum update-to 更新到指定版本

(8)卸载

        yum remove 移除指定包

(9)查看数据包信息

        rpm info

(10)查询指定特性或文件是由哪个程序包提供的

        yum provides feature

        yum deplist packagefile  查询指定包依赖capabilities

(11)yum clean (all packages headers …)删除存储在缓存目录下的header和软件

        yum makecache 重新写header

(12)yum search 查找特定名称对的软件包及summary信息

(13)yum的命令行选项:
        –nogpgcheck:禁止进行gpgcheck
        -y: 自动回答为“yes”
        -q:静默模式
        –disablerepo=repoidglob:临时禁用此处指定的repo
        –enablerepo=repoidglob:临时启用此处指定的repo
        –noplugins:禁用所有插件

(14)安装升级本地rpm文件包,用的是文件名,不是包名

    yum localinstall | install rpmfile1

    localupdate rpmfile1

(15)yum的repo配置文件中可用变量

    $releaserver:当前os的发行版的主版本

    $arch:平台  i386 i486  i586  x86_64

    $basearch:基础平台

    $YUM0-$YUM9:自定义变量

(16)createrepo 【options】 <directory>

        –basedir  指定源码仓库在哪个目录下

(178)yum事务历史

        yum history [info | list | packages-list | packages-info | summary | addon-info | redo | undo | rollback |         new | sync | stats]

        yum history info 6  显示第6条安装信息

        yum history undo 6   撤销第六条动作

        日志:/var/log/yum.log

四、课后练习

  1. 输入到数组中若干数值,采用冒泡法进行升序或降序排列

    文本内容如下:

    6.png

    结果如下

    7.png

  2. 删除内核后,恢复启动

    (1)删除内核

    1472280858501100.png

    (2)发现用yum安装kernel安装不上去,重启无法顺利启动1472281347929599.png

    (3)此时进去救援模式

    1472282004893270.png

    (4)进入到光盘所在目录,安装kernel组件

    1472282066694541.png

    (5)用rpm -Uvh /mnt/sysimage/media/CentOS_6.8_Final/Pachages/kernel安装内核,然后重启

    1472283447909457.png

原创文章,作者:mengzhiqian,如若转载,请注明出处:http://www.178linux.com/40249

(0)
mengzhiqianmengzhiqian
上一篇 2016-08-29
下一篇 2016-08-29

相关推荐

  • CentOS系统启动流程、selinux、Systemd剖析

    交互式登录配置文件读取顺序: /etc/profile –> /etc/profile.d/*.sh –> ~/.bash_profile –> ~/.bashrc –> /etc/bashrc 非交互式登录配置文件读取顺序: ~/.bashrc –> /etc/bas…

    Linux干货 2018-03-04
  • Linux基础之—用户和组管理

    导言:   我们在使用计算机资源时为了资源的合理规划和利用,同时为了实现更好的管理,需要在计算机里有一个使用资源的凭证,这个凭证就是用户,下面就来介绍Linux用户和组管理。 1.资源分派:     资源的分派可以分为三个步骤,分别是    (1)认证(Authertication)   &nbsp…

    Linux干货 2016-08-04
  • N25-第二周博客作业

    1. Linux上的文件管理类命令都有那些,其常用的使用方法及其相关示例演示. 文件管理工具有cp, mv, rm cp命令: 复制文件或文件夹 语法: cp [OPTION]… [-T] SOURCE DEST 单源复制cp [OPTION]… SOURCE… DIRECTORY 多源复制 常用选项:  &nb…

    Linux干货 2016-12-10
  • centos6启动故障及修复

    前言 前文中我们熟悉了linux的启动流程,如果在启动过程中文件丢失或者损坏了怎么办呢?难道只有重装系统这一条路吗?那我们不是成了普通网管了吗?作为专业的运维工程师,我们需要掌握如何快速修复系统启动。 实验1: 破坏/boot/grup/下的文件——-stage2 阶段  不影响启动  mv /boot/grub …

    2017-09-03
  • 浅谈DNS基本原理以及实现方法(二)

             DNS作为互联网服务的一个基础型服务,了解和掌握DNS服务的原理和配置将是每一个运维人员必备的技能,这就如同闯荡江湖的侠客不但要有的招式,还要懂的运用这些招式的心法一样,接下来我将从DNS的正反向解析、主从同步、子域授权以及Bind view这四个方面来揭开它神…

    Linux干货 2015-12-19
  • iptables

    规则格式:iptables   [-t table]   COMMAND   chain   [-m matchname [per-match-options]]   -j targetname [per-target-options]     -t table:&nb…

    Linux干货 2017-06-16