做监控和备份最多

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. Leecode刷题之旅-C语言/python-203移除链表元素

    /* * @lc app=leetcode.cn id=203 lang=c * * [203] 移除链表元素 * * https://leetcode-cn.com/problems/remove- ...

  2. ...续上文(一个小萌新的C语言之旅)

    我们继续上次没介绍完的继续讲: 下面我们说一下二进制,二进制是计算技术中广泛采用的一种 数制. 二进制数据是用0和1两个 数码来表示的数.它的基数为2,进位规则是“逢二进一”.那么二进制怎么转化为十进 ...

  3. Java 高级应用编程 第一章 工具类

    一.Java API Java API简介 1.API (Application Programming Interface) 应用程序接口 2.Java中的API,就是JDK提供的各种功能的Java ...

  4. BZOJ1085_骑士精神_KEY

    题目传送门 乍一看好像是搜索题,但搜索明显会超时. 此处采用IDA*的方法求解. IDA*算法就是基于迭代加深的A*算法. code: /******************************* ...

  5. 北京Uber优步司机奖励政策(2月19日)

    滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...

  6. 代码混淆防止APP被反编译指南

    本文来自网易云社区 安卓App安全包含很多内容,包括混淆代码.整体Dex加固.拆分 Dex 加固.虚拟机加固等方面.事实上,这些内容也是国内近几年Android App安全保护的一种主要趋势. 混淆代 ...

  7. Android 模拟器 下载、编译及调试

    Android 模拟器源码下载 Android 模拟器源码的下载与 Android AOSP 源码库的下载过程类似,可以参考 Google 官方提供的 Android 源码下载文档 来了解这个过程. ...

  8. Ruby 基础教程1-4

    1.对象 数值对象 字符串对象 数组对象,散列对象 正则表达式对象 时间对象 文件对象 符号对象 2.类 Numeric String Array Hash Regexp File Symbol 3. ...

  9. 金山注入浏览器默认开启上网导航 www.uu114.cn

    金山注入浏览器默认开启上网导航 www.uu114.cn 今天突然发现我的电脑所有浏览器打开后,都会默认打开一个www.uu114.cn网站,chrome.firefox和IE都中招了.经过排查,发现 ...

  10. MySQL☞sign函数

    sign( )函数:判断数值的正负性,如果数值是正数,返回值是1,如果该数值是负数,返回值是-1,如果该数值是 0,返回值也是0. 格式: select sign(数值) from 表名 例子: 1. ...