shell编程

Shell编程之条件判断

混江龙づ霸主 提交于 2020-02-26 01:21:03
一、条件判断语法结构 条件判断相关参数 1)判断文件类型 2)判断文件权限 3)判断文件新旧 4)判断整数 5)判断字符串 6)多重条件判断 二、流程控制语句 基本语法结构 1)if结构 2)if...else结构 3)if...elif...else结构 4)层层嵌套结构 应用案例 1)判断两台主机是否ping通 2)判断一个进程是否存在 3)判断一个服务是否正常 4)判断用户是否存在 5)判断软件包是否安装 6)判断当前主机的内 一、条件判断语法结构 思考:何为真(==true==)?何为假(==false==)? ##1. ==条件判断语法格式== 格式1: == test == 条件表达式 格式2: [ 条件表达式 ] 格式3: [[ 条件表达式 ]] 支持正则 =~ 特别说明: 1)==[== 亲亲,我两边都有空格,不空打死你呦 ==]== :imp: 2)==[[== 亲亲,我两边都有空格,不空打死你呦 ==]]==:imp: 3) 更多判断,`man test`去查看,很多的参数都用来进行条件判断 2. 条件判断相关参数 1)判断文件类型 判断参数 含义 ==-e== 判断文件是否存在(任何类型文件) -f 判断文件是否存在==并且==是一个普通文件 -d 判断文件是否存在并且是一个目录 -L 判断文件是否存在并且是一个软连接文件 -b

Shell编程之循环语句

佐手、 提交于 2020-02-26 01:20:37
一、for循环语句 1.for循环语法结构 1)列表==循环 2)不带列表循环 3)类C风格的for循环 2.应用案例 1)脚本==计算==1-100奇数和 2)判断所输整数是否为质数 3)批量创建用户 4)批量创建用户 5)局域网内脚本检查主机网络通讯 6)判断闰年 二、while循环语句 1.while循环语法结构 2.应用案例 1)脚本计算1-50偶数和 2)脚本同步系统时间 三、until循环 1.until语法结构 2.应用案例 1)具体需求 2)思路 3)落地实现 一、for循环语句 1. for循环语法结构 1)列表==循环 列表for循环:用于将一组命令执行 ==已知的次数== 基本语法格式 for variable in {list} do command command … done 或者 for variable in a b c do command command done 举例说明 # for var in {1..10};do echo $var;done # for var in 1 2 3 4 5;do echo $var;done # for var in `seq 10`;do echo $var;done # for var in $(seq 10);do echo $var;done # for var in {0..10..2};do

Shell编程之嵌套循环

主宰稳场 提交于 2020-02-26 01:20:29
一、随机数 1.如何生成随机数? 2.实战案例 1)随机产生以139开头的电话号码 2)随机抽出5位幸运观众 3)批量创建用户(密码随机产生) 二、嵌套循环 1.应用案例 1)打印指定图案 2)落地实现1 3)落地实现2 三、阶段性补充总结 1.影响shell程序的内置命令 四、综合案例 1.实战案例1 1)具体需求 2)案例分析 3)落地实现 实战案例2 一、随机数 1. 如何生成随机数? 系统变量 : ==RANDOM== ,默认会产生0~32767的随机整数 前言: 要想调用变量,不管你是什么变量都要给钱,而且是美元:heavy_dollar_sign: 打印一个随机数 echo $RANDOM 查看系统上一次生成的随机数 # set|grep RANDOM RANDOM=28325 产生0~1之间的随机数 echo $[$RANDOM%2] 产生0~2之间的随机数 echo $[$RANDOM%3] 产生0~3之间的随机数 echo $[$RANDOM%4] 产生0~9内的随机数 echo $[$RANDOM%10] 产生0~100内的随机数 echo $[$RANDOM%101] 产生50-100之内的随机数 echo $[$RANDOM%51+50] 产生三位数的随机数 echo $[$RANDOM%900+100] 2. 实战案例 1)随机产生以139开头的电话号码

第 5 章 shell编程_课后题

