真正能够控制计算机硬件(CPU、内存、显示器等)的只有操作系统内核(Kernel),图形界面和命令行只是架设在用户和内核之间的一座桥梁。
由于安全、复杂、繁琐等原因,用户不能直接接触内核(也没有必要),需要另外再开发一个程序,让用户直接使用这个程序;该程序的作用就是接收用户的操作(点击图标、输入命令),并进行简单的处理,然后再传递给内核。如此一来,用户和内核之间就多了一层“代理”,这层“代理”既简化了用户的操作,也保护了内核。
用户界面和命令行就是这个另外开发的程序,就是这层“代理”。在Linux下,这个命令行程序叫做Shell。
Shell 除了能解释用户输入的命令,将它传递给内核,还可以:
Shell 是将内核、程序和用户连接了起来。
Shell 虽然没有 C/C++、Java、Python 等强大,但也支持了基本的编程元素,例如:
站在这个角度讲,Shell 也是一种编程语言,它的编译器(解释器)是 Shell 这个程序。我们平时所说的 Shell,有时候是指连接用户和内核的这个程序,有时候又是指 Shell 编程。
Shell 既是一种脚本编程语言,也是一个连接内核和用户的软件
常见的Shell有sh bash csh tcsh ash等
sh: Bourne shell 由 AT&T 公司的 Steve Bourne开发,sh 是 UNIX 上的标准 shell
bash:bash shell 是 Linux 的默认shell,bash 由 GNU 组织开发,保持了对 sh shell 的兼容性
启动终端模拟包或者从 Linux控制台登录后,便可以看到Shell提示符。提示符是通往 Shell 的大门,是输入 Shell 命令的地方。
Shell 通过PS1和PS2两个环境变量来控制提示符格式:PS1 控制最外层命令行的提示符格式;PS2 控制第二层命令行的提示符格式。
Shell Script 用各类命令预先放入到一个文件中,方便一次性执行的一个程序文件,这个文件后缀为.sh
打开文本编辑器,新建一个文本文件,并命名为test.sh
在test.sh中输入代码:
#!/bin/bash echo "Hello World !" #这是一条注释
第1行的#!是一个约定的标记,它告诉系统这个脚本需要什么解释器来执行,即使用哪一种Shell;后面的 /bin/bash就是指明了解释器的具体位置。
第2行即为代码内容。第2行的#及其后面的内容是注释,Shell脚本中所有以#开头的都是注释(当然以#!开头的除外)
如何执行test.sh这个程序呢?有三种方法,首先切换到test.sh所在的目录:使用点号 例如 . ./test.sh;使用source命令 ,例如source test.sh;作为解释器参数,例如 /bin/bash test.sh
非原创,侵删,内容来源 http://c.biancheng.net/shell/
End
原文:https://www.cnblogs.com/colin220/p/10174278.html