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

相关推荐

  • ifconfig命令学习

    ifconfig命令 网络配置 ifconfig命令被用于配置和显示Linux内核中网络接口的网络参数。用ifconfig命令配置的网卡信息,在网卡重启后机器重启后,配置就不存在。要想将上述的配置信息永远的存的电脑里,那就要修改网卡的配置文件了。 语法 ifconfig(参数) 参数 add<地址>:设置网络设备IPv6的ip地址; del&lt…

    Linux干货 2017-07-02
  • awk入门应用

    awk概述使用语法常用命令选项相关输出命令print item1,item2,…printf FORMAT,item1,item2,….相关格式符相关修饰符相关内建变量相关内置函数相关操作符相关模式相关控制语句及示例if(condition) statementsif(condition){statements} else {statements}while…

    Linux干货 2016-12-04
  • N25-第七周

    1、创建一个10G分区,并格式为ext4文件系统; (1) 要求其block大小为2048, 预留空间百分比为2, 卷标为MYDATA, 默认挂载属性包含acl;     [root@localhost ~]# fdisk -l Disk /dev/sda: 42.9 GB, 42949672960 bytes 255…

    Linux干货 2017-05-21
  • 马哥教育网络班20期+第6周练习博客

    请详细总结vim编辑器的使用并完成以下练习题 1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#; [root@bogon ~]# cp /etc/rc.d/rc.sysinit  /tmp/rc.sysinit […

    Linux干货 2016-07-22
  • Linux基础系列(用户,组管理)

       Linux是一个多用户操作系统多任务的分时操作系统,平时的日常使用离不开用户登录以及用户组的管理,熟练管理用户和用户组,会提升我们的工作效率。   Linux用户管理:   Linux包括系统管理员,普通用户。普通用户又分为系统用户和登录用户。系统用户一般不会登陆系统,其shell类型一般为/etc/nologi…

    Linux干货 2016-08-04
  • Linux获取命令帮助的途径

    在学习和使用Linux的过程中,免不了会遇到一些我们不熟悉或者不知道的命令。对于这些我们不熟悉的命令,就需要查找帮助文档来获取更多信息来协助我们完成相关的工作。 如何获取Linux命令的使用帮助? 1.  针对内部命令 help [命令名] 2.  针对外部命令 [命令名] –help,    获取简要帮助…

    Linux干货 2017-09-01