【Linux学习】shell脚本语言


本文摘自PHP中文网,作者little bottle,侵删。

shell 是操作系统中“提供使用者使用界面”的软件,它包在 linux 内核的外面,为用户和内核之间的交互提供了一个接口,系统中的命令用 shell 去解释,shell 接收系统回应的输出并显示其到屏幕中。

1.shell简介

  • 解释性语言――shell脚本、python,运行效率低,基本只适用企业内部
    shell――脚本,记录系统命令及命令执行的系统关系,充当解释器
    gcc ――编译器
    vim ――编辑器

1

#!/bin/bash          幻数,指定解释器#!/usr/bin/env bash  自动匹配解释器

  • 描述性语言――C语言、java,执行效率高

1.脚本的调用
脚本(一般以.sh结尾):

1

[root@desktop5 mnt]# vim westos.sh#!/bin/bash echo hello westos

方法一:无执行权限,用sh调用

1

[root@desktop5 mnt]# sh westos.sh

方法二:有执行权限,用绝对路径调用

1

[root@desktop5 mnt]# chmod +x westos.sh [root@desktop5 mnt]# /mnt/westos.sh

2.脚本的检查


1

+ 表示:执行动作

无+表示:动作输出


方法一:

1

[root@desktop5 mnt]# sh -x /mnt/westos.sh

这里写图片描述
方法二:

1

[root@desktop5 mnt]# vim westos.sh#!/bin/bash -xecho hello westos

这里写图片描述


实验一:快捷键F4执行填充
方法一:

1

2

3

4

5

6

7

8

9

10

[root@desktop5 mnt]# vim /etc/vimrc map <F4> ms:call WESTOS()<cr>'s      

##ms:执行命令时,不提示报错function WESTOS()        

call append(0,"#################################")        

call append(1,"# Author :       Hao            #")        

call append(2,"# Mail :         Hao@westos.com #")        

call append(3,"# Version :      1.0            #")        

call append(4,"# Create_Time:   ".strftime("%Y-%m-%d")."     #")    ##时间更新

call append(5,"# Description:                  #")        

call append(6,"#################################")

endfunction

方法二:利用.来承接后面的#

1

2

3

4

5

6

7

8

9

map <F4> ms:call WESTOS()<cr>'sfunction WESTOS()        

call append(0,"#################################")        

call append(1,"# Author :       Hao".("            #"))        

call append(2,"# Mail :         Hao@westos.com".(" #"))        

call append(3,"# Version :      1.0           ".(" #"))        

call append(4,"# Create_Time:   ".strftime("%Y-%m-%d").("     #"))        

call append(5,"# Description:                 ".(" #"))        

call append(6,"#################################")

endfunction

测试:

1

[root@desktop5 mnt]# vim westos.sh        ##按‘F4’执行填充

这里写图片描述

实验二:执行新建以.sh结尾的vim文件时,自动填充
注意:旧文件不自动填充
方法一:

1

2

3

4

5

6

7

8

9

10

[root@desktop5 mnt]# vim /etc/vimrc autocmd BufNewFile *.sh exec ":call WESTOS()"    ##新文件,以.sh结尾,执行,调用文件"map <F4> ms:call WESTOS()<cr>'s           ##此行注释,在此"表注释function WESTOS()

         call append(0,"#################################")

         call append(1,"# Author :       Hao            #")

         call append(2,"# Mail :         Hao@westos.com #")

         call append(3,"# Version :      1.0            #")

         call append(4,"# Create_Time:   ".strftime("%Y-%m-%d")."     #")

         call append(5,"# Description:                  #")

         call append(6,"#################################")

         call append(7,"")

         call append(8,"#!/bin/bash")endfunction

方法二:

1

2

3

4

5

6

7

8

9

10

11

12

[root@desktop5 mnt]# vim /etc/vimrc autocmd BufNewFile *.sh exec ":call WESTOS()""map <F4> ms:call WESTOS()<cr>'s

function WESTOS()

         call append(0,"#################################")

         call append(1,"# Author :       Hao".("            #"))

         call append(2,"# Mail :         Hao@westos.com".(" #"))

         call append(3,"# Version :      1.0           ".(" #"))

         call append(4,"# Create_Time:   ".strftime("%Y-%m-%d").("     #"))

         call append(5,"# Description:                 ".(" #"))

         call append(6,"#################################")

         call append(7,"")

         call append(8,"#!/bin/bash")

endfunction

这里写图片描述
测试:

1

[root@desktop5 mnt]# vim file1.sh  ##新建以.sh结尾的文件,自动填充


2.shell脚本练习

练习一:显示当前主机ip地址

1

[root@desktop5 mnt]# vim ip_show.sh#!/bin/bashifconfig eth0 | awk -F " " '/inet /{print $2}'  ##inet所在行,以空格间隔,第二个字符

这里写图片描述
测试:

[root@desktop5 mnt]# sh ip_show.sh

这里写图片描述
练习二:显示当前主机中能登陆系统的用户

1

[root@desktop5 mnt]# vim user_show.sh#!/bin/bashawk -F : '/bash$/{print $1}' /etc/passwd      ##以bash结尾,打印出第一个字符

这里写图片描述
测试:
这里写图片描述
练习三:执行命令后可清空日至
方法一:

1

[root@desktop5 mnt]# vim clear_log.sh#!/bin/bash> /var/log/messages

方法二:

1

[root@desktop5 mnt]# vim clear_log.sh#!/bin/bashecho "" > /var/log/messages

测试:

1

[root@desktop5 mnt]# chmod +x clear_log.sh [root@desktop5 mnt]# /mnt/clear_log.sh

这里写图片描述

【推荐课程:linux视频教程】

以上就是【Linux学习】shell脚本语言的详细内容,更多文章请关注木庄网络博客

相关阅读 >>

Linux无法删除文件怎么办

Linux怎么查看内核版本

Linux下无法进入图形界面

vim退出不保存的命令是什么?

如何导入自定义镜像时选择 customized Linux(定制版镜像)

什么是Linux主机?

Linux使用bitnami安装redmine的图文教程

怎么使用instancemonitordatatype实例的监控数据集合

Linux中的“~”、“/”、“./”分别代表什么

Linux改变文件所有者命令是什么

更多相关阅读请进入《Linux》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...