什么是shell
脚本中命令的解释器
linux常用的shell:bash、csh、tcsh
unix常用的shell:sh、kcsh
shell脚本的意义
1.记录命令执行的过程和执行逻辑,以便以后重复执行。
2.脚本可以批量处理主机
3.脚本可以定时处理主机
如何创建shell脚本
1.#!/bin/bash:幻数,#!的意思是优先执行/bin/bash这个命令,其他命令都是次优先的,都要在bash这个环境下运行。
在下图中我们可以看到,在当前的bash中开启了一个新的bash,执行watch -n 1 date命令。
2.vim自动添加脚本首部
(1)编辑/etc/vimrc文件
map < f4 >:映射f4这个快捷键
ms call LYUETITLE():去做什么,去调用LYUETITLE这个函数
< cr >'s:固定格式
autocmd:自动执行
BufNewFile:表明是一个新文件
*.sh, *.script:以.sh或.script结尾的调用LYUETITLE函数
0,1,2…表示第一行,第二行,第三行…
strftime(”%Y/%m/%d“):vim内建的时间戳采集器,Y年m月d天,两串独立的东西用点隔开。
2.测试
vim lyueyue.sh这是一个旧文件,所以不会做任何操作。
vim test.sh这是一个新文件,发现自动添加标题。
vim new.script这是一个新文件,发现自动添加标题。
如何执行脚本
1.手动在环境中开启指定解释器
sh lyueyue.sh
2.直接在当前环境中运行shell中的指令不开启新的shell
source lyueyue.sh
或
. lyueyue.sh
3.开启脚本中指定的shell并使用此shell环境运行脚本中的指令
#!/bin/xxx/lyueyue.sh
chmod +x lyueyue.sh
./lyueyue.sh
对于方式一
在bash中开启子shell sh(有新的环境的开启),在此环境中执行命令,可以保持环境的纯净性。
对于方式二
使用source和.发现没有新的环境开启,它使用当前的bash对命令进行解释。
对于方式三
对脚本进行调试
sh -x lyueyue.sh(类似/mnt/lyueyue.sh形式)
+ #运行指令
不带+ #命令运行的输出
发现运行cat命令时卡住了,一目了然。
shell脚本练习
1.ip_show.sh 网卡 显示当前网卡名称
2.host_messages.sh 显示当前主机的名称、ip、登陆当前主机的用户。
hostname: xxxxx
ipaddress: xxxx.xxxx.xxx.xxx
username: root
3.clear_log.sh 执行此脚本后可以清空日志