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

相关推荐

  • Linux磁盘及文件系统管理

    磁盘(Hard Disk Drive,简称HDD)是一种存储介质,传统的机械硬盘由一个或多个铝制或玻璃制的碟片组成,碟片外覆盖有铁磁性材料。 磁盘的物理结构一般由磁头与碟片、电动机、主控芯片与排线等部件组成;当主电动机带动碟片旋转时,副电动机带动一组(磁头)到相对应的碟片上并确定读取正面还是反面的碟面,磁头悬浮在碟面上画出一个与碟片同心的圆形轨道(磁轨或称柱…

    Linux干货 2015-04-20
  • N26-第四周-孙逸

    1、  复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。 cp –r /etc/skel /home/tuser1 chmod –R 700 /home/tuser1 2、  编辑/etc/group文件,添加组hadoop。 group文件的内容格式: &…

    2017-03-10
  • 搭建基于http的本地yum源服务器

    概述 yum相较于rpm,能够更好地解决安装软件时的依赖包问题,使用yum安装更简单更方便。搭建本地YUM源服务器,可以避免升级安装软件时占用公网带宽;有了本地YUM源服务器,可以解决无法连接Internet的其他YUM客户端的软件升级和安装。 本文主要介绍了以下内容: 通过编译Apache源码包安装httpd服务; 搭建基于HTTP的yum源服务器; 将I…

    Linux干货 2016-08-24
  • Hello World, Hello Linux.

    文笔不好,请见谅。

    2018-03-26
  • httpd及https

    1、建立httpd服务,要求: (1) 提供两个基于名称的虚拟主机:     www1.stuX.com,页面文件目录为/web/vhosts/www1;错误日志为/var/log/httpd/www1/error_log,访问日志为/var/log/httpd/www1/access_log;   &nbs…

    2017-06-05
  • etc的常见问答

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。 [root@localhost tuser1]# cp -r /etc/skel/ /home/tuser1 [root@localhost tuser1]# chmod -R go= /home/tuser1/ [root…

    2017-12-26