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 08:49
下一篇 2016-08-29 08:49

相关推荐

  • Linux系统网络属性管理

        每台计算机主机连入internet都必须给主机设定以个合法的IP地址。这些IP参数大概包括IP地址、子网掩码、网关、路由、DNS等。在Linux中,大多数命令配置网络配置都是临时生效,想要网络服务永久有效就必须写入配置文件中,所以有时候更改配置重启主机是为了让内核重读配置文件到内核中,因为配置文件属于用户空间的文件。大多数网络配置…

    Linux干货 2016-09-18
  • httpd服务归纳:httpd简介与基本安装

    一、httpd 简介  1. httpd 历史: httpd daemon 最早诞生于1995年二月, 伊利诺伊大学香槟分校的美国国家超级计算应用中心(NCSA),由Rob McCool开发。当这个项目完成后,Rob 老兄离开RCSA以后,这个项目组就解散了,这个项目也随之终止。 但是,由Brian Behlendorf 和 Cliff …

    Linux干货 2015-05-07
  • 马哥教育网络班21期+第9周课程练习

    1、写一个脚本,判断当前系统上所有用户的shell是否为可登陆shell(即用户的shell不是/sbin/nologin);分别这两类用户的个数;通过字符串比较来实现; #!/bin/bash while read line; do     if [[ $line&n…

    Linux干货 2016-09-01
  • Linux网络属性管理(二)

    Linux网络属性(二) Linux 网络属性管理(二) ip命令 ip – show / manipulate routing, devices, policy routing and tunnels ip [ OPTIONS …

    Linux干货 2016-07-07
  • Linux基础 文件权限

    概述 从接触linux第一天开始,Linux一切皆文件的哲学思想就深植于每个linuxer的心中,因此,实现Linux的系统安全必然绕不开文件权限。文件的权限是建立在用户的基础上的,脱离了用户,文件权限也就变得毫无意义了。用户、组和文件权限一起铸就了linux的系统安全模型。本文主要从文件权限方面了解Linux的安全模型。 文中主要讲解了: 1. 文件权限r…

    Linux干货 2016-08-05
  • 马哥教育网络班21期第1周课程练习 — 草稿

    1、描述计算机的组成及其功能。     计算机的主要组成部分包括:运算器、控制器、存储器、输入设备、输出设备。        按更常见的组件来讲:CPU = 运算器+控制器、 内存+硬盘 = 存储器、 I/O = 输入设备+输出设备  &n…

    Linux干货 2016-07-07