1.什么是shell?##
Shell 是一个应用程序,它连接了用户和 Linux 内核,让用户能够更加高效、安全、低成本地使用 Linux 内核,这就是 Shell 的本质。Shell 本身并不是内核的一部分,它只是站在内核的基础上编写的一个应用程序,是脚本中命令的解释器
2.shell脚本的意义
1.记录命令执行的过程和执行逻辑,以便以后重复执行
2.脚本可以批量处理主机
3.脚本可以定时处理主机
3.如何创建shell脚本
#!/bin/bash ##幻数
3.1 自动添加脚本首部
只针对当前家目录下的用户生效
(1)设置快捷键
func WESTOS()
call append(0,"#########################") ##注释信息的第一行
call append(1,"# Author: linux") ##注释信息的第二行
call append(2,"# CREATE_TIME:".strftime("%Y/%m/%d")) ##注释信息的第三行,显示的是添加注释的日期
endfunc
map <F1> ms:call WESTOS()<cr>'s ##vim打开文件时,F1快捷键会自动生成上述的注释信息
每按F1一次就会添加一次注释的内容
(2)创建文件时自动添加注释
检测到新建文件并且文件是以".sh"结尾时自动添加注释
4 执行shell脚本的方式
(1)手动在环境中开启指定的解释器
sh test.sh ## 执行test.sh文件,一般情况下默认shell脚本以.sh结尾
(2)直接在当前环境中运行shell中的指令时,不开启新的shell
source test.sh
. test.sh
(3)开启脚本中指定的shell并使用shell环境运行脚本中的指令
chmod +x test.sh ##给脚本一个可执行权限
./test.sh ## 执行脚本
5 脚本的调试
sh -x test.sh ##脚本的调试
输出:
带“+” ##运行指令
不带“+” ##命令运行的输出
若脚本执行过程中出错:
测试:
(1)ip_show.sh 网卡 显示当前的主机ip
#!/bin/bash
[ -z $1 ] && {
echo please input name following script !
exit
}
ip addr show $1 &>/dev/null ||{
echo "$1 is not exit!"
exit
}
echo $(ip addr show $1 | grep -E "inet\>"| cut -c 10-23 )
(2)host_messages.sh 显示当前主机的名称,ip登陆当前主机的用户
hostname: xxxxx
ipaddress: xxxx.xxxx.xxx.xxx
username: root
hostname
ifconfig enp1s0 |grep -E "inet\>"|awk -F " " '{print $2}'
id -nu
(3)clear_log.sh 执行次脚本后可以清空日志
[ $USER = root ] || {
echo please run with root!
exit
}
LIST=$(sed -ne 's/-//g;/\/var\/log/p' /etc/rsyslog.conf |awk -F " " '{print $2}')
for i in $LIST
do
>$i
echo "$i is cleared!"
done