架构师的成长之路初片~shell-1

1,什么是shell

Linux内核用户之间的解释器程序

通常指 /bin/bash

负责向内核翻译及传达用户/程序指令

相当于操作系统的“外壳”

2Shell的使用方式

交互式   —— 命令行

人工干预、智能化程度高

逐条解释执行、效率低

非交互式 —— 脚本

需要提前设计、智能化难度大

批量执行、效率高

方便在后台静悄悄地运行

3,什么是Shell脚本?

提前写好可执行语句,能够完成特定任务的文件

顺序、批量化处理

[root@svr7 ~]# cat /etc/shells   //查看所有解释器

[root@svr7 ~]# sh   //切换成sh解释器

sh-4.2# ls    //利用sh解释器输入命令

sh-4.2#exit   //退出sh解释器

[root@svr7 ~]#yum -y install ksh   //安装新解释器

[root@svr7 ~]#ksh   //进入新解释器

-------------------------------------------------------------------------------------------

Bash优点,支持tab键、快捷键、别名、历史命令、管道、重定向

------------------------------------------------------------

二,脚本的编写与执行

 编写脚本的规范:

1, 声明解释器

#!/bin/bash

2, 注释

#注释的内容可以是脚本功能描述、作者介绍等信息

3, 执行指令

 

脚本的执行方式:

1, 添加x权限 使用绝对或者相对路径执行

chmod  +x  test01.sh

2,使用解释器执行脚本,无需x权限,会开启子进程

bash test01.sh

bash---bash echo abc  mkdir xyz  cd xyz    //该方式会在bash父进程中开启一个bash子进程,然后由子进程执行任务命令

将之前脚本修改为:

#!/bin/bash

echo abc

mkdir xyz

cd xyz

//使用bash执行看不到进入xyz目录的效果,因为bash开启了子进程

执行完毕后退出了,父进程并没有进入xyz目录,而使用source执行脚

本可以看到进入xyz目录,因为没有开启子进程,而是父进程亲自进入

该目录

 

3,使用source命令执行脚本,无需x权限,不会开启子进程

source test01.sh

bash echo abc  mkdir xyz  cd xyz    //该方式由父进程亲自执行任务命令

 

 

 

 

 

 

 

 

原文地址:https://www.cnblogs.com/ahaocloud/p/14374553.html