1.什么是shell
脚本中命令的解释器,Linux系统的shell作为操作系统的外壳,为用户提供使用操作系统的接口。它是命令语言、命令解释程序及程序设计语言的统称。 shell是用户和Linux内核之间的接口程序,如果把Linux内核想象成一个球体的中心,shell就是围绕内核的外层。当从shell或其他程序向Linux传递命令时,内核会做出相应的反应。 shell是一个命令语言解释器,它拥有自己内建的shell命令集,shell也能被系统中其他应用程序所调用。用户在提示符下输入的命令都由shell先解释然后传给Linux核心。
2.shell脚本执行的意义
记录命令执行的过程和执行逻辑,以便以后重复执行;脚本可以批量处理主机;脚本可以定时处理主机
3.如何创建脚本
#!/bin/bash 幻数
4.vim自动添加脚本首部内容
vim /etc/vimrc
65 map <F4> ms:call SKQTITLE()<cr>'s
66 func SKQTITLE()
67 call append(0,"###############")
68 call append(1,"# Author:skq")
69 call append(2,"# Mail:skq@163.com")
70 call append(3,"# Version:rhel8")
71 call append(4,"# Creat_time:".strftime("%Y-%m-%d"))
72 call append(5,"# Descrption:no")
73 call append(7,"")
74 call append(8,"################")
75 call append(9,"#!/bin/bash")
76 endfunc
autocmd BufNewfile *.sh,*.script call SKQTITLE()
67 func SKQTITLE()
68 call append(0,"###############")
69 call append(1,"# Author:skq")
70 call append(2,"# Mail:skq@163.com")
71 call append(3,"# Version:rhel8")
72 call append(4,"# Creat_time:".strftime("%Y-%m-%d"))
73 call append(5,"# Descrption:no")
74 call append(7,"")
75 call append(8,"################")
76 call append(9,"#!/bin/bash")
77 endfunc
5.如何执行shell脚本
1)手动在环境中开启指定的解释器 无论脚本是否有权限都可以执行 如sh test.sh
2) 直接在当前环境中运行shell中的指令不开启新的shell 如 source test.sh . test.sh
3) 开启脚本中指定的shell并使用此shell环境运行脚本中的指令
chmod +x test.sh
. test.sh
2)3)的效果一样
6.如何对脚本进行调试
sh -x test.sh
+ 代表运行指令
不带+ 代表命令的输出
脚本练习:
1.ip_show.sh 显示主机名 和 ip地址
2.hostname_message.sh 显示主机的名称 ip登录当前主机的用户
hostname: #######
ipaddress:#######
username:########
3. 执行clear_log.sh 可以清空日志