1.shell 简介
- shell是操作系统中的一个软件,它包在linux内核的外面,为用户和内核之间的交互提供了一个接口,系统中的命令用shell去解释,shell接受系统回应的输出并显示其到屏幕中(bash = GUN Bourne-Again Shell)。
- shell处于kernel的外层,用来负责接收使用者输入的命令,然后将命令解释成kernel能了解的方式,然后由kernel去执行,再将结果传回默认的输出周边。shell是一种命令解释器,同时也是一个程序语言。shell有很多种,在众多的Linux发行版中,标准的shell是bash,也是我们学习的主要对象。
注:
1.脚本:可以自己运行的文本,文本中的字符可以自己运行
2.不同系统使用的shell不一样
3.c语言是一种面性对象的描述型语言
4.shell也是一个解释型语言,将要做的所有事情都解释出来
5.解释型:需要解释器翻译发出的指令
2.脚本运行的三种方式
注:
1.vim自动识别文件的后缀来改变文件的颜色
2.#!/bin/bash 脚本运行的环境,脚本运行的解释器 写什么调用什么
3.幻数:解释器的官方名称,解释器是什么运行的环境就是什么
准备工作:
[root@shenzhen ~]# cd /mnt
[root@shenzhen mnt]# ls
[root@shenzhen mnt]# vim test.sh
[root@shenzhen mnt]# ll test.sh
-rw-r--r--. 1 root root 28 Mar 26 17:32 test.sh
脚本中写入
#!/bin/bash
watch -n 1 date
文件没有执行权限
(1) sh file.sh sh命令调用脚本
fg可以调回打入后台的任务,结束任务
(2) source file.sh source命令调用脚本
加执行权限,file.sh 文件的绝对路径直接调用
(3) chmod +x file.sh
[root@shenzhen mnt]# chmod +x test.sh
[root@shenzhen mnt]# ll test.sh
-rwxr-xr-x. 1 root root 28 Mar 26 17:32 test.sh
总结:
1.sh执行方式会略过在文件里写入的执行环境,有执行权限的文件可以直接执行,直接调用文件中的执行环境
2.source不会开启一个新的shell,直接使用当前的shell做运行环境
3.自动给脚本中写入说明
(1)打开一个文件按下快捷键自动写入
[root@shell_example mnt]# vim /etc/vimrc
map <F5> ms:call WESTOS()<cr>'s
/* <cr>‘s表示结束 使用f5的时候调用westos函数*/
/* map <F5> 表示影射F5*/
function WESTOS()
call append(0,"#########################################")
call append(1,"# Author:yjy #")
call append(2,"# Create_Date:".strftime("%Y-%M-%D %H:%M:%S")." #")
/*后边执行的是vim内置的函数,需要以.开头*/
call append(3,"# Version:1.2 #")
call append(4,"# Mail:yjy@qq.com #")
call append(5,"# Description:WESTOS #")
call append(6,"#########################################")
endfunction
新建一个文件
[root@shell_example mnt]# vim /etc/vimrc
[root@shell_example mnt]# vim file.sh
(2)打开一个文件是自动写入
[root@shell_example mnt]# vim /etc/vimrc
autocmd BufNewFile *.sh exec ":call WESTOS()"
新建一个文件,自动出现
[root@shell_example mnt]# vim /etc/vimrc
[root@shell_example mnt]# ls
file.sh test.sh
[root@shell_example mnt]# vim file1.sh
注:
(1)map ms;call WESTOS()‘s ‘s表示结束 使用f5的时候调用westos函数 map 表示影射F5
(2)给语句块一个名字WESTOS()
(3)call append(0,“###############”)调用的内容,第一行写入
(4)一个tab表示八个字符
(5)endfunction表示语句块结束
(6)autocmd BufNewFile .sh,.scripts exec “:call WESTOS()”
编辑一个后缀是什么的文件时可以自动执行语句块