1、什么是shell
shell是外壳的意思,就是操作系统的外壳。我们可以通过shell命令来操作和控制操作系统,比如Linux中的shell命令就包括ls、cd、pwd等等。总结来说,shell是一个命令解释器,它通过接受用户输入的Shell命令来启动、暂停、停止程序的运行或对计算机进行控制。
2、shell脚本的意义
shell脚本与Windows/Dos下的批处理相似,也就是将各类命令预先放入到一个文件中方便一次性执行,这个程序文件就叫做shell脚本。shell脚本可以记录命令执行的过程和执行逻辑,以便以后重复执行,还可以批量、定时处理主机,方便管理员进行设置或者管理。它比Windows下的批处理更强大,比用其他编程语言编写程序的效率更高。
3、如何创建shell脚本
创建shell脚本时,通常会新建以.sh或.script结尾的文件,但shell脚本不一定要以.sh结尾,以.sh结尾只是为了拿到该文件的人能够快速识别该文件为脚本,即命名规范。创建脚本后在进一步写入命令前,我们需要写入幻数 #!/bin/bash,#!/bin/bash可以理解为脚本文件中所有命令运行的环境。
练习:
1、vim 自动添加行号
vim /etc/vimrc #此文件为全局变量文件对所以用户生效
2、编写脚本自动生成脚本中通常要有的基本信息
在空目录/mnt下,新建以.sh结尾的脚本文件,通常我们需要在进一步写入命令前写入#!/bin/bash和脚本首部信息,为了避免每次手动输入,可以编写vim的子配置文件~/.vimrc(只针对脚本编写者自己生效)设置自动添加脚本首部信息的函数:func为函数类型标志;endfunc为函数结束标志;call表示调用;append表示添加语句。在append添加语句中,0表示在第一行添加,所要添加的内容需要用 “ ” 引起来;当需要添加多个内容时,可以用 . 隔开,strftime表示自动识别捕捉时间并以年/月/日格式输出显示。自动添加脚本首部信息的函数编写完成后,我们在编写脚本时可以通过以下方式调用该函数:
调用方法: autocmd设定当新建以.sh或.script结尾的文件时自动调用函数
4、如何执行shell脚本
1、创建并编写脚本westos.sh,写入命令(cal命令表示显示当前月的日历)
脚本有无权限时运行方式的区别:新建脚本文件linux.sh输入cat命令(执行脚本时会一直处于运行状态)
2、当脚本文件无可执行权限时,可以使用以下三种方式运行脚本:
方法一: sh westos.sh—手动在环境中开启指定解释器
方法二: . westos.sh—直接在当前环境中运行shell中的指令不开启新的shell
方法三: source westos.sh—直接在当前环境中运行shell中的指令不开启新的shell
5、如何对脚本进行调试
1、编写脚本westos.sh,写入命令
2、脚本中写入的cat命令格式错误,运行脚本时会一直处于运行状态
3、我们可以在运行脚本时使用-x 参数显示脚本运行过程,通过显示的信息来调试脚本,显示的信息中+表示运行的指令,不带+表示指令运行的结果,可以看到脚本在执行cat命令时出错
命令练习:
1、编写脚本ip_show.sh显示当前的ip
思路:使用ifconfig ens3查看网卡信息后,通过管道使用awk命令截取inet关键字后没有字符的行的第二列即可得到当前主机的ip
2、编写脚本host_messages.sh显示当前主机的名称、ip和登陆当前主机的用户
思路:使用hostname命令查看显示当前主机的名称;使用ifconfig ens3查看网卡信息后,通过管道使用awk命令截取inet关键字后没有字符的行的第二列即可得到当前主机的ip;使用$USER、whoami命令显示登陆当前主机的用户
\t表示一个tab键,\n表示换行
输出中有\t、\n时前面必须加-e参数执行动作
3、编写脚本clear_log.sh 执行后可以清空日志