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.www58058.com/40249

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

相關推薦

  • 系統基礎之shell腳本編程詳解2

    shell腳本編程2:   在上節我們介紹了shell腳本編程,但只是介紹了基礎的內容,下面將為大家介紹shell的腳本的高級用法,判斷與循環.判斷分為兩種:if語句和case語句;循環分為三種:for語句,while語句,until語句,select語句 判斷語句:  在腳本的編寫中,我們要使用大量的數據和命令,但對于使用的數據,我們要…

    Linux干貨 2016-08-19
  • 用戶、組、權限和修改

    用戶、組和權限     普通用戶 1–65535     系統用戶  系統已經已經存在專門用來對系統服務或者系統資源進行管理的               1…

    Linux干貨 2017-04-04
  • sed命令實戰

    1、刪除/etc/grub2.conf文件中所有以空白開頭的行行首的空白字符  [root@centos7 ~]# sed -r 's#^[[:space:]]+##g' /etc/grub2.cfg # # DO NOT EDIT THI…

    Linux干貨 2016-08-15
  • grep的用法

    grep的用法 1、復制/etc/skel目錄為/home/tuser1及其內容文件的屬組和其它用戶均沒有任何訪問權限。 cp -R /etc/skel /home/thuser1 #復制文件/etc/skel 到/home/目錄下并改名為thuser1 chmod -R 700 /home/thuser1 #更改/home/thuser1目錄權限為屬主全部…

    Linux干貨 2017-07-23
  • 文本處理工具基礎應用

                                                      &nbsp…

    Linux干貨 2016-08-07
  • Linux Yum源的安裝配置??

    Linux Yum源的安裝配置     一、基本概念   Yum(全稱為YellowdogUpdater,Modified)是一個在Fedora和RedHat以及SUSE、CentOS中的Shell前端軟件包管理器?;赗PM包管理,能夠從指定的服務器自動下載RPM包并且安裝,可以自動處理依賴性關系,并且一次安裝所有依賴的軟件包…

    Linux干貨 2015-05-11
欧美性久久久久