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

相关推荐

  • 关于nginx状态监控字段的个人见解(求真相)

    今天看到了马哥视频其中一节对nginx状态监控信息的介绍,对视频ppt上的监控字段解析产生了一些疑问,ppt内容如下: active connections – 活跃的连接数量server accepts handled requests — 总共处理了xxx个连接 , 成功创建xxx次握手, 总共处理了xxx个请求reading — 读取客户端的连接数.w…

    Linux干货 2016-07-12
  • 少走冤枉路!带你走过SNMP的那些坑

    SNMP(Simple Network Management Protocol)即简单网络管理协议,是在网络与系统监控领域中,最常使用的一种数据采集技术。尽管这个协议非常简单,但在大规模IT环境监测中,还是经常会碰到各种坑,因此优云开源了一套友好的SNMPAPI,并通过本文简单介绍这套API中的一些特点,希望帮助各位运维同仁提前规避一些问题。 特点[0].&…

    2016-06-22
  • 计算机的组成及其功能

    计算机现如今已经成为了我们生活中不可缺少的一部分,那么它是由什么组成的呢?简单来说,计算机系统是由硬件系统(hardware system)和 软件系统(software system)两部分组成。 Mac电脑背景图.jpg 下面我们来罗列一下计算机系统的主要组成,请看下图 计算机系统组成.png 计算机的功能 我们知道计算机十分强大,那么它都有哪…

    Linux干货 2017-08-23
  • diy自己的linux

    准备一台liunx的机器,我用的是liunx虚拟机 单独加载一块硬盘,我加载了一块20G的硬盘,然后用fdisk /dev/sdb进行分区,sdb1用来作为将来系统的/boot分区,所有100M就可以了,sdb2用来作为将来系统的/分区,我给了10G。然后将两个分区格式化为ext4系统。 mkdir /mnt/boot mkdir /mnt/sdc2 mou…

    Linux干货 2016-09-14
  • linux【管道命令 PIPE】选取命令、排序命令、双向从定向、比较工具

    linux【管道命令 PIPE】选取命令、排序命令、双向从定向、比较工具 选取命令【cut,grep】 cut:可将一段信息的某一段‘切’出来。处理信息时使用以‘行’为单位。 cut -d ‘分割字符’ -f fields 用于分割字符 cut -c 字符范围 用于排列整齐的信息 参数: -d:后面接分隔字符,与-f一起使用 -f:以及-d的分割字符将一段信…

    Linux干货 2017-04-04
  • day6总结

    主要内容: useradd与usermod对比 groupadd与groupmod对比 passwd与chage对比 gpasswd与groupmems对比 切换用户 chown与chgrp用法 一般权限与特殊权限 chmod用法   useradd创建用户的初始信息存放在/etc/login.defs和/etc//default/useradd文…

    系统运维 2016-08-08