一.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 ,使用位置變量
實例:寫一個腳本輸入不同數值,顯示不同菜品,并顯示相應菜品的價位;腳本內容如下
實現結果如下:
當在腳本中添加PS3=“what do you like?”時,執行效果如下
二、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*
實例一:查詢未安裝包的的內容
–whatprovides capability:查詢指定的功能由哪個包提供
–whatrequires capability:查詢指定功能被哪個包依賴
實例二:刪除tree應用的/usr/bin/tree包,然后恢復
發現tree命令無法使用,此時可在不重新安裝tree的前提下,恢復tree命令的使用
用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 檢查包的完整性與簽名
(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)刪除內核
(2)發現用yum安裝kernel安裝不上去,重啟無法順利啟動
(3)此時進去救援模式
(4)進入到光盤所在目錄,安裝kernel組件
(5)用rpm -Uvh /mnt/sysimage/media/CentOS_6.8_Final/Pachages/kernel安裝內核,然后重啟
原創文章,作者:mengzhiqian,如若轉載,請注明出處:http://www.www58058.com/40249