做监控和备份最多

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. Python学习:12.Python字符串格式化

    字符串格式化 讲解Python这么久,也没有讲解Python的字符串的格式化,那我们今天就来了解一下python字符串格式化的强大之处. 首先我们先理解一下为什么要有字符串的格式化,就是为了方便字符串 ...

  2. 数据结构之栈和队列及其Java实现

    栈和队列是数据结构中非常常见和基础的线性表,在某些场合栈和队列使用很多,因此本篇主要介绍栈和队列,并用Java实现基本的栈和队列,同时用栈和队列相互实现. 栈:栈是一种基于“后进先出”策略的线性表.在 ...

  3. C# 程序关闭托盘图标不会自动消失

    c#程序关闭托盘图标不会自动消失,进程的托盘图标却不能随着进程的结束而自动消失  必须将鼠标移到图标上面时才能消失?  请问如何才能做到图标随着进程的结束而自动消失呢(外部强行结束,如在任务管理器将其 ...

  4. Hibernate怎么用

    一.为什么用Hibernate? [核心:对象关系映射] Hibernate是对jdbc的轻量级封装,可以简化数据库连接操作, 在该框架之前,数据库的操作步骤是: 1.根据连接字串获取连接 2.执行s ...

  5. 成都Uber优步司机奖励政策(3月10日)

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

  6. Mac brew安装redis

    1.安装redis $ brew install redis Error:Failed to download resource "reds"  // 下载reds失败 不过不需要 ...

  7. Express 总结

    Express Express提供了一个轻量级模块,把nodejs的http功能封装在一个简单易用的接口中.Express也扩展了http模块的功能,能轻松处理服务器的路由.响应.cookie和HTT ...

  8. swoole 相关

    安装虚拟机 VMware Workstation Pro 安装CentOS CentOS-7-x86_64-Minimal-1708.iso 安装FinalShell 教程地址 安装lnmp 教程地址 ...

  9. iOS UIWebView加载时添加进度条01

    标注:此框架仅适合UIWebView  对iOS8后新出的WKWebView不适用,当然,你可以尝试修改框架里的几个代理方法. 框架是:NJKWebViewProgress 导入头文件 #import ...

  10. Linux命令应用大词典-第40章 网络客户端

    40.1 elinks:字符模式的Web浏览器 40.2 wget:从Web网站下载文件 40.3 curl:传输URL 40.4 lynx:通用分布式信息的万维网浏览器 40.5 lftp:实现文件 ...