Shell的基础知识

本文介绍了Shell的基础知识,包括其作为命令解释器的角色和脚本的意义。详细讲解了如何创建和执行Shell脚本,以及如何通过vim自定义脚本首部。此外,还提供了一些实用的Shell脚本示例,如显示IP、主机信息和清理日志。同时,文章强调了权限管理和脚本测试的重要性。
摘要由CSDN通过智能技术生成
1.什么是shell

shell 是一个命令解释器,是系统跟计算机硬件交互时使用的中间介质,用户把指令告诉shell,然后shell再传输给系统内核,接着内核再去支配计算机硬件去执行各种操作。

2.shell脚本的意义

脚本是一种解释型语言不需要编译,用 shell 脚本保存执行动作,写的是在系统之中可执行的命令,用脚本判定命令的执行条件,用脚本来实现动作的批量执行
1.记录命令执行的过程和执行逻辑,以便以后重复执行
2.脚本可以批量处理主机
3.脚本可以定时处理主机

3.如何创建脚本

vim /etc/vimrc #此文件为全局配置文件对于所有用户生效

#!/bin/bash #幻数,在脚本运行时最先运行的指令,通常都是脚本中其他指定的运行环境

vim~/.vimrc  #在家目录中编辑只对当前用户本身生效
///
set nu #显示行号,
ts=2   #一个tab键表示两个空格
ai     #表示自动缩进
et     #表示把table键转换为空格

vim 自动添加脚本首部
autocmd BufNewFile *.sh,echoi*.script call SHELLTITLE()
func SHELLTITLE()
  call append(0,"#######################")
  call append(1,"# Author:       lee")
  call append(2,"# Version:      1.0")
  call append(3,"# Create_Time:  ".strftime("%Y/%m/%d"))
  call append(4,"# Mail:       lee@westos.org")
  call append(5,"# Info:          ")
  call append(6,"#")
  call append(8,"#######################")
  call append(9,"")
 call append(10,"#!/bin/bash")
endfunc
///

新建立的.sh文件会自动调用首部信息
比如 vim first.sh
在这里插入图片描述4.如何执行shell脚本
1).手动在环境中开启指定解释器
sh script.sh

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

3).直接在当前环境中运行shell并使此shell环境运行脚本中的指令
chmod +x script.sh
/xxx/xxx/script.sh
./script.sh

5.如何对脚本进行测试
sh -x /mnt/westos.sh
例如在上面的first.sh里面编写脚本文件,并进行测试

在这里插入图片描述
cat命令会出现报错:
在这里插入图片描述

带+ 表示所运行的指令,不带+ 表示命令运行的输出。
脚本练习:
1.ip_show.sh 网卡 显示当前的ip

vim ip_show.sh
///
#!/bin/bash
 [ -z "$1" ] && {
  echo "Error: Please input interface following script !!"
  exit
 }

ifconfig $1 &> /dev/null || {
   echo $1 is not found
  exit
 }&&{
 ifconfig $1 | awk '/\<inet\>/{print $2}'
: }
///

在这里插入图片描述2.host_message.sh 显示当前主机的名称,ip,登陆当前主机的用户

hostname: *******
ipaddress: ..***.***
username: ****

vim host_messages.sh
///
 #!/bin/bash
echo "hostname:       `hostname`"
echo "ipaddress:      `ifconfig ens3|awk '/inet\>/{print $2}'`"
echo "username:       `whoami`"
///

在这里插入图片描述
3.clear_log.sh 执行脚本后可以清空日志

vim clear_log.sh
///
#!/bin/bash
[ "$USER" != "root" ] && {
echo "Error: Please run script with root !!!"
exit
}
[ ! -e "/var/log/messages" ] && {
echo "Error: not found log file"
exit
}

> /var/log/messages && {
echo /var/log/messages is cleaned !
}
///

在这里插入图片描述不是超级用户身份则不能运行脚本!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值