8-16 Shell脚本之循环

本节主要讲解Shell脚本的循环和软件包的管理



一、用until实现下列作业

1、每隔3秒钟到系统上获取已经登录的用户的信息;如果发现用户hacker登录,则将登录时间和主机记录于日志/var/log/login.log,并提示该用户退出系统。

QQ截图20160817222050.png

2、随机生成10以内的数字,实现猜字游戏,提示比较大或小,相等则退出

QQ截图20160817222142.png

3、编写脚本,求100以内所有正整数之和

QQ截图20160817222238.png

QQ截图20160817222252.png

4、编写脚本,通过ping命令探测172.16.250.1-254范围内的所有主机的在线状态,统计在线主机和离线主机各多少。

QQ截图20160817222330.png

QQ截图20160817222342.png

5、编写脚本,打印九九乘法表

QQ截图20160817222400.png

QQ截图20160817222415.png

6、编写脚本,利用变量RANDOM生成10个随机数字,输出这个10数字,并显示其中的最大者和最小者

QQ截图20160817222457.png

QQ截图20160817222510.png

7、编写脚本,实现打印国际象棋棋盘

QQ截图20160817222901.png

图片1.png

8、打印等腰三角形

QQ截图20160818091605.pngQQ截图20160818091623.png



软件包相关知识

二进制应用程序的组成部分:

二进制文件、库文件、配置文件、帮助文件

Linux系统软件安装方式常见两种有:

dpkgRPM

RPM包格式:ftp-0.17-54.e16.x86_64.rpm

ftp:软件名

0.17:软件版本号,其中0为主版本号,17为次版本号

54:软件编译次数

e16:支持的操作系统版本

X86_64:软件适合的硬件平台,和支持的CPU架构

rpm:软件包的扩展名

RPM的优点:

1RPM包含已经编译过的程序与配置档等数据,可以让使用者免除重新编译的困扰;

2RPM在被安装前,会先检查硬盘容量、操作系统版本等,可免除文件被错误安装;

3RPM文件本身提供软件版本资讯、依赖性软件名称、软件用途说明、软件所含文件等资讯,便于了解文件;

4RPM管理方式使用数据库记录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:如果一个程序安装多个版本,全部卸载

QQ截图20160817223004.png

软件包查询:

    rpm {-q|–query} [select-options] [query-options]

v  [select-options]:

        rpm -q PACKAGE_NAME…:查询某包或某些包是否安装

        rpm -qa:查询已安装的所有包

        rpm -qf /PATH/TO/SOMEFILE:查询某文件是由那个包安装生成

QQ截图20160817223019.png

        rpm -qpi PACKAGE_FILE查询尚未安装的包文件的相关信息,用-p选项

[query-options]:

    -qi:查询某包的简要说明信息

QQ截图20160817223029.png

    -ql:查询某包安装生成的文件列表

QQ截图20160817223037.png

    -qc:安装完成后生成的所有配置文件

    -qd:查询某包安装完成后生成的帮助文件

QQ截图20160817223044.png

    -q –changelog:查看某包制作时随版本变化的changelog信息

原创文章,作者:Dadi,如若转载,请注明出处:http://www.178linux.com/37126

(0)
DadiDadi
上一篇 2016-08-18 10:09
下一篇 2016-08-18 10:09

相关推荐

  • 万能的AWK

    awk:文本三剑客之一 #报告生成器,主要用来实现格式化文本输出,它能够实现在处理文本文件时对文档中的某字段有条件显示并以非常美观的文本; 它是编程语言的解释器;它也是一种完整的编程语言,它支持条件判断、循环、变量、数组、函数等等各种各样的编程语言所能实现的功能。 用法:awk [options] ‘program’ FILE &#8…

    2017-04-22
  • vim必掌握用法

    vim最入门用法大全

    Linux干货 2017-12-03
  • 压缩和归档——释放你的磁盘空间

    压缩和解压缩工具 压缩比:文件压缩比就是指文件经过压缩后的文件大小与源文件大小的一个比差,经过压缩工具包可以把文件压缩 压缩的目的:      时间换空间      CPU时间换硬盘的空间 压缩工具: compress/uncompress 以.Z作为文件后缀 gzip/gunz…

    Linux干货 2016-08-18
  • keepalive高可用haproxy实现URL资源的动静分离

    keepalive高可用haproxy实现动静分离URL资源 实现要点: (1) 动静分离discuzx,动静都要基于负载均衡实现; (2) 进一步测试在haproxy和后端主机之间添加varnish缓存; (3) 给出拓扑设计; (4) haproxy的设定要求:     (a…

    Linux干货 2016-11-12
  • 第四周:/etc/passwd、/etc/group文件熟悉及配合grep使用正则表达式

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。 [root@wlm ~]# useradd tuser1 [root@wlm ~]# cp -r etc/skel/ /home/tuser1/…

    Linux干货 2016-10-13
  • DNS

    这里都以我本机的实验为例 正向解析:就是从主机名到IP的解析过程 先在工作目录/var/named/创建一个区域数据文件 以zcylinux.io域为例:vim/var/named/zcylinux.io.zone $TTL  600     #设置全局变量TTL的值为600s zcylinux.io.&nb…

    Linux干货 2017-05-30