一、shell简介
Shell俗称壳,是指“为使用者提供操作界面”的软件(命令解析器)。它包在Linux内核外面,shell管理你与操作系统之间的交互:等待你输入,向操作系统解释你的输入,并且处理各种各样的操作系统的输出结果。
二、Shell脚本简介
打开文本编辑器(可以使用vi/vim命令来创建文件),新建一个文件test.sh,扩展名为sh(sh代表shell),扩展名并不影响脚本执行,见名知意。将一些shell的语法与指令写在里面,然后用正规表示法,管道命令以及数据流重导向等功能,以达到我们所想要的处理目的。这个文件就叫Shell脚本。
三、如何写一个Shell脚本
1、编写一个简单的脚本
[root@server mnt]# vim hello.sh ##脚本一般用.sh结尾,这样写脚本时会高亮显示
[root@server mnt]# cat hello.sh
#!/bin/bash ##脚本使用的解释器,通常用幻数 "#!" 指定
echo hello shell ##脚本内容,echo是输出信息到屏幕
2、执行脚本
法一:
sh hello.sh
[root@server mnt]# sh hello.sh ##sh 后面跟 要运行的脚本名称(使用sh作为解释器)
hello shell ##执行结果
法二:
chmod +x hello.sh
/mnt/hello.sh
[root@server mnt]# chmod +x hello.sh ##给写的脚本加执行权限
[root@server mnt]# /mnt/hello.sh ##绝对路径执行脚本(使用幻数作为解释器)
hello shell
法三:
source hello.sh
[root@server mnt]# source hello.sh ##使用当前shell作为解释器
hello shell
3、显示脚本运行过程
[root@server mnt]# sh -x hello.sh ##-x显示脚本运行过程
+ echo hello shell
hello shell
4、shell的类型
一般用/bin/bash
[root@server mnt]# cat /etc/shells ##在/etc/shells下查看
/bin/sh # sh 是一个快捷方式,已经被/bin/bash所取代。
/bin/bash # 大多数Linux系统默认使用的shell,/bin/bash包含的功能几乎可以
涵盖shell所具有的功能,所以一般的shell脚本都会指定它为执行路径。
/sbin/nologin # 指用户不能登录
/usr/bin/sh
/usr/bin/bash
/usr/sbin/nologin
/bin/tcsh # tcsh是csh的增强版,与 C shell 完全兼容。
/bin/csh # csh是具有C语言风格的一种shell ,已经被/bin/tcsh所取代
四、SHELL编程注释
一般shell脚本要注上以下信息,作者,版本,邮箱,日期,描述,如果每次都自己编写太过于繁琐,如果能自动或有快捷键直接产生,那就节约了大量时间!现就赐予你”葵花宝典“
1)进入vim编写,手动按F5添加注释
[root@server ~]# vim /etc/vimrc
map <F5> ms:call WESTOS()<cr>'s
function WESTOS()
call append(0,"#############################")
call append(1,"# Author: Allen #")
call append(2,"# Create_Date:".strftime("%Y-%m-%d")." #")
call append(3,"# Version: #")
call append(4,"# Mail: #")
call append(5,"# Description: #")
call append(6,"#############################")
endfunction
2)进入vim编写.sh结尾的文件,自动添加注释
[root@server ~]# vim /etc/vimrc
autocmd BufNewFile *.sh,*.script exec ":call WESTOS()"
function WESTOS()
call append(0,"#############################")
call append(1,"# Author: Allen #")
call append(2,"# Create_Date:".strftime("%Y-%m-%d")." #")
call append(3,"# Version: #")
call append(4,"# Mail: #")
call append(5,"# Description: #")
call append(6,"#############################")
endfunction
截图献上:
[root@server mnt]# vim /etc/vimrc
[root@server mnt]# vim test.sh