shell脚本的基础知识

1 什么是shell

shell就是脚本中命令的解释器

2 shell脚本的意义

  • 记录命令执行的过程和执行逻辑,以便以后重复执行
  • 脚本可以批量处理主机
  • 脚本可以定时处理主机

3 如何创建shell脚本

1)脚本中必须有 #!/bin/bash ,叫做幻数,表示此脚本是使用/bin/bash开解释执行的,其中‘#!’是特殊的表示字符,后面跟的是解释此脚本的shell路径。
2)vim自动添加脚本首部,为了方便了解脚本的基本信息,如创作者、创作时间等,可以在脚本前面加上一些简单的基本信息,为了简化每次在写脚本前,都要先写基本信息,可以在vim中设置,使脚本自动添加首部:

  • 编辑vim ~/.vimrc文件,设置内容如下,其中第一行表示创建一个脚本文件时,按下F12,会出现函数里设置的信息;第二行表示自定义一个函数名;第五行strftime是获取时间的,前面的‘.’表示连接连个字符串;最后结束函数:
    在这里插入图片描述
    新建一个脚本,按下F12,显示出头部信息;若重复按下F12,脚本头信息就会多次显示:
    在这里插入图片描述

  • 还可以设置开启一个脚本时,自动显示该函数里面的信息;编辑vim ~/.vimrc文件,设置以下信息,其中第一行表示若打开新的文件是以 .sh 结尾,就会自动生成脚本头部信息,若该文件已经存在,那么再次打开时,就不会添加新的头部信息:
    在这里插入图片描述
    新建一个脚本文件,头部信息自动生成:
    在这里插入图片描述

4 如何执行shell脚本

1)手动在环境中开启之指定解释器,输入“sh script.sh”即可

  • 建立一个shell脚本,写入cat命令,然后sh运行该脚本,此时脚本运行后是看不到任何结果的,按下‘ctrl+z’将该进程打入后台,然后使用‘ps f’命令查看进程信息,可以看到该进程在当前的shell中开启了一个新的shell,并且使用的是sh解释器:
    在这里插入图片描述
    使用‘fg’命令将运行在后台的进程转到前台运行,然后‘ctrl+c’结束:
    在这里插入图片描述
  • 以bash运行该脚本,打入后台,然后查看进程信息,可以看到该进程在当前的shell中开启了一个新的shell,并且使用的是bash解释器:
    在这里插入图片描述
    使用‘fg’命令将运行在后台的进程转到前台运行,然后‘ctrl+c’结束:
    在这里插入图片描述

2)直接在当前环境中运行shell中的指令不开启新的shell,输入“source script.sh”或 “. script.sh”

  • 输入source /mnt/qiao.sh运行该脚本,打入后台,查看进程信息,可以看到该脚本是在当前shell下运行的:
    在这里插入图片描述

  • 输入. /mnt/qiao.sh运行该脚本,打入后台,查看进程信息,可以看到该脚本是在当前shell下运行的,这两种运行方式的效果是一样的:
    在这里插入图片描述

3)开启脚本中指定的shell并使用此shell环境运行脚本中的指令

  • 上面两种运行脚本的方式,是在没有可执行权限的条件下;当给了脚本可执行权限后,就可以用绝对路径的方式来运行脚本:
    在这里插入图片描述

5如何对脚本脚本进行调试

在运行脚本时加上 ‘-x’,表示运行脚本时有运行输出
1)建立里一个脚本,并运行,此时会输出脚本内容的执行结果:
在这里插入图片描述
2)在脚本中再输入cat命令,再去运行脚本,此时脚本运行后会停止在当前的shell中,也没有其他输出:
在这里插入图片描述
3)若在其他更复杂的脚本运行时,遇到这种情况,就可以使用-x,查看详细输出;输出内容中,带有‘+’的表示脚本中运行的指令,而不带‘+’的表示脚本中命令运行的输出结果,此时就可以很快找出脚本停止的原因:
在这里插入图片描述

6 脚本练习

1)编写一个ip_show.sh,显示当前的ip:
在这里插入图片描述

2)编写一个host_messages.sh显示当前主机的名称、ip、以及登陆当前主机的用户:
在这里插入图片描述
注意:echo -n表示不换行输出
3)执行clear_log.sh脚本后,可以清空日志
在这里插入图片描述在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值