Deadly 提交于 2020-02-25 18:56:57
考试题1:用source执行脚本和用bash执行Shell脚本的区别是什么? souce执行脚本相当于是在一个shell当中,而bash执行脚本相当于开启了一个子shell。就变量而言,一个shell当中执行的变量是可以用的,而子shell的变量,父shell中是不能继承的,子脚本执行完后,变量就失效了。 考试题2:如何自定义环境变量? 变量分为:环境变量和普通变量,环境变量定义:例子 echo 'Oldboy=od' >>/etc/bashrc source /etc/bashrc 优先级: /etc/bashrc ~/.bashrc ~/.bash_profile /etc/profile 考试题3:定义变量内容,不加引号、单引号、双引号、反引号结果有什么不同?应该怎么用? 不加引号:默认相当是双引号 数字 单引号:所见即所得,吃啥吐啥 不想被解析的变量、函数 双引号:会将变量、函数、特殊符号等解析出来 字符串 反引号:会先计算反引号里面的命令 想优先计算的命令 考试题4:请分别说出2个以上用于整数运算特殊符号或命令,以及适合小数运算的命令。 整数:(()) expr let $[] 适合小数:bc awk 考试题5:写出特殊变量对应的意义及应用 br/>$0、$n、$#、$*、$@、$?、$$、$!、$_ $0表示文件名 br/>$n表示第n个参数 $#表示参数的个数 $

学习shell script

≡放荡痞女 提交于 2020-02-22 17:44:39
学习shell script 1.什么是shell script 1.1.编写第一个script程序 1.2.script编程的良好习惯 2.简单范例 2.1.交互式脚本 2.2.随日期变化 2.3.不同的script的执行方式的区别 3.判断指令 3.1.test命令的用法 3.2.脚本文件的默认变量 4.条件判别 4.1.利用 if...then 4.2.利用case...esac判断 4.3.function函数 5.循环loop 5.1. while do done, until do done 5.2. for..do..done 5.3 for...do...done数值处理 1.什么是shell script shell script 就是一种程序化脚本。shell是让用户和系统沟通的一种工具,我们所使用的bash就是shell的一种。而shell script 就是用shell功能来写一个程序。 1.1.编写第一个script程序 第一个程序的功能就是简单输出hello world zhangsan@Aliyun:~$ mkdir script ; cd script zhangsan@Aliyun:~$ vim zhangsan01.sh 1 #!/bin/bash 2 # This is the program show "Hello world" 3 PATH

《网络攻防实践》假期作业

浪子不回头ぞ 提交于 2020-02-17 14:55:07
一.总体概述 这个作业属于哪个课程: https://edu.cnblogs.com/campus/besti/19attackdefense 这个作业的要求在哪里: https://edu.cnblogs.com/campus/besti/19attackdefense/homework/10228 我在这个课程的目标:学习并掌握网络攻防知识,能完成相关实践 这个作业在哪个具体方面帮助我实现目标:学习Linux操作命令 二.作业 作业一 1.你对网络攻击和防御了解多少?该课程需要计算机和网络相关的基础知识,你原专业是什么专业,目前你掌握多少基础知识? 对网络攻击和防御了解比较浅薄。 原专业电子信息工程,与计算机和网络的相关知识学习较少,学习过C语言。 2.作业要使用Markdown格式,Markdown入门参考(需掌握) 上学期在导师的要求下用博客园汇报学习心得,对Markdown格式比较熟悉。 作业二 1.学习基于VirtualBox虚拟机安装Ubuntu图文教程在自己笔记本上安装Linux操作系统(也可以使用VMWare安装虚拟机,安装方法自己百度) 官网下载VirtualBox和Ubuntu,按照图文教程安装,一路确定即可。 2.通过实践学习别出心裁的Linux命令学习法,掌握Linux命令的学习方法 (1)掌握Ubuntu有几个快捷键,可以提高使用命令行的效率: CTRL

shell中的函数

