做监控和备份最多

1. shell脚本是什么
它是一种脚本语言,并非编程语言
可以使用一些逻辑判断、循环等语法
可以自定义子函数
是系统命令的集合
shell脚本可以实现自动化运维,大大增加我们的工作效率

第一个shell脚本:
mkdir shell
cd shell/
vim 1.sh
`
`#! /bin/bash
`#This is a test shell script
`
`echo "123456."
`touch aming.111
`date

2. shell脚本结构以及执行方法
开头行指定bash路径: #! /bin/bash
以#开头的行作为解释说明
脚本的名字以.sh结尾,用于区分这是一个shell脚本
执行方式有两种:chmod +x 1.sh; ./1.sh
如果没有执行权限可以 bash 1.sh
也可以 sh 1.sh 可以查看ls -l /bin/sh

bash -x 1.sh 可以查看脚本执行过程

cal 输出日历的
cal -y 输出整年的日历

LANG=en

3. 学会date命令的用法
date +%Y-%m-%d, date +%y-%m-%d ,date +%F 年月日
date +%H:%M:%S = date +%T 时间

date +%s 时间戳
date -d "+1day"一天后
date -d "-1day"一天前
date -d "-1day" +%F 一天前的日期是多少
date -d "-1month" 一月前

date -d "-1hour" 一小时前
date -d "-1hour" +%T 一小时前的时间是多少,下面几个一样

date -d “-1min” 一分钟前
date -d “-1sec” 一秒前
date +%w, 星期 date +%W 一年的第几周,一年有52个周

把运行这个脚本的时间去生成一个日志,保存在tmp目录下
vim 2.sh
#! /bin/bash
d=`date +%T`
logname=$d.log
touch /tmp/$logname

执行就tmp就有这个日志了

bc 是计算器
一种是直接输入运输
一种 echo "365/7" |bc

4. shell脚本中的变量
当脚本中使用某个字符串较频繁并且字符串长度很长时就应该使用变量代替
使用条件语句时,变量是必不可少的
引用某个命令的结果时,用变量替代
写和用户交互的脚本时,变量也是必不可少的
内置变量 $0, $1, $2…
数学运算a=1;b=2; c=$(($a+$b))或者$[$a+$b]

echo "scale=2;5/2"|bc 输出的是2.50

vim 3.sh
#! /bin/bash
read -p "Pleaswe input Number" n
echo $n

========
read -t 3 -p "Pleaswe input Number" n t就是超时时间
===============

vim 4.sh
#! /bin/bash
echo $0
echo $1
echo $2

输入参数的时候$0输出的是本身4.sh

vim 5.sh
#! /bin/bash
n1=0
while :; :表示真的意思,也可以是1
do
read -p "please inpty a number :" n
m=`echo $n |sed 's/[0-9]//g'` m就是把数字全部删除掉然后判断是不是为空
l=`echo $m|wc -c` 如果是纯数字的话那肯定是空的,l如果不等
if [ $l !="1" ]; then 1就不是空的,肯定包含数字或者是纯字母
echo "the charater you input is not a number."
n1=`echo "$n1+1"|bc` l如果不等1就给他记录一次
else
echo "your number is $n" 如果是纯数字说明是空的就输出,然后退出
exit 0
fi
if [ $n1 == "5" ];then 如果输入的不是数字超过5次就退出
exit 1
fi
done

--------------
a=
echo $a |wc -c c是有几个字符串
输出的是1代表空字符,因为他有一个换行符

echo "12345a" |sed 's/[0-9]//g' 这里输出是a

echo "12345" |sed 's/[0-9]//g' 这里输出是空的
------------
5. shell中的逻辑判断
格式1:if 条件 ; then 语句; fi
格式2:if 条件; then 语句; else 语句; fi
格式3:if …; then … ;elif …; then …; else …; fi
逻辑判断表达式:if [ $a -gt $b ]; if [ $a -lt 5 ]; if [ $b -eq 10 ]等

-gt (>); -lt(<); -ge(>=); -le(<=);-eq(==); -ne(!=) 注意到处都是空格
可以使用 && || 结合多个条件
n=5
if [ $n -gt 2 ] && [ $n -lt 10 ]; then echo ok; else echo nook;fi
=
if [ $n -gt 2 -a $n -lt 1 ]; then echo ok; else echo nook;fi

-a 是与的意思
=========================
if [ $n -gt 2 ] || [ $n -lt 1 ]; then echo ok; else echo nook;fi
=
if [ $n -gt 2 -o $n -lt 1 ]; then echo ok; else echo nook;fi

-o 是或者的意思

=========================
格式1和格式2
vim 6.sh
#! /bin/bash
n=10
if [ $n -gt 5 ]
then
echo "greater than 5"
else
echo "not greater than 5"

fi

======================
格式3
vim 6.sh
#! /bin/bash
n=3
if [ $n -gt 5 ]
then
echo "greater than 5"
elif [ $n -lt 2 ]
then
echo "less than 2"
else
echo "greater than 2"

fi

6. if 判断文件、目录属性
[ -f file ]判断是否是普通文件,且存在
[ -d file ] 判断是否是目录,且存在
[ -e file ] 判断文件或目录是否存在======
[ -r file ] 判断文件是否可读
[ -w file ] 判断文件是否可写
[ -x file ] 判断文件是否可执行

echo $RANDOM 生成一个随机数
echo $RANDOM$RANDOM
echo $RANDOM$RANDOM$RANDOM |cut -c 1-10 只要前10位
或者
mkpasswd
mkpasswd -l 20
mkpasswd -l 20 -s 0 特殊符号
mkpasswd -l 20 -s 0 -c 0 -C 0

第三部分shell编程3(shell脚本编写1)的更多相关文章

  1. shell编程之服务脚本编写,文件锁以及信号捕获

    shell脚本编程是linux运维工程师必备的技能,也是非常重要的一个技能,所以把shell编程学好,只有好处.基础语法我也就不讲了,学过C语言这些语言的,稍微看一下就能明白shell编程的基础,所以 ...

  2. shell编程系列1--shell脚本中的变量替换

    shell编程系列1--shell脚本中的变量替换 变量替换总结: .${变量#匹配规则} # 从头开始匹配,最短删除 .${变量##匹配规则} # 从头开始匹配,最长删除(贪婪模式) .${变量%匹 ...

  3. 【Shell编程】Shell程序设计

    1.Shell简介   作为Linux灵感来源的Unix系统最初是没有图形化界面的,所有的任务都是通过命令行来实现的.因此,Unix的命令行系统得到了很大的发展,逐步成为一个功能强大的系统.   Sh ...

  4. (转)shell实现多级菜单脚本编写

    shell实现多级菜单脚本编写 原文:https://www.yuanmas.com/info/2gOwBPvqyb.html 这篇文章主要介绍了Shell实现多级菜单系统安装脚本实例分享,本文脚本用 ...

  5. Linux - 简明Shell编程11 - 调用脚本(CallTheScript)

    脚本地址 https://github.com/anliven/L-Shell/tree/master/Shell-Basics 示例脚本及注释 主脚本: CallTheScript.sh #!/bi ...

  6. 小鸟初学Shell编程(二)编写简单的Shell脚本

    Shell脚本 编写Python.PHP脚本通常需要掌握语言的函数,那么Shell脚本则不需要,只需要掌握Linux命令就可以编写Shell脚本,因为Shell脚本就是由多个Linux命令组成,通过将 ...

  7. Linux shell编程02 shell程序的执行 及文件权限

    第一个shell脚本 1.       shell编程的方式 交互式shell编程 非交互式shell编程:执行的语句存放到一个文件 shell脚本:可以任意文件名,建议扩展名为sh 2.       ...

  8. shell编程01—shell基础

    01.学习shell编程需要的知识储备 1.vi.vim编辑器的命令,vimrc设置 2.命令基础,100多个命令 3.基础.高端的网络服务,nfs,rsync,inotify,lanmp,sersy ...

  9. shell编程===执行shell脚本的四种方法

    使用vim创建一个shell文件,命名 hello.sh #!/bin/bash echo "hello shell !" 在linux中进行加载 chmod +x ./hello ...

  10. Shell编程—图形化脚本

    1创建文本菜单 1.1普通的文本菜单 $ cat menu1 #!/bin/bash # simple script menu function diskspace { clear df -k } f ...

随机推荐

  1. AtCoder Grant Contest 10.F 博弈

    题意:给定一棵树,每个节点有个权值,Alice和Bob轮流进行操作,给定游戏起点指针指向节点C.不断进行下述操作. 1.将当前节点权值-1,然后将指针从该节点移动到相邻节点,出现一方不能移动(即指针指 ...

  2. Java基础之static关键字的用法

    Java中的static关键字主要用于内存管理.我们可以应用static关键字在变量.方法.块和嵌套类中. static关键字属于类,而不是类的实例.        静态(static)可以是: 变量 ...

  3. linux 网络编程 3---(io多路复用,tcp并发)

    1,io模型: 阻塞io.非阻塞io.io多路复用,信号驱动io. 阻塞Io与非阻塞io的转换,可用fcntl()函数 #include<unistd.h> #include<fcn ...

  4. 从PRISM开始学WPF(七)MVVM(三)事件聚合器EventAggregator-更新至Prism7.1

    原文:从PRISM开始学WPF(七)MVVM(三)事件聚合器EventAggregator-更新至Prism7.1 事件聚合器EventAggregator [7.1updated]除了app部分,没 ...

  5. 理解Python的装饰器

    看Flask文档时候看到关于cache的装饰器,有这么一段代码: def cached(timeout=5 * 60, key=’view/%s’): def decorator(f): @wraps ...

  6. Appium的一点一滴:Android KEYCODE键值

    转自:http://blog.csdn.net/crisschan/article/details/50419963 - 电话键 键名 描述 键值 KEYCODE_CALL 拨号键 5 KEYCODE ...

  7. [转]JS私有化的实现——稳妥构造函数

    所谓稳妥对象, 指的是没有公共属性, 而且其方法也不引用this的对象.稳妥对象函数遵循与寄生构造函数类似的模式, 但有两点不同: 一是新创建对象的实例方法不引用this: 二是不使用new操作符调用 ...

  8. Objective-C Block数据类型 @protocol关键字

    Block数据类型 Block封装了一段代码 可以在任何时候执行 Block可以作为函数参数或者函数的返回值 而其本身又可以带输入参数或返回值 苹果官方建议尽量多用Block 在多线程 异步任务 集合 ...

  9. Oracle-数据库增删改查基本操作

    一.创建数据表 1).创建不存在的新表: create table tname(  Data_Name Date_Type [default][默认值]  );2).创建已存在表的副本 create ...

  10. CSP201509-2:日期计算

    引言:CSP(http://www.cspro.org/lead/application/ccf/login.jsp)是由中国计算机学会(CCF)发起的"计算机职业资格认证"考试, ...