一.什么是Shell?
<一>.Shell英文意思:壳;
<二>.计算机中管理整个硬件的其实是操作系统的核心;核心是被保护的;
<三>.计算机硬件,操作系统,Shell,用户之间的关系;
1.我们知道计算机完成计算,存储,网络,多媒体等等功能,其最基本条件是:计算机有相应的硬件支持以及这些硬件能够被管理使用;而计算机中管理硬件的其实就是操作系统和以及硬件驱动的支持;
2.而操作系统核心,其实就是一组程序,这组程序能够控制计算机的硬件以及管理系统活动;
3.更上一层,计算机不能够自动的说进行计算,播放视频,音乐等等;这些功能只有在用户进行有相关的命令请求发给操作系统的时候,相应的硬件才能进行工作。由于操作系统是管理计算机系统硬件的核心,因此这个核心应该被保护,用户不能随随便便的对操作系统进行操作,因为不当的操作可能造成整个计算机硬件系统的崩溃。
4.所以,就为操作系统做一层壳,来保护操作系统。而这层壳(Shell),是经过定义以及验证的,规定好的,用户的操作不会对计算机的硬件系统造成破坏。并且,通过Shell输入的命令,能够正确的被解析并传达到操作系统,而保证了相应的命令请求能够正确实施。
关系图:
<四>. 可以这样理解Shell:
Shell是一个应用程序;Shell定义了一系列的命令,用户输入这些命令之后,Shell能够解析,并调用正确的操作系统的具体功能;并且,用户输入的这些命令可以先高级编程语言一样,有变量和参数,以及有控制结构,所以说,Shell即是一种程序设计语言。作为命令语言,它交互式解释和执行用户输入的命令或者自动地解释和执行预先设定好的一连串的命令;作为程序设计语言,它定义了各种变量和参数,并具有的控制结构,包括循环和分支,也就是Shell Script。
1.Shell是一种命令解释器,能够解释用户输入命令并且调用操作系统功能;
2.Sehll是用户与操作系统之间的接口,桥梁;即保护了操作系统核心也为用户操作操作系统以及获取功能提供了条件;
3.Shell 提供的命令能够像命令一样一条条的输入,执行;也可以像程序设计语言一样的编写逻辑进行执行。所以Shell是一种程序设计语言;
4.shell提供了你与操作系统之间通讯的方式。有两种:
a.交互方式:(从键盘输入,并且可以立即得到响应)其实就是一次输入一条命令;
b.非交互方式:以shell script执行。shell script是放在文件中的一串shell和操作系统命令,它们可以被重复使用。本质上,shell script是命令行命令简单的组合到一个文件里面。 在这种模式下,shell不与你进行交互,而是读取存放在文件中的命令,并且执行它们。当它读到文件的结尾,shell也就终止了。
二.什么是bash?
1.Shell类型
shell的类型
在UNIX中主要有:
Bourne shell (包括 sh,ksh,and bash)
Bourne shell ( sh)
Korn shell ( ksh)
Bourne Again shell ( bash)
POSIX shell ( sh)
C shell (包括 csh and tcsh)
C shell ( csh)
TENEX/TOPS C shell ( tcsh)
2.最常见的是:bash;所以,bash是Shell的一种;
三.什么是Shell Script?
shell script 是利用 shell 的功能所寫的一個『程式 (program)』,這個程式是使用純文字檔,將一些 shell 的語法與指令(含外部指令)寫在裡面, 搭配正規表示法、管線命令與資料流重導向等功能,以達到我們所想要的處理目的。
shell script 就像是早期 DOS 年代的批处理 (.bat) ,最簡單的功能就是將許多指令彙整寫在一起, 讓使用者很輕易的就能夠 one touch 的方法去處理複雜的動作 (執行一個檔案 "shell script" ,就能夠一次執行多個指令)。 而且 shell script 更提供陣列、迴圈、條件與邏輯判斷等重要功能,讓使用者也可以直接以 shell 來撰寫程式。