梦想的初衷 提交于 2020-02-16 19:11:42
函数:功能, function 作用:代码重用 库:so function: 功能 结构化编程,不能独立运行,需要调用时执行,可以被多次调用 定义一个函数: function FUNCNAME { command } or FUNCNAME ( ) { command } 举例: # ! / bin / bash cat << EOF d | D ) show disk usages m | M ) show memory usages s | S ) show swap usages q | Q ) quit . EOF read - p "Your choice:" CHOICE until [ $ CHOICE == "q" - o $ CHOICE == "Q" ] ; do case $ CHOICE in d | D ) df - h ; ; m | M ) free - m | grep "^Mem" ; ; s | S ) free - m | grep "^Swap" ; ; * ) cat << EOF d | D ) show disk usages m | M ) show memory usages s | S ) show swap usages q | Q ) quit EOF read - p "Your choice:" CHOICE esac

Shell编程之test

微笑、不失礼 提交于 2020-02-16 10:03:31
test 是 Shell 内置命令,用来检测某个条件是否成立。test 通常和 if 语句一起使用,并且大部分 if 语句都依赖 test。 test 命令有很多选项,可以进行数值、字符串和文件三个方面的检测。 Shell test 命令的用法为: test expression 当 test 判断 expression 成立时,退出状态为 0,否则为非 0 值 test 命令也可以简写为[],它的用法为: [ expression ] # 注意[]和expression之间的空格,这两个空格是必须的,否则会导致语法错误。[]的写法更加简洁,比 test 使用频率高 #!/bin/bash read age if test $age -le 2; then echo "婴儿" elif test $age -ge 3 && test $age -le 8; then echo "幼儿" elif [ $age -ge 9 ] && [ $age -le 17 ]; then echo "少年" elif [ $age -ge 18 ] && [ $age -le 25 ]; then echo "成年" elif test $age -ge 26 && test $age -le 40; then echo "青年" elif test $age -ge 41 && [ $age

shell基础

限于喜欢 提交于 2020-02-15 23:52:39
shell基础 1.shell是什么? 首先shell的英文含义是“壳”; 它是相对于内核来说的,因为它是建立在内核的基础上,面向于用户的一种表现形式,比如我们看到一个球,见到的是它的壳,而非核。 Linux中的shell,是指一个面向用户的命令接口,表现形式就是一个可以由用户录入的界面,这个界面也可以反馈运行信息 shell在Linux中的存在形式: 由于Linux不同于Windows,Linux是内核与界面分离的,它可以脱离图形界面而单独运行,同样也可以在内核的基础上运行图形化的桌面。 这样,在Linux系统中,就出现了两种shell表现形式,一种是在无图形界面下的终端运行环境下的shell,另一种是桌面上运行的类似Windows 的MS-DOS运行窗口,前者我们一般习惯性地简称为终端,后者一般直接称为shell shell如何执行用户的指令: shell有两种执行指令的方式,第一种方法是用户事先编写一个sh脚本文件,内含shell脚本,而后使用shell程序执行该脚本,这种方式,我们习惯称为shell编程。 第二种形式,则是用户直接在shell界面上执行shell命令,由于shell界面的关系,大家都习惯一行行的书写,很少写出成套的程序来一起执行,所以也称命令行。 总结: shell可以说只是为用户与机器之间搭建成的一个桥梁,让我们能够通过shell来对计算机进行操作和交互

shell编程----select语句

久未见 提交于 2020-02-15 11:16:41
目录标题 select语句 select语句   select in 循环用来增强交互性,它可以显示出带编码的菜单,用户输入不同的编号就可以选择不同的菜单,并执行不同的功能。select in是shell独有的一种循环,非常适合终端这样的交互场景,c语言、c++、java、pytho、c#等其他编程语言中时没有的。 select in循环的用法如下: select variable in value_list do statements done #!/bin/bash echo "what is your favorite os?" select name in "linux" "windows" "mac os" "unix" "android" do echo $name done echo "you have selected $name " 结果: what is your favorite os? linux windows mac os unix android #? 3 mac os #? 5   #?用来提示用户输入菜单编号;ctrl+d组合键,作用是结束select in循环。   每次循环时select都会要求用户输入菜单编号,并使用环境变量ps3的值作为提示符,ps3的默认值为#?,修改ps3的值就可以修改提示符。 #!/bin/bash echo