1. shell
Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务,是脚本中命令的解释器。
2. shell脚本的意义
1、记录命令执行的过程和执行逻辑,以便以后重复执行;
2、脚本可以批量处理主机;
3、脚本可以定时处理主机。
3. 如何创建shell脚本
#!/bin/bash #幻数
#脚本执行的解释器,最优先运行
vim自动添加脚本首部
vim /etc/vimrc
"map <F4> ms:call WESTOSTITLE()<cr>'s # 手动添加,按F4增加首部
autocmd BufNewFile *.sh,*.script call WESTOSTITLE() # 自动添加,针对新文件、.sh或.script结尾的文件自动添加首部## MYTITLE函数体,即自动添加部分
func WESTOSTITLE()
call append(0,"#########################")
call append(1,"# Author: lee")
call append(2,"# Version: ")
call append(3,"# Create_Time: ")
call append(4,"# Mail: ")
call append(5,"# Info: ")
call append(6,"# ")
call append(7,"#########################")
call append(8,"")
call append(9,"#!/bin/bash")
endfunc
4. 如何执行shell脚本
1、手动在环境中开启指定解释器;
sh script.sh
2、直接在当前环境中运行shell中的指令不开启新的shell;
source script.sh或.script.sh
3、开启脚本中指定的shell并使用此shell环境运行脚本中的指令;
chmod +x script.sh
/xxxx/xxxx/script.sh
./script.sh
5. 调试脚本
sh -x /mnt/dsd.sh
+ #表示运行指令
不带+ #表示命令运行的输出
6. 脚本练习
1、ip_show.sh显示当前主机IP和名称
#!/bin/bash
ifconfig "$1" | awk '/inet\>/{print $2}'
hostname
2、host_messages.sh 显示当前主机的名称、ip以及当前主机的用户
#!/bin/bash
echo "hostname: `hostname`"
ifconfig `nmcli device status | awk '$2~/ethernet/{print $4}'` | awk '/inet\>/{print "ipaddress:" $2}'
ehco “ipaddress: ‘ifconfig br0 | awk ‘/inet\>/{print $2}’’”
echo "username: `whoami`"
3、clear_log.sh 执行此脚本之后清空日志
cat /etc/sysconfig/rsyslog ## 查询日志文件
#!/bin/bash
[ "`whoami`" = "root" ] || {
echo "You are not qualified,This script must be run in root!!"
exit}
for Log_Name in $(awk '/./&&!/^#/&&!/^\$/&&$2~/^\/|^\-/{print $2}' /etc/rsyslog.conf | sed 's/-//g')
do
> $Log_Name && {
echo $Log_Name is cleared
}
done