一.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.178linux.com/40249