本文摘自PHP中文网,作者little bottle,侵删。
shell 是操作系统中“提供使用者使用界面”的软件,它包在 linux 内核的外面,为用户和内核之间的交互提供了一个接口,系统中的命令用 shell 去解释,shell 接收系统回应的输出并显示其到屏幕中。
1.shell简介
- 解释性语言――shell脚本、python,运行效率低,基本只适用企业内部
shell――脚本,记录系统命令及命令执行的系统关系,充当解释器
gcc ――编译器
vim ――编辑器
1 | #!/bin/bash 幻数,指定解释器#!/usr/bin/env bash 自动匹配解释器
|
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 | [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》频道 >>
转载请注明出处:木庄网络博客 » 【Linux学习】shell脚本语言