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

相关推荐

  • linux目录基础、简单的命令以及运用linux帮助

    计算机组成及其功能     计算机其实是:接收用户输入指令与数据,经过中央处理器的数据与逻辑单元运算处理后,以产生或存储成有用的信息。所以计算机组成可以分为输入单元、输出单元、CPU(控制单元、算术逻辑单元)、内存     输入单元:包括键盘、鼠标、扫描仪、手写板、触摸屏等;实现…

    Linux干货 2016-09-17
  • vim shell 练习作业题

    vim练习题 1. 复制/etc/profile至/tmp/目录,用查找替换命令删除/tmp/profile文件中的行首的空白字符   :%s/^[[:blank:]]\+//g 【注意要把/etc/profile复制到/tmp下,cp  /etc/profile  /tmp(尽量不要修改原文件)】 2. 复制/etc/rc.d…

    2017-08-07
  • 使用NFS服务和samba部署wordpress

             centos 7.3主机一台   centos 6.8主机一台  使用yum安装的mysql(7以后使用yum装mysql叫mariadb)         我事先查看了一…

    2017-05-02
  • 马哥网络教育班21期+第一周博客作业

    1、描述计算机的组成及其功能。   硬件:     CPU(运算器、控制器、一缓存(L1)、二级缓存(L2)):       运算器主要用来进行算数运算以及逻辑运算。       控制器主要是用来协调       一级缓存和二级缓存主要是用…

    Linux干货 2016-07-12
  • Linux基础知识之软硬链接

    系统环境:    该博文以CentOS6.8_x86_64系统为基础,Xshell5远程登录CentOS6.8系统,以root身份登录系统。 为什么要学习符号(软)链接和硬链接?    符号(软)链接和硬链接是Linux文件系统中的一个重要的概念,软硬链接的学习过程中会涉及一些文件系统中的索引节点(inode),索引节…

    Linux干货 2016-08-02
  • 系统自动化安装

    本章内容 系统安装过程配置anaconda自动化安装系统 安装程序 CentOS系统安装 系统启动流程: bootloader–>kernel(initramfs)–>rootfs–>/sbin/init anaconda: 系统安装程序 tui: 基于图形库curses的文本窗口 gui:图形窗口 安装程序启动过程 MBR…

    Linux干货 2016-09-19