认识脚本
是使用一种特定的描述性语言,依据一定的格式编写的可执行文件。脚本语言又被称为扩建的语言, 或者动态语言, 是一种编程语言, 用来控制软件应用程序, 脚本通常是以文本 (ASCⅡ) 保存, 只是在被调用时进行解释或者编译。
学习shell脚本的用途
对于一个合格的系统管理员来说,学习和掌握Shell编程是非常重要的。可以在很大程度上简化日常的维护工作,使得管理员从简单的重复劳动中解脱出来。
shell特点
1.shell是一个解释性语言(Python也是),不需要编译等过程,它是从脚本程序中一行一行的读取并执行命令;相对于其他语言来说较为简单。
2. shell是什么 shell(壳),又称之为命令解释器,是一种脚本语言,作用是当用户输入命令时,shell会将命令解析传递给内核,通过内核执行相应的动作。
学习shell知识储备:
熟练使用vim编译器
熟悉Linux的相关命令和一些基础的服务
熟悉三个工具,grep,sed,awk
脚本的命名规则
其命名规则和标识符的定义相似
一般使用驼峰法命名,第一个单词以小写字母开始;从第二个单词开始以后的每个单词的首字母都采用大写字母,例如:myFirstName、myLastName,国内喜欢用下划线,例如name_file等
shell脚本的基本构成
1.新建一个脚本文件,文件的首行一般为制定shell解释器#!/bin/bash
2.可以写一些合适的注释,在访问脚本时,快速理解执行语句的意思
3.一般约定成俗的在命名脚本文件时为filename.sh
4.可执行语句:即实现程序的功能
5.脚本内注释:-用#实现单行的注释;-用<
shell脚本的执行:
切换到shell脚本所在的目录执行shell脚本
使用绝对路径的方式去执行bash shell脚本
直接使用bash 或sh 来执行bash shell脚本
在当前的shell环境中执行bash shell脚本:source或".“
执行方法之间的区别
方法一和方法二脚本需要执行权限,./script_name.sh或/path/script_name.sh
方法三:可以在脚本中不指定解释器,脚本可以没有执行权限
方法四:当前shell执行,方法1-3开启子shell。
除此外脚本语言还分包括:Scala、JavaScript,VBScript,ActionScript,MAX Script,ASP,JSP,PHP,SQL,Perl,Shell,Python,Ruby等。
下面我们做一个脚本来看一下:
#!/bin/bash
# 获取要监控的本地服务器IP地址
IP=`ifconfig | grep inet | grep -vE 'inet6|127.0.0.1' | awk '{print $2}'`
echo "IP地址:"$IP
# 获取cpu总核数
cpu_num=`grep -c "model name" /proc/cpuinfo`
echo "cpu总核数:"$cpu_num
cpu_user=`top -b -n 1 | grep Cpu | awk '{print $2}' | cut -f 1 -d "%"`
echo "用户空间占用CPU百分比:"$cpu_user
# 获取内核空间占用CPU百分比
cpu_system=`top -b -n 1 | grep Cpu | awk '{print $4}' | cut -f 1 -d "%"`
echo "内核空间占用CPU百分比:"$cpu_system
# 获取空闲CPU百分比
cpu_idle=`top -b -n 1 | grep Cpu | awk '{print $8}' | cut -f 1 -d "%"`
echo "空闲CPU百分比:"$cpu_idle
#获取内存信息
# 获取物理内存总量
mem_total=`free | grep Mem | awk '{print $2}'`
echo "物理内存总量:"$mem_total
# 获取操作系统已使用内存总量
mem_sys_used=`free | grep Mem | awk '{print $3}'`
echo "已使用内存总量(操作系统):"$mem_sys_used
# 获取操作系统未使用内存总量
mem_sys_free=`free | grep Mem | awk '{print $4}'`
echo "剩余内存总量(操作系统):"$mem_sys_free
# 获取应用程序已使用的内存总量
mem_user_used=`free | sed -n 3p | awk '{print $3}'`
echo "已使用内存总量(应用程序):"$mem_user_used
# 获取应用程序未使用内存总量
mem_user_free=`free | sed -n 3p | awk '{print $4}'`
echo "剩余内存总量(应用程序):"$mem_user_free
# 获取交换分区总大小
mem_swap_total=`free | grep Swap | awk '{print $2}'`
echo "交换分区总大小:"$mem_swap_total
# 获取已使用交换分区大小
mem_swap_used=`free | grep Swap | awk '{print $3}'`
echo "已使用交换分区大小:"$mem_swap_used
# 获取剩余交换分区大小
mem_swap_free=`free | grep Swap | awk '{print $4}'`
echo "剩余交换分区大小:"$mem_swap_free
保存然后我们执行一下
如果提示没有权限记得chmod修改下权限,需要x执行权限。
这样我们一个简单的小脚本就完成了
比如还可以用shell写一个
#!/bin/bash
echo "Hello World !"
执行后会提示 Hello World !