第三部分shell编程3(shell脚本编写1)

做监控和备份最多

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

时间: 2024-10-22 00:16:29

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

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

shell脚本编程是linux运维工程师必备的技能,也是非常重要的一个技能,所以把shell编程学好,只有好处.基础语法我也就不讲了,学过C语言这些语言的,稍微看一下就能明白shell编程的基础,所以我们直接切入正题. 开班第20天: 今天的课程大纲: shell编程中的函数 编写一个自动挂载的脚本 利用autofs怎么实现自动挂载 文件锁和信号捕获trap sed流文件编辑器 详细讲解: shell编程中的函数 shell中,我们定义函数的方法有两种: 下面调用的时候,直接调用函数名就可以了

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

shell实现多级菜单脚本编写 原文:https://www.yuanmas.com/info/2gOwBPvqyb.html 这篇文章主要介绍了Shell实现多级菜单系统安装脚本实例分享,本文脚本用多级菜单实现LAMP.LNMP安装展现效果,需要的朋友可以参考下: 提示:本脚本主要实现多级菜单效果,并没有安装LAMP.LNMP环境,如果要用在实际生成环境中部署LNMP.LAMP环境,只需要简单修改一下就可以了. 演示效果: 1.一级菜单 2.二级菜单 3.执行操作 脚本参考: 代码如下: #!

Shell编程—构建基本脚本

1. 使用多个命令 如果要两个命令或者多个命令一起运行,可以把它们放在同一行中,彼此间用分号隔开. 2. 创建 shell 脚本文件 在创建shell脚本文件时,必须在文件的第一行指定要使用的shell.其格式为: #!/bin/bash 在通常的shell脚本中,井号(#)用作注释行.shell并不会处理shell脚本中的注释行.然而,shell脚本文件的第一行是个例外,#后面的惊叹号会告诉shell用哪个shell来运行脚本(是的,你可以使用bash shell,同时还可以使用另一个shel

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

Shell脚本 编写Python.PHP脚本通常需要掌握语言的函数,那么Shell脚本则不需要,只需要掌握Linux命令就可以编写Shell脚本,因为Shell脚本就是由多个Linux命令组成,通过将多个Linux命令组合保存成一个脚本文件,可直接给其他人使用. 组合命令 进入一个目录,查看目录的文件,这个过程分别需要执行两条命令,分别是cd 和ls. 分开执行两个命令的形式如下: [[email protected] usr]# cd /usr/ [[email protected] usr]

shell编程01—shell基础

01.学习shell编程需要的知识储备 1.vi.vim编辑器的命令,vimrc设置 2.命令基础,100多个命令 3.基础.高端的网络服务,nfs,rsync,inotify,lanmp,sersync,sshkey批量分发管理 02.shell脚本概念 1.什么是shell shell是一个命令解释器,在操作系统的最外层,负责直接与用户对话,将用户的输入解释给操作系统,并输出操作系统各种各样的处理结果,输出到屏幕返回给用户.这种对话方式可与是交互式的(键盘输入命令,可以立即得到shell的回

Shell编程之三 —— shell script 脚本(未完待续)

1.脚本的语法构成: shell script 是利用 shell 的功能所写的一个『程序(program)』,这个程序是使用纯文本文件(文件后缀名最好为sh文件,方便我们管理),将一些 shell 的语法与指令(含外部指令)写在里面, 搭通配符.配正规表示法.管线命令与数据流重定向.条件判断.循环逻辑等功能,以达到我们所想要的处理目的. 构成(常见):shell语法和外部指令   通配符     [a-z]  [A-Z]     ?    *          正规表达式      管线命令

linux基础之shell编程(3)-给脚本设置参数

bash的变量类型 本地变量(局部变量) 环境变量 位置变量:$1,$2,$3, ... 特殊变量:$?,$#,$*,[email protected] 那让脚本拥有获取外界参数的能力就要用的位置变量,$1代表第一个参数,$2代表第二个参数,依次类推 例: vartest.sh #!/bin/bash # ONEVAR=$1 TWOVAR=$2 THREEVAR=$3 echo "第一个参数是:${ONEVAR}" echo "第二个参数是:${TWOVAR}" e

shell实现多级菜单脚本编写

这篇文章主要介绍了Shell实现多级菜单系统安装脚本实例分享,本文脚本用多级菜单实现LAMP.LNMP安装展现效果,需要的朋友可以参考下: 提示:本脚本主要实现多级菜单效果,并没有安装LAMP.LNMP环境,如果要用在实际生成环境中部署LNMP.LAMP环境,只需要简单修改一下就可以了. 演示效果: 1.一级菜单 2.二级菜单 3.执行操作 脚本参考: 代码如下: #!/bin/bash # [ -f /etc/init.d/functions ] && . /etc/init.d/fun

Linux Shell编程实战---Shell中的文本切片技术

Shell中的文本切片技术 在shell中竟然也是有字符串切片这个东西存在的,一直在python中运用切片,下面记录一下shell中切片的用法. (1).替换变量内容中的部分文本 $var="This is a line of text" $ echo${var/line/REPLACED} This is aREPLACED of text" line被替换成REPLACED. (2).指定字符串的起始位置和长度来生成子串 语法如下: ${variable_name:sta

shell编程基础-shell分库备份

分库备份企业实战题7:如何实现对MySQL数据库进行分库备份,请用脚本实现 #!/bin/bash MysqlUser=root PassWord=root Port=3306 Socket="/usr/include/mysql/mysql.sock" MysqlCmd="mysql -u$MysqlUser -p$PassWord -S $Socket" Database=`$MysqlCmd -e "show databases;"|egr