本节主要讲解Shell脚本的循环和软件包的管理
一、用until实现下列作业
1、每隔3秒钟到系统上获取已经登录的用户的信息;如果发现用户hacker登录,则将登录时间和主机记录于日志/var/log/login.log中,并提示该用户退出系统。
2、随机生成10以内的数字,实现猜字游戏,提示比较大或小,相等则退出
3、编写脚本,求100以内所有正整数之和
4、编写脚本,通过ping命令探测172.16.250.1-254范围内的所有主机的在线状态,统计在线主机和离线主机各多少。
5、编写脚本,打印九九乘法表
6、编写脚本,利用变量RANDOM生成10个随机数字,输出这个10数字,并显示其中的最大者和最小者
7、编写脚本,实现打印国际象棋棋盘
8、打印等腰三角形
软件包相关知识
二进制应用程序的组成部分:
二进制文件、库文件、配置文件、帮助文件
Linux系统软件安装方式常见两种有:
dpkg和RPM
RPM包格式:ftp-0.17-54.e16.x86_64.rpm
ftp:软件名
0.17:软件版本号,其中0为主版本号,17为次版本号
54:软件编译次数
e16:支持的操作系统版本
X86_64:软件适合的硬件平台,和支持的CPU架构
rpm:软件包的扩展名
RPM的优点:
1、RPM包含已经编译过的程序与配置档等数据,可以让使用者免除重新编译的困扰;
2、RPM在被安装前,会先检查硬盘容量、操作系统版本等,可免除文件被错误安装;
3、RPM文件本身提供软件版本资讯、依赖性软件名称、软件用途说明、软件所含文件等资讯,便于了解文件;
4、RPM管理方式使用数据库记录RPM文件的相关参数,便于升级、移除、查询与验证。
rpm 语法相关
rpm {-i|–install} [install-options] PACKAGE_FILE…
-h:hash,以#来表示安装进度
-v:显示安装过程的详细信息
–test:不执行真正的安装过程,仅报告依赖关系及冲突信息等
–nodeps:忽略依赖关系,副作用是能安装成功,但未必能运行成功
软件升级:
rpm {-U|–upgrade}[install-ooptions] PACKAGE_FILE…
rpm {-F|–freshen}[install-ooptions] PACKAGE_FILE…
upgrade:安装有旧版程序包,则“升级”,如果不存在旧版程序包,则“安装”
freshen:安装有旧版程序包,则“升级”,如果不存在旧版程序包,则不执行升级操作
–oldpackage:降级
–replacepkgs:覆盖安装
–force:强制安装
软件卸载:
rpm {-e|–erase} [–allmatches] [–nodeps] [–test] PACKAGE_NAME …
–nodeps:忽略依赖关系
–test:测试卸载
–allmatches:如果一个程序安装多个版本,全部卸载
软件包查询:
rpm {-q|–query} [select-options] [query-options]
v [select-options]:
rpm -q PACKAGE_NAME…:查询某包或某些包是否安装
rpm -qa:查询已安装的所有包
rpm -qf /PATH/TO/SOMEFILE:查询某文件是由那个包安装生成
rpm -qpi PACKAGE_FILE查询尚未安装的包文件的相关信息,用-p选项
[query-options]:
-qi:查询某包的简要说明信息
-ql:查询某包安装生成的文件列表
-qc:安装完成后生成的所有配置文件
-qd:查询某包安装完成后生成的帮助文件
-q –changelog:查看某包制作时随版本变化的changelog信息
原创文章,作者:Dadi,如若转载,请注明出处:http://www.178linux.com/